From a339d4521d5c260fbde8b31098422912182ccc78 Mon Sep 17 00:00:00 2001 From: Shai Almog <67850168+shai-almog@users.noreply.github.com> Date: Wed, 15 Jul 2026 17:18:39 +0300 Subject: [PATCH] =?UTF-8?q?Revert=20"Pure=20Codename=20One=20rich=20text?= =?UTF-8?q?=20and=20code=20editors=20(remove=20BrowserComponent=E2=80=A6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 4d8237a779a9b1b8b6ba4c42fec4d2481779b335. --- .../impl/CodenameOneImplementation.java | 49 - .../codename1/ui/AbstractEditorComponent.java | 140 +- .../com/codename1/ui/BrowserComponent.java | 2 +- .../src/com/codename1/ui/CodeEditor.java | 36 +- .../src/com/codename1/ui/RichTextArea.java | 102 +- .../codename1/ui/RichTextClipboardData.java | 125 -- .../src/com/codename1/ui/RichTextFormat.java | 38 - .../src/com/codename1/ui/TextArea.java | 267 +-- .../src/com/codename1/ui/TextInputClient.java | 174 -- .../src/com/codename1/ui/TextInputConfig.java | 124 - .../src/com/codename1/ui/TextInputState.java | 109 - .../src/com/codename1/ui/editor/BidiUtil.java | 346 --- .../codename1/ui/editor/CodePureEditor.java | 177 -- .../src/com/codename1/ui/editor/CodeView.java | 828 ------- .../codename1/ui/editor/EditorDocument.java | 258 --- .../com/codename1/ui/editor/EditorHost.java | 53 - .../com/codename1/ui/editor/EditorView.java | 1992 ----------------- .../com/codename1/ui/editor/HtmlImporter.java | 514 ----- .../codename1/ui/editor/HtmlSerializer.java | 260 --- .../com/codename1/ui/editor/InlineStyles.java | 144 -- .../com/codename1/ui/editor/LanguageDef.java | 167 -- .../com/codename1/ui/editor/PureEditor.java | 133 -- .../com/codename1/ui/editor/RichBlocks.java | 139 -- .../codename1/ui/editor/RichPureEditor.java | 232 -- .../codename1/ui/editor/RichTextImporter.java | 549 ----- .../src/com/codename1/ui/editor/RichView.java | 1137 ---------- .../com/codename1/ui/editor/TextStyle.java | 148 -- .../com/codename1/ui/editor/ThemePalette.java | 135 -- .../com/codename1/ui/editor/Tokenizer.java | 259 --- .../com/codename1/ui/editor/UndoManager.java | 163 -- .../com/codename1/ui/editor/package-info.java | 56 - .../src/com/codename1/ui/html/HTMLParser.java | 56 +- .../src/com/codename1/ui/html/HTMLUtils.java | 21 - .../impl/android/AndroidAsyncView.java | 7 - .../impl/android/AndroidImplementation.java | 219 +- .../impl/android/AndroidSurfaceView.java | 52 +- .../impl/android/AndroidTextureView.java | 7 - .../impl/android/CN1TextInputConnection.java | 234 -- .../com/codename1/impl/javase/JavaSEPort.java | 228 +- .../impl/html5/HTML5BrowserComponent.java | 8 +- .../impl/html5/HTML5Implementation.java | 6 +- .../com/codename1/impl/html5/HTML5Peer.java | 4 +- ...JavaScriptBrowserLifecycleCoordinator.java | 10 +- .../src/main/webapp/css/bootstrap.min.css | 2 +- .../impl/linux/LinuxImplementation.java | 10 +- .../impl/windows/WindowsImplementation.java | 10 +- .../iOSPort/nativeSources/CN1TextInputView.h | 50 - .../iOSPort/nativeSources/CN1TextInputView.m | 719 ------ .../CodenameOne_GLViewController.h | 1 + .../codename1/impl/ios/IOSImplementation.java | 232 +- .../src/com/codename1/impl/ios/IOSNative.java | 4 - .../RichTextAndCodeEditingJavaSnippet.java | 82 - ...ComponentsOfCodenameOneJava115Snippet.java | 25 +- .../Rich-Text-And-Code-Editing.asciidoc | 257 --- .../The-Components-Of-Codename-One.asciidoc | 56 +- .../Working-With-Javascript.asciidoc | 3 +- docs/developer-guide/developer-guide.asciidoc | 2 - .../img/components-codeeditor-dark.png | Bin 0 -> 66714 bytes .../img/components-codeeditor.png | Bin 0 -> 69582 bytes .../img/components-richtextarea.png | Bin 0 -> 57644 bytes docs/developer-guide/img/editors-code.png | Bin 23684 -> 0 bytes docs/developer-guide/img/editors-overview.png | Bin 23132 -> 0 bytes docs/developer-guide/img/editors-richtext.png | Bin 23963 -> 0 bytes ...open-source-without-the-bait-and-switch.md | 2 +- .../blog/java-one-detailed-trip-report.md | 2 + .../blog/rich-text-and-code-editing.md | 10 +- .../builders/AndroidGradleBuilder.java | 17 + .../com/codename1/builders/IPhoneBuilder.java | 12 + maven/core-unittests/spotbugs-exclude.xml | 13 - .../TestCodenameOneImplementation.java | 34 - .../java/com/codename1/ui/CodeEditorTest.java | 51 +- .../com/codename1/ui/RichTextAreaTest.java | 65 +- .../java/com/codename1/ui/TextAreaTest.java | 69 - .../com/codename1/ui/editor/BidiUtilTest.java | 138 -- .../ui/editor/EditorDocumentTest.java | 114 - .../ui/editor/EditorFirstLineTest.java | 106 - .../codename1/ui/editor/EditorLayoutTest.java | 78 - .../ui/editor/EditorRegressionTest.java | 170 -- .../ui/editor/EditorViewBidiTest.java | 170 -- .../ui/editor/EditorViewInputTest.java | 129 -- .../codename1/ui/editor/HtmlImporterTest.java | 74 - .../ui/editor/RichTextImporterTest.java | 117 - .../codename1/ui/editor/RichViewBidiTest.java | 130 -- scripts/android/screenshots/CodeEditor.png | Bin 23684 -> 20586 bytes .../android/screenshots/CodeEditor.tolerance | 5 +- scripts/android/screenshots/PureEditors.png | Bin 23132 -> 0 bytes .../android/screenshots/PureEditors.tolerance | 4 - scripts/android/screenshots/RichTextArea.png | Bin 23963 -> 25162 bytes .../screenshots/RichTextArea.tolerance | 5 +- scripts/cn1playground/common/pom.xml | 1 - .../common/src/main/css/theme.css | 44 +- .../codenameone/playground/CN1Playground.java | 37 +- .../playground/PlaygroundBrowserEditor.java | 422 ++++ .../playground/PlaygroundEditorMetadata.java | 159 ++ .../PlaygroundLightweightEditor.java | 171 -- .../playground/PlaygroundLayoutHarness.java | 40 +- .../src/html/playground-editor/editor.js | 923 ++++++++ .../src/html/playground-editor/index.html | 51 + .../browser/ui/codicons/codicon/codicon.ttf | Bin 0 -> 80340 bytes .../monaco/min/vs/base/worker/workerMain.js | 31 + .../monaco/min/vs/basic-languages/css/css.js | 12 + .../min/vs/basic-languages/java/java.js | 10 + .../monaco/min/vs/editor/editor.main.css | 8 + .../monaco/min/vs/editor/editor.main.js | 798 +++++++ .../monaco/min/vs/language/css/cssMode.js | 13 + .../monaco/min/vs/language/css/cssWorker.js | 77 + .../playground-editor/monaco/min/vs/loader.js | 11 + .../monaco/min/vs/nls.messages.de.js | 21 + .../monaco/min/vs/nls.messages.es.js | 21 + .../monaco/min/vs/nls.messages.fr.js | 19 + .../monaco/min/vs/nls.messages.it.js | 19 + .../monaco/min/vs/nls.messages.ja.js | 21 + .../monaco/min/vs/nls.messages.ko.js | 19 + .../monaco/min/vs/nls.messages.ru.js | 21 + .../monaco/min/vs/nls.messages.zh-cn.js | 21 + .../monaco/min/vs/nls.messages.zh-tw.js | 19 + .../tools/generate-cn1-access-registry.sh | 6 +- .../tools/run-playground-smoke-tests.sh | 24 +- scripts/developer-guide/run_languagetool.py | 6 - .../tests/Cn1ssDeviceRunner.java | 29 - .../tests/CodeEditorScreenshotTest.java | 25 +- .../tests/PureEditorScreenshotTest.java | 65 - .../tests/RichTextAreaScreenshotTest.java | 25 +- .../tests/ScreenshotPureEditors.java | 68 - scripts/ios/screenshots-metal/CodeEditor.png | Bin 173805 -> 135021 bytes .../screenshots-metal/CodeEditor.tolerance | 5 +- scripts/ios/screenshots-metal/PureEditors.png | Bin 143512 -> 0 bytes .../screenshots-metal/PureEditors.tolerance | 4 - .../ios/screenshots-metal/RichTextArea.png | Bin 136498 -> 123230 bytes .../screenshots-metal/RichTextArea.tolerance | 5 +- scripts/ios/screenshots-tv/CodeEditor.png | Bin 252961 -> 136119 bytes .../ios/screenshots-tv/CodeEditor.tolerance | 5 +- scripts/ios/screenshots-tv/PureEditors.png | Bin 220866 -> 0 bytes .../ios/screenshots-tv/PureEditors.tolerance | 4 - scripts/ios/screenshots-tv/RichTextArea.png | Bin 247683 -> 131995 bytes .../ios/screenshots-tv/RichTextArea.tolerance | 5 +- scripts/ios/screenshots-watch/CodeEditor.png | Bin 32942 -> 13205 bytes .../screenshots-watch/CodeEditor.tolerance | 5 +- scripts/ios/screenshots-watch/PureEditors.png | Bin 34187 -> 0 bytes .../screenshots-watch/PureEditors.tolerance | 4 - .../ios/screenshots-watch/RichTextArea.png | Bin 29036 -> 12243 bytes .../screenshots-watch/RichTextArea.tolerance | 5 +- scripts/ios/screenshots/CodeEditor.png | Bin 130130 -> 128658 bytes scripts/ios/screenshots/CodeEditor.tolerance | 5 +- scripts/ios/screenshots/PureEditors.png | Bin 109857 -> 0 bytes scripts/ios/screenshots/PureEditors.tolerance | 4 - scripts/ios/screenshots/RichTextArea.png | Bin 101265 -> 119361 bytes .../ios/screenshots/RichTextArea.tolerance | 5 +- scripts/javascript/screenshots/CodeEditor.png | Bin 38946 -> 12670 bytes .../screenshots/CodeEditor.tolerance | 4 +- .../javascript/screenshots/PureEditors.png | Bin 20526 -> 0 bytes .../screenshots/PureEditors.tolerance | 4 - .../javascript/screenshots/RichTextArea.png | Bin 30789 -> 11265 bytes .../screenshots/RichTextArea.tolerance | 4 +- scripts/linux/screenshots-arm/CodeEditor.png | Bin 28842 -> 5452 bytes .../screenshots-arm/CodeEditor.tolerance | 3 +- scripts/linux/screenshots-arm/PureEditors.png | Bin 23043 -> 0 bytes .../screenshots-arm/PureEditors.tolerance | 4 - .../linux/screenshots-arm/RichTextArea.png | Bin 23822 -> 5193 bytes .../screenshots-arm/RichTextArea.tolerance | 3 +- scripts/linux/screenshots/CodeEditor.png | Bin 28842 -> 5452 bytes .../linux/screenshots/CodeEditor.tolerance | 3 +- scripts/linux/screenshots/PureEditors.png | Bin 23043 -> 0 bytes .../linux/screenshots/PureEditors.tolerance | 4 - scripts/linux/screenshots/RichTextArea.png | Bin 23822 -> 5193 bytes .../linux/screenshots/RichTextArea.tolerance | 3 +- scripts/mac-native/screenshots/CodeEditor.png | Bin 45214 -> 16858 bytes .../screenshots/CodeEditor.tolerance | 5 +- .../mac-native/screenshots/PureEditors.png | Bin 38745 -> 0 bytes .../screenshots/PureEditors.tolerance | 4 - .../mac-native/screenshots/RichTextArea.png | Bin 44823 -> 15816 bytes .../screenshots/RichTextArea.tolerance | 5 +- scripts/windows/screenshots/CodeEditor.png | Bin 17102 -> 5086 bytes .../windows/screenshots/CodeEditor.tolerance | 5 +- scripts/windows/screenshots/PureEditors.png | Bin 13712 -> 0 bytes .../windows/screenshots/PureEditors.tolerance | 4 - scripts/windows/screenshots/RichTextArea.png | Bin 14595 -> 4607 bytes .../screenshots/RichTextArea.tolerance | 5 +- .../src/javascript/browser_bridge.js | 25 +- .../JavaScriptRuntimeFacadeTest.java | 31 - 180 files changed, 3094 insertions(+), 12991 deletions(-) delete mode 100644 CodenameOne/src/com/codename1/ui/RichTextClipboardData.java delete mode 100644 CodenameOne/src/com/codename1/ui/RichTextFormat.java delete mode 100644 CodenameOne/src/com/codename1/ui/TextInputClient.java delete mode 100644 CodenameOne/src/com/codename1/ui/TextInputConfig.java delete mode 100644 CodenameOne/src/com/codename1/ui/TextInputState.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/BidiUtil.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/CodePureEditor.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/CodeView.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/EditorDocument.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/EditorHost.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/EditorView.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/HtmlSerializer.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/InlineStyles.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/LanguageDef.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/PureEditor.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/RichBlocks.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/RichPureEditor.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/RichTextImporter.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/RichView.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/TextStyle.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/ThemePalette.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/Tokenizer.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/UndoManager.java delete mode 100644 CodenameOne/src/com/codename1/ui/editor/package-info.java delete mode 100644 Ports/Android/src/com/codename1/impl/android/CN1TextInputConnection.java delete mode 100644 Ports/iOSPort/nativeSources/CN1TextInputView.h delete mode 100644 Ports/iOSPort/nativeSources/CN1TextInputView.m delete mode 100644 docs/demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/RichTextAndCodeEditingJavaSnippet.java delete mode 100644 docs/developer-guide/Rich-Text-And-Code-Editing.asciidoc create mode 100644 docs/developer-guide/img/components-codeeditor-dark.png create mode 100644 docs/developer-guide/img/components-codeeditor.png create mode 100644 docs/developer-guide/img/components-richtextarea.png delete mode 100644 docs/developer-guide/img/editors-code.png delete mode 100644 docs/developer-guide/img/editors-overview.png delete mode 100644 docs/developer-guide/img/editors-richtext.png delete mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/BidiUtilTest.java delete mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorDocumentTest.java delete mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorFirstLineTest.java delete mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorLayoutTest.java delete mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorRegressionTest.java delete mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewBidiTest.java delete mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewInputTest.java delete mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/HtmlImporterTest.java delete mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/RichTextImporterTest.java delete mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/RichViewBidiTest.java delete mode 100644 scripts/android/screenshots/PureEditors.png delete mode 100644 scripts/android/screenshots/PureEditors.tolerance create mode 100644 scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundBrowserEditor.java create mode 100644 scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundEditorMetadata.java delete mode 100644 scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundLightweightEditor.java create mode 100644 scripts/cn1playground/src/html/playground-editor/editor.js create mode 100644 scripts/cn1playground/src/html/playground-editor/index.html create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/base/browser/ui/codicons/codicon/codicon.ttf create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/base/worker/workerMain.js create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/basic-languages/css/css.js create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/basic-languages/java/java.js create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/editor/editor.main.css create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/editor/editor.main.js create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/language/css/cssMode.js create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/language/css/cssWorker.js create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/loader.js create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/nls.messages.de.js create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/nls.messages.es.js create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/nls.messages.fr.js create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/nls.messages.it.js create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/nls.messages.ja.js create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/nls.messages.ko.js create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/nls.messages.ru.js create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/nls.messages.zh-cn.js create mode 100644 scripts/cn1playground/src/html/playground-editor/monaco/min/vs/nls.messages.zh-tw.js delete mode 100644 scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/PureEditorScreenshotTest.java delete mode 100644 scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/ScreenshotPureEditors.java delete mode 100644 scripts/ios/screenshots-metal/PureEditors.png delete mode 100644 scripts/ios/screenshots-metal/PureEditors.tolerance delete mode 100644 scripts/ios/screenshots-tv/PureEditors.png delete mode 100644 scripts/ios/screenshots-tv/PureEditors.tolerance delete mode 100644 scripts/ios/screenshots-watch/PureEditors.png delete mode 100644 scripts/ios/screenshots-watch/PureEditors.tolerance delete mode 100644 scripts/ios/screenshots/PureEditors.png delete mode 100644 scripts/ios/screenshots/PureEditors.tolerance delete mode 100644 scripts/javascript/screenshots/PureEditors.png delete mode 100644 scripts/javascript/screenshots/PureEditors.tolerance delete mode 100644 scripts/linux/screenshots-arm/PureEditors.png delete mode 100644 scripts/linux/screenshots-arm/PureEditors.tolerance delete mode 100644 scripts/linux/screenshots/PureEditors.png delete mode 100644 scripts/linux/screenshots/PureEditors.tolerance delete mode 100644 scripts/mac-native/screenshots/PureEditors.png delete mode 100644 scripts/mac-native/screenshots/PureEditors.tolerance delete mode 100644 scripts/windows/screenshots/PureEditors.png delete mode 100644 scripts/windows/screenshots/PureEditors.tolerance diff --git a/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java b/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java index bd8e434d60d..57b09139e56 100644 --- a/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java +++ b/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java @@ -5352,55 +5352,6 @@ public String editorPeerQuery(PeerComponent peer, String name, String arg) { return null; } - /// Returns true when this platform can bind a `com.codename1.ui.TextInputClient` to a low level text - /// input source (soft keyboard / IME / hardware keyboard) so a component can capture raw text input - /// while rendering the document itself. When false the pure Codename One editors fall back to their - /// `BrowserComponent` backend. The default returns false. - public boolean isTextInputSupported() { - return false; - } - - /// Binds a `com.codename1.ui.TextInputClient` to the platform text input source and shows the soft - /// keyboard on touch devices. The platform then routes committed text, IME composition, deletions and - /// key commands into the client, and reads back the client's editing state and caret rectangle. The - /// returned handle identifies this binding for `#updateTextInputState` and `#stopTextInput`. The - /// default returns null (unsupported). - /// - /// #### Parameters - /// - /// - `client`: the input client to bind - /// - /// - `config`: the desired keyboard type and input behavior - /// - /// #### Returns - /// - /// an opaque handle for this binding, or null when unsupported - public Object startTextInput(com.codename1.ui.TextInputClient client, com.codename1.ui.TextInputConfig config) { - return null; - } - - /// Pushes the client's authoritative editing state (surrounding text, selection, composition and - /// caret rectangle) down to the platform input source so autocorrect, prediction and the IME - /// candidate window stay in sync after a Codename One side edit (programmatic change, undo, reflow). - /// No-op by default. - /// - /// #### Parameters - /// - /// - `handle`: the handle returned by `#startTextInput` - /// - /// - `state`: the current editing state - public void updateTextInputState(Object handle, com.codename1.ui.TextInputState state) { - } - - /// Unbinds a text input client bound with `#startTextInput` and hides the soft keyboard on touch - /// devices. No-op by default. - /// - /// #### Parameters - /// - /// - `handle`: the handle returned by `#startTextInput` - public void stopTextInput(Object handle) { - } - /// Posts a message to the window in a BrowserComponent. This is intended to be an abstraction of the Javascript postMessage() API. /// /// This is only overridden by the Javascript port to provide proper CORS handling. Other ports use the implementation diff --git a/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java b/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java index eeb5d0b9a62..fd99e3de83b 100644 --- a/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java +++ b/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java @@ -23,8 +23,6 @@ */ package com.codename1.ui; -import com.codename1.ui.editor.EditorHost; -import com.codename1.ui.editor.PureEditor; import com.codename1.ui.events.ActionEvent; import com.codename1.ui.events.ActionListener; import com.codename1.ui.layouts.BorderLayout; @@ -42,34 +40,27 @@ /// and the inbound `#onEditorEvent(String, String)` dispatch. Two interchangeable backends honor /// that channel: /// -/// 1. The pure Codename One text engine (`com.codename1.ui.editor`) which renders the document itself -/// with `Graphics`/`Font` and binds to the platform text input source (soft keyboard, hardware -/// keyboard and IME). This is the default where the port exposes low-level text input. -/// 2. A `BrowserComponent` fallback on ports that don't expose low-level text input. Its -/// `contenteditable` surface remains editable through the platform web view. -/// 3. An optional native backend supplied by the platform port (see +/// 1. A 100% cross platform fallback backed by `BrowserComponent` (a `contenteditable` surface for +/// rich text, a syntax highlighting surface for code). This works on every platform that supports +/// the native web widget and gets virtual keyboard handling on phones/tablets and physical keyboard +/// handling on desktop for free. +/// 2. An optional native backend supplied by the platform port (see /// `com.codename1.impl.CodenameOneImplementation#createNativeEditorPeer(AbstractEditorComponent, String)`). /// When a port returns a non-null native peer the editor drives it through -/// `editorPeerCommand` / `editorPeerQuery` instead of the pure engine, allowing a platform to provide a -/// genuinely native experience. +/// `editorPeerCommand` / `editorPeerQuery` instead of the browser, allowing a platform to provide a +/// genuinely native experience that can exceed an HTML based app. /// -/// All backends are addressed with the same vocabulary so concrete editors never need to know which +/// Both backends are addressed with the same vocabulary so concrete editors never need to know which /// one is active. /// /// @author Shai Almog -public abstract class AbstractEditorComponent extends Container implements EditorHost { - /// Prefix used for messages sent from the browser fallback to Codename One. +public abstract class AbstractEditorComponent extends Container { + /// Prefix used for all messages that travel from the web editor back to Codename One over the + /// `BrowserComponent` message bridge. static final String MESSAGE_PREFIX = "cn1ed:"; - /// Backend identifier: the pure Codename One text engine. - public static final int BACKEND_PURE = 0; - - /// Backend identifier for the `BrowserComponent` compatibility fallback. - public static final int BACKEND_BROWSER = 1; - private BrowserComponent browser; private PeerComponent nativePeer; - private PureEditor pureEditor; private boolean nativeMode; private boolean ready; private boolean editable = true; @@ -110,19 +101,8 @@ private void initBackend() { return; } nativeMode = false; - if (isTextInputSupported()) { - pureEditor = createPureEditor(); - removeComponent(placeholder); - addComponent(BorderLayout.CENTER, pureEditor.getView()); - markReady(); - revalidateLater(); - return; - } - initBrowserBackend(); - } - - private void initBrowserBackend() { browser = new BrowserComponent(); + // keep the editor chrome supplied by the surrounding form, the editing surface is transparent browser.setProperty("BackgroundColor", 0xffffff); browser.addWebEventListener(BrowserComponent.onMessage, new ActionListener() { @Override @@ -133,6 +113,7 @@ public void actionPerformed(ActionEvent evt) { browser.addWebEventListener(BrowserComponent.onLoad, new ActionListener() { @Override public void actionPerformed(ActionEvent evt) { + // the page defines window.cn1editor synchronously so it is ready once the page loaded markReady(); } }); @@ -157,8 +138,16 @@ private void handleBrowserMessage(String msg) { } String body = msg.substring(MESSAGE_PREFIX.length()); int colon = body.indexOf(':'); - onEditorEvent(colon < 0 ? body : body.substring(0, colon), - colon < 0 ? null : body.substring(colon + 1)); + String type; + String value; + if (colon < 0) { + type = body; + value = null; + } else { + type = body.substring(0, colon); + value = body.substring(colon + 1); + } + onEditorEvent(type, value); } private void markReady() { @@ -175,41 +164,25 @@ private void markReady() { readyListeners.fireActionEvent(new ActionEvent(this)); } - /// Deprecated compatibility hook. Backend selection is automatic: the pure engine is used when - /// low-level text input is available and the browser fallback is used otherwise. - /// - /// #### Parameters - /// - /// - `backend`: ignored - @Deprecated - public static void setDefaultBackend(int backend) { - } - - /// Returns the preferred pure backend. Actual selection may fall back to the browser at runtime. - @Deprecated - public static int getDefaultBackend() { - return BACKEND_PURE; - } - - /// Creates the pure Codename One backend for this editor. Subclasses override to supply a code or - /// rich text feature layer. - PureEditor createPureEditor() { - return new PureEditor(this, getEditorType()); - } - /// Returns the editor type identifier passed to the native peer factory, e.g. /// `"richtext"` or `"code"`. abstract String getEditorType(); - /// Returns the self-contained page used by the browser fallback. + /// Returns the bootstrap HTML page used by the `BrowserComponent` fallback backend. The page must + /// define a global `window.cn1editor` object exposing `cmd(name, arg)` and `query(name, arg)` + /// functions and post change/ready events back through `window.cn1PostMessage`. abstract String createEditorHtml(); - /// Base URL for relative resources in the browser fallback page. + /// Base URL used when loading the editor page, allowing relative resources (such as a bundled code + /// editor library) to resolve. The default returns a synthetic origin. String getEditorBaseURL() { return "https://cn1editor.codenameone.com/"; } - /// Optional app-hierarchy URL for a custom browser editor engine. + /// When non-null the browser fallback loads this app-hierarchy URL (via + /// `BrowserComponent#setURLHierarchy(String)`) as a custom editor engine instead of the built-in + /// `#createEditorHtml()` page. Subclasses override to allow an application to supply a richer editor + /// backend that speaks the same `window.cn1editor` bridge. String getEngineURL() { return null; } @@ -242,7 +215,6 @@ void onEditorEvent(String type, String value) { /// - `type`: the event type /// /// - `value`: optional payload, may be null - @Override public void fireEditorEvent(final String type, final String value) { if (CN.isEdt()) { onEditorEvent(type, value); @@ -276,8 +248,6 @@ public void run() { } if (nativeMode) { Display.impl.editorPeerCommand(nativePeer, name, arg); - } else if (pureEditor != null) { - pureEditor.cmd(name, arg); } else { browser.execute("window.cn1editor.cmd(${0}, ${1})", new Object[]{name, arg == null ? "" : arg}); } @@ -307,12 +277,9 @@ public void run() { callback.onSucess(Display.impl.editorPeerQuery(nativePeer, name, arg)); return; } - if (pureEditor != null) { - callback.onSucess(pureEditor.query(name, arg)); - return; - } browser.execute("callback.onSuccess(window.cn1editor.query(${0}, ${1}))", - new Object[]{name, arg == null ? "" : arg}, new JSRefStringCallback(callback)); + new Object[]{name, arg == null ? "" : arg}, + new JSRefStringCallback(callback)); } private static final class JSRefStringCallback implements SuccessCallback { @@ -347,13 +314,14 @@ public boolean isEditorReady() { return ready; } - /// True when a platform supplied native editor backend is in use, false for the pure and browser - /// backends. + /// True when a platform supplied native editor backend is in use, false when the cross platform + /// `BrowserComponent` fallback is active. public boolean isNativeEditor() { return nativeMode; } - /// Returns the browser fallback, or null when the pure or native backend is active. + /// Returns the underlying `BrowserComponent` used by the fallback backend, or null when a native + /// backend is active. Exposed for advanced customization; most apps never need this. public BrowserComponent getInternalBrowser() { return browser; } @@ -429,36 +397,4 @@ public void focusEditor() { public void blurEditor() { command("blur", null); } - - // ---- EditorHost (pure backend bridge to the platform text input source) ---- - - /// {@inheritDoc} - @Override - public boolean isTextInputSupported() { - return Display.impl.isTextInputSupported(); - } - - /// {@inheritDoc} - @Override - public Object startTextInput(TextInputClient client, TextInputConfig config) { - return Display.impl.startTextInput(client, config); - } - - /// {@inheritDoc} - @Override - public void updateTextInputState(Object handle, TextInputState state) { - Display.impl.updateTextInputState(handle, state); - } - - /// {@inheritDoc} - @Override - public void stopTextInput(Object handle) { - Display.impl.stopTextInput(handle); - } - - /// {@inheritDoc} - @Override - public void editorChanged() { - onEditorEvent("change", null); - } } diff --git a/CodenameOne/src/com/codename1/ui/BrowserComponent.java b/CodenameOne/src/com/codename1/ui/BrowserComponent.java index 5c629579110..b41c9e477a5 100644 --- a/CodenameOne/src/com/codename1/ui/BrowserComponent.java +++ b/CodenameOne/src/com/codename1/ui/BrowserComponent.java @@ -1683,7 +1683,7 @@ public void run() { /// When a Dialog is shown, the parent Form is deinitialized, which normally causes /// BrowserComponent's iframe to be removed from the DOM. When the Dialog is dismissed, /// the Form is re-shown but the iframe must be recreated from scratch, losing all - /// JavaScript state (editor content, event listeners, etc.). + /// JavaScript state (Monaco editor content, event listeners, etc.). /// /// Setting this to `Boolean.FALSE` preserves the iframe in the DOM across /// deinitialization cycles, which is essential for: diff --git a/CodenameOne/src/com/codename1/ui/CodeEditor.java b/CodenameOne/src/com/codename1/ui/CodeEditor.java index a699403cd18..ebdc3a7797a 100644 --- a/CodenameOne/src/com/codename1/ui/CodeEditor.java +++ b/CodenameOne/src/com/codename1/ui/CodeEditor.java @@ -23,8 +23,6 @@ */ package com.codename1.ui; -import com.codename1.ui.editor.CodePureEditor; -import com.codename1.ui.editor.PureEditor; import com.codename1.util.SuccessCallback; import java.util.List; @@ -36,10 +34,12 @@ /// desktops (with a physical keyboard). Code completion is driven by a `CodeCompletionProvider`, which /// can resolve proposals locally or from a remote language server. /// -/// Like `RichTextArea`, ports with low-level text input use the pure Codename One text engine -/// (`com.codename1.ui.editor`) with a built-in incremental syntax highlighter. Ports without that input -/// contract use an editable `BrowserComponent` fallback, and a port can transparently supply a native -/// code editor instead. +/// Like `RichTextArea`, the editor uses a 100% cross platform `BrowserComponent` backend by default and +/// can be transparently upgraded to a native code editor by a platform port. The built-in editing +/// surface is fully self contained and offline. When the optional bundled CodeMirror library is present +/// (the Codename One build server adds it automatically when, and only when, an app actually uses +/// `CodeEditor`) the editor upgrades to CodeMirror for richer language support; otherwise it uses a +/// lightweight built-in highlighter. /// /// #### Example /// @@ -88,11 +88,6 @@ String getEditorType() { return "code"; } - @Override - PureEditor createPureEditor() { - return new CodePureEditor(this, getEditorType()); - } - /// Replaces the entire editor content. /// /// #### Parameters @@ -259,23 +254,31 @@ private static String diagnosticsJson(List diagnostics) { return sb.toString(); } - /// Points the browser fallback at a custom editor page in the app hierarchy. Ports with low-level - /// text input continue to use the pure editor; this URL is used only where the browser fallback is - /// required. + /// Points the editor at a custom engine page bundled in the app's HTML hierarchy (loaded with + /// `BrowserComponent#setURLHierarchy(String)`) instead of the self contained built-in engine. The + /// custom page must implement the same `window.cn1editor` command/query bridge and post the same + /// `cn1ed:` events, which lets an application back `CodeEditor` with a richer editor (e.g. CodeMirror + /// or Monaco) when maximum polish is required while keeping the exact same Java API. Must be set + /// before the editor is shown. /// /// #### Parameters /// - /// - `url`: an app-hierarchy URL, or null for the built-in page + /// - `url`: an app-hierarchy URL such as `"/my-editor/index.html"`, or null to use the built-in engine public void setEngineURL(String url) { this.engineUrl = url; } - /// Returns the custom browser-engine URL, or null for the built-in page. + /// Returns the custom engine URL set with `#setEngineURL(String)`, or null when the built-in engine + /// is used. @Override public String getEngineURL() { return engineUrl; } + String getEngineURLInternal() { + return engineUrl; + } + /// Sets the provider that supplies code completion proposals. Passing null disables completion. /// /// #### Parameters @@ -397,5 +400,4 @@ private static String jsonEscape(String s) { String createEditorHtml() { return CodeEditorHtml.PAGE; } - } diff --git a/CodenameOne/src/com/codename1/ui/RichTextArea.java b/CodenameOne/src/com/codename1/ui/RichTextArea.java index d176ec88cb4..c08c6be5612 100644 --- a/CodenameOne/src/com/codename1/ui/RichTextArea.java +++ b/CodenameOne/src/com/codename1/ui/RichTextArea.java @@ -23,9 +23,6 @@ */ package com.codename1.ui; -import com.codename1.ui.editor.PureEditor; -import com.codename1.ui.editor.RichPureEditor; -import com.codename1.ui.editor.RichTextImporter; import com.codename1.util.SuccessCallback; /// A native visual editor for rich text / HTML content (a WYSIWYG editor). @@ -34,10 +31,10 @@ /// headings and more - and exchange the result as HTML with your application. It works on phones and /// tablets (with the on screen virtual keyboard) as well as on desktops (with a physical keyboard). /// -/// On ports with low-level text input the editor uses the pure Codename One text engine -/// (`com.codename1.ui.editor`), which renders the document itself and binds to the soft keyboard, -/// hardware keyboard and IME. Ports without that contract use an editable `BrowserComponent` fallback. -/// A platform port may transparently replace either with a fully native editing widget; see +/// By default the editor is implemented as a `contenteditable` surface hosted inside the platform's +/// native web widget (`BrowserComponent`), which makes it 100% cross platform and gives correct +/// keyboard, selection and IME behavior on every device for free. A platform port may transparently +/// replace this with a fully native editing widget; see /// `com.codename1.impl.CodenameOneImplementation#createNativeEditorPeer(Object, String)`. /// /// #### Basic usage @@ -82,11 +79,6 @@ String getEditorType() { return "richtext"; } - @Override - PureEditor createPureEditor() { - return new RichPureEditor(this, getEditorType()); - } - /// Replaces the entire editor content with the supplied HTML. /// /// #### Parameters @@ -96,26 +88,6 @@ public void setHtml(String html) { command("setHtml", html == null ? "" : html); } - /// Replaces the editor content from any supported rich-text interchange format. - public void setContent(String content, RichTextFormat format) { - setHtml(RichTextImporter.toHtml(content, format)); - } - - /// Replaces the editor content with RTF. - public void setRtf(String rtf) { - setContent(rtf, RichTextFormat.RTF); - } - - /// Replaces the editor content with Markdown. - public void setMarkdown(String markdown) { - setContent(markdown, RichTextFormat.MARKDOWN); - } - - /// Replaces the editor content with AsciiDoc. - public void setAsciiDoc(String asciidoc) { - setContent(asciidoc, RichTextFormat.ASCIIDOC); - } - /// Retrieves the current editor content as an HTML string. The callback is invoked on the EDT. /// /// #### Parameters @@ -144,26 +116,6 @@ public void insertHtml(String html) { command("insertHtml", html); } - /// Inserts content in any supported rich-text interchange format at the current selection. - public void insertContent(String content, RichTextFormat format) { - insertHtml(RichTextImporter.toHtml(content, format)); - } - - /// Inserts RTF at the current selection. - public void insertRtf(String rtf) { - insertContent(rtf, RichTextFormat.RTF); - } - - /// Inserts Markdown at the current selection. - public void insertMarkdown(String markdown) { - insertContent(markdown, RichTextFormat.MARKDOWN); - } - - /// Inserts AsciiDoc at the current selection. - public void insertAsciiDoc(String asciidoc) { - insertContent(asciidoc, RichTextFormat.ASCIIDOC); - } - /// Inserts an image at the current cursor position. /// /// #### Parameters @@ -346,36 +298,56 @@ private static String toCss(int rgb) { @Override String createEditorHtml() { + // A self-contained contenteditable editor. No external resources are required which keeps the + // editor fully functional offline and adds zero footprint to apps that do not use it. return "" + "" + "" + "
"; + + "default:return '';" + + "}}};" + + "fire('ready',null);" + + ""; } } diff --git a/CodenameOne/src/com/codename1/ui/RichTextClipboardData.java b/CodenameOne/src/com/codename1/ui/RichTextClipboardData.java deleted file mode 100644 index b768cb0b39f..00000000000 --- a/CodenameOne/src/com/codename1/ui/RichTextClipboardData.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui; - -/// Clipboard content with both a plain-text fallback and optional rich representations. Platform -/// ports may return this from `Display#getPasteDataFromClipboard()` when the native clipboard exposes -/// multiple MIME types. Applications may also pass it to `Display#copyToClipboard(Object)` for rich -/// round-tripping inside the application. -public final class RichTextClipboardData { - private String plainText; - private String html; - private String rtf; - private String markdown; - private String asciidoc; - - /// Creates clipboard data with a required plain-text fallback. - public RichTextClipboardData(String plainText) { - this.plainText = plainText == null ? "" : plainText; - } - - public String getPlainText() { - return plainText; - } - - public RichTextClipboardData setPlainText(String value) { - plainText = value == null ? "" : value; - return this; - } - - public String getHtml() { - return html; - } - - public RichTextClipboardData setHtml(String value) { - html = value; - return this; - } - - public String getRtf() { - return rtf; - } - - public RichTextClipboardData setRtf(String value) { - rtf = value; - return this; - } - - public String getMarkdown() { - return markdown; - } - - public RichTextClipboardData setMarkdown(String value) { - markdown = value; - return this; - } - - public String getAsciiDoc() { - return asciidoc; - } - - public RichTextClipboardData setAsciiDoc(String value) { - asciidoc = value; - return this; - } - - /// Returns the richest available format, preferring native rich formats over lightweight markup. - public RichTextFormat getPreferredFormat() { - if (html != null && html.length() > 0) { - return RichTextFormat.HTML; - } - if (rtf != null && rtf.length() > 0) { - return RichTextFormat.RTF; - } - if (markdown != null && markdown.length() > 0) { - return RichTextFormat.MARKDOWN; - } - if (asciidoc != null && asciidoc.length() > 0) { - return RichTextFormat.ASCIIDOC; - } - return RichTextFormat.PLAIN_TEXT; - } - - /// Returns the content for the requested format. - public String getContent(RichTextFormat format) { - if (format == RichTextFormat.HTML) { - return html; - } - if (format == RichTextFormat.RTF) { - return rtf; - } - if (format == RichTextFormat.MARKDOWN) { - return markdown; - } - if (format == RichTextFormat.ASCIIDOC) { - return asciidoc; - } - return plainText; - } - - @Override - public String toString() { - return plainText; - } -} diff --git a/CodenameOne/src/com/codename1/ui/RichTextFormat.java b/CodenameOne/src/com/codename1/ui/RichTextFormat.java deleted file mode 100644 index 638494cc155..00000000000 --- a/CodenameOne/src/com/codename1/ui/RichTextFormat.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui; - -/// Input formats understood by `RichTextArea`. -public enum RichTextFormat { - /// HTML fragments. - HTML, - /// Rich Text Format documents or fragments. - RTF, - /// Common Markdown syntax. - MARKDOWN, - /// Common AsciiDoc syntax. - ASCIIDOC, - /// Unformatted text. - PLAIN_TEXT -} diff --git a/CodenameOne/src/com/codename1/ui/TextArea.java b/CodenameOne/src/com/codename1/ui/TextArea.java index dfc5703a8ee..261d3773f75 100644 --- a/CodenameOne/src/com/codename1/ui/TextArea.java +++ b/CodenameOne/src/com/codename1/ui/TextArea.java @@ -33,9 +33,6 @@ import com.codename1.ui.events.ActionListener; import com.codename1.ui.events.ActionSource; import com.codename1.ui.events.DataChangedListener; -import com.codename1.ui.editor.EditorDocument; -import com.codename1.ui.editor.EditorHost; -import com.codename1.ui.editor.EditorView; import com.codename1.ui.geom.Dimension; import com.codename1.ui.geom.Rectangle; import com.codename1.ui.plaf.LookAndFeel; @@ -213,8 +210,7 @@ public class TextArea extends Component implements ActionSource, TextHolder { public void actionPerformed(ActionEvent evt) { Form f = getComponentForm(); if (f != null) { - if (isEditing() && f.getComponentAt(evt.getX(), evt.getY()) != TextArea.this //NOPMD CompareObjectsWithEquals - && !isLightweightEditorAt(evt.getX(), evt.getY())) { + if (isEditing() && f.getComponentAt(evt.getX(), evt.getY()) != TextArea.this) { //NOPMD CompareObjectsWithEquals fireActionEvent(); setSuppressActionEvent(true); } @@ -224,10 +220,6 @@ public void actionPerformed(ActionEvent evt) { private boolean textSelectionEnabled; private TextSelection.Spans span; private TextSelection.TextSelectionSupport textSelectionSupport; - private boolean lightweightEditingEnabled; - private LightweightTextAreaEditor lightweightEditor; - private Container lightweightEditorLayer; - private boolean stoppingLightweightEditor; /// Creates an area with the given rows and columns /// @@ -574,25 +566,6 @@ public void setWidth(int width) { } } super.setWidth(width); - syncLightweightEditorBounds(); - } - - @Override - public void setX(int x) { - super.setX(x); - syncLightweightEditorBounds(); - } - - @Override - public void setY(int y) { - super.setY(y); - syncLightweightEditorBounds(); - } - - @Override - public void setHeight(int height) { - super.setHeight(height); - syncLightweightEditorBounds(); } /// Returns the text in the text area @@ -751,39 +724,9 @@ public boolean isEditable() { /// - `b`: true is text are is editable; otherwise false public void setEditable(boolean b) { editable = b; - if (!b && lightweightEditor != null) { - stopLightweightEditing(null, true); - } updateCursor(); } - /// Enables the pure Codename One editing surface for this text component. This mode uses the - /// framework's `TextInputClient` bridge for virtual-keyboard and IME input while keeping selection, - /// caret movement, scrolling, clipboard operations, and painting in lightweight code. It is disabled - /// by default so existing applications retain their native editor behavior. - /// - /// Password fields and ports without the low-level text-input bridge continue to use the native - /// editor, even when this option is enabled. - /// - /// #### Parameters - /// - /// - `enabled`: true to prefer lightweight editing for this component - public void setLightweightEditingEnabled(boolean enabled) { - if (lightweightEditingEnabled == enabled) { - return; - } - lightweightEditingEnabled = enabled; - if (!enabled && lightweightEditor != null) { - stopLightweightEditing(null, true); - } - } - - /// Returns whether this component prefers the pure Codename One editor instead of a native editor. - /// The default is false. - public boolean isLightweightEditingEnabled() { - return lightweightEditingEnabled; - } - @Override public int getPreferredTabIndex() { if (isEditable()) { @@ -882,11 +825,6 @@ public void keyReleased(int keyCode) { return; } if (action == 0 && isTypedKey(keyCode)) { - if (lightweightEditingEnabled && Display.impl.isTextInputSupported() - && startLightweightEditing() && lightweightEditor != null) { - lightweightEditor.insertText(String.valueOf((char) keyCode)); - return; - } //registerAsInputDevice(); Display.getInstance().editString(this, getMaxSize(), getConstraint(), getText(), keyCode); } @@ -902,11 +840,7 @@ public boolean isScrollableY() { @Override void deinitializeImpl() { super.deinitializeImpl(); - if (lightweightEditor != null) { - stopLightweightEditing(null, false); - } else { - Display.getInstance().stopEditing(this); - } + Display.getInstance().stopEditing(this); } void onClick() { @@ -916,9 +850,6 @@ void onClick() { } void editString() { - if (startLightweightEditing()) { - return; - } if (autoDegradeMaxSize && (!hadSuccessfulEdit) && (maxSize > 1024)) { try { //registerAsInputDevice(); @@ -983,177 +914,6 @@ public void pointerReleased(int x, int y) { } - private boolean startLightweightEditing() { - if (!lightweightEditingEnabled || lightweightEditor != null || !isEditable() - || (constraint & PASSWORD) != 0 || !Display.impl.isTextInputSupported()) { - return lightweightEditor != null; - } - final Form form = getComponentForm(); - if (form == null) { - return false; - } - if (Display.getInstance().isTextEditing(this)) { - Display.getInstance().stopEditing(this); - } - final EditorHost host = new EditorHost() { - @Override - public boolean isTextInputSupported() { - return Display.impl.isTextInputSupported(); - } - - @Override - public Object startTextInput(TextInputClient client, TextInputConfig config) { - return Display.impl.startTextInput(client, config); - } - - @Override - public void updateTextInputState(Object handle, TextInputState state) { - Display.impl.updateTextInputState(handle, state); - } - - @Override - public void stopTextInput(Object handle) { - Display.impl.stopTextInput(handle); - } - - @Override - public void editorChanged() { - if (lightweightEditor != null) { - TextArea.this.setText(lightweightEditor.getText()); - } - } - - @Override - public void fireEditorEvent(String type, String value) { - } - }; - LightweightTextAreaEditor editor = new LightweightTextAreaEditor(host); - lightweightEditor = editor; - editor.setText(text); - editor.setSelectionRange(text.length(), text.length()); - editor.setUIID(getUIID()); - Style style = getSelectedStyle(); - editor.setBackgroundColor(style.getBgColor()); - editor.setTextColor(style.getFgColor()); - editor.setSelectionColor(0xb3d4fc); - lightweightEditorLayer = form.getFormLayeredPane(LightweightTextAreaEditor.class, true); - lightweightEditorLayer.add(editor); - syncLightweightEditorBounds(); - setSuppressActionEvent(false); - editor.requestFocus(); - repaint(); - return true; - } - - private void syncLightweightEditorBounds() { - if (lightweightEditor == null || lightweightEditorLayer == null || getParent() == null) { - return; - } - lightweightEditor.setX(getAbsoluteX() - lightweightEditorLayer.getAbsoluteX()); - lightweightEditor.setY(getAbsoluteY() - lightweightEditorLayer.getAbsoluteY()); - lightweightEditor.setWidth(getWidth()); - lightweightEditor.setHeight(getHeight()); - } - - private boolean isLightweightEditorAt(int x, int y) { - return lightweightEditor != null && lightweightEditor.contains(x, y); - } - - private void stopLightweightEditing(final Runnable onFinish, boolean fireEvent) { - if (lightweightEditor == null || stoppingLightweightEditor) { - if (onFinish != null) { - onFinish.run(); - } - return; - } - stoppingLightweightEditor = true; - LightweightTextAreaEditor editor = lightweightEditor; - setText(editor.getText()); - lightweightEditor = null; - lightweightEditorLayer = null; - editor.remove(); - stoppingLightweightEditor = false; - if (fireEvent) { - fireActionEvent(); - } - repaint(); - if (onFinish != null) { - onFinish.run(); - } - } - - private final class LightweightTextAreaEditor extends EditorView { - LightweightTextAreaEditor(EditorHost host) { - super(host, false); - } - - @Override - protected void replaceRange(int start, int end, String value, boolean record) { - String filtered = EditorDocument.normalizeText(value == null ? "" : value); - if (isSingleLineTextArea()) { - filtered = filtered.replace('\n', ' '); - } - int lower = Math.max(0, Math.min(getTextLength(), Math.min(start, end))); - int upper = Math.max(0, Math.min(getTextLength(), Math.max(start, end))); - int selected = upper - lower; - int room = Math.max(0, getMaxSize() - (getTextLength() - selected)); - if (filtered.length() > room) { - filtered = filtered.substring(0, room); - if (filtered.length() > 0 && Character.isHighSurrogate(filtered.charAt(filtered.length() - 1))) { - filtered = filtered.substring(0, filtered.length() - 1); - } - } - if ((getConstraint() & UPPERCASE) != 0) { - filtered = filtered.toUpperCase(); - } - super.replaceRange(start, end, filtered, record); - } - - @Override - public TextInputConfig getConfig() { - TextInputConfig config = super.getConfig(); - config.setConstraint(getConstraint()); - config.setMultiline(!isSingleLineTextArea()); - config.setAutoCorrect((getConstraint() & (NON_PREDICTIVE | SENSITIVE)) == 0); - config.setAutoCapitalize((getConstraint() & (INITIAL_CAPS_SENTENCE | INITIAL_CAPS_WORD)) != 0); - if (isSingleLineTextArea()) { - config.setActionType(TextInputConfig.ACTION_DONE); - } - return config; - } - - @Override - public void onEditorAction(int action) { - if (isSingleLineTextArea()) { - stopLightweightEditing(null, true); - } else { - super.onEditorAction(action); - } - } - - @Override - protected void focusLost() { - super.focusLost(); - if (!stoppingLightweightEditor && lightweightEditor == this) { //NOPMD CompareObjectsWithEquals - Display.getInstance().callSerially(new Runnable() { - @Override - public void run() { - if (lightweightEditor == LightweightTextAreaEditor.this //NOPMD CompareObjectsWithEquals - && !LightweightTextAreaEditor.this.hasFocus()) { - stopLightweightEditing(null, true); - } - } - }); - } - } - - @Override - public boolean animate() { - syncLightweightEditorBounds(); - return super.animate(); - } - } - /// {@inheritDoc} @Override void focusGainedInternal() { @@ -2317,9 +2077,6 @@ public void registerAsInputDevice() { /// Launches the text field editing, notice that calling this in a callSerially is generally considered good practice public void startEditing() { - if (startLightweightEditing()) { - return; - } if (!Display.getInstance().isTextEditing(this)) { //registerAsInputDevice(); Display.getInstance().editString(this, maxSize, constraint, text); @@ -2329,16 +2086,6 @@ public void startEditing() { /// Launches the text field editing in a callserially call @Override public void startEditingAsync() { - if (lightweightEditingEnabled && Display.impl.isTextInputSupported() - && (constraint & PASSWORD) == 0 && getComponentForm() != null) { - Display.getInstance().callSerially(new Runnable() { - @Override - public void run() { - startLightweightEditing(); - } - }); - return; - } if (!Display.getInstance().isTextEditing(this)) { if (Display.impl.usesInvokeAndBlockForEditString()) { // Implementations that use invokeAndBlock for edit string @@ -2380,14 +2127,12 @@ public void run() { /// true if Display.getInstance().isTextEditing(this) @Override public boolean isEditing() { - return lightweightEditor != null || Display.getInstance().isTextEditing(this); + return Display.getInstance().isTextEditing(this); } /// Stops text editing of this field if it is being edited public void stopEditing() { - if (lightweightEditor != null) { - stopLightweightEditing(null, true); - } else if (isEditing()) { + if (isEditing()) { Display.getInstance().stopEditing(this); } } @@ -2399,9 +2144,7 @@ public void stopEditing() { /// - `onFinish`: invoked when editing stopped @Override public void stopEditing(Runnable onFinish) { - if (lightweightEditor != null) { - stopLightweightEditing(onFinish, true); - } else if (isEditing()) { + if (isEditing()) { Display.getInstance().stopEditing(this, onFinish); } else { if (onFinish != null) { diff --git a/CodenameOne/src/com/codename1/ui/TextInputClient.java b/CodenameOne/src/com/codename1/ui/TextInputClient.java deleted file mode 100644 index 86cbe2f07ec..00000000000 --- a/CodenameOne/src/com/codename1/ui/TextInputClient.java +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui; - -/// A low level text input client, the counterpart to a platform text input source (soft keyboard, IME, -/// autocorrect and hardware keyboard). A component that wants to own text editing itself - rendering -/// text with its own `Graphics` code instead of a native text widget - implements this interface and -/// binds it through `com.codename1.impl.CodenameOneImplementation#startTextInput`. From then on the -/// platform routes committed text, IME composition (marked text), deletions and key commands directly -/// into the client, and the client answers back with the surrounding text and caret geometry the -/// platform needs to place candidate windows, the selection loupe and predictions. -/// -/// This is the same pattern high end custom editors use (a hidden input surface driving a -/// custom rendered document). Codename One's pure `RichTextArea` / `CodeEditor` are the primary -/// consumers, but the API is deliberately general so any component can capture raw text input. -/// -/// All offsets exchanged with the platform are UTF-16 character indices. All callbacks are delivered on -/// the EDT. -public interface TextInputClient { - /// Key command: move / extend to the left. - int KEY_LEFT = 1; - /// Key command: move / extend to the right. - int KEY_RIGHT = 2; - /// Key command: move / extend up a line. - int KEY_UP = 3; - /// Key command: move / extend down a line. - int KEY_DOWN = 4; - /// Key command: move / extend to the start of the line. - int KEY_HOME = 5; - /// Key command: move / extend to the end of the line. - int KEY_END = 6; - /// Key command: page up. - int KEY_PAGE_UP = 7; - /// Key command: page down. - int KEY_PAGE_DOWN = 8; - /// Key command: delete backward (backspace) when not expressed as a surrounding text deletion. - int KEY_BACKSPACE = 9; - /// Key command: delete forward. - int KEY_DELETE = 10; - /// Key command: dismiss / cancel (escape). - int KEY_ESCAPE = 11; - /// Key command: copy the selection. - int KEY_COPY = 12; - /// Key command: cut the selection. - int KEY_CUT = 13; - /// Key command: paste the clipboard. - int KEY_PASTE = 14; - /// Key command: select all. - int KEY_SELECT_ALL = 15; - /// Key command: undo. - int KEY_UNDO = 16; - /// Key command: redo. - int KEY_REDO = 17; - - /// Modifier bit: shift held (used to extend a selection). - int MOD_SHIFT = 1; - /// Modifier bit: control or command held. - int MOD_CTRL = 2; - /// Modifier bit: alt / option held. - int MOD_ALT = 4; - - /// Commits final text at the caret, replacing the active selection. This is the normal path for a - /// typed character, an accepted autocorrect suggestion, dictation and paste. - /// - /// #### Parameters - /// - /// - `text`: the committed text - void commitText(String text); - - /// Updates the in progress IME composition (marked text) at the caret. The composing text is not yet - /// final and is typically rendered underlined; it is replaced on the next `#setComposingText` and - /// finalized by `#finishComposing`. - /// - /// #### Parameters - /// - /// - `text`: the current marked text - /// - /// - `relativeCaret`: caret position relative to the marked text (platform convention) - void setComposingText(String text, int relativeCaret); - - /// Finalizes any active IME composition, committing the current marked text. - void finishComposing(); - - /// Deletes text around the caret, the primary deletion path used by soft keyboards. - /// - /// #### Parameters - /// - /// - `before`: number of UTF-16 units to delete before the caret - /// - /// - `after`: number of UTF-16 units to delete after the caret - void deleteSurroundingText(int before, int after); - - /// Delivers a non text key command (navigation, deletion, clipboard, undo). Text producing keys are - /// delivered through `#commitText` instead. - /// - /// #### Parameters - /// - /// - `command`: one of the `KEY_*` constants - /// - /// - `modifiers`: a bit mask of the `MOD_*` constants - void onKeyCommand(int command, int modifiers); - - /// Delivers the keyboard return key action (done / next / search / send) configured through - /// `TextInputConfig`. - /// - /// #### Parameters - /// - /// - `action`: one of the `TextInputConfig` `ACTION_*` constants - void onEditorAction(int action); - - /// Returns the current editing state (surrounding text, selection and composition) so the platform - /// can seed autocorrect and prediction. May return a window around the caret for very large - /// documents. - TextInputState getEditingState(); - - /// Returns the caret rectangle in absolute screen pixels `{x, y, width, height}`, used by the - /// platform to anchor the IME candidate window and the selection loupe near the rendered caret. - int[] getCaretRect(); - - /// Returns the configuration describing the desired keyboard type and input behavior. - TextInputConfig getConfig(); - - /// Notifies the client that it gained the platform input focus (became first responder). - void inputFocusGained(); - - /// Notifies the client that it lost the platform input focus. - void inputFocusLost(); - - // ---- geometry + direct editing, used by richer platform input protocols (iOS UITextInput) to draw - // the selection loupe / handles and to drive edits by range ---- - - /// Returns the total number of UTF-16 characters in the document. - int getTextLength(); - - /// Returns the text in `[start, end)`. - String getTextRange(int start, int end); - - /// Returns the caret rectangle for an arbitrary offset in absolute screen pixels `{x, y, w, h}`. - int[] rectForOffset(int offset); - - /// Returns the document offset nearest an absolute screen point (pixels). - int offsetAtPoint(int x, int y); - - /// Returns the selection rectangles covering `[start, end)` as a flat array of absolute-pixel - /// rectangles `{x, y, w, h, x, y, w, h, ...}` (one entry per visual line the range spans). - int[] selectionRects(int start, int end); - - /// Replaces the range `[start, end)` with `text` (a direct, range based edit from the platform). - void replaceRange(int start, int end, String text); - - /// Sets the selection to `[start, end)` (a caret when equal). - void setSelectionRange(int start, int end); -} diff --git a/CodenameOne/src/com/codename1/ui/TextInputConfig.java b/CodenameOne/src/com/codename1/ui/TextInputConfig.java deleted file mode 100644 index f243c71755d..00000000000 --- a/CodenameOne/src/com/codename1/ui/TextInputConfig.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui; - -/// Immutable configuration handed to the platform when a `TextInputClient` binds to the low level text -/// input source (see `com.codename1.impl.CodenameOneImplementation#startTextInput`). It tells the -/// platform which soft keyboard flavor to present and how aggressive autocorrect / autocapitalization -/// should be. A source editor typically disables autocorrect and autocapitalization so it does not -/// mangle code, whereas a prose editor leaves them on. -/// -/// The constraint constants mirror the `TextArea` constraint bits so the same keyboard mapping the -/// framework already uses for native fields applies here. -public final class TextInputConfig { - /// The action label shown on the keyboard's return key: a plain newline / carriage return. - public static final int ACTION_DEFAULT = 0; - - /// The action label shown on the keyboard's return key: a "done" affordance that finishes editing. - public static final int ACTION_DONE = 1; - - /// The action label shown on the keyboard's return key: a "next" affordance moving to the next field. - public static final int ACTION_NEXT = 2; - - /// The action label shown on the keyboard's return key: a "search" affordance. - public static final int ACTION_SEARCH = 3; - - /// The action label shown on the keyboard's return key: a "send" affordance. - public static final int ACTION_SEND = 4; - - private int constraint = TextArea.ANY; - private boolean autoCorrect = true; - private boolean autoCapitalize = true; - private boolean multiline = true; - private int actionType = ACTION_DEFAULT; - - /// Returns the `TextArea` style constraint bits describing the keyboard type. - public int getConstraint() { - return constraint; - } - - /// Sets the `TextArea` style constraint bits describing the keyboard type. - /// - /// #### Parameters - /// - /// - `constraint`: one of the `TextArea` constraint constants - /// - /// Returns this instance for chaining. - public TextInputConfig setConstraint(int constraint) { - this.constraint = constraint; - return this; - } - - /// True when the platform should apply autocorrect / predictive text. - public boolean isAutoCorrect() { - return autoCorrect; - } - - /// Enables or disables platform autocorrect / predictive text. Disable this for source code. - /// - /// Returns this instance for chaining. - public TextInputConfig setAutoCorrect(boolean autoCorrect) { - this.autoCorrect = autoCorrect; - return this; - } - - /// True when the platform should auto capitalize. - public boolean isAutoCapitalize() { - return autoCapitalize; - } - - /// Enables or disables platform auto capitalization. Disable this for source code. - /// - /// Returns this instance for chaining. - public TextInputConfig setAutoCapitalize(boolean autoCapitalize) { - this.autoCapitalize = autoCapitalize; - return this; - } - - /// True when the editor accepts multiple lines (the return key inserts a newline). - public boolean isMultiline() { - return multiline; - } - - /// Sets whether the editor accepts multiple lines. - /// - /// Returns this instance for chaining. - public TextInputConfig setMultiline(boolean multiline) { - this.multiline = multiline; - return this; - } - - /// Returns the return key action type, one of the `ACTION_*` constants. - public int getActionType() { - return actionType; - } - - /// Sets the return key action type, one of the `ACTION_*` constants. - /// - /// Returns this instance for chaining. - public TextInputConfig setActionType(int actionType) { - this.actionType = actionType; - return this; - } -} diff --git a/CodenameOne/src/com/codename1/ui/TextInputState.java b/CodenameOne/src/com/codename1/ui/TextInputState.java deleted file mode 100644 index 04274495955..00000000000 --- a/CodenameOne/src/com/codename1/ui/TextInputState.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui; - -/// An immutable snapshot of the editing state shared between a `TextInputClient` and the platform text -/// input source. It carries the surrounding text the platform needs for autocorrect / prediction, the -/// current selection, and the in progress IME composition (marked text) range if any. -/// -/// All offsets are UTF-16 character indices into `text`, matching Java `String` indices as well as the -/// `NSString` / Android `Editable` indices used by the native input machinery. A collapsed selection -/// (`selectionStart == selectionEnd`) represents a plain caret. A composing range of `-1, -1` means no -/// IME composition is active. -public final class TextInputState { - private final String text; - private final int selectionStart; - private final int selectionEnd; - private final int composingStart; - private final int composingEnd; - - /// Creates a state snapshot without an active composition. - /// - /// #### Parameters - /// - /// - `text`: the surrounding text (may be a window around the caret for very large documents) - /// - /// - `selectionStart`: UTF-16 offset of the selection anchor - /// - /// - `selectionEnd`: UTF-16 offset of the selection focus - public TextInputState(String text, int selectionStart, int selectionEnd) { - this(text, selectionStart, selectionEnd, -1, -1); - } - - /// Creates a state snapshot including an IME composition range. - /// - /// #### Parameters - /// - /// - `text`: the surrounding text - /// - /// - `selectionStart`: UTF-16 offset of the selection anchor - /// - /// - `selectionEnd`: UTF-16 offset of the selection focus - /// - /// - `composingStart`: UTF-16 offset where the marked text begins, or -1 when none - /// - /// - `composingEnd`: UTF-16 offset where the marked text ends, or -1 when none - public TextInputState(String text, int selectionStart, int selectionEnd, int composingStart, int composingEnd) { - this.text = text == null ? "" : text; - this.selectionStart = selectionStart; - this.selectionEnd = selectionEnd; - this.composingStart = composingStart; - this.composingEnd = composingEnd; - } - - /// Returns the surrounding text. - public String getText() { - return text; - } - - /// Returns the UTF-16 offset of the selection anchor. - public int getSelectionStart() { - return selectionStart; - } - - /// Returns the UTF-16 offset of the selection focus. - public int getSelectionEnd() { - return selectionEnd; - } - - /// Returns the UTF-16 offset where the IME marked text begins, or -1 when no composition is active. - public int getComposingStart() { - return composingStart; - } - - /// Returns the UTF-16 offset where the IME marked text ends, or -1 when no composition is active. - public int getComposingEnd() { - return composingEnd; - } - - /// True when the selection is collapsed to a caret. - public boolean isCaret() { - return selectionStart == selectionEnd; - } - - /// True when an IME composition (marked text) is currently active. - public boolean isComposing() { - return composingStart >= 0 && composingEnd >= 0; - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/BidiUtil.java b/CodenameOne/src/com/codename1/ui/editor/BidiUtil.java deleted file mode 100644 index 7fe178742f2..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/BidiUtil.java +++ /dev/null @@ -1,346 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -/// A compact implementation of the core Unicode Bidirectional Algorithm (UAX #9) used by the pure text -/// editor to lay out, hit test and render a single line of mixed left-to-right / right-to-left text. -/// -/// The editor renders each directional run as a substring so the platform font engine performs the actual -/// glyph shaping (Arabic joining, ligatures); this class only resolves the *embedding levels* of the -/// characters on a line and the *visual order* those characters appear in. That division keeps the editor -/// correct on every platform while remaining self contained and unit testable with no UI dependency. -/// -/// A single paragraph line is assumed (no explicit embedding/override controls beyond the paragraph base -/// direction, and no line wrapping inside the algorithm). This covers the editor's model where each -/// document line is one paragraph. The implementation follows the resolution phases of UAX #9: character -/// typing, the weak type rules W1-W7, the neutral rules N1-N2, the implicit level rules I1-I2 and the -/// reordering rule L2. -final class BidiUtil { - // Bidirectional character types (a subset of UAX #9 sufficient for the editor). - static final byte L = 0; // Left-to-Right (strong) - static final byte R = 1; // Right-to-Left (strong) - static final byte AL = 2; // Right-to-Left Arabic (strong) - static final byte EN = 3; // European Number - static final byte ES = 4; // European Number Separator - static final byte ET = 5; // European Number Terminator - static final byte AN = 6; // Arabic Number - static final byte CS = 7; // Common Number Separator - static final byte NSM = 8; // Nonspacing Mark - static final byte BN = 9; // Boundary Neutral - static final byte ON = 10; // Other Neutral - static final byte WS = 11; // Whitespace - - private BidiUtil() { - } - - /// Returns the bidirectional character type of a single UTF-16 code unit. Uses coarse Unicode ranges - /// that cover the scripts an editor realistically handles (Latin, Arabic, Hebrew, Syriac, Thaana, - /// common digits, punctuation and whitespace). - static byte typeOf(char c) { - if (c == '\t' || c == ' ' || c == 0x00A0 || c == 0x2007 || c == 0x202F) { - return WS; - } - if (c == '\n' || c == '\r' || c == 0x0085 || c == 0x2028 || c == 0x2029) { - return WS; - } - // European digits - if (c >= '0' && c <= '9') { - return EN; - } - // Arabic-Indic and Extended Arabic-Indic digits - if ((c >= 0x0660 && c <= 0x0669) || (c >= 0x06F0 && c <= 0x06F9)) { - return AN; - } - if (c == '+' || c == '-') { - return ES; - } - if (c == '#' || c == '$' || c == '%' || c == 0x00A2 || c == 0x00A3 || c == 0x00A5 - || c == 0x00B0 || c == 0x00B1 || c == 0x066A) { - return ET; - } - if (c == ',' || c == '.' || c == ':' || c == '/') { - return CS; - } - // Combining marks - if ((c >= 0x0300 && c <= 0x036F) || (c >= 0x0483 && c <= 0x0489) - || (c >= 0x0591 && c <= 0x05BD) || (c >= 0x0610 && c <= 0x061A) - || (c >= 0x064B && c <= 0x065F) || c == 0x0670 - || (c >= 0x06D6 && c <= 0x06DC) || (c >= 0x06DF && c <= 0x06E4)) { - return NSM; - } - // Hebrew and Hebrew presentation forms (strong R) - if ((c >= 0x0590 && c <= 0x05FF) || (c >= 0xFB1D && c <= 0xFB4F)) { - return R; - } - // Arabic, Arabic Supplement/Extended, Syriac, Thaana, and Arabic presentation forms (strong AL) - if ((c >= 0x0600 && c <= 0x06FF) || (c >= 0x0700 && c <= 0x074F) - || (c >= 0x0750 && c <= 0x077F) || (c >= 0x0780 && c <= 0x07BF) - || (c >= 0x08A0 && c <= 0x08FF) - || (c >= 0xFB50 && c <= 0xFDFF) || (c >= 0xFE70 && c <= 0xFEFF)) { - return AL; - } - // Latin letters and the vast majority of the BMP letters an editor sees are strong L. - if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) { - return L; - } - if (c >= 0x00C0 && c <= 0x024F) { - return L; - } - // CJK, Kana, Hangul and the like are strong L for bidi purposes. - if (c >= 0x2E80 && c <= 0xD7FF) { - return L; - } - if (c >= 0xF900 && c <= 0xFAFF) { - return L; - } - // Everything else (ASCII punctuation, symbols) is a neutral. - return ON; - } - - /// Returns true if the paragraph's automatically detected base direction is right-to-left, per rules - /// P2/P3: the direction of the first strong (L, R or AL) character, defaulting to left-to-right. - static boolean autoBaseRtl(String text) { - for (int i = 0; i < text.length(); i++) { - byte t = typeOf(text.charAt(i)); - if (t == L) { - return false; - } - if (t == R || t == AL) { - return true; - } - } - return false; - } - - /// Resolves the bidi embedding level of every character on a line. `baseRtl` is the paragraph base - /// direction (embedding level 1 when true, 0 when false). - /// - /// #### Parameters - /// - /// - `text`: the line text (a single paragraph, no line breaks) - /// - /// - `baseRtl`: true for a right-to-left base direction - /// - /// #### Returns - /// - /// a `byte[]` the same length as `text`, holding the resolved level of each character - static byte[] resolveLevels(String text, boolean baseRtl) { - int n = text.length(); - byte baseLevel = (byte) (baseRtl ? 1 : 0); - byte[] levels = new byte[n]; - if (n == 0) { - return levels; - } - byte[] types = new byte[n]; - for (int i = 0; i < n; i++) { - types[i] = typeOf(text.charAt(i)); - } - // W1: NSM takes the type of the previous character, or the base type (treated as ON) at the start. - for (int i = 0; i < n; i++) { - if (types[i] == NSM) { - types[i] = (i == 0) ? ON : types[i - 1]; - } - } - // W2: EN becomes AN if the previous strong type is AL. - byte prevStrong = baseRtl ? R : L; - for (int i = 0; i < n; i++) { - byte t = types[i]; - if (t == L || t == R || t == AL) { - prevStrong = t; - } else if (t == EN && prevStrong == AL) { - types[i] = AN; - } - } - // W3: AL becomes R. - for (int i = 0; i < n; i++) { - if (types[i] == AL) { - types[i] = R; - } - } - // W4: a single ES between two EN becomes EN; a single CS between two numbers of the same type - // becomes that type. - for (int i = 1; i < n - 1; i++) { - if (types[i] == ES && types[i - 1] == EN && types[i + 1] == EN) { - types[i] = EN; - } else if (types[i] == CS && types[i - 1] == types[i + 1] - && (types[i - 1] == EN || types[i - 1] == AN)) { - types[i] = types[i - 1]; - } - } - // W5: a sequence of ET adjacent to EN becomes EN. - for (int i = 0; i < n; i++) { - if (types[i] == ET) { - int start = i; - while (i < n && types[i] == ET) { - i++; - } - boolean en = (start > 0 && types[start - 1] == EN) || (i < n && types[i] == EN); - if (en) { - for (int j = start; j < i; j++) { - types[j] = EN; - } - } - i--; - } - } - // W6: remaining ES, ET, CS become ON. - for (int i = 0; i < n; i++) { - if (types[i] == ES || types[i] == ET || types[i] == CS) { - types[i] = ON; - } - } - // W7: EN becomes L if the previous strong type is L. - prevStrong = baseRtl ? R : L; - for (int i = 0; i < n; i++) { - byte t = types[i]; - if (t == L || t == R) { - prevStrong = t; - } else if (t == EN && prevStrong == L) { - types[i] = L; - } - } - // N1/N2: resolve neutrals. A neutral run between two strongs of the same direction takes that - // direction (numbers count as R); otherwise it takes the base direction. Whitespace and boundary - // neutrals are treated as neutrals here. - byte baseDir = baseRtl ? R : L; - for (int i = 0; i < n; i++) { - if (isNeutral(types[i])) { - int start = i; - while (i < n && isNeutral(types[i])) { - i++; - } - byte before = start == 0 ? baseDir : dirOf(types[start - 1]); - byte after = i >= n ? baseDir : dirOf(types[i]); - byte resolved = (before == after) ? before : baseDir; - for (int j = start; j < i; j++) { - types[j] = resolved; - } - i--; - } - } - // I1/I2: implicit levels. - for (int i = 0; i < n; i++) { - byte t = types[i]; - if (baseLevel % 2 == 0) { - // even (LTR) embedding level - if (t == R) { - levels[i] = (byte) (baseLevel + 1); - } else if (t == AN || t == EN) { - levels[i] = (byte) (baseLevel + 2); - } else { - levels[i] = baseLevel; - } - } else { - // odd (RTL) embedding level - if (t == L || t == EN || t == AN) { - levels[i] = (byte) (baseLevel + 1); - } else { - levels[i] = baseLevel; - } - } - } - return levels; - } - - private static boolean isNeutral(byte t) { - return t == ON || t == WS || t == BN; - } - - // Maps a resolved type to its directional class for neutral resolution (numbers behave as R). - private static byte dirOf(byte t) { - if (t == L) { - return L; - } - return R; - } - - /// Applies reordering rule L2 to produce the visual order of the characters. Returns an array - /// `visualToLogical` where element `v` is the logical index of the character drawn at visual position - /// `v` (left to right on screen). - static int[] reorderVisual(byte[] levels) { - int n = levels.length; - int[] order = new int[n]; - for (int i = 0; i < n; i++) { - order[i] = i; - } - if (n == 0) { - return order; - } - byte highest = 0; - byte lowestOdd = Byte.MAX_VALUE; - for (int i = 0; i < n; i++) { - byte lv = levels[i]; - if (lv > highest) { - highest = lv; - } - if ((lv & 1) != 0 && lv < lowestOdd) { - lowestOdd = lv; - } - } - if (lowestOdd == Byte.MAX_VALUE) { - // all even levels: already in logical == visual order - return order; - } - for (int level = highest; level >= lowestOdd; level--) { - int i = 0; - while (i < n) { - if (levels[order[i]] >= level) { - int start = i; - while (i < n && levels[order[i]] >= level) { - i++; - } - reverse(order, start, i - 1); - } else { - i++; - } - } - } - return order; - } - - private static void reverse(int[] a, int from, int to) { - while (from < to) { - int t = a[from]; - a[from] = a[to]; - a[to] = t; - from++; - to--; - } - } - - /// True if the line, laid out with the given base direction, is purely left-to-right (no reordering - /// needed). This lets the editor keep its fast LTR path for the common case. - static boolean isTrivialLtr(String text, boolean baseRtl) { - if (baseRtl) { - return text.length() == 0; - } - for (int i = 0; i < text.length(); i++) { - byte t = typeOf(text.charAt(i)); - if (t == R || t == AL || t == AN) { - return false; - } - } - return true; - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/CodePureEditor.java b/CodenameOne/src/com/codename1/ui/editor/CodePureEditor.java deleted file mode 100644 index b390e95f58d..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/CodePureEditor.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import com.codename1.io.JSONParser; -import com.codename1.ui.CodeCompletion; -import com.codename1.ui.CodeDiagnostic; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -/// The pure code editor backend. It maps the code editor command / query vocabulary onto a `CodeView`, -/// parsing the diagnostics and completion payloads that arrive over the string command channel back into -/// `CodeDiagnostic` / `CodeCompletion` objects. -public class CodePureEditor extends PureEditor { - private CodeView codeView; - - /// Creates a code editor backend. - public CodePureEditor(EditorHost host, String editorType) { - super(host, editorType); - codeView = (CodeView) view(); - } - - @Override - protected EditorView createView(EditorHost host, boolean codeMode) { - return new CodeView(host); - } - - @Override - public void cmd(String name, String arg) { - if ("setLanguage".equals(name)) { - codeView.setLanguage(arg); - return; - } - if ("setTheme".equals(name)) { - codeView.setTheme(arg); - return; - } - if ("setLineNumbers".equals(name)) { - codeView.setShowLineNumbers("1".equals(arg)); - return; - } - if ("setTabSize".equals(name)) { - codeView.setTabSize(parseInt(arg, 4)); - return; - } - if ("setCompletionEnabled".equals(name)) { - codeView.setCompletionEnabled("1".equals(arg)); - return; - } - if ("setDiagnostics".equals(name)) { - codeView.setDiagnostics(parseDiagnostics(arg)); - return; - } - if ("showCompletions".equals(name)) { - handleShowCompletions(arg); - return; - } - super.cmd(name, arg); - } - - private void handleShowCompletions(String arg) { - if (arg == null) { - return; - } - int colon = arg.indexOf(':'); - if (colon < 0) { - return; - } - int reqId = parseInt(arg.substring(0, colon), -1); - List items = parseCompletions(arg.substring(colon + 1)); - codeView.showCompletions(reqId, items); - } - - private static List parseArray(String json) { - if (json == null || json.length() == 0) { - return new ArrayList(); - } - try { - Map root = JSONParser.parseJSON(json); - Object list = root.get("root"); - if (list instanceof List) { - return (List) list; - } - } catch (Throwable t) { // NOPMD - malformed input, intentionally ignored - // malformed payload, treat as empty - } - return new ArrayList(); - } - - private List parseDiagnostics(String json) { - List out = new ArrayList(); - List arr = parseArray(json); - for (Object o : arr) { - if (!(o instanceof Map)) { - continue; - } - Map m = (Map) o; - int line = intVal(m.get("l"), 1); - int col = intVal(m.get("c"), 1); - int el = intVal(m.get("el"), line); - int ec = intVal(m.get("ec"), col + 1); - String sev = strVal(m.get("s"), CodeDiagnostic.ERROR); - String msg = strVal(m.get("m"), ""); - out.add(new CodeDiagnostic(line, col, el, ec, msg).setSeverity(sev)); - } - return out; - } - - private List parseCompletions(String json) { - List out = new ArrayList(); - List arr = parseArray(json); - for (Object o : arr) { - if (!(o instanceof Map)) { - continue; - } - Map m = (Map) o; - String disp = strVal(m.get("d"), ""); - String ins = strVal(m.get("i"), disp); - CodeCompletion cc = new CodeCompletion(disp, ins); - cc.setType(strVal(m.get("t"), null)); - cc.setDetail(strVal(m.get("x"), null)); - out.add(cc); - } - return out; - } - - private static int intVal(Object o, int def) { - if (o instanceof Number) { - return ((Number) o).intValue(); - } - if (o instanceof String) { - return parseInt((String) o, def); - } - return def; - } - - private static String strVal(Object o, String def) { - if (o instanceof String) { - return (String) o; - } - return def; - } - - private static int parseInt(String s, int def) { - if (s == null) { - return def; - } - try { - return Integer.parseInt(s.trim()); - } catch (NumberFormatException err) { - return def; - } - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/CodeView.java b/CodenameOne/src/com/codename1/ui/editor/CodeView.java deleted file mode 100644 index 14c651a36c0..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/CodeView.java +++ /dev/null @@ -1,828 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import com.codename1.ui.CodeCompletion; -import com.codename1.ui.CodeDiagnostic; -import com.codename1.ui.Display; -import com.codename1.ui.Font; -import com.codename1.ui.Graphics; -import com.codename1.ui.TextInputConfig; - -import java.util.ArrayList; -import java.util.List; - -/// The pure code editor surface. It adds syntax highlighting (via an incremental `Tokenizer`), a line -/// number gutter, bracket / quote auto close, tab expansion, auto indent, diagnostic squiggles and a -/// code completion popup on top of the shared `EditorView` editing engine. -public class CodeView extends EditorView { - private String languageId = "text"; - private LanguageDef def = LanguageDef.forName("text"); - private Tokenizer tokenizer = new Tokenizer(def); - private ThemePalette palette = ThemePalette.LIGHT; - private boolean showLineNumbers = true; - private int tabSize = 4; - - private int[] endStates; - private int validUpTo; - - private List diagnostics; - - private boolean completionEnabled; - private List completionAll; - private List completionFiltered; - private int completionIndex; - private boolean completionVisible; - private int completionAnchor; - private int completionReqSeq; - private int completionPending = -1; - - /// Creates a code editor view. - public CodeView(EditorHost host) { - super(host, true); - applyTheme(); - } - - // ---- configuration ---- - - /// Sets the highlighting language. - public void setLanguage(String language) { - this.languageId = language == null ? "text" : language; - this.def = LanguageDef.forName(this.languageId); - this.tokenizer = new Tokenizer(def); - validUpTo = 0; - repaint(); - } - - /// Returns the highlighting language id. - public String getLanguage() { - return languageId; - } - - /// Sets the color theme (`"light"` or `"dark"`). - public void setTheme(String theme) { - palette = ThemePalette.forName(theme); - applyTheme(); - repaint(); - } - - private void applyTheme() { - setBackgroundColor(palette.getBackground()); - setTextColor(palette.getForeground()); - setSelectionColor(palette.getSelection()); - } - - /// Shows or hides the line number gutter. - public void setShowLineNumbers(boolean show) { - this.showLineNumbers = show; - repaint(); - } - - /// Sets the number of spaces used for a tab / indentation step. - public void setTabSize(int tabSize) { - this.tabSize = Math.max(1, tabSize); - } - - /// Sets the diagnostics to render. - public void setDiagnostics(List diagnostics) { - this.diagnostics = diagnostics; - repaint(); - } - - /// Enables or disables the completion popup. - public void setCompletionEnabled(boolean enabled) { - this.completionEnabled = enabled; - if (!enabled) { - hideCompletion(); - } - } - - // ---- gutter ---- - - @Override - protected int getContentLeftInset() { - return getStyle().getPaddingLeftNoRTL() + gutterWidth(); - } - - private int gutterWidth() { - if (!showLineNumbers) { - return 0; - } - Font f = getEditorFont(); - int digits = String.valueOf(Math.max(1, getDocument().getLineCount())).length(); - return f.charWidth('0') * digits + f.charWidth('0') * 2; - } - - @Override - protected void paintBeforeContent(Graphics g, int originX, int originY, int firstLine, int lastLine, int lineHeight, Font f) { - if (!showLineNumbers) { - return; - } - g.setColor(palette.getGutterBackground()); - g.fillRect(getX(), getY(), originX - getX(), getHeight()); - int pad = f.charWidth('0'); - for (int ln = firstLine; ln <= lastLine; ln++) { - String num = String.valueOf(ln + 1); - int nx = originX - pad - f.stringWidth(num); - int ny = originY + ln * lineHeight; - int marker = gutterMarkerColor(ln); - if (marker != -1) { - g.setColor(marker); - int dia = Math.max(6, lineHeight / 2); - g.fillArc(getX() + pad / 2, ny + (lineHeight - dia) / 2, dia, dia, 0, 360); - } - g.setColor(palette.getGutterForeground()); - g.drawString(num, nx, ny); - } - } - - private int gutterMarkerColor(int line) { - if (diagnostics == null) { - return -1; - } - int color = -1; - int rank = -1; - for (CodeDiagnostic d : diagnostics) { - if (d == null) { - continue; - } - if (line >= d.getLine() - 1 && line <= d.getEndLine() - 1) { - int r = severityRank(d.getSeverity()); - if (r > rank) { - rank = r; - color = severityColor(d.getSeverity()); - } - } - } - return color; - } - - // ---- syntax coloring ---- - - @Override - protected void paintLine(Graphics g, int line, String text, int x, int y, int lineHeight, Font f) { - if (text.length() == 0) { - return; - } - // Right-to-left / mixed lines need the bidi run renderer (per-token coloring falls back to the - // default foreground on those lines; code keywords are ASCII so this only affects RTL string and - // comment content). - if (!BidiUtil.isTrivialLtr(text, isRTL())) { - super.paintLine(g, line, text, x, y, lineHeight, f); - return; - } - if (def.isPlain()) { - g.setColor(getTextColor()); - g.drawString(text, x, y); - return; - } - ensureStates(line + 1); - int startState = line == 0 ? 0 : endStates[line - 1]; - Tokenizer.TokenLine tl = tokenizer.tokenize(text, startState); - int pos = 0; - int defColor = getTextColor(); - for (int i = 0; i < tl.tokens.size(); i++) { - Tokenizer.Token t = tl.tokens.get(i); - if (t.start > pos) { - drawSegment(g, f, text, pos, t.start, x, y, defColor); - } - drawSegment(g, f, text, t.start, t.start + t.length, x, y, palette.colorForKind(t.kind)); - pos = t.start + t.length; - } - if (pos < text.length()) { - drawSegment(g, f, text, pos, text.length(), x, y, defColor); - } - } - - private void drawSegment(Graphics g, Font f, String text, int a, int b, int x, int y, int color) { - if (b <= a) { - return; - } - int sx = x + f.substringWidth(text, 0, a); - g.setColor(color); - g.drawString(text.substring(a, b), sx, y); - } - - private void ensureStates(int upto) { - int lc = getDocument().getLineCount(); - if (upto > lc) { - upto = lc; - } - if (endStates == null || endStates.length < lc) { - int[] ns = new int[Math.max(lc, 16)]; - if (endStates != null) { - System.arraycopy(endStates, 0, ns, 0, Math.min(endStates.length, ns.length)); - } - endStates = ns; - } - if (validUpTo > lc) { - validUpTo = lc; - } - for (int i = validUpTo; i < upto; i++) { - int st = i == 0 ? 0 : endStates[i - 1]; - endStates[i] = tokenizer.tokenize(getDocument().getLineText(i), st).endState; - } - if (upto > validUpTo) { - validUpTo = upto; - } - } - - @Override - protected void documentEdited(int fromOffset) { - int line = getDocument().lineOfOffset(fromOffset); - if (line < validUpTo) { - validUpTo = line; - } - if (completionVisible) { - refilterCompletion(); - } - } - - // ---- diagnostics ---- - - @Override - protected void paintLineDecorations(Graphics g, int line, String text, int x, int y, int lineHeight, Font f) { - if (diagnostics == null) { - return; - } - for (CodeDiagnostic d : diagnostics) { - if (d == null || line < d.getLine() - 1 || line > d.getEndLine() - 1) { - continue; - } - int cs = line == d.getLine() - 1 ? d.getColumn() - 1 : 0; - int ce = line == d.getEndLine() - 1 ? d.getEndColumn() - 1 : text.length(); - cs = clampI(cs, 0, text.length()); - ce = clampI(ce, 0, text.length()); - if (ce <= cs) { - ce = Math.min(text.length(), cs + 1); - } - int x1 = x + f.substringWidth(text, 0, cs); - int x2 = x + f.substringWidth(text, 0, ce); - if (x2 <= x1) { - x2 = x1 + f.charWidth('m'); - } - drawSquiggle(g, x1, x2, y + lineHeight - 2, severityColor(d.getSeverity())); - } - } - - private void drawSquiggle(Graphics g, int x1, int x2, int y, int color) { - g.setColor(color); - int amp = 2; - boolean up = true; - int x = x1; - while (x < x2) { - int nx = Math.min(x2, x + 3); - g.drawLine(x, up ? y : y - amp, nx, up ? y - amp : y); - up = !up; - x = nx; - } - } - - private int severityRank(String s) { - if (CodeDiagnostic.ERROR.equals(s)) { - return 3; - } - if (CodeDiagnostic.WARNING.equals(s)) { - return 2; - } - return 1; - } - - private int severityColor(String s) { - if (CodeDiagnostic.ERROR.equals(s)) { - return palette.getErrorColor(); - } - if (CodeDiagnostic.WARNING.equals(s)) { - return palette.getWarningColor(); - } - return palette.getInfoColor(); - } - - // ---- typing behavior: auto close, tab, auto indent ---- - - @Override - protected boolean handleTypedText(String text) { - if (!isEditableState()) { - return false; - } - if (completionVisible && ("\n".equals(text) || "\t".equals(text))) { - acceptCompletion(); - return true; - } - if ("\n".equals(text)) { - autoIndentNewline(); - return true; - } - if ("\t".equals(text)) { - insertSpaces(tabSize); - return true; - } - if (text.length() == 1) { - char c = text.charAt(0); - if (c == '(' || c == '[' || c == '{') { - insertPair(c, closeFor(c)); - onTypedChar(c); - return true; - } - if (c == ')' || c == ']' || c == '}') { - if (skipOver(c)) { - return true; - } - replaceRange(getSelectionStart(), getSelectionEnd(), text, true); - onTypedChar(c); - return true; - } - if (c == '"' || c == '\'' || c == '`') { - if (skipOver(c)) { - return true; - } - insertPair(c, c); - onTypedChar(c); - return true; - } - replaceRange(getSelectionStart(), getSelectionEnd(), text, true); - onTypedChar(c); - return true; - } - return false; - } - - private static char closeFor(char open) { - if (open == '(') { - return ')'; - } - if (open == '[') { - return ']'; - } - return '}'; - } - - private void insertPair(char open, char close) { - int s = getSelectionStart(); - int e = getSelectionEnd(); - String inner = getDocument().substring(s, e); - replaceRange(s, e, open + inner + close, true); - moveCaret(s + 1 + inner.length(), false); - } - - private boolean skipOver(char c) { - int caret = getCaretOffset(); - if (getSelectionStart() == getSelectionEnd() && caret < getDocument().length() - && getDocument().charAt(caret) == c) { - moveCaret(caret + 1, false); - return true; - } - return false; - } - - private void insertSpaces(int n) { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < n; i++) { - sb.append(' '); - } - replaceRange(getSelectionStart(), getSelectionEnd(), sb.toString(), true); - } - - private void autoIndentNewline() { - int caret = getCaretOffset(); - int cl = getDocument().lineOfOffset(caret); - int lineStart = getDocument().getLineStart(cl); - int col = caret - lineStart; - String line = getDocument().getLineText(cl); - StringBuilder indent = new StringBuilder(); - for (int i = 0; i < col && i < line.length(); i++) { - char ch = line.charAt(i); - if (ch == ' ' || ch == '\t') { - indent.append(ch); - } else { - break; - } - } - boolean extra = lastNonSpaceOpensBlock(line, col); - StringBuilder ins = new StringBuilder("\n").append(indent); - if (extra) { - for (int i = 0; i < tabSize; i++) { - ins.append(' '); - } - } - replaceRange(getSelectionStart(), getSelectionEnd(), ins.toString(), true); - } - - /// Returns whether the last non-whitespace character before `col` on `line` opens a block - /// (one of `{`, `:`, `(`, `[`). - private static boolean lastNonSpaceOpensBlock(String line, int col) { - int i = col - 1; - while (i >= 0 && i < line.length() && (line.charAt(i) == ' ' || line.charAt(i) == '\t')) { - i--; - } - if (i < 0 || i >= line.length()) { - return false; - } - char ch = line.charAt(i); - return ch == '{' || ch == ':' || ch == '(' || ch == '['; - } - - // ---- completion ---- - - private void onTypedChar(char c) { - if (!completionEnabled) { - return; - } - if (isIdentPart(c)) { - requestCompletion(); - } else { - hideCompletion(); - } - } - - private void requestCompletion() { - completionReqSeq++; - completionPending = completionReqSeq; - if (host() != null) { - host().fireEditorEvent("complete", completionReqSeq + ":" + getCaretOffset()); - } - } - - /// Called by the backend with the provider's proposals for a request. - /// - /// #### Parameters - /// - /// - `reqId`: the request sequence id - /// - /// - `items`: the proposals - public void showCompletions(int reqId, List items) { - if (reqId != completionPending) { - return; - } - completionAll = items; - completionAnchor = identifierStart(getCaretOffset()); - completionIndex = 0; - refilterCompletion(); - } - - private int identifierStart(int off) { - int i = off; - while (i > 0 && isIdentPart(getDocument().charAt(i - 1))) { - i--; - } - return i; - } - - private void refilterCompletion() { - if (completionAll == null) { - hideCompletion(); - return; - } - int caret = getCaretOffset(); - if (caret < completionAnchor) { - hideCompletion(); - return; - } - String prefix = getDocument().substring(completionAnchor, caret).toLowerCase(); - List filtered = new ArrayList(); - for (CodeCompletion cc : completionAll) { - if (cc == null) { - continue; - } - String disp = cc.getDisplayText() != null ? cc.getDisplayText() : cc.getInsertText(); - if (disp != null && disp.toLowerCase().startsWith(prefix)) { - filtered.add(cc); - } - } - if (filtered.isEmpty()) { - hideCompletion(); - return; - } - completionFiltered = filtered; - if (completionIndex >= filtered.size()) { - completionIndex = filtered.size() - 1; - } - if (completionIndex < 0) { - completionIndex = 0; - } - completionVisible = true; - repaint(); - } - - private void hideCompletion() { - completionVisible = false; - completionAll = null; - completionFiltered = null; - completionPending = -1; - repaint(); - } - - private void acceptCompletion() { - if (!completionVisible || completionFiltered == null || completionFiltered.isEmpty()) { - return; - } - CodeCompletion cc = completionFiltered.get(clampI(completionIndex, 0, completionFiltered.size() - 1)); - String ins = cc.getInsertText() != null ? cc.getInsertText() : cc.getDisplayText(); - replaceRange(completionAnchor, getCaretOffset(), ins == null ? "" : ins, true); - hideCompletion(); - } - - // ---- popup painting ---- - - private String hoverTooltip; - private int hoverLocalX; - private int hoverLocalY; - - @Override - public void pointerHover(int[] x, int[] y) { - if (x != null && x.length > 0 && diagnostics != null) { - int off = offsetAtPoint(x[0], y[0]); - int localX = x[0] - getAbsoluteX(); - String msg = diagnosticMessageAt(off, localX); - if (msg != null) { - hoverTooltip = msg; - hoverLocalX = localX; - hoverLocalY = y[0] - getAbsoluteY(); - repaint(); - return; - } - } - if (hoverTooltip != null) { - hoverTooltip = null; - repaint(); - } - } - - private String diagnosticMessageAt(int off, int localX) { - int line = getDocument().lineOfOffset(off); - boolean inGutter = localX < getContentLeftInset(); - for (CodeDiagnostic d : diagnostics) { - if (d == null) { - continue; - } - if (line < d.getLine() - 1 || line > d.getEndLine() - 1) { - continue; - } - if (inGutter) { - return d.getMessage(); - } - int sOff = lineColToOffset(d.getLine(), d.getColumn()); - int eOff = lineColToOffset(d.getEndLine(), d.getEndColumn()); - if (off >= sOff && off < eOff) { - return d.getMessage(); - } - } - return null; - } - - private int lineColToOffset(int line1, int col1) { - int line = clampI(line1 - 1, 0, getDocument().getLineCount() - 1); - int base = getDocument().getLineStart(line); - int max = getDocument().getLineEnd(line); - return clampI(base + col1 - 1, base, max); - } - - @Override - public void paint(Graphics g) { - super.paint(g); - if (completionVisible && completionFiltered != null && !completionFiltered.isEmpty()) { - paintCompletion(g); - } - if (hoverTooltip != null) { - paintTooltip(g); - } - } - - private void paintTooltip(Graphics g) { - Font f = getEditorFont(); - int pad = f.charWidth('m'); - int tw = f.stringWidth(hoverTooltip) + pad * 2; - int th = f.getHeight() + pad; - int tx = getX() + hoverLocalX; - int ty = getY() + hoverLocalY + getLineHeight() / 2; - if (tx + tw > getX() + getWidth()) { - tx = getX() + getWidth() - tw; - } - if (tx < getX()) { - tx = getX(); - } - if (ty + th > getY() + getHeight()) { - ty = getY() + hoverLocalY - th; - } - g.setColor(0x111111); - g.fillRect(tx, ty, tw, th); - g.setColor(0x454545); - g.drawRect(tx, ty, tw - 1, th - 1); - g.setColor(0xf0f0f0); - g.setFont(f); - g.drawString(hoverTooltip, tx + pad, ty + pad / 2); - } - - private void paintCompletion(Graphics g) { - Font f = getEditorFont(); - int lh = getLineHeight(); - int caret = getCaretOffset(); - int cl = getDocument().lineOfOffset(caret); - int col = caret - getDocument().getLineStart(cl); - String line = getDocument().getLineText(cl); - if (col > line.length()) { - col = line.length(); - } - int px = getX() + getContentLeftInset() + f.substringWidth(line, 0, col) - getHorizontalScroll(); - int top = getY() + lineTop(cl); - int visible = Math.min(completionFiltered.size(), 8); - int itemH = lh; - int boxW = 0; - for (CodeCompletion cc : completionFiltered) { - String d = cc.getDisplayText() != null ? cc.getDisplayText() : cc.getInsertText(); - if (d != null) { - boxW = Math.max(boxW, f.stringWidth(d)); - } - } - boxW += f.charWidth('m') * 2; - int boxH = visible * itemH + 2; - int boxY = top + lh; - if (boxY + boxH > getY() + getHeight()) { - boxY = top - boxH; - } - boolean dark = palette == ThemePalette.DARK; // NOPMD - intentional identity comparison - int popupBg = dark ? 0x252526 : 0xffffff; - int border = dark ? 0x454545 : 0xc0c0c0; - g.setColor(popupBg); - g.fillRect(px, boxY, boxW, boxH); - g.setColor(border); - g.drawRect(px, boxY, boxW - 1, boxH - 1); - int start = 0; - if (completionIndex >= visible) { - start = completionIndex - visible + 1; - } - for (int i = 0; i < visible; i++) { - int idx = start + i; - if (idx >= completionFiltered.size()) { - break; - } - CodeCompletion cc = completionFiltered.get(idx); - int iy = boxY + 1 + i * itemH; - if (idx == completionIndex) { - g.setColor(palette.getSelection()); - g.fillRect(px + 1, iy, boxW - 2, itemH); - } - String d = cc.getDisplayText() != null ? cc.getDisplayText() : cc.getInsertText(); - g.setColor(palette.getForeground()); - g.drawString(d == null ? "" : d, px + f.charWidth('m'), iy); - } - // remember the popup bounds (component local) so touch taps can hit an item - popupLocalX = px - getX(); - popupLocalY = boxY - getY(); - popupW = boxW; - popupH = boxH; - popupItemH = itemH; - popupStart = start; - } - - private int popupLocalX; - private int popupLocalY; - private int popupW; - private int popupH; - private int popupItemH = 1; - private int popupStart; - - @Override - public void pointerPressed(int x, int y) { - int lx = x - getAbsoluteX(); - int ly = y - getAbsoluteY(); - // tap on the completion popup accepts the tapped proposal (touch has no arrow-key nav) - if (completionVisible && completionFiltered != null && !completionFiltered.isEmpty() - && popupItemH > 0 && lx >= popupLocalX && lx <= popupLocalX + popupW - && ly >= popupLocalY && ly <= popupLocalY + popupH) { - int idx = popupStart + (ly - popupLocalY) / popupItemH; - if (idx >= 0 && idx < completionFiltered.size()) { - completionIndex = idx; - acceptCompletion(); - } - return; - } - // tap on a squiggle / gutter icon shows its diagnostic (no hover on touch devices) - if (diagnostics != null) { - int off = offsetAtPoint(x, y); - String msg = diagnosticMessageAt(off, lx); - if (msg != null) { - hoverTooltip = msg; - hoverLocalX = lx; - hoverLocalY = ly; - repaint(); - } else if (hoverTooltip != null) { - hoverTooltip = null; - repaint(); - } - } - super.pointerPressed(x, y); - } - - // ---- key routing for completion ---- - - @Override - public void keyPressed(int keyCode) { - if (completionVisible && navigateCompletion(Display.getInstance().getGameAction(keyCode))) { - return; - } - super.keyPressed(keyCode); - } - - @Override - public void keyRepeated(int keyCode) { - if (completionVisible && navigateCompletion(Display.getInstance().getGameAction(keyCode))) { - return; - } - super.keyRepeated(keyCode); - } - - @Override - public void keyReleased(int keyCode) { - if (completionVisible) { - if (keyCode == 27) { - hideCompletion(); - return; - } - if (keyCode == 10 || keyCode == 13 || keyCode == 9) { - acceptCompletion(); - return; - } - } - super.keyReleased(keyCode); - } - - private boolean navigateCompletion(int action) { - if (action == Display.GAME_UP) { - completionIndex = Math.max(0, completionIndex - 1); - repaint(); - return true; - } - if (action == Display.GAME_DOWN) { - completionIndex = Math.min(completionFiltered.size() - 1, completionIndex + 1); - repaint(); - return true; - } - return false; - } - - @Override - public void onKeyCommand(int command, int modifiers) { - if (completionVisible) { - if (command == KEY_UP) { - completionIndex = Math.max(0, completionIndex - 1); - repaint(); - return; - } - if (command == KEY_DOWN) { - completionIndex = Math.min(completionFiltered.size() - 1, completionIndex + 1); - repaint(); - return; - } - if (command == KEY_ESCAPE) { - hideCompletion(); - return; - } - } - super.onKeyCommand(command, modifiers); - } - - @Override - public void onEditorAction(int action) { - if (completionVisible && action == TextInputConfig.ACTION_DEFAULT) { - acceptCompletion(); - return; - } - super.onEditorAction(action); - } - - private static boolean isIdentPart(char c) { - return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_' || c == '$'; - } - - private static int clampI(int v, int lo, int hi) { - if (v < lo) { - return lo; - } - if (v > hi) { - return hi; - } - return v; - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/EditorDocument.java b/CodenameOne/src/com/codename1/ui/editor/EditorDocument.java deleted file mode 100644 index 05d3959d87c..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/EditorDocument.java +++ /dev/null @@ -1,258 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -/// The plain text backing store shared by the pure Codename One editors. The document keeps the full -/// text in a single buffer addressed by a linear UTF-16 offset space and derives a cached line index -/// (the start offset of every logical line) on demand for rendering and hit testing. -/// -/// A single buffer keeps offset arithmetic trivial (offsets are direct buffer indices) which is exactly -/// what the caret, selection, undo stack and the platform text input source all operate on. Line -/// oriented feature layers (syntax highlighting, the gutter) sit on top of the line index. -public class EditorDocument { - private final StringBuilder buf = new StringBuilder(); // NOPMD - intentional owned buffer - private String cachedText; - private int[] lineStarts = new int[]{0}; - private int lineCount = 1; - private boolean linesDirty = true; - - // The whole text as a String, cached between edits. Reading substrings from a String avoids - // StringBuilder.substring which the ParparVM (iOS) minimal runtime does not implement. - private String text() { - if (cachedText == null) { - cachedText = buf.toString(); - } - return cachedText; - } - - /// Creates an empty document. - public EditorDocument() { - } - - /// Creates a document initialized with the supplied text. - /// - /// #### Parameters - /// - /// - `text`: the initial text, or null for an empty document - public EditorDocument(String text) { - if (text != null) { - buf.append(normalizeText(text)); - } - linesDirty = true; - cachedText = null; - } - - /// Normalizes platform line endings into the document's canonical LF representation. - public static String normalizeText(String text) { - // collapse CRLF / CR to LF so the linear offset space matches what the platform delivers - if (text.indexOf('\r') < 0) { - return text; - } - StringBuilder sb = new StringBuilder(text.length()); - for (int i = 0; i < text.length(); i++) { - char c = text.charAt(i); - if (c == '\r') { - if (i + 1 < text.length() && text.charAt(i + 1) == '\n') { - continue; - } - sb.append('\n'); - } else { - sb.append(c); - } - } - return sb.toString(); - } - - /// Returns the total number of UTF-16 characters in the document. - public int length() { - return buf.length(); - } - - /// Returns the full document text. - public String getText() { - return text(); - } - - /// Returns the character at the given offset. - /// - /// #### Parameters - /// - /// - `offset`: a valid offset in `[0, length())` - public char charAt(int offset) { - return buf.charAt(offset); - } - - /// Returns the substring in `[start, end)`. - public String substring(int start, int end) { - return text().substring(start, end); - } - - /// Replaces the entire document content. - /// - /// #### Parameters - /// - /// - `text`: the new text, or null to clear the document - public void setText(String text) { - buf.setLength(0); - if (text != null) { - buf.append(normalizeText(text)); - } - linesDirty = true; - cachedText = null; - } - - /// Inserts text at the given offset. - /// - /// #### Parameters - /// - /// - `offset`: the insertion offset in `[0, length()]` - /// - /// - `text`: the text to insert - public void insert(int offset, String text) { - if (text == null || text.length() == 0) { - return; - } - buf.insert(offset, normalizeText(text)); - linesDirty = true; - cachedText = null; - } - - /// Deletes the range `[start, end)`. - /// - /// #### Parameters - /// - /// - `start`: inclusive start offset - /// - /// - `end`: exclusive end offset - public void delete(int start, int end) { - if (start >= end) { - return; - } - buf.delete(start, end); - linesDirty = true; - cachedText = null; - } - - /// Clamps an arbitrary offset into the valid range `[0, length()]`. - public int clamp(int offset) { - if (offset < 0) { - return 0; - } - if (offset > buf.length()) { - return buf.length(); - } - return offset; - } - - private void ensureLines() { - if (!linesDirty) { - return; - } - int count = 1; - int len = buf.length(); - for (int i = 0; i < len; i++) { - if (buf.charAt(i) == '\n') { - count++; - } - } - int[] starts = new int[count]; - starts[0] = 0; - int idx = 1; - for (int i = 0; i < len; i++) { - if (buf.charAt(i) == '\n') { - starts[idx++] = i + 1; - } - } - lineStarts = starts; - lineCount = count; - linesDirty = false; - } - - /// Returns the number of logical lines (always at least one). - public int getLineCount() { - ensureLines(); - return lineCount; - } - - /// Returns the start offset of the given line. - /// - /// #### Parameters - /// - /// - `line`: a zero based line index in `[0, getLineCount())` - public int getLineStart(int line) { - ensureLines(); - return lineStarts[line]; - } - - /// Returns the end offset (exclusive, not counting the trailing newline) of the given line. - /// - /// #### Parameters - /// - /// - `line`: a zero based line index in `[0, getLineCount())` - public int getLineEnd(int line) { - ensureLines(); - if (line + 1 < lineCount) { - return lineStarts[line + 1] - 1; - } - return buf.length(); - } - - /// Returns the text of the given line without its trailing newline. - /// - /// #### Parameters - /// - /// - `line`: a zero based line index in `[0, getLineCount())` - public String getLineText(int line) { - return text().substring(getLineStart(line), getLineEnd(line)); - } - - /// Returns the zero based line index containing the given offset. - /// - /// #### Parameters - /// - /// - `offset`: an offset in `[0, length()]` - public int lineOfOffset(int offset) { - ensureLines(); - int lo = 0; - int hi = lineCount - 1; - while (lo < hi) { - int mid = (lo + hi + 1) >>> 1; - if (lineStarts[mid] <= offset) { - lo = mid; - } else { - hi = mid - 1; - } - } - return lo; - } - - /// Returns the column (offset within its line) for the given absolute offset. - /// - /// #### Parameters - /// - /// - `offset`: an offset in `[0, length()]` - public int columnOfOffset(int offset) { - return offset - getLineStart(lineOfOffset(offset)); - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/EditorHost.java b/CodenameOne/src/com/codename1/ui/editor/EditorHost.java deleted file mode 100644 index a6a92530887..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/EditorHost.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import com.codename1.ui.TextInputClient; -import com.codename1.ui.TextInputConfig; -import com.codename1.ui.TextInputState; - -/// The bridge a pure editor view uses to reach the owning editor component and, through it, the platform -/// text input source. The owning `com.codename1.ui.AbstractEditorComponent` implements this so the low -/// level implementation access (which is package private to `com.codename1.ui`) stays out of the editor -/// engine package. -public interface EditorHost { - /// True when the platform can bind a low level text input client (see - /// `com.codename1.impl.CodenameOneImplementation#isTextInputSupported`). - boolean isTextInputSupported(); - - /// Binds the client to the platform text input source and returns an opaque handle. - Object startTextInput(TextInputClient client, TextInputConfig config); - - /// Pushes the client's editing state down to the bound input source. - void updateTextInputState(Object handle, TextInputState state); - - /// Unbinds a previously bound text input client. - void stopTextInput(Object handle); - - /// Notifies the owning editor that the document content changed so it can fire its change listeners. - void editorChanged(); - - /// Delivers a semantic editor event (e.g. a code completion request) back to the owning editor. - void fireEditorEvent(String type, String value); -} diff --git a/CodenameOne/src/com/codename1/ui/editor/EditorView.java b/CodenameOne/src/com/codename1/ui/editor/EditorView.java deleted file mode 100644 index eb6de1b9f0f..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/EditorView.java +++ /dev/null @@ -1,1992 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import com.codename1.ui.Component; -import com.codename1.ui.Display; -import com.codename1.ui.Font; -import com.codename1.ui.Graphics; -import com.codename1.ui.TextInputClient; -import com.codename1.ui.TextInputConfig; -import com.codename1.ui.TextInputState; -import com.codename1.ui.RichTextClipboardData; -import com.codename1.ui.events.ActionEvent; -import com.codename1.ui.events.ActionListener; -import com.codename1.ui.events.WheelEvent; -import com.codename1.ui.geom.Dimension; - -/// The pure Codename One text editing surface. It renders a plain text `EditorDocument` with its own -/// `Graphics` code, owns the caret and selection, handles pointer and keyboard interaction, and captures -/// text through the low level `TextInputClient` contract (soft keyboard / IME) when the platform -/// supports it, falling back to raw `keyPressed` capture on physical keyboard platforms. -/// -/// This class provides the shared editing behavior. Feature layers (syntax highlighting, the gutter, -/// styled rich text) subclass it and override `#paintContent(Graphics, int, int, int, int)` and the -/// document/measurement hooks. -public class EditorView extends Component implements TextInputClient { - private final EditorHost host; - private final boolean codeMode; - private EditorDocument doc = new EditorDocument(); - private final UndoManager undo = new UndoManager(); - - private int caret; - private int anchor = -1; - private int composingStart = -1; - private int composingEnd = -1; - private boolean editable = true; - - private int scrollY; - private int scrollX; - private boolean caretOn = true; - private long lastBlink; - private boolean animRegistered; - - private Object inputHandle; - private boolean inputActive; - - private int bgColor = 0xffffff; - private int fgColor = 0x111111; - private int selColor = 0xb3d4fc; - - /// Creates an editor view. - /// - /// #### Parameters - /// - /// - `host`: the bridge to the owning editor component / platform input source - /// - /// - `codeMode`: true for a code editor (autocorrect and autocapitalize disabled) - public EditorView(EditorHost host, boolean codeMode) { - this.host = host; - this.codeMode = codeMode; - setFocusable(true); - setGrabsPointerEvents(true); - // own the arrow / enter / tab keys so the form's focus traversal does not steal them - setHandlesInput(true); - // handle the mouse wheel / trackpad (shift = horizontal) ourselves so scrolling works without a - // scrollable ancestor; consuming the event stops the default scroll gesture from selecting text - addMouseWheelListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent evt) { - if (evt instanceof WheelEvent) { - WheelEvent we = (WheelEvent) evt; - scrollByPixels(we.getDeltaX(), we.getDeltaY()); - evt.consume(); - } - } - }); - } - - /// Scrolls the content by the given pixel deltas (as delivered by the mouse wheel gesture). - protected void scrollByPixels(int deltaX, int deltaY) { - scrollX = clampInt(scrollX - deltaX, 0, maxScrollX()); - scrollY = clampInt(scrollY - deltaY, 0, maxScroll()); - repaint(); - } - - /// Returns the backing document. - public EditorDocument getDocument() { - return doc; - } - - /// Returns the undo manager. - public UndoManager getUndoManager() { - return undo; - } - - /// Returns the current caret offset. - public int getCaretOffset() { - return caret; - } - - /// Sets the surface background color. - public void setBackgroundColor(int color) { - this.bgColor = color; - } - - /// Sets the default text color. - public void setTextColor(int color) { - this.fgColor = color; - } - - /// Sets the selection highlight color. - public void setSelectionColor(int color) { - this.selColor = color; - } - - /// Returns the default text color used by the base renderer. - protected int getTextColor() { - return fgColor; - } - - /// Replaces the whole document text and resets the caret and history. - public void setText(String text) { - doc.setText(text); - caret = 0; - anchor = -1; - composingStart = -1; - composingEnd = -1; - undo.clear(); - scrollY = 0; - scrollX = 0; - documentEdited(0); - documentReset(); - onDocumentChanged(); - } - - /// Returns the whole document text. - public String getText() { - return doc.getText(); - } - - /// Enables or disables editing. - public void setEditableState(boolean editable) { - this.editable = editable; - } - - /// True when editing is enabled. - public boolean isEditableState() { - return editable; - } - - /// Relinquishes focus and stops the active platform text-input session. - public void blur() { - com.codename1.ui.Form form = getComponentForm(); - if (form != null && equals(form.getFocused())) { - form.setFocused(null); - } else { - stopInput(); - } - } - - // ---- font / geometry ---- - - private Font cachedBase; - private Font cachedFrom; - private int fontSizeOverridePx; - - /// Returns the base editor font size in pixels. - protected int baseFontSizePixels() { - return getEditorFont().getHeight(); - } - - /// Optionally overrides the editor font size in device independent pixels. Pass 0 to use the font - /// supplied by the component's style (the default, which is correctly sized for the current skin). - public void setFontSizeDips(int dips) { - this.fontSizeOverridePx = dips <= 0 ? 0 : Display.getInstance().convertToPixels((float) dips); - cachedBase = null; - invalidateLayout(); - repaint(); - } - - /// Returns the font used to render text. By default this is the component's style font (managed and - /// correctly sized by Codename One, and refreshed when the skin / theme reloads, which avoids stale - /// native font handles rendering as squares). Subclasses may override to supply styled variants. - protected Font getEditorFont() { - Font sf = getStyle().getFont(); - if (sf == null) { - sf = Font.getDefaultFont(); - } - if (cachedBase != null && cachedFrom == sf) { // NOPMD - intentional identity comparison - return cachedBase; - } - cachedFrom = sf; - Font result = sf; - if (fontSizeOverridePx > 0 && sf.isTTFNativeFont()) { - try { - result = sf.derive(fontSizeOverridePx, Font.STYLE_PLAIN); - } catch (Throwable t) { - result = sf; - } - } - cachedBase = result; - return result; - } - - /// Returns the default height of a single visual line in pixels. - protected int getLineHeight() { - int h = getEditorFont().getHeight(); - return h + Math.max(2, h / 8); - } - - /// Returns the height of the given line. The default is uniform (`#getLineHeight()`); the rich text - /// editor overrides this for headings and font size runs. - protected int lineHeightAt(int line) { - return getLineHeight(); - } - - /// True when every line has the same height (the common case, and the fast path). Feature layers with - /// variable line heights override this to return false. - protected boolean uniformLineHeight() { - return true; - } - - private int[] cumTops; - private boolean layoutDirty = true; - - /// Invalidates the cached line layout (used by feature layers when line heights change). - protected void invalidateLayout() { - layoutDirty = true; - cachedMaxLineWidth = -1; - } - - private void ensureCum() { - int lc = doc.getLineCount(); - if (!layoutDirty && cumTops != null && cumTops.length == lc + 1) { - return; - } - cumTops = new int[lc + 1]; - int y = 0; - for (int i = 0; i < lc; i++) { - cumTops[i] = y; - y += lineHeightAt(i); - } - cumTops[lc] = y; - layoutDirty = false; - } - - /// Returns the top y pixel of the given line relative to the content top (before scroll). - protected int lineTopContent(int line) { - if (uniformLineHeight()) { - return line * getLineHeight(); - } - ensureCum(); - int l = line < 0 ? 0 : (line > doc.getLineCount() ? doc.getLineCount() : line); - return cumTops[l]; - } - - /// Returns the total content height in pixels. - protected int contentTotalHeight() { - if (uniformLineHeight()) { - return doc.getLineCount() * getLineHeight(); - } - ensureCum(); - return cumTops[doc.getLineCount()]; - } - - /// Returns the line index at the given content relative y pixel. - protected int lineAtContentY(int y) { - int lc = doc.getLineCount(); - if (uniformLineHeight()) { - return clampInt(y / getLineHeight(), 0, lc - 1); - } - ensureCum(); - int lo = 0; - int hi = lc - 1; - while (lo < hi) { - int mid = (lo + hi + 1) >>> 1; - if (cumTops[mid] <= y) { - lo = mid; - } else { - hi = mid - 1; - } - } - return lo; - } - - /// Returns the left inset (padding plus any gutter) at which text starts. - protected int getContentLeftInset() { - return getStyle().getPaddingLeftNoRTL(); - } - - private int contentX() { - return getX() + getContentLeftInset(); - } - - private int contentY() { - return getY() + getStyle().getPaddingTop(); - } - - /// Returns the width available for text (component width minus padding and any gutter). - protected int contentWidth() { - return getWidth() - getContentLeftInset() - getStyle().getPaddingRightNoRTL(); - } - - private int contentHeight() { - return getHeight() - getStyle().getPaddingTop() - getStyle().getPaddingBottom(); - } - - // ---- selection helpers ---- - - /// True when a non empty selection exists. - public boolean hasSelection() { - return anchor >= 0 && anchor != caret; - } - - /// Returns the inclusive start offset of the selection (or the caret when none). - public int getSelectionStart() { - if (anchor < 0) { - return caret; - } - return Math.min(anchor, caret); - } - - /// Returns the exclusive end offset of the selection (or the caret when none). - public int getSelectionEnd() { - if (anchor < 0) { - return caret; - } - return Math.max(anchor, caret); - } - - // ---- painting ---- - - @Override - public void paint(Graphics g) { - g.setColor(bgColor); - g.fillRect(getX(), getY(), getWidth(), getHeight()); - paintContent(g, contentX(), contentY() - scrollY, contentWidth(), contentHeight()); - if (touchSelection && hasSelection()) { - paintSelectionUI(g); - } - if (loupeActive) { - paintLoupe(g); - } - } - - // ---- touch selection UI (long-press, draggable handles, context toolbar, magnifier loupe) ---- - - private boolean touchSelection; - private int draggingHandle; - private int[] startHandleLocal; - private int[] endHandleLocal; - private int[][] toolbarButtons; - private java.util.List toolbarLabels; - private boolean loupeActive; - private int loupeOffset; - private Font loupeFontCache; - private Font loupeBaseFont; - - /// The magnified font used inside the loupe (1.5x the editor font), cached against the base font so a - /// theme/skin change regenerates it. - private Font loupeFont() { - Font base = getEditorFont(); - if (loupeFontCache == null || loupeBaseFont != base) { // NOPMD - intentional identity comparison - loupeBaseFont = base; - loupeFontCache = base.derive(base.getHeight() * 1.5f, Font.STYLE_PLAIN); - } - return loupeFontCache; - } - - /// Draws the selection magnifier: a rounded callout above the touched offset showing the text around - /// it enlarged, with a caret marker centered on the touch. Shown while placing the caret with a long - /// press and while dragging a selection handle, mirroring the native touch selection feel. - private void paintLoupe(Graphics g) { - int off = doc.clamp(loupeOffset); - int ln = doc.lineOfOffset(off); - String line = doc.getLineText(ln); - int col = off - doc.getLineStart(ln); - Font base = getEditorFont(); - Font big = loupeFont(); - int lh = big.getHeight(); - int pad = base.charWidth('m'); - int bubbleH = lh + pad; - int bubbleW = Math.min(getWidth() - 8, big.charWidth('m') * 16); - int caretBaseX = measureColumnX(ln, line, col, base); - int caretLocalX = getContentLeftInset() + lineContentOffsetX(ln) + caretBaseX - scrollX; - int caretLocalY = getStyle().getPaddingTop() + lineTopContent(ln) - scrollY; - int bx = clampInt(caretLocalX - bubbleW / 2, 4, Math.max(4, getWidth() - 4 - bubbleW)); - int by = caretLocalY - bubbleH - handleRadius() * 3; - if (by < 4) { - by = caretLocalY + lineHeightAt(ln) + handleRadius() * 3; - } - int ax = getX() + bx; - int ay = getY() + by; - int arc = Math.max(8, bubbleH / 2); - g.setColor(0xffffff); - g.fillRoundRect(ax, ay, bubbleW, bubbleH, arc, arc); - g.setColor(0x1a73e8); - g.drawRoundRect(ax, ay, bubbleW, bubbleH, arc, arc); - g.pushClip(); - g.clipRect(ax + 2, ay + 2, bubbleW - 4, bubbleH - 4); - // scale the (bidi aware) caret x from the base to the magnified font so the touched glyph is centered - int scaledCaretX = caretBaseX * lh / Math.max(1, base.getHeight()); - int textX = ax + bubbleW / 2 - scaledCaretX; - int textY = ay + (bubbleH - lh) / 2; - g.setColor(fgColor); - g.setFont(big); - g.drawString(line, textX, textY); - g.setColor(0x1a73e8); - g.fillRect(ax + bubbleW / 2, textY, Math.max(1, lh / 14), lh); - g.popClip(); - g.setFont(base); - } - - private int handleRadius() { - return Math.max(6, getEditorFont().getHeight() / 3); - } - - // returns {localX, localYTop, lineHeight} for an offset (component-local, matches paint origin getX/getY) - private int[] offsetLocal(int off) { - Font f = getEditorFont(); - int line = doc.lineOfOffset(off); - int col = off - doc.getLineStart(line); - String text = doc.getLineText(line); - if (col > text.length()) { - col = text.length(); - } - int lx = getContentLeftInset() + lineContentOffsetX(line) + measureColumnX(line, text, col, f) - scrollX; - int ly = getStyle().getPaddingTop() + lineTopContent(line) - scrollY; - return new int[]{lx, ly, lineHeightAt(line)}; - } - - private void paintSelectionUI(Graphics g) { - int hr = handleRadius(); - int[] s = offsetLocal(getSelectionStart()); - int[] e = offsetLocal(getSelectionEnd()); - int color = 0x1a73e8; - // start handle: stem + ball above the line top - g.setColor(color); - g.fillRect(getX() + s[0] - 1, getY() + s[1], 2, s[2]); - g.fillArc(getX() + s[0] - hr, getY() + s[1] - hr * 2, hr * 2, hr * 2, 0, 360); - startHandleLocal = new int[]{s[0], s[1] - hr}; - // end handle: stem + ball below the line bottom - g.setColor(color); - g.fillRect(getX() + e[0] - 1, getY() + e[1], 2, e[2]); - g.fillArc(getX() + e[0] - hr, getY() + e[1] + e[2], hr * 2, hr * 2, 0, 360); - endHandleLocal = new int[]{e[0], e[1] + e[2] + hr}; - paintToolbar(g, s); - } - - private void paintToolbar(Graphics g, int[] anchor) { - Font f = getEditorFont(); - java.util.List labels = new java.util.ArrayList(); - labels.add("Copy"); - if (editable) { - labels.add("Cut"); - labels.add("Paste"); - } - labels.add("Select All"); - int pad = f.charWidth('m'); - int bh = f.getHeight() + pad; - int[] w = new int[labels.size()]; - int total = 0; - for (int i = 0; i < labels.size(); i++) { - w[i] = f.stringWidth(labels.get(i)) + pad * 2; - total += w[i]; - } - int tx = anchor[0] - total / 2; - int ty = anchor[1] - bh - handleRadius() * 2; - if (tx < 0) { - tx = 0; - } - if (tx + total > getWidth()) { - tx = getWidth() - total; - } - if (ty < 0) { - ty = anchor[1] + anchor[2] + handleRadius() * 2; - } - g.setColor(0x222222); - g.fillRect(getX() + tx, getY() + ty, total, bh); - toolbarButtons = new int[labels.size()][4]; - toolbarLabels = labels; - int cx = tx; - for (int i = 0; i < labels.size(); i++) { - toolbarButtons[i] = new int[]{cx, ty, w[i], bh}; - g.setColor(0xf0f0f0); - g.setFont(f); - g.drawString(labels.get(i), getX() + cx + pad, getY() + ty + pad / 2); - cx += w[i]; - if (i < labels.size() - 1) { - g.setColor(0x555555); - g.drawLine(getX() + cx, getY() + ty + 4, getX() + cx, getY() + ty + bh - 4); - } - } - } - - @Override - public void longPointerPress(int x, int y) { - int off = offsetAtPoint(x, y); - selectWordAt(off); - touchSelection = hasSelection(); - loupeActive = true; - loupeOffset = off; - repaint(); - } - - private boolean nearLocal(int[] handleLocal, int x, int y) { - if (handleLocal == null) { - return false; - } - int lx = x - getAbsoluteX(); - int ly = y - getAbsoluteY(); - int r = handleRadius() * 3; - int dx = lx - handleLocal[0]; - int dy = ly - handleLocal[1]; - return dx * dx + dy * dy <= r * r; - } - - private boolean handleTouchSelectionPress(int x, int y) { - if (!touchSelection) { - return false; - } - int lx = x - getAbsoluteX(); - int ly = y - getAbsoluteY(); - if (toolbarButtons != null) { - for (int i = 0; i < toolbarButtons.length; i++) { - int[] r = toolbarButtons[i]; - if (lx >= r[0] && lx <= r[0] + r[2] && ly >= r[1] && ly <= r[1] + r[3]) { - doToolbarAction(toolbarLabels.get(i)); - return true; - } - } - } - if (nearLocal(startHandleLocal, x, y)) { - anchor = getSelectionEnd(); - caret = getSelectionStart(); - draggingHandle = 1; - return true; - } - if (nearLocal(endHandleLocal, x, y)) { - anchor = getSelectionStart(); - caret = getSelectionEnd(); - draggingHandle = 2; - return true; - } - // tap outside the selection UI dismisses it - touchSelection = false; - startHandleLocal = null; - endHandleLocal = null; - toolbarButtons = null; - return false; - } - - private void doToolbarAction(String label) { - if ("Copy".equals(label)) { - copySelection(); - } else if ("Cut".equals(label)) { - cutSelection(); - } else if ("Paste".equals(label)) { - pasteClipboard(); - } else if ("Select All".equals(label)) { - selectAll(); - touchSelection = true; - repaint(); - return; - } - touchSelection = false; - repaint(); - } - - /// Paints the document content. `originY` is already offset by the scroll position, so line `n` is at - /// `originY + n * getLineHeight()`. Subclasses override to add highlighting, a gutter or styled runs - /// but should call through for the shared caret / selection rendering, or reimplement it. - /// - /// #### Parameters - /// - /// - `g`: the graphics context - /// - /// - `originX`: the x pixel at which line text starts - /// - /// - `originY`: the y pixel of the first line (scroll adjusted) - /// - /// - `width`: the content width - /// - /// - `height`: the content height - protected void paintContent(Graphics g, int originX, int originY, int width, int height) { - Font f = getEditorFont(); - g.setFont(f); - int lineCount = doc.getLineCount(); - int first = lineAtContentY(scrollY); - int last = Math.min(lineCount - 1, lineAtContentY(scrollY + height) + 1); - paintBeforeContent(g, originX, originY, first, last, getLineHeight(), f); - // clip the text area (so horizontally scrolled text does not paint over the gutter) and apply - // the horizontal scroll offset - g.pushClip(); - g.clipRect(originX, getY() + getStyle().getPaddingTop(), width, height); - int tx = originX - scrollX; - int ss = getSelectionStart(); - int se = getSelectionEnd(); - int eolPad = f.charWidth(' '); - for (int ln = first; ln <= last; ln++) { - int ly = originY + lineTopContent(ln); - int lh = lineHeightAt(ln); - String text = doc.getLineText(ln); - int lineStart = doc.getLineStart(ln); - int lineEnd = doc.getLineEnd(ln); - if (ss != se && ss <= lineEnd && se >= lineStart) { - int lineOff = lineContentOffsetX(ln); - int a = clampInt(ss - lineStart, 0, text.length()); - boolean pastEol = se > lineEnd; - int b = pastEol ? text.length() : clampInt(se - lineStart, 0, text.length()); - g.setColor(selColor); - int[] segs = lineVisualSegments(ln, text, a, b, f); - for (int si = 0; si < segs.length; si += 2) { - g.fillRect(tx + lineOff + segs[si], ly, segs[si + 1], lh); - } - if (pastEol) { - // selection continues across the line break: pad at the visual end of the line - int endX = tx + lineOff + measureColumnX(ln, text, text.length(), f); - g.fillRect(endX, ly, eolPad, lh); - } - } - paintLine(g, ln, text, tx, ly, lh, f); - paintLineDecorations(g, ln, text, tx, ly, lh, f); - paintComposingUnderline(g, ln, text, lineStart, lineEnd, tx, ly, lh, f); - } - paintCaret(g, tx, originY, f); - g.popClip(); - } - - /// Draws the IME composition (marked text) underline for the portion of the active composing range - /// that falls on the given line. The composing range is set by `#setComposingText(String, int)` while - /// an input method is composing (e.g. CJK) and cleared by `#finishComposing()`. - protected void paintComposingUnderline(Graphics g, int line, String text, int lineStart, int lineEnd, - int tx, int ly, int lineHeight, Font f) { - if (composingStart < 0 || composingEnd <= composingStart) { - return; - } - if (composingStart > lineEnd || composingEnd < lineStart) { - return; - } - int lineOff = lineContentOffsetX(line); - int a = clampInt(composingStart - lineStart, 0, text.length()); - int b = clampInt(Math.min(composingEnd, lineEnd) - lineStart, 0, text.length()); - int xa = tx + lineOff + measureColumnX(line, text, a, f); - int xb = tx + lineOff + measureColumnX(line, text, b, f); - int left = Math.min(xa, xb); - int w = Math.abs(xb - xa); - if (w <= 0) { - return; - } - int thickness = Math.max(1, lineHeight / 16); - int uy = ly + lineHeight - thickness - Math.max(1, lineHeight / 12); - g.setColor(fgColor); - g.fillRect(left, uy, w, thickness); - } - - /// Hook invoked before the visible lines are drawn, used by the code editor to paint the line number - /// gutter. `originY` is scroll adjusted so line `n` sits at `originY + n * lineHeight`. - protected void paintBeforeContent(Graphics g, int originX, int originY, int firstLine, int lastLine, int lineHeight, Font f) { - } - - /// Hook invoked after a line's text is drawn, used by the code editor to paint diagnostic squiggles. - protected void paintLineDecorations(Graphics g, int line, String text, int x, int y, int lineHeight, Font f) { - } - - /// Returns the y pixel of the top of the given line in component local coordinates (scroll adjusted). - protected int lineTop(int line) { - return getStyle().getPaddingTop() - scrollY + lineTopContent(line); - } - - /// Returns the first fully or partially visible line index. - protected int firstVisibleLine() { - return lineAtContentY(scrollY); - } - - /// Returns the current horizontal scroll offset in pixels. - protected int getHorizontalScroll() { - return scrollX; - } - - /// Returns the current vertical scroll offset in pixels. - protected int getVerticalScroll() { - return scrollY; - } - - /// Returns the largest valid vertical content offset. - protected int getMaximumVerticalScroll() { - return maxScroll(); - } - - /// Paints a single line of text. Subclasses override to add syntax coloring; the base implementation - /// draws the whole line in the default text color. - /// - /// #### Parameters - /// - /// - `g`: the graphics context - /// - /// - `line`: the zero based line index - /// - /// - `text`: the line text - /// - /// - `x`: the x pixel at which the line text starts - /// - /// - `y`: the top y pixel of the line - /// - /// - `lineHeight`: the line height - /// - /// - `f`: the font - protected void paintLine(Graphics g, int line, String text, int x, int y, int lineHeight, Font f) { - if (text.length() == 0) { - return; - } - g.setColor(fgColor); - if (BidiUtil.isTrivialLtr(text, isRTL())) { - g.drawString(text, x, y); - return; - } - // Draw each directional run as its own substring at its visual x; the platform font engine shapes - // and orders the glyphs within the (single-direction) run. - int[][] runs = bidiRuns(text, f); - for (int[] run : runs) { - g.drawString(text.substring(run[0], run[1]), x + run[3], y); - } - } - - private void paintCaret(Graphics g, int originX, int originY, Font f) { - if (!caretOn || !hasFocus() || !editable) { - return; - } - int cl = doc.lineOfOffset(caret); - int col = caret - doc.getLineStart(cl); - String line = doc.getLineText(cl); - if (col > line.length()) { - col = line.length(); - } - int cx = originX + lineContentOffsetX(cl) + measureColumnX(cl, line, col, f); - int cy = originY + lineTopContent(cl); - int cw = Math.max(1, f.getHeight() / 16); - g.setColor(fgColor); - g.fillRect(cx, cy, cw, lineHeightAt(cl)); - } - - private static int clampInt(int v, int lo, int hi) { - if (v < lo) { - return lo; - } - if (v > hi) { - return hi; - } - return v; - } - - // ---- hit testing ---- - - /// Returns the document offset nearest the given absolute screen point. - /// - /// #### Parameters - /// - /// - `absX`: absolute x - /// - /// - `absY`: absolute y - @Override - public int offsetAtPoint(int absX, int absY) { - Font f = getEditorFont(); - // pointer coordinates are absolute (form space); convert to content-local - int localY = absY - getAbsoluteY() - getStyle().getPaddingTop() + scrollY; - int ln = lineAtContentY(localY); - int lineStart = doc.getLineStart(ln); - String text = doc.getLineText(ln); - int localX = absX - getAbsoluteX() - getContentLeftInset() + scrollX - lineContentOffsetX(ln); - return lineStart + columnAtX(ln, text, localX, f); - } - - // ---- editing primitives ---- - - /// Replaces the range `[start, end)` with `text`, updating the caret, history and platform input - /// state. - /// - /// #### Parameters - /// - /// - `start`: inclusive start offset - /// - /// - `end`: exclusive end offset - /// - /// - `text`: the replacement text (may be empty) - /// - /// - `record`: true to record the mutation for undo - protected void replaceRange(int start, int end, String text, boolean record) { - start = doc.clamp(start); - end = doc.clamp(end); - if (start > end) { - int t = start; - start = end; - end = t; - } - String value = EditorDocument.normalizeText(text == null ? "" : text); - String removed = doc.substring(start, end); - Object beforeState = record ? captureDocumentState() : null; - doc.delete(start, end); - doc.insert(start, value); - caret = start + value.length(); - anchor = -1; - documentEdited(start); - documentReplaced(start, removed, value); - if (record) { - undo.record(start, removed, value, beforeState, captureDocumentState()); - } - onDocumentChanged(); - } - - /// Hook invoked when the document is mutated at `fromOffset`, used by feature layers (e.g. the code - /// editor) to invalidate cached tokenization from the affected line onward. - protected void documentEdited(int fromOffset) { - } - - /// Hook invoked when a range is replaced, carrying the exact removed and inserted text so feature - /// layers (e.g. the rich text editor) can keep a parallel style / block model in sync. The default is - /// a no-op. - /// - /// #### Parameters - /// - /// - `start`: the offset at which the replacement happened - /// - /// - `removed`: the removed text - /// - /// - `inserted`: the inserted text - protected void documentReplaced(int start, String removed, String inserted) { - } - - /// Hook invoked when the whole document is reset (e.g. by `#setText(String)`), so feature layers can - /// rebuild their parallel models. The default is a no-op. - protected void documentReset() { - } - - /// Captures feature-layer state associated with the document for undo/redo. Plain and code editors - /// return null; rich editors override this to snapshot formatting, blocks, links and images. - protected Object captureDocumentState() { - return null; - } - - /// Restores a feature-layer snapshot captured by `#captureDocumentState()`. - protected void restoreDocumentState(Object state) { - } - - /// Refreshes the most recent undo unit after a feature layer finishes decorating an inserted range. - protected final void refreshUndoAfterState() { - undo.updateLastAfterState(captureDocumentState()); - } - - /// Inserts text at the caret, replacing any active selection. - public void insertText(String text) { - if (!editable || text == null || text.length() == 0) { - return; - } - if (handleTypedText(text)) { - return; - } - replaceRange(getSelectionStart(), getSelectionEnd(), text, true); - } - - /// Hook giving feature layers a chance to intercept typed text before the default insertion (used by - /// the code editor for bracket / quote auto close, tab expansion and auto indent). Return true when - /// the text was consumed. The default returns false. - /// - /// #### Parameters - /// - /// - `text`: the text being typed / committed - protected boolean handleTypedText(String text) { - return false; - } - - /// Returns the host bridge, for feature layers that need to fire editor events. - protected EditorHost host() { - return host; - } - - private void deleteBackward() { - if (!editable) { - return; - } - if (hasSelection()) { - replaceRange(getSelectionStart(), getSelectionEnd(), "", true); - return; - } - if (caret > 0) { - int prev = caret - 1; - if (prev > 0 && Character.isLowSurrogate(doc.charAt(prev)) && Character.isHighSurrogate(doc.charAt(prev - 1))) { - prev--; - } - replaceRange(prev, caret, "", true); - } - } - - private void deleteForward() { - if (!editable) { - return; - } - if (hasSelection()) { - replaceRange(getSelectionStart(), getSelectionEnd(), "", true); - return; - } - if (caret < doc.length()) { - int next = caret + 1; - if (next < doc.length() && Character.isHighSurrogate(doc.charAt(caret)) && Character.isLowSurrogate(doc.charAt(next))) { - next++; - } - replaceRange(caret, next, "", true); - } - } - - // ---- navigation ---- - - /// Moves the caret to a new offset, optionally extending the selection. - /// - /// #### Parameters - /// - /// - `newCaret`: the target offset (clamped to the document) - /// - /// - `extend`: true to extend the selection from the current anchor - public void moveCaret(int newCaret, boolean extend) { - touchSelection = false; - newCaret = doc.clamp(newCaret); - if (extend) { - if (anchor < 0) { - anchor = caret; - } - } else { - anchor = -1; - } - caret = newCaret; - undo.breakRun(); - resetBlink(); - scrollCaretVisible(); - pushInputState(); - repaint(); - } - - private int caretLeft() { - int p = caret - 1; - if (p > 0 && Character.isLowSurrogate(doc.charAt(p)) && Character.isHighSurrogate(doc.charAt(p - 1))) { - p--; - } - return p; - } - - private int caretRight() { - int p = caret + 1; - if (p < doc.length() && Character.isHighSurrogate(doc.charAt(caret)) && Character.isLowSurrogate(doc.charAt(p))) { - p++; - } - return p; - } - - private int caretVertical(int delta) { - int cl = doc.lineOfOffset(caret); - int col = caret - doc.getLineStart(cl); - int target = clampInt(cl + delta, 0, doc.getLineCount() - 1); - int lineLen = doc.getLineEnd(target) - doc.getLineStart(target); - return doc.getLineStart(target) + Math.min(col, lineLen); - } - - private void lineHome(boolean extend) { - moveCaret(doc.getLineStart(doc.lineOfOffset(caret)), extend); - } - - private void lineEndKey(boolean extend) { - moveCaret(doc.getLineEnd(doc.lineOfOffset(caret)), extend); - } - - /// Selects the entire document. - public void selectAll() { - anchor = 0; - caret = doc.length(); - resetBlink(); - pushInputState(); - repaint(); - } - - // ---- clipboard ---- - - protected void copySelection() { - if (hasSelection()) { - Display.getInstance().copyToClipboard(doc.substring(getSelectionStart(), getSelectionEnd())); - } - } - - private void cutSelection() { - if (hasSelection() && editable) { - copySelection(); - replaceRange(getSelectionStart(), getSelectionEnd(), "", true); - } - } - - private void pasteClipboard() { - if (!editable) { - return; - } - Object data = Display.getInstance().getPasteDataFromClipboard(); - pasteClipboardData(data); - } - - /// Inserts clipboard data. Rich editor subclasses may override this to preserve formatting. - protected void pasteClipboardData(Object data) { - if (data instanceof RichTextClipboardData) { - insertText(((RichTextClipboardData) data).getPlainText()); - return; - } - if (data instanceof String) { - insertText((String) data); - } - } - - // ---- document change plumbing ---- - - private void onDocumentChanged() { - composingStart = -1; - composingEnd = -1; - touchSelection = false; - invalidateLayout(); - resetBlink(); - scrollCaretVisible(); - if (host != null) { - host.editorChanged(); - } - pushInputState(); - repaint(); - } - - private int maxScroll() { - return Math.max(0, contentTotalHeight() - contentHeight()); - } - - private int cachedMaxLineWidth = -1; - - private int maxScrollX() { - if (cachedMaxLineWidth < 0) { - Font f = getEditorFont(); - int w = 0; - int lc = doc.getLineCount(); - for (int i = 0; i < lc; i++) { - int lw = lineContentOffsetX(i) + f.stringWidth(doc.getLineText(i)); - if (lw > w) { - w = lw; - } - } - cachedMaxLineWidth = w; - } - return Math.max(0, cachedMaxLineWidth - contentWidth() + getEditorFont().charWidth('m') * 2); - } - - /// Returns the extra left offset of a line's text within the content area (0 for plain text and - /// code; the rich text editor overrides this for list bullets, indentation, block quotes and - /// alignment so the caret and selection line up with the drawn text). - protected int lineContentOffsetX(int line) { - return 0; - } - - /// Pixel width of the substring `text[from, to)`. `Font.substringWidth` takes an offset and a length, - /// so this converts an end index to a length for the bidi geometry helpers. - private static int subw(Font f, String text, int from, int to) { - if (to <= from) { - return 0; - } - return f.substringWidth(text, from, to - from); - } - - /// Returns the visual pixel x (from the start of a line) of the caret before logical column `col`. - /// For plain left-to-right text this is simply the substring width; for lines containing right-to-left - /// or mixed (bidirectional) text it maps the logical column through the resolved visual order so the - /// caret lines up with the reordered glyphs. The rich text editor overrides this to measure per styled - /// run. - protected int measureColumnX(int line, String text, int col, Font f) { - if (BidiUtil.isTrivialLtr(text, isRTL())) { - return f.substringWidth(text, 0, col); - } - int[][] runs = bidiRuns(text, f); - for (int[] run : runs) { - int lo = run[0]; - int hi = run[1]; - int lvl = run[2]; - int rx = run[3]; - if (col >= lo && col <= hi) { - if ((lvl & 1) == 0) { - return rx + subw(f, text, lo, col); - } - return rx + subw(f, text, col, hi); - } - } - return f.substringWidth(text, 0, Math.min(col, text.length())); - } - - /// Returns the column nearest a given content-local x pixel on a line. Bidi aware: it locates the - /// visual run containing the pixel and maps back to a logical column. The rich text editor overrides - /// it to be styled-run aware. - protected int columnAtX(int line, String text, int localX, Font f) { - if (BidiUtil.isTrivialLtr(text, isRTL())) { - int col = 0; - while (col < text.length()) { - int wFull = measureColumnX(line, text, col + 1, f); - int wHalf = (measureColumnX(line, text, col, f) + wFull) / 2; - if (localX < wHalf) { - break; - } - col++; - } - return col; - } - int[][] runs = bidiRuns(text, f); - for (int r = 0; r < runs.length; r++) { - int lo = runs[r][0]; - int hi = runs[r][1]; - int lvl = runs[r][2]; - int rx = runs[r][3]; - int rw = subw(f, text, lo, hi); - boolean lastRun = r == runs.length - 1; - if (localX < rx + rw || lastRun) { - if ((lvl & 1) == 0) { - int col = lo; - while (col < hi) { - int wa = rx + subw(f, text, lo, col); - int wb = rx + subw(f, text, lo, col + 1); - if (localX < (wa + wb) / 2) { - break; - } - col++; - } - return col; - } - int col = hi; - while (col > lo) { - int wa = rx + subw(f, text, col, hi); - int wb = rx + subw(f, text, col - 1, hi); - if (localX < (wa + wb) / 2) { - break; - } - col--; - } - return col; - } - } - return text.length(); - } - - /// Builds the visual directional runs of a line for bidi layout. Each entry is - /// `{logicalStart, logicalEnd, level, runX}` where `runX` is the pixel offset of the run's left edge - /// from the line content start. Runs are returned in visual (left to right) order. - private int[][] bidiRuns(String text, Font f) { - int n = text.length(); - byte[] levels = BidiUtil.resolveLevels(text, isRTL()); - int[] v2l = BidiUtil.reorderVisual(levels); - java.util.List runs = new java.util.ArrayList(); - int i = 0; - while (i < n) { - int lvl = levels[v2l[i]]; - int j = i; - int lo = v2l[i]; - int hi = v2l[i]; - while (j < n && levels[v2l[j]] == lvl) { - if (v2l[j] < lo) { - lo = v2l[j]; - } - if (v2l[j] > hi) { - hi = v2l[j]; - } - j++; - } - runs.add(new int[]{lo, hi + 1, lvl, 0}); - i = j; - } - int x = 0; - int[][] out = runs.toArray(new int[runs.size()][]); - for (int r = 0; r < out.length; r++) { - out[r][3] = x; - x += subw(f, text, out[r][0], out[r][1]); - } - return out; - } - - /// Returns the visual selection segments for the logical range `[from, to)` on a line as a flat array - /// of `{x, width, x, width, ...}` in content-local pixels. A bidi line can yield several disjoint - /// segments; a plain line yields a single segment. - protected int[] lineVisualSegments(int line, String text, int from, int to, Font f) { - from = clampInt(from, 0, text.length()); - to = clampInt(to, 0, text.length()); - if (from >= to) { - return new int[0]; - } - if (BidiUtil.isTrivialLtr(text, isRTL())) { - int xa = measureColumnX(line, text, from, f); - int xb = measureColumnX(line, text, to, f); - return new int[]{Math.min(xa, xb), Math.abs(xb - xa)}; - } - int[][] runs = bidiRuns(text, f); - java.util.List segs = new java.util.ArrayList(); - for (int[] run : runs) { - int lo = run[0]; - int hi = run[1]; - int lvl = run[2]; - int rx = run[3]; - int a = Math.max(from, lo); - int b = Math.min(to, hi); - if (a >= b) { - continue; - } - int xl; - int xr; - if ((lvl & 1) == 0) { - xl = rx + subw(f, text, lo, a); - xr = rx + subw(f, text, lo, b); - } else { - xl = rx + subw(f, text, b, hi); - xr = rx + subw(f, text, a, hi); - } - segs.add(new int[]{Math.min(xl, xr), Math.abs(xr - xl)}); - } - int[] flat = new int[segs.size() * 2]; - for (int k = 0; k < segs.size(); k++) { - flat[k * 2] = segs.get(k)[0]; - flat[k * 2 + 1] = segs.get(k)[1]; - } - return flat; - } - - private void scrollCaretVisible() { - if (contentHeight() <= 0) { - // The component has not been laid out yet (height is 0, so contentHeight() is - // negative once padding is subtracted). Scrolling to the caret here would push - // scrollY to roughly one line, hiding the first line under the title bar once the - // real bounds arrive. Defer until laidOut() runs with a real viewport. - return; - } - int cl = doc.lineOfOffset(caret); - int top = lineTopContent(cl); - int bottom = top + lineHeightAt(cl); - if (top - scrollY < 0) { - scrollY = top; - } else if (bottom - scrollY > contentHeight()) { - scrollY = bottom - contentHeight(); - } - scrollY = clampInt(scrollY, 0, maxScroll()); - - int caretX = caretContentX(); - int viewW = contentWidth(); - int margin = getEditorFont().charWidth('m') * 2; - if (caretX - scrollX < margin) { - scrollX = Math.max(0, caretX - margin); - } else if (caretX - scrollX > viewW - margin) { - scrollX = caretX - viewW + margin; - } - int maxX = Math.max(0, caretLineWidth() - viewW + margin); - scrollX = clampInt(scrollX, 0, maxX); - } - - private int caretContentX() { - int cl = doc.lineOfOffset(caret); - int col = caret - doc.getLineStart(cl); - String line = doc.getLineText(cl); - if (col > line.length()) { - col = line.length(); - } - return lineContentOffsetX(cl) + measureColumnX(cl, line, col, getEditorFont()); - } - - private int caretLineWidth() { - int cl = doc.lineOfOffset(caret); - return lineContentOffsetX(cl) + getEditorFont().stringWidth(doc.getLineText(cl)); - } - - private void resetBlink() { - caretOn = true; - lastBlink = System.currentTimeMillis(); - } - - @Override - protected void laidOut() { - super.laidOut(); - // Now that the real viewport height is known, apply any scroll-to-caret that was - // deferred while the component was unlaid-out (see scrollCaretVisible), and re-clamp - // a stale scroll offset into range. - scrollY = clampInt(scrollY, 0, maxScroll()); - scrollCaretVisible(); - } - - // ---- focus + input source lifecycle ---- - - @Override - protected void focusGained() { - super.focusGained(); - startInput(); - if (!animRegistered && getComponentForm() != null) { - getComponentForm().registerAnimated(this); - animRegistered = true; - } - resetBlink(); - repaint(); - } - - @Override - protected void focusLost() { - super.focusLost(); - stopInput(); - if (animRegistered && getComponentForm() != null) { - getComponentForm().deregisterAnimated(this); - animRegistered = false; - } - repaint(); - } - - private void startInput() { - if (host != null && inputHandle == null && host.isTextInputSupported()) { - inputHandle = host.startTextInput(this, getConfig()); - inputActive = inputHandle != null; - } - } - - private void stopInput() { - if (host != null && inputHandle != null) { - host.stopTextInput(inputHandle); - } - inputHandle = null; - inputActive = false; - } - - private void pushInputState() { - if (host != null && inputActive) { - host.updateTextInputState(inputHandle, getEditingState()); - } - } - - @Override - public boolean animate() { - boolean sup = super.animate(); - if (hasFocus()) { - long now = System.currentTimeMillis(); - if (now - lastBlink >= 500) { - caretOn = !caretOn; - lastBlink = now; - return true; - } - } - return sup; - } - - // ---- pointer ---- - - private long lastClickTime; - private int lastClickOffset = -1; - private int clickCount; - private boolean multiClickSelecting; - private boolean touchPointerGesture; - private boolean touchScrolling; - private int pointerPressX; - private int pointerPressY; - private int pointerPressScrollX; - private int pointerPressScrollY; - private int pointerPressCaret; - private int pointerPressAnchor; - - @Override - public void pointerPressed(int x, int y) { - requestFocus(); - touchPointerGesture = !Display.getInstance().isDesktop(); - touchScrolling = false; - pointerPressX = x; - pointerPressY = y; - pointerPressScrollX = scrollX; - pointerPressScrollY = scrollY; - pointerPressCaret = caret; - pointerPressAnchor = anchor; - if (handleTouchSelectionPress(x, y)) { - return; - } - int off = offsetAtPoint(x, y); - long now = System.currentTimeMillis(); - if (now - lastClickTime < 400 && Math.abs(off - lastClickOffset) <= 1) { - clickCount++; - } else { - clickCount = 1; - } - lastClickTime = now; - lastClickOffset = off; - if (clickCount == 2) { - multiClickSelecting = true; - selectWordAt(off); - return; - } - if (clickCount >= 3) { - multiClickSelecting = true; - selectLineAt(off); - return; - } - multiClickSelecting = false; - caret = off; - anchor = off; - resetBlink(); - pushInputState(); - repaint(); - } - - @Override - public void pointerDragged(int x, int y) { - if (draggingHandle != 0) { - caret = offsetAtPoint(x, y); - loupeActive = true; - loupeOffset = caret; - resetBlink(); - scrollCaretVisible(); - repaint(); - return; - } - if (loupeActive) { - // long-press caret placement drag: keep the magnifier following the finger - caret = offsetAtPoint(x, y); - loupeOffset = caret; - resetBlink(); - scrollCaretVisible(); - repaint(); - return; - } - if (touchPointerGesture && !multiClickSelecting) { - int dx = x - pointerPressX; - int dy = y - pointerPressY; - int threshold = Math.max(4, getEditorFont().getHeight() / 3); - if (touchScrolling || Math.abs(dx) > threshold || Math.abs(dy) > threshold) { - touchScrolling = true; - caret = pointerPressCaret; - anchor = pointerPressAnchor; - scrollX = clampInt(pointerPressScrollX - dx, 0, maxScrollX()); - scrollY = clampInt(pointerPressScrollY - dy, 0, maxScroll()); - clickCount = 0; - lastClickOffset = -1; - repaint(); - } - return; - } - if (multiClickSelecting) { - return; - } - caret = offsetAtPoint(x, y); - resetBlink(); - scrollCaretVisible(); - repaint(); - } - - @Override - public void pointerReleased(int x, int y) { - boolean wasLoupe = loupeActive; - loupeActive = false; - if (touchScrolling) { - touchScrolling = false; - pushInputState(); - repaint(); - return; - } - if (draggingHandle != 0) { - caret = offsetAtPoint(x, y); - draggingHandle = 0; - touchSelection = hasSelection(); - pushInputState(); - repaint(); - return; - } - if (wasLoupe) { - // finished a long-press caret placement / word selection; keep the current selection or caret - pushInputState(); - repaint(); - return; - } - if (multiClickSelecting) { - multiClickSelecting = false; - return; - } - caret = offsetAtPoint(x, y); - if (anchor == caret) { - anchor = -1; - } - pushInputState(); - repaint(); - } - - // ---- raw keyboard (reference path when no platform input source) ---- - - private boolean isPrimaryModifierDown() { - Display d = Display.getInstance(); - return d.isMetaKeyDown() || d.isControlKeyDown(); - } - - private boolean handleShortcut(int keyCode) { - Display d = Display.getInstance(); - if (!(d.isMetaKeyDown() || d.isControlKeyDown()) || d.isAltKeyDown()) { - return false; - } - char ch = Character.toLowerCase((char) keyCode); - if (ch == 'c') { - copySelection(); - return true; - } - if (ch == 'x') { - cutSelection(); - return true; - } - if (ch == 'v') { - pasteClipboard(); - return true; - } - if (ch == 'a') { - selectAll(); - return true; - } - if (ch == 'z') { - if (d.isShiftKeyDown()) { - performRedo(); - } else { - performUndo(); - } - return true; - } - if (ch == 'y') { - performRedo(); - return true; - } - return false; - } - - private boolean handleNavKey(int keyCode) { - Display d = Display.getInstance(); - boolean shift = d.isShiftKeyDown(); - boolean word = d.isAltKeyDown(); - boolean lineJump = d.isMetaKeyDown() || d.isControlKeyDown(); - int action = d.getGameAction(keyCode); - if (action == Display.GAME_LEFT) { - if (lineJump) { - lineHome(shift); - } else if (word) { - moveCaret(wordLeft(), shift); - } else { - moveCaret(caretLeft(), shift); - } - return true; - } - if (action == Display.GAME_RIGHT) { - if (lineJump) { - lineEndKey(shift); - } else if (word) { - moveCaret(wordRight(), shift); - } else { - moveCaret(caretRight(), shift); - } - return true; - } - if (action == Display.GAME_UP) { - if (lineJump) { - moveCaret(0, shift); - } else { - moveCaret(caretVertical(-1), shift); - } - return true; - } - if (action == Display.GAME_DOWN) { - if (lineJump) { - moveCaret(doc.length(), shift); - } else { - moveCaret(caretVertical(1), shift); - } - return true; - } - if (keyCode == 8) { - deleteBackward(); - return true; - } - if (keyCode == 127) { - deleteForward(); - return true; - } - return false; - } - - private static boolean isWordChar(char c) { - return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_'; - } - - private int wordLeft() { - int p = caret; - while (p > 0 && !isWordChar(doc.charAt(p - 1))) { - p--; - } - while (p > 0 && isWordChar(doc.charAt(p - 1))) { - p--; - } - return p; - } - - private int wordRight() { - int p = caret; - int n = doc.length(); - while (p < n && !isWordChar(doc.charAt(p))) { - p++; - } - while (p < n && isWordChar(doc.charAt(p))) { - p++; - } - return p; - } - - private void selectWordAt(int offset) { - int s = offset; - int e = offset; - while (s > 0 && isWordChar(doc.charAt(s - 1))) { - s--; - } - while (e < doc.length() && isWordChar(doc.charAt(e))) { - e++; - } - anchor = s; - caret = e; - resetBlink(); - pushInputState(); - repaint(); - } - - private void selectLineAt(int offset) { - int line = doc.lineOfOffset(offset); - anchor = doc.getLineStart(line); - caret = doc.getLineEnd(line); - resetBlink(); - pushInputState(); - repaint(); - } - - @Override - public void keyPressed(int keyCode) { - if (!inputActive && editable) { - if (handleShortcut(keyCode)) { - return; - } - if (handleNavKey(keyCode)) { - return; - } - } - super.keyPressed(keyCode); - } - - @Override - public void keyRepeated(int keyCode) { - if (!inputActive && editable && !isPrimaryModifierDown() && handleNavKey(keyCode)) { - return; - } - super.keyRepeated(keyCode); - } - - @Override - public void keyReleased(int keyCode) { - if (!inputActive && editable) { - if (isPrimaryModifierDown() || Display.getInstance().isAltKeyDown()) { - // modifier combos are handled in keyPressed; never type the raw character - return; - } - if (keyCode == 10 || keyCode == 13) { - insertText("\n"); - return; - } - if (keyCode == 9) { - insertText("\t"); - return; - } - int action = Display.getInstance().getGameAction(keyCode); - if (action == 0 && keyCode >= 32 && keyCode != 127) { - insertText(String.valueOf((char) keyCode)); - return; - } - } - super.keyReleased(keyCode); - } - - // ---- TextInputClient ---- - - @Override - public void commitText(String text) { - if (!editable) { - return; - } - if (composingStart >= 0) { - replaceRange(composingStart, composingEnd, text, true); - return; - } - if (handleTypedText(text)) { - return; - } - replaceRange(getSelectionStart(), getSelectionEnd(), text, true); - } - - @Override - public void setComposingText(String text, int relativeCaret) { - if (!editable) { - return; - } - String value = EditorDocument.normalizeText(text == null ? "" : text); - int start; - int end; - if (composingStart >= 0) { - start = composingStart; - end = composingEnd; - } else { - start = getSelectionStart(); - end = getSelectionEnd(); - } - start = doc.clamp(start); - end = doc.clamp(end); - String removed = doc.substring(start, end); - doc.delete(start, end); - doc.insert(start, value); - composingStart = start; - composingEnd = start + value.length(); - caret = composingEnd; - anchor = -1; - // composition is not recorded until finalized; keep undo aware of the net removal only once - undo.breakRun(); - documentEdited(start); - documentReplaced(start, removed, value); - if (removed.length() > 0 || value.length() > 0) { - resetBlink(); - scrollCaretVisible(); - if (host != null) { - host.editorChanged(); - } - pushInputState(); - repaint(); - } - } - - @Override - public void finishComposing() { - composingStart = -1; - composingEnd = -1; - } - - @Override - public void deleteSurroundingText(int before, int after) { - if (!editable) { - return; - } - int s = doc.clamp(caret - Math.max(0, before)); - int e = doc.clamp(caret + Math.max(0, after)); - replaceRange(s, e, "", true); - } - - @Override - public void onKeyCommand(int command, int modifiers) { - boolean extend = (modifiers & MOD_SHIFT) != 0; - switch (command) { - case KEY_LEFT: - moveCaret(caretLeft(), extend); - break; - case KEY_RIGHT: - moveCaret(caretRight(), extend); - break; - case KEY_UP: - moveCaret(caretVertical(-1), extend); - break; - case KEY_DOWN: - moveCaret(caretVertical(1), extend); - break; - case KEY_HOME: - lineHome(extend); - break; - case KEY_END: - lineEndKey(extend); - break; - case KEY_PAGE_UP: - moveCaret(caretVertical(-Math.max(1, contentHeight() / getLineHeight())), extend); - break; - case KEY_PAGE_DOWN: - moveCaret(caretVertical(Math.max(1, contentHeight() / getLineHeight())), extend); - break; - case KEY_BACKSPACE: - deleteBackward(); - break; - case KEY_DELETE: - deleteForward(); - break; - case KEY_COPY: - copySelection(); - break; - case KEY_CUT: - cutSelection(); - break; - case KEY_PASTE: - pasteClipboard(); - break; - case KEY_SELECT_ALL: - selectAll(); - break; - case KEY_UNDO: - performUndo(); - break; - case KEY_REDO: - performRedo(); - break; - default: - break; - } - } - - /// Undoes the last edit. - public void performUndo() { - UndoManager.Edit edit = undo.undoEdit(doc); - if (edit != null) { - caret = doc.clamp(edit.start + edit.removed.length()); - anchor = -1; - documentEdited(edit.start); - documentReplaced(edit.start, edit.inserted, edit.removed); - restoreDocumentState(edit.beforeState); - onDocumentChanged(); - } - } - - /// Redoes the last undone edit. - public void performRedo() { - UndoManager.Edit edit = undo.redoEdit(doc); - if (edit != null) { - caret = doc.clamp(edit.start + edit.inserted.length()); - anchor = -1; - documentEdited(edit.start); - documentReplaced(edit.start, edit.removed, edit.inserted); - restoreDocumentState(edit.afterState); - onDocumentChanged(); - } - } - - @Override - public void onEditorAction(int action) { - if (action == TextInputConfig.ACTION_DEFAULT && editable) { - insertText("\n"); - } - } - - @Override - public TextInputState getEditingState() { - return new TextInputState(doc.getText(), getSelectionStart(), getSelectionEnd(), composingStart, composingEnd); - } - - @Override - public int[] getCaretRect() { - return rectForOffset(caret); - } - - @Override - public int[] rectForOffset(int offset) { - offset = doc.clamp(offset); - Font f = getEditorFont(); - int cl = doc.lineOfOffset(offset); - int col = offset - doc.getLineStart(cl); - String line = doc.getLineText(cl); - if (col > line.length()) { - col = line.length(); - } - int localX = getContentLeftInset() + lineContentOffsetX(cl) + measureColumnX(cl, line, col, f) - scrollX; - int localY = getStyle().getPaddingTop() + lineTopContent(cl) - scrollY; - return new int[]{getAbsoluteX() + localX, getAbsoluteY() + localY, Math.max(1, f.getHeight() / 16), lineHeightAt(cl)}; - } - - @Override - public int getTextLength() { - return doc.length(); - } - - @Override - public String getTextRange(int start, int end) { - start = doc.clamp(start); - end = doc.clamp(end); - if (start > end) { - int t = start; - start = end; - end = t; - } - return doc.substring(start, end); - } - - @Override - public int[] selectionRects(int start, int end) { - start = doc.clamp(start); - end = doc.clamp(end); - if (start > end) { - int t = start; - start = end; - end = t; - } - Font f = getEditorFont(); - int firstLine = doc.lineOfOffset(start); - int lastLine = doc.lineOfOffset(end); - java.util.List rects = new java.util.ArrayList(); - for (int ln = firstLine; ln <= lastLine; ln++) { - int ls = doc.getLineStart(ln); - int le = doc.getLineEnd(ln); - String text = doc.getLineText(ln); - int a = clampInt(Math.max(start, ls) - ls, 0, text.length()); - int b = clampInt(Math.min(end, le) - ls, 0, text.length()); - int lx = getContentLeftInset() + lineContentOffsetX(ln) - scrollX; - int y = getStyle().getPaddingTop() + lineTopContent(ln) - scrollY; - // A bidi line can produce several disjoint visual rectangles for one logical range. - int[] segs = lineVisualSegments(ln, text, a, b, f); - boolean crossesEol = ln < lastLine && end > le; - if (segs.length == 0 && crossesEol) { - int ex = lx + measureColumnX(ln, text, text.length(), f); - rects.add(new int[]{getAbsoluteX() + ex, getAbsoluteY() + y, f.charWidth(' '), lineHeightAt(ln)}); - } - for (int si = 0; si < segs.length; si += 2) { - int rx = lx + segs[si]; - int rw = segs[si + 1]; - // extend the last segment to cover the trailing newline when the selection wraps - if (crossesEol && si == segs.length - 2) { - rw += f.charWidth(' '); - } - rects.add(new int[]{getAbsoluteX() + rx, getAbsoluteY() + y, Math.max(1, rw), lineHeightAt(ln)}); - } - } - int[] out = new int[rects.size() * 4]; - for (int i = 0; i < rects.size(); i++) { - int[] r = rects.get(i); - out[i * 4] = r[0]; - out[i * 4 + 1] = r[1]; - out[i * 4 + 2] = r[2]; - out[i * 4 + 3] = r[3]; - } - return out; - } - - @Override - public void replaceRange(int start, int end, String text) { - replaceRange(start, end, text, true); - } - - @Override - public void setSelectionRange(int start, int end) { - start = doc.clamp(start); - end = doc.clamp(end); - anchor = start == end ? -1 : start; - caret = end; - resetBlink(); - scrollCaretVisible(); - repaint(); - } - - @Override - public TextInputConfig getConfig() { - TextInputConfig cfg = new TextInputConfig(); - if (codeMode) { - cfg.setAutoCorrect(false).setAutoCapitalize(false); - } - cfg.setMultiline(true); - return cfg; - } - - @Override - public void inputFocusGained() { - } - - @Override - public void inputFocusLost() { - } - - // ---- preferred size ---- - - @Override - protected Dimension calcPreferredSize() { - Font f = getEditorFont(); - int w = 20 * f.charWidth('m') + getContentLeftInset() + getStyle().getPaddingRightNoRTL(); - int h = 6 * getLineHeight() + getStyle().getPaddingTop() + getStyle().getPaddingBottom(); - return new Dimension(w, h); - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java b/CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java deleted file mode 100644 index 29c2165f28c..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java +++ /dev/null @@ -1,514 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import com.codename1.ui.html.HTMLParser; -import com.codename1.xml.Element; - -import java.io.StringReader; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/// Parses an HTML string into the pure rich text editor model (plain text plus per character -/// `TextStyle` and per paragraph `RichBlocks.BlockAttr`). Parsing and entity decoding are delegated to -/// the framework's tolerant `HTMLParser`/`XMLParser` implementation; this class only maps the resulting -/// DOM onto the editor model. It handles the HTML that `HtmlSerializer` emits plus common external -/// markup (headings, paragraphs, lists, bold / italic / underline / strike, colored spans and links). -public final class HtmlImporter { - /// The imported content. - public static final class Result { - private final String text; - private final List styles; - private final List blocks; - private final List links; - private final List imageSources; - private final boolean blockContent; - - Result(String text, List styles, List blocks, - List links, List imageSources, boolean blockContent) { - this.text = text; - this.styles = styles; - this.blocks = blocks; - this.links = links; - this.imageSources = imageSources; - this.blockContent = blockContent; - } - - /// The plain text. - public String getText() { - return text; - } - - /// One style per character. - public List getStyles() { - return styles; - } - - /// One block attribute per paragraph. - public List getBlocks() { - return blocks; - } - - /// One hyperlink target per character, null outside links. - public List getLinks() { - return links; - } - - /// One image source per character, non-null only for object-replacement characters. - public List getImageSources() { - return imageSources; - } - - /// True when the fragment explicitly contained block-level markup. - public boolean hasBlockContent() { - return blockContent; - } - } - - private final StringBuilder text = new StringBuilder(); // NOPMD - intentional owned buffer - private final List styles = new ArrayList(); - private final List links = new ArrayList(); - private final List imageSources = new ArrayList(); - private final List paras = new ArrayList(); - private boolean freshParagraph = true; - private boolean lastWasSpace = true; - - private TextStyle current = TextStyle.DEFAULT; - private final List styleStack = new ArrayList(); - private final List linkStack = new ArrayList(); - private String currentHref; - private boolean blockContent; - // list context stack: each entry is {listType, indent} - private final List listStack = new ArrayList(); - - private HtmlImporter() { - } - - /// Parses HTML into an editor model result. - public static Result parse(String html) { - HtmlImporter imp = new HtmlImporter(); - imp.parseFragment(html == null ? "" : html); - if (imp.paras.isEmpty()) { - imp.paras.add(new RichBlocks.BlockAttr()); - } - return new Result(imp.text.toString(), imp.styles, imp.paras, imp.links, imp.imageSources, - imp.blockContent); - } - - // ---- framework HTML parser bridge ---- - - private void parseFragment(String html) { - HTMLParser parser = new HTMLParser(true); - Element root = parser.parse(new StringReader("
" + html + "
")); - if (root == null) { - return; - } - for (int i = 0; i < root.getNumChildren(); i++) { - walk(root.getChildAt(i)); - } - } - - private void walk(Element element) { - if (element.isTextElement()) { - appendText(element.getText()); - return; - } - String name = element.getTagName().toLowerCase(); - if ("head".equals(name) || "style".equals(name) || "script".equals(name)) { - return; - } - startTag(name, attributes(element)); - for (int i = 0; i < element.getNumChildren(); i++) { - walk(element.getChildAt(i)); - } - endTag(name); - } - - private static Map attributes(Element element) { - Map attrs = new HashMap(); - String[] names = {"style", "align", "href", "src", "color", "size", "data-indent"}; - for (String name : names) { - String value = element.getAttribute(name); - if (value != null) { - attrs.put(name, value); - } - } - return attrs; - } - - // ---- tag handling ---- - - private void startTag(String name, Map attrs) { - if ("br".equals(name)) { - blockContent = true; - newParagraph(currentBlockCtx()); - return; - } - if ("img".equals(name)) { - appendImage(attrs.get("src")); - return; - } - if ("hr".equals(name)) { - return; - } - if ("ol".equals(name) || "ul".equals(name)) { - blockContent = true; - listStack.add(new int[]{"ol".equals(name) ? RichBlocks.LIST_ORDERED : RichBlocks.LIST_UNORDERED, 0}); - return; - } - if (isBlockTag(name) || "li".equals(name)) { - blockContent = true; - startBlock(blockAttrFor(name, attrs)); - return; - } - // inline tag - if (isInlineTag(name)) { - styleStack.add(current); - linkStack.add(currentHref); - current = applyInlineTag(name, current, attrs); - if ("a".equals(name)) { - currentHref = attrs.get("href"); - } - } - } - - private void endTag(String name) { - if ("ol".equals(name) || "ul".equals(name)) { - if (!listStack.isEmpty()) { - listStack.remove(listStack.size() - 1); - } - return; - } - if (isInlineTag(name)) { - if (!styleStack.isEmpty()) { - current = styleStack.remove(styleStack.size() - 1); - } - if (!linkStack.isEmpty()) { - currentHref = linkStack.remove(linkStack.size() - 1); - } - } - } - - private static boolean isBlockTag(String tag) { - return "p".equals(tag) || "div".equals(tag) || "pre".equals(tag) || "blockquote".equals(tag) - || (tag.length() == 2 && tag.charAt(0) == 'h' && tag.charAt(1) >= '1' && tag.charAt(1) <= '6'); - } - - private static boolean isInlineTag(String tag) { - return "b".equals(tag) || "strong".equals(tag) || "i".equals(tag) || "em".equals(tag) - || "u".equals(tag) || "s".equals(tag) || "strike".equals(tag) || "del".equals(tag) - || "a".equals(tag) || "span".equals(tag) || "font".equals(tag); - } - - private RichBlocks.BlockAttr currentBlockCtx() { - RichBlocks.BlockAttr a = new RichBlocks.BlockAttr(); - if (!listStack.isEmpty()) { - int[] top = listStack.get(listStack.size() - 1); - a.listType = top[0]; - a.indent = listStack.size() - 1; - } - return a; - } - - private RichBlocks.BlockAttr blockAttrFor(String tag, Map attrs) { - RichBlocks.BlockAttr attr = currentBlockCtx(); - if (tag.length() == 2 && tag.charAt(0) == 'h') { - attr.type = RichBlocks.H1 + (tag.charAt(1) - '1'); - attr.listType = RichBlocks.LIST_NONE; - } else if ("pre".equals(tag)) { - attr.type = RichBlocks.PRE; - attr.listType = RichBlocks.LIST_NONE; - } else if ("blockquote".equals(tag)) { - attr.type = RichBlocks.BLOCKQUOTE; - attr.listType = RichBlocks.LIST_NONE; - } else if ("li".equals(tag)) { - attr.type = RichBlocks.PARAGRAPH; - } else { - attr.type = RichBlocks.PARAGRAPH; - if (!"li".equals(tag)) { - attr.listType = RichBlocks.LIST_NONE; - } - } - String styleAttr = attrs.get("style"); - if (styleAttr != null) { - String align = cssValue(styleAttr, "text-align"); - if ("center".equals(align)) { - attr.align = RichBlocks.ALIGN_CENTER; - } else if ("right".equals(align)) { - attr.align = RichBlocks.ALIGN_RIGHT; - } else if ("left".equals(align)) { - attr.align = RichBlocks.ALIGN_LEFT; - } - } - String dataIndent = attrs.get("data-indent"); - if (dataIndent != null) { - try { - attr.indent = Integer.parseInt(dataIndent.trim()); - } catch (NumberFormatException err) { // NOPMD - malformed input, intentionally ignored - // ignore - } - } - return attr; - } - - private TextStyle applyInlineTag(String tag, TextStyle style, Map attrs) { - if ("b".equals(tag) || "strong".equals(tag)) { - return style.withBold(true); - } - if ("i".equals(tag) || "em".equals(tag)) { - return style.withItalic(true); - } - if ("u".equals(tag)) { - return style.withUnderline(true); - } - if ("s".equals(tag) || "strike".equals(tag) || "del".equals(tag)) { - return style.withStrike(true); - } - if ("a".equals(tag)) { - return style.withUnderline(true).withForeColor(0x1a73e8); - } - if ("span".equals(tag) || "font".equals(tag)) { - TextStyle s = style; - String styleAttr = attrs.get("style"); - if (styleAttr != null) { - int color = parseColor(cssValue(styleAttr, "color")); - if (color >= 0) { - s = s.withForeColor(color); - } - int bg = parseColor(cssValue(styleAttr, "background-color")); - if (bg < 0) { - bg = parseColor(cssValue(styleAttr, "background")); - } - if (bg >= 0) { - s = s.withHighlight(bg); - } - String fw = cssValue(styleAttr, "font-weight"); - if ("bold".equals(fw) || "700".equals(fw)) { - s = s.withBold(true); - } - String fs = cssValue(styleAttr, "font-style"); - if ("italic".equals(fs)) { - s = s.withItalic(true); - } - int level = fontSizeLevel(cssValue(styleAttr, "font-size")); - if (level > 0) { - s = s.withFontSizeLevel(level); - } - } - String colorAttr = attrs.get("color"); - if (colorAttr != null) { - int color = parseColor(colorAttr); - if (color >= 0) { - s = s.withForeColor(color); - } - } - return s; - } - return style; - } - - // ---- model builders ---- - - private void startBlock(RichBlocks.BlockAttr attr) { - if (!freshParagraph) { - text.append('\n'); - styles.add(TextStyle.DEFAULT); - links.add(null); - imageSources.add(null); - paras.add(attr); - freshParagraph = true; - lastWasSpace = true; - } else if (paras.isEmpty()) { - paras.add(attr); - } else { - paras.set(paras.size() - 1, attr); - } - } - - private void newParagraph(RichBlocks.BlockAttr attr) { - if (paras.isEmpty()) { - paras.add(new RichBlocks.BlockAttr()); - } - text.append('\n'); - styles.add(TextStyle.DEFAULT); - links.add(null); - imageSources.add(null); - paras.add(attr); - freshParagraph = true; - lastWasSpace = true; - } - - private void appendText(String t) { - if (t == null || t.length() == 0) { - return; - } - if (paras.isEmpty()) { - paras.add(new RichBlocks.BlockAttr()); - } - for (int i = 0; i < t.length(); i++) { - char c = t.charAt(i); - if (c == ' ' || c == '\n' || c == '\r' || c == '\t') { - if (lastWasSpace) { - continue; - } - text.append(' '); - styles.add(current); - links.add(currentHref); - imageSources.add(null); - lastWasSpace = true; - freshParagraph = false; - } else { - text.append(c); - styles.add(current); - links.add(currentHref); - imageSources.add(null); - lastWasSpace = false; - freshParagraph = false; - } - } - } - - private void appendImage(String source) { - if (paras.isEmpty()) { - paras.add(new RichBlocks.BlockAttr()); - } - text.append('\uFFFC'); - styles.add(current); - links.add(currentHref); - imageSources.add(source == null ? "" : source); - lastWasSpace = false; - freshParagraph = false; - } - - // ---- css helpers ---- - - private static String cssValue(String styleAttr, String prop) { - String lower = styleAttr.toLowerCase(); - int idx = lower.indexOf(prop); - while (idx >= 0) { - boolean boundary = idx == 0 || lower.charAt(idx - 1) == ';' || lower.charAt(idx - 1) == ' '; - int colon = lower.indexOf(':', idx); - if (boundary && colon == idx + prop.length()) { - int end = lower.indexOf(';', colon); - if (end < 0) { - end = styleAttr.length(); - } - return styleAttr.substring(colon + 1, end).trim(); - } - idx = lower.indexOf(prop, idx + 1); - } - return null; - } - - private static int parseColor(String v) { - if (v == null) { - return -1; - } - v = v.trim(); - if (v.startsWith("#")) { - String hex = v.substring(1); - if (hex.length() == 3) { - char r = hex.charAt(0); - char g = hex.charAt(1); - char b = hex.charAt(2); - hex = "" + r + r + g + g + b + b; - } - if (hex.length() >= 6) { - try { - return Integer.parseInt(hex.substring(0, 6), 16); - } catch (NumberFormatException err) { - return -1; - } - } - return -1; - } - if (v.startsWith("rgb")) { - int open = v.indexOf('('); - int close = v.indexOf(')'); - if (open >= 0 && close > open) { - String[] parts = split(v.substring(open + 1, close), ','); - if (parts.length >= 3) { - try { - int r = Integer.parseInt(parts[0].trim()); - int g = Integer.parseInt(parts[1].trim()); - int b = Integer.parseInt(parts[2].trim()); - return ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff); - } catch (NumberFormatException err) { - return -1; - } - } - } - } - return -1; - } - - private static int fontSizeLevel(String v) { - if (v == null) { - return 0; - } - v = v.trim(); - if (v.endsWith("%")) { - try { - int pct = Integer.parseInt(v.substring(0, v.length() - 1).trim()); - if (pct <= 70) { - return 1; - } - if (pct <= 85) { - return 2; - } - if (pct <= 100) { - return 3; - } - if (pct <= 115) { - return 4; - } - if (pct <= 150) { - return 5; - } - if (pct <= 200) { - return 6; - } - return 7; - } catch (NumberFormatException err) { - return 0; - } - } - return 0; - } - - private static String[] split(String s, char c) { - List out = new ArrayList(); - int start = 0; - for (int i = 0; i < s.length(); i++) { - if (s.charAt(i) == c) { - out.add(s.substring(start, i)); - start = i + 1; - } - } - out.add(s.substring(start)); - return out.toArray(new String[out.size()]); - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/HtmlSerializer.java b/CodenameOne/src/com/codename1/ui/editor/HtmlSerializer.java deleted file mode 100644 index 068faa69670..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/HtmlSerializer.java +++ /dev/null @@ -1,260 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import java.util.List; - -/// Serializes the pure rich text editor model (text + `InlineStyles` + `RichBlocks`) back into an HTML -/// string for `RichTextArea#getHtml`. The output is model canonical rather than byte identical, which -/// matches how a `contenteditable` surface normalized HTML in the previous backend. -public final class HtmlSerializer { - private HtmlSerializer() { - } - - /// Serializes the model into HTML. - /// - /// #### Parameters - /// - /// - `doc`: the text document - /// - /// - `inline`: the inline style model - /// - /// - `blocks`: the block attribute model - public static String serialize(EditorDocument doc, InlineStyles inline, RichBlocks blocks, - List links, List imageSources) { - StringBuilder sb = new StringBuilder(); - String currentList = null; - int lineCount = doc.getLineCount(); - for (int p = 0; p < lineCount; p++) { - RichBlocks.BlockAttr b = blocks.get(p); - String desiredList = b.listType == RichBlocks.LIST_ORDERED ? "ol" - : b.listType == RichBlocks.LIST_UNORDERED ? "ul" : null; - if (!eq(desiredList, currentList)) { - if (currentList != null) { - sb.append(""); - } - if (desiredList != null) { - sb.append("<").append(desiredList).append(">"); - } - currentList = desiredList; - } - String tag = desiredList != null ? "li" : tagForType(b.type); - sb.append("<").append(tag).append(alignAttr(b.align)).append(indentAttr(b.indent)).append(">"); - appendInline(sb, doc, inline, links, imageSources, p); - sb.append(""); - } - if (currentList != null) { - sb.append(""); - } - return sb.toString(); - } - - private static void appendInline(StringBuilder sb, EditorDocument doc, InlineStyles inline, - List links, List imageSources, int paragraph) { - int start = doc.getLineStart(paragraph); - String text = doc.getLineText(paragraph); - int col = 0; - while (col < text.length()) { - int offset = start + col; - String imageSource = valueAt(imageSources, offset); - String href = valueAt(links, offset); - if (text.charAt(col) == '\uFFFC' && imageSource != null) { - if (href != null) { - sb.append(""); - } - sb.append(""); - if (href != null) { - sb.append(""); - } - col++; - continue; - } - TextStyle st = inline.styleAt(start + col); - int end = col + 1; - while (end < text.length() && text.charAt(end) != '\uFFFC' - && inline.styleAt(start + end).equals(st) - && eq(href, valueAt(links, start + end))) { - end++; - } - appendRun(sb, st, href, text.substring(col, end)); - col = end; - } - } - - private static void appendRun(StringBuilder sb, TextStyle st, String href, String text) { - StringBuilder span = new StringBuilder(); - if (st.getForeColor() >= 0) { - span.append("color:").append(css(st.getForeColor())).append(";"); - } - if (st.getHighlight() >= 0) { - span.append("background-color:").append(css(st.getHighlight())).append(";"); - } - if (st.getFontSizeLevel() > 0) { - span.append("font-size:").append(fontSizePercent(st.getFontSizeLevel())).append("%;"); - } - boolean hasSpan = span.length() > 0; - if (hasSpan) { - sb.append(""); - } - if (href != null) { - sb.append(""); - } - if (st.isBold()) { - sb.append(""); - } - if (st.isItalic()) { - sb.append(""); - } - if (st.isUnderline()) { - sb.append(""); - } - if (st.isStrike()) { - sb.append(""); - } - sb.append(escape(text)); - if (st.isStrike()) { - sb.append(""); - } - if (st.isUnderline()) { - sb.append(""); - } - if (st.isItalic()) { - sb.append(""); - } - if (st.isBold()) { - sb.append(""); - } - if (href != null) { - sb.append(""); - } - if (hasSpan) { - sb.append(""); - } - } - - private static String tagForType(int type) { - if (type >= RichBlocks.H1 && type <= RichBlocks.H1 + 5) { - return "h" + (type - RichBlocks.H1 + 1); - } - if (type == RichBlocks.PRE) { - return "pre"; - } - if (type == RichBlocks.BLOCKQUOTE) { - return "blockquote"; - } - return "p"; - } - - private static String alignAttr(int align) { - if (align == RichBlocks.ALIGN_CENTER) { - return " style=\"text-align:center\""; - } - if (align == RichBlocks.ALIGN_RIGHT) { - return " style=\"text-align:right\""; - } - return ""; - } - - private static String indentAttr(int indent) { - if (indent > 0) { - return " data-indent=\"" + indent + "\""; - } - return ""; - } - - private static int fontSizePercent(int level) { - switch (level) { - case 1: - return 70; - case 2: - return 85; - case 4: - return 115; - case 5: - return 150; - case 6: - return 200; - case 7: - return 250; - default: - return 100; - } - } - - private static String css(int rgb) { - String s = Integer.toHexString(rgb & 0xffffff); - while (s.length() < 6) { - s = "0" + s; - } - return "#" + s; - } - - private static boolean eq(String a, String b) { - return a == null ? b == null : a.equals(b); - } - - private static String valueAt(List values, int index) { - return index >= 0 && index < values.size() ? values.get(index) : null; - } - - private static String escapeAttribute(String value) { - StringBuilder sb = new StringBuilder(value.length()); - for (int i = 0; i < value.length(); i++) { - char c = value.charAt(i); - if (c == '&') { - sb.append("&"); - } else if (c == '<') { - sb.append("<"); - } else if (c == '>') { - sb.append(">"); - } else if (c == '"') { - sb.append("""); - } else { - sb.append(c); - } - } - return sb.toString(); - } - - private static String escape(String s) { - StringBuilder sb = new StringBuilder(s.length()); - for (int i = 0; i < s.length(); i++) { - char c = s.charAt(i); - if (c == '\uFFFC') { - sb.append(""); - continue; - } - if (c == '&') { - sb.append("&"); - } else if (c == '<') { - sb.append("<"); - } else if (c == '>') { - sb.append(">"); - } else { - sb.append(c); - } - } - return sb.toString(); - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/InlineStyles.java b/CodenameOne/src/com/codename1/ui/editor/InlineStyles.java deleted file mode 100644 index b8fec144603..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/InlineStyles.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import java.util.ArrayList; -import java.util.List; - -/// The per character inline style model for the pure rich text editor. It keeps one `TextStyle` -/// reference for every character in the document, kept in lockstep with the text through `#applyEdit`. -/// Runs of identical style are coalesced only at render time, which keeps edits simple and correct at -/// the cost of one reference per character (rich documents are small enough for this to be a non issue). -public final class InlineStyles { - /// A transform applied to a character's style, used to toggle bold, set a color, etc. - public interface StyleTransform { - /// Returns the new style for a character that currently has `current`. - TextStyle apply(TextStyle current); - } - - private final List perChar = new ArrayList(); - - /// Creates a model of the given length, all default style. - public InlineStyles(int length) { - reset(length); - } - - /// Resets the model to the given length, all default style. - public void reset(int length) { - perChar.clear(); - for (int i = 0; i < length; i++) { - perChar.add(TextStyle.DEFAULT); - } - } - - /// Returns the number of characters covered. - public int length() { - return perChar.size(); - } - - /// Returns the style of the character at `index`, or the default style out of range. - public TextStyle styleAt(int index) { - if (index < 0 || index >= perChar.size()) { - return TextStyle.DEFAULT; - } - return perChar.get(index); - } - - /// Keeps the model in sync with a text replacement: removes `removedLen` styles at `start` and - /// inserts `insertedLen` copies of `style`. - /// - /// #### Parameters - /// - /// - `start`: the offset of the edit - /// - /// - `removedLen`: number of characters removed - /// - /// - `insertedLen`: number of characters inserted - /// - /// - `style`: the style applied to the inserted characters - public void applyEdit(int start, int removedLen, int insertedLen, TextStyle style) { - start = clamp(start); - int end = clamp(start + removedLen); - if (end > start) { - perChar.subList(start, end).clear(); - } - if (insertedLen > 0) { - List ins = new ArrayList(insertedLen); - TextStyle s = style == null ? TextStyle.DEFAULT : style; - for (int i = 0; i < insertedLen; i++) { - ins.add(s); - } - perChar.addAll(Math.min(start, perChar.size()), ins); - } - } - - /// Sets the style of a single character. - public void setAt(int index, TextStyle style) { - if (index >= 0 && index < perChar.size()) { - perChar.set(index, style == null ? TextStyle.DEFAULT : style); - } - } - - /// Applies a transform to every character's style in `[start, end)`. - public void transformRange(int start, int end, StyleTransform t) { - start = clamp(start); - end = clamp(end); - for (int i = start; i < end; i++) { - perChar.set(i, t.apply(perChar.get(i))); - } - } - - /// True when every character in `[start, end)` satisfies the predicate. An empty range checks the - /// character just before the caret (the style typing would continue with). - public boolean allInRange(int start, int end, StylePredicate p) { - if (start >= end) { - int probe = start - 1; - return p.test(styleAt(probe < 0 ? 0 : probe)); - } - start = clamp(start); - end = clamp(end); - for (int i = start; i < end; i++) { - if (!p.test(perChar.get(i))) { - return false; - } - } - return true; - } - - /// A predicate over a style, used by `#allInRange`. - public interface StylePredicate { - /// Returns true when `style` satisfies the predicate. - boolean test(TextStyle style); - } - - private int clamp(int v) { - if (v < 0) { - return 0; - } - if (v > perChar.size()) { - return perChar.size(); - } - return v; - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/LanguageDef.java b/CodenameOne/src/com/codename1/ui/editor/LanguageDef.java deleted file mode 100644 index 772c9e7f199..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/LanguageDef.java +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import java.util.HashSet; -import java.util.Set; - -/// Describes the lexical rules of a programming language for the pure code editor's tokenizer: its -/// keyword set, comment styles, string delimiters and number syntax. The keyword lists match the ones -/// the previous `BrowserComponent` highlighter used. -public final class LanguageDef { - private final Set keywords; - private final boolean lineCommentSlash; - private final boolean lineCommentHash; - private final boolean blockComment; - private final boolean templateString; - private final boolean plain; - - private LanguageDef(String[] keywords, boolean lineCommentSlash, boolean lineCommentHash, - boolean blockComment, boolean templateString, boolean plain) { - this.keywords = new HashSet(); - for (String keyword : keywords) { - this.keywords.add(keyword); - } - this.lineCommentSlash = lineCommentSlash; - this.lineCommentHash = lineCommentHash; - this.blockComment = blockComment; - this.templateString = templateString; - this.plain = plain; - } - - /// True for plain text (no syntax highlighting at all). - public boolean isPlain() { - return plain; - } - - /// True when `word` is a keyword in this language. - public boolean isKeyword(String word) { - return keywords.contains(word); - } - - /// True when `//` starts a line comment. - public boolean hasLineCommentSlash() { - return lineCommentSlash; - } - - /// True when `#` starts a line comment. - public boolean hasLineCommentHash() { - return lineCommentHash; - } - - /// True when `/* */` block comments are supported. - public boolean hasBlockComment() { - return blockComment; - } - - /// True when backtick template strings (which may span lines) are supported. - public boolean hasTemplateString() { - return templateString; - } - - private static final String[] JAVA = { - "abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const", - "continue", "default", "do", "double", "else", "enum", "extends", "final", "finally", "float", - "for", "goto", "if", "implements", "import", "instanceof", "int", "interface", "long", "native", - "new", "package", "private", "protected", "public", "return", "short", "static", "strictfp", - "super", "switch", "synchronized", "this", "throw", "throws", "transient", "try", "void", - "volatile", "while", "true", "false", "null", "var", "record", "sealed" - }; - - private static final String[] KOTLIN = { - "as", "break", "by", "class", "continue", "do", "else", "false", "for", "fun", "if", "in", - "interface", "is", "null", "object", "package", "return", "super", "this", "throw", "true", - "try", "typealias", "val", "var", "when", "while", "abstract", "final", "open", "override", - "private", "protected", "public", "internal", "companion", "data", "sealed", "suspend" - }; - - private static final String[] JAVASCRIPT = { - "await", "async", "break", "case", "catch", "class", "const", "continue", "debugger", "default", - "delete", "do", "else", "export", "extends", "false", "finally", "for", "function", "if", - "import", "in", "instanceof", "let", "new", "null", "return", "super", "switch", "this", "throw", - "true", "try", "typeof", "var", "void", "while", "with", "yield", "of", "static", "get", "set" - }; - - private static final String[] PYTHON = { - "and", "as", "assert", "async", "await", "break", "class", "continue", "def", "del", "elif", - "else", "except", "False", "finally", "for", "from", "global", "if", "import", "in", "is", - "lambda", "None", "nonlocal", "not", "or", "pass", "raise", "return", "True", "try", "while", - "with", "yield", "self" - }; - - private static final String[] CSS = { - "important", "inherit", "initial", "unset", "auto", "none", "flex", "grid", "block", "inline", - "absolute", "relative", "fixed", "static" - }; - - private static final String[] JSON = {"true", "false", "null"}; - - private static final String[] XML = {}; - - private static final String[] C = { - "auto", "break", "case", "char", "const", "continue", "default", "do", "double", "else", "enum", - "extern", "float", "for", "goto", "if", "int", "long", "register", "return", "short", "signed", - "sizeof", "static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while" - }; - - private static final LanguageDef DEF_JAVA = new LanguageDef(JAVA, true, false, true, false, false); - private static final LanguageDef DEF_KOTLIN = new LanguageDef(KOTLIN, true, false, true, false, false); - private static final LanguageDef DEF_JAVASCRIPT = new LanguageDef(JAVASCRIPT, true, false, true, true, false); - private static final LanguageDef DEF_PYTHON = new LanguageDef(PYTHON, false, true, false, false, false); - private static final LanguageDef DEF_CSS = new LanguageDef(CSS, true, false, true, false, false); - private static final LanguageDef DEF_JSON = new LanguageDef(JSON, false, false, false, false, false); - private static final LanguageDef DEF_XML = new LanguageDef(XML, false, false, false, false, false); - private static final LanguageDef DEF_C = new LanguageDef(C, true, false, true, false, false); - private static final LanguageDef DEF_TEXT = new LanguageDef(XML, false, false, false, false, true); - - /// Returns the language definition for the given language id, defaulting to a plain text definition - /// (no highlighting) for unknown ids. - public static LanguageDef forName(String language) { - if ("java".equals(language)) { - return DEF_JAVA; - } - if ("kotlin".equals(language)) { - return DEF_KOTLIN; - } - if ("javascript".equals(language) || "js".equals(language)) { - return DEF_JAVASCRIPT; - } - if ("python".equals(language) || "py".equals(language)) { - return DEF_PYTHON; - } - if ("css".equals(language)) { - return DEF_CSS; - } - if ("json".equals(language)) { - return DEF_JSON; - } - if ("xml".equals(language) || "html".equals(language)) { - return DEF_XML; - } - if ("c".equals(language) || "cpp".equals(language) || "c++".equals(language)) { - return DEF_C; - } - return DEF_TEXT; - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/PureEditor.java b/CodenameOne/src/com/codename1/ui/editor/PureEditor.java deleted file mode 100644 index 2ff4c1d6408..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/PureEditor.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import com.codename1.ui.Component; - -/// The pure Codename One editor backend. It owns an `EditorView` and translates the semantic -/// command / query vocabulary spoken by `RichTextArea` and `CodeEditor` (the same strings the -/// `BrowserComponent` backend understands) into operations on the pure text engine. -/// -/// This base class handles the shared, plain text portion of the vocabulary. The rich text and code -/// feature layers subclass it (and subclass `EditorView`) to add styling, syntax highlighting, the -/// gutter, completion and diagnostics. -public class PureEditor { - private final EditorView view; - private final boolean codeMode; - - /// Creates a pure editor backend. - /// - /// #### Parameters - /// - /// - `host`: the bridge to the owning editor component - /// - /// - `editorType`: `"code"` or `"richtext"` - public PureEditor(EditorHost host, String editorType) { - this.codeMode = "code".equals(editorType); - this.view = createView(host, codeMode); - } - - /// Creates the editor view. Subclasses override to supply a code or rich text view. - protected EditorView createView(EditorHost host, boolean codeMode) { - return new EditorView(host, codeMode); - } - - /// Returns the editing surface component to place in the editor container. - public Component getView() { - return view; - } - - /// Returns the underlying editor view. - protected EditorView view() { - return view; - } - - /// True for a code editor backend. - protected boolean isCodeMode() { - return codeMode; - } - - /// Executes a one way command. Unknown commands are ignored so subclasses can add vocabulary without - /// breaking the base. - /// - /// #### Parameters - /// - /// - `name`: the command name - /// - /// - `arg`: the optional argument, may be null - public void cmd(String name, String arg) { - if ("setText".equals(name) || "setHtml".equals(name)) { - view.setText(arg == null ? "" : arg); - return; - } - if ("insertText".equals(name) || "insertHtml".equals(name)) { - view.insertText(arg == null ? "" : arg); - return; - } - if ("setEditable".equals(name)) { - view.setEditableState("1".equals(arg)); - return; - } - if ("focus".equals(name)) { - view.requestFocus(); - return; - } - if ("blur".equals(name)) { - view.blur(); - return; - } - if ("undo".equals(name)) { - view.performUndo(); - return; - } - if ("redo".equals(name)) { - view.performRedo(); - return; - } - // remaining rich / code commands are handled by subclasses; ignore here - } - - /// Executes a query returning a string result. Unknown queries return an empty string. - /// - /// #### Parameters - /// - /// - `name`: the query name - /// - /// - `arg`: the optional argument, may be null - public String query(String name, String arg) { - if ("getText".equals(name)) { - return view.getText(); - } - if ("getHtml".equals(name)) { - return view.getText(); - } - if ("getCursor".equals(name)) { - return String.valueOf(view.getCaretOffset()); - } - if ("state".equals(name)) { - return "0"; - } - return ""; - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/RichBlocks.java b/CodenameOne/src/com/codename1/ui/editor/RichBlocks.java deleted file mode 100644 index f7adc9ce194..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/RichBlocks.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import java.util.ArrayList; -import java.util.List; - -/// The per paragraph block attribute model for the pure rich text editor. Each logical line (paragraph, -/// delimited by newlines) has a `BlockAttr` describing its block type (paragraph / heading / preformatted -/// / blockquote), text alignment, list membership and indentation. The model is kept in lockstep with the -/// paragraph structure through `#applyEdit`. -public final class RichBlocks { - /// Block type: a normal paragraph. - public static final int PARAGRAPH = 0; - /// Block type: heading level 1 through 6 are `H1`..`H1 + 5`. - public static final int H1 = 1; - /// Block type: preformatted text. - public static final int PRE = 7; - /// Block type: a block quote. - public static final int BLOCKQUOTE = 8; - - /// Left alignment. - public static final int ALIGN_LEFT = 0; - /// Center alignment. - public static final int ALIGN_CENTER = 1; - /// Right alignment. - public static final int ALIGN_RIGHT = 2; - - /// Not a list item. - public static final int LIST_NONE = 0; - /// An ordered (numbered) list item. - public static final int LIST_ORDERED = 1; - /// An unordered (bulleted) list item. - public static final int LIST_UNORDERED = 2; - - /// A single paragraph's block attributes. - public static final class BlockAttr { - /// The block type (`PARAGRAPH`, `H1`..`H1+5`, `PRE`, `BLOCKQUOTE`). - public int type = PARAGRAPH; - /// The text alignment (`ALIGN_*`). - public int align = ALIGN_LEFT; - /// The list membership (`LIST_*`). - public int listType = LIST_NONE; - /// The indentation depth (0 or more). - public int indent; - - BlockAttr copy() { - BlockAttr b = new BlockAttr(); - b.type = type; - b.align = align; - b.listType = listType; - b.indent = indent; - return b; - } - } - - private final List blocks = new ArrayList(); - - /// Creates a model with the given paragraph count, all default paragraphs. - public RichBlocks(int paragraphCount) { - reset(paragraphCount); - } - - /// Resets the model to the given paragraph count, all default paragraphs. - public void reset(int paragraphCount) { - blocks.clear(); - for (int i = 0; i < Math.max(1, paragraphCount); i++) { - blocks.add(new BlockAttr()); - } - } - - /// Returns the number of paragraphs. - public int count() { - return blocks.size(); - } - - /// Returns the block attributes for the given paragraph (clamped to the valid range). - public BlockAttr get(int paragraph) { - if (paragraph < 0) { - paragraph = 0; - } - if (paragraph >= blocks.size()) { - paragraph = blocks.size() - 1; - } - return blocks.get(paragraph); - } - - /// Keeps the model in sync with a text edit that changed the paragraph structure. - /// - /// #### Parameters - /// - /// - `startParagraph`: the paragraph containing the edit offset - /// - /// - `removedNewlines`: number of newlines in the removed text (paragraphs merged away) - /// - /// - `addedNewlines`: number of newlines in the inserted text (paragraphs created) - public void applyEdit(int startParagraph, int removedNewlines, int addedNewlines) { - if (startParagraph < 0) { - startParagraph = 0; - } - if (startParagraph >= blocks.size()) { - startParagraph = blocks.size() - 1; - } - for (int i = 0; i < removedNewlines; i++) { - int idx = startParagraph + 1; - if (idx < blocks.size()) { - blocks.remove(idx); - } - } - BlockAttr base = blocks.get(startParagraph); - for (int i = 0; i < addedNewlines; i++) { - blocks.add(startParagraph + 1 + i, base.copy()); - } - if (blocks.isEmpty()) { - blocks.add(new BlockAttr()); - } - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/RichPureEditor.java b/CodenameOne/src/com/codename1/ui/editor/RichPureEditor.java deleted file mode 100644 index d84994c8dc1..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/RichPureEditor.java +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import java.util.ArrayList; -import java.util.List; - -/// The pure rich text editor backend. It maps the `RichTextArea` command / query vocabulary onto a -/// `RichView`, converting the HTML exchanged with the application to and from the editor's inline / block -/// model. -public class RichPureEditor extends PureEditor { - private RichView rich; - - /// Creates a rich text editor backend. - public RichPureEditor(EditorHost host, String editorType) { - super(host, editorType); - rich = (RichView) view(); - } - - @Override - protected EditorView createView(EditorHost host, boolean codeMode) { - return new RichView(host); - } - - @Override - public void cmd(String name, String arg) { - if ("setHtml".equals(name)) { - HtmlImporter.Result r = HtmlImporter.parse(arg == null ? "" : arg); - rich.importContent(r.getText(), r.getStyles(), r.getBlocks(), r.getLinks(), - loadImages(r.getImageSources()), r.getImageSources()); - return; - } - if ("insertHtml".equals(name)) { - HtmlImporter.Result r = HtmlImporter.parse(arg == null ? "" : arg); - rich.insertContent(r.getText(), r.getStyles(), r.getBlocks(), r.getLinks(), - loadImages(r.getImageSources()), r.getImageSources(), r.hasBlockContent()); - return; - } - if ("insertImage".equals(name)) { - com.codename1.ui.Image img = loadImage(arg); - if (img != null) { - rich.insertImageObject(img, arg); - } - return; - } - if ("setPlaceholder".equals(name)) { - rich.setPlaceholder(arg); - return; - } - if ("bold".equals(name)) { - rich.toggleBold(); - return; - } - if ("italic".equals(name)) { - rich.toggleItalic(); - return; - } - if ("underline".equals(name)) { - rich.toggleUnderline(); - return; - } - if ("strikeThrough".equals(name)) { - rich.toggleStrike(); - return; - } - if ("insertOrderedList".equals(name)) { - rich.setList(RichBlocks.LIST_ORDERED); - return; - } - if ("insertUnorderedList".equals(name)) { - rich.setList(RichBlocks.LIST_UNORDERED); - return; - } - if ("indent".equals(name)) { - rich.indentBlocks(); - return; - } - if ("outdent".equals(name)) { - rich.outdentBlocks(); - return; - } - if ("justifyLeft".equals(name)) { - rich.setAlign(RichBlocks.ALIGN_LEFT); - return; - } - if ("justifyCenter".equals(name)) { - rich.setAlign(RichBlocks.ALIGN_CENTER); - return; - } - if ("justifyRight".equals(name)) { - rich.setAlign(RichBlocks.ALIGN_RIGHT); - return; - } - if ("createLink".equals(name)) { - rich.applyLink(arg); - return; - } - if ("unlink".equals(name)) { - rich.removeLinkStyle(); - return; - } - if ("foreColor".equals(name)) { - rich.setForeColor(parseCss(arg)); - return; - } - if ("hiliteColor".equals(name)) { - rich.setHighlight(parseCss(arg)); - return; - } - if ("formatBlock".equals(name)) { - rich.setBlockFormat(arg); - return; - } - if ("fontSize".equals(name)) { - rich.setFontSizeLevel(parseInt(arg)); - return; - } - if ("removeFormat".equals(name)) { - rich.removeFormat(); - return; - } - super.cmd(name, arg); - } - - @Override - public String query(String name, String arg) { - if ("getHtml".equals(name)) { - return HtmlSerializer.serialize(rich.getDocument(), rich.getInlineStyles(), rich.getBlocks(), - rich.getLinkRuns(), rich.getImageSources()); - } - if ("getText".equals(name)) { - return rich.getText(); - } - if ("state".equals(name)) { - return rich.queryState(arg) ? "1" : "0"; - } - return super.query(name, arg); - } - - private static int parseCss(String v) { - if (v == null) { - return 0; - } - v = v.trim(); - if (v.startsWith("#")) { - v = v.substring(1); - } - if (v.length() == 3) { - char r = v.charAt(0); - char g = v.charAt(1); - char b = v.charAt(2); - v = "" + r + r + g + g + b + b; - } - try { - return Integer.parseInt(v.length() >= 6 ? v.substring(0, 6) : v, 16); - } catch (NumberFormatException err) { - return 0; - } - } - - static com.codename1.ui.Image loadImage(String url) { - if (url == null || url.length() == 0) { - return null; - } - try { - if (url.startsWith("gen:")) { - // gen:WxH:RRGGBB - a generated solid color image (handy for demos / placeholders) - String s = url.substring(4); - int xi = s.indexOf('x'); - int ci = s.indexOf(':', xi); - int w = Integer.parseInt(s.substring(0, xi)); - int h = Integer.parseInt(s.substring(xi + 1, ci)); - int color = Integer.parseInt(s.substring(ci + 1), 16); - return com.codename1.ui.Image.createImage(w, h, 0xff000000 | color); - } - int comma = url.indexOf(','); - if (url.startsWith("data:") && url.indexOf(";base64,") >= 0 && comma >= 0) { - // the base64 payload is pure ASCII; convert to bytes without relying on the default charset - String b64 = url.substring(comma + 1); - byte[] enc = new byte[b64.length()]; - for (int i = 0; i < enc.length; i++) { - enc[i] = (byte) b64.charAt(i); - } - byte[] data = com.codename1.util.Base64.decode(enc); - return com.codename1.ui.Image.createImage(data, 0, data.length); - } - return com.codename1.ui.Image.createImage(url); - } catch (Throwable t) { - return null; - } - } - - static List loadImages(List sources) { - List out = new ArrayList(sources.size()); - for (String source : sources) { - out.add(source == null || source.length() == 0 ? null : loadImage(source)); - } - return out; - } - - private static int parseInt(String s) { - if (s == null) { - return 0; - } - try { - return Integer.parseInt(s.trim()); - } catch (NumberFormatException err) { - return 0; - } - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/RichTextImporter.java b/CodenameOne/src/com/codename1/ui/editor/RichTextImporter.java deleted file mode 100644 index 6b333aa401f..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/RichTextImporter.java +++ /dev/null @@ -1,549 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import com.codename1.ui.RichTextFormat; - -import java.util.ArrayList; -import java.util.List; - -/// Converts supported rich-text interchange formats into the HTML fragment consumed by the shared -/// `HtmlImporter`. Keeping one HTML-to-model mapping avoids separate style/block implementations for -/// RTF, Markdown and AsciiDoc. -public final class RichTextImporter { - private RichTextImporter() { - } - - /// Converts content to an HTML fragment. HTML input is returned unchanged and plain text is escaped. - public static String toHtml(String content, RichTextFormat format) { - String value = content == null ? "" : content; - if (format == null || format == RichTextFormat.PLAIN_TEXT) { - return "

" + escape(value).replace("\n", "
") + "

"; - } - if (format == RichTextFormat.HTML) { - return value; - } - if (format == RichTextFormat.RTF) { - return rtfToHtml(value); - } - if (format == RichTextFormat.ASCIIDOC) { - return asciiDocToHtml(value); - } - return markdownToHtml(value); - } - - private static String markdownToHtml(String source) { - List lines = lines(source); - StringBuilder out = new StringBuilder(); - String list = null; - boolean fenced = false; - StringBuilder code = new StringBuilder(); - for (String line : lines) { - if (line.startsWith("```")) { - if (fenced) { - out.append("
").append(escape(code.toString())).append("
"); - code.setLength(0); - } - fenced = !fenced; - continue; - } - if (fenced) { - if (code.length() > 0) { - code.append('\n'); - } - code.append(line); - continue; - } - String nextList = markdownList(line); - if (!equals(list, nextList)) { - closeList(out, list); - list = nextList; - if (list != null) { - out.append('<').append(list).append('>'); - } - } - if (list != null) { - int offset = "ol".equals(list) ? orderedListOffset(line) : 2; - out.append("
  • ").append(markdownInline(line.substring(offset).trim())).append("
  • "); - continue; - } - if (line.trim().length() == 0) { - continue; - } - int heading = headingLevel(line, '#'); - if (heading > 0 && heading <= 6 && line.length() > heading && line.charAt(heading) == ' ') { - out.append("') - .append(markdownInline(line.substring(heading + 1))).append("'); - } else if (line.startsWith("> ")) { - out.append("
    ").append(markdownInline(line.substring(2))).append("
    "); - } else { - out.append("

    ").append(markdownInline(line)).append("

    "); - } - } - closeList(out, list); - if (fenced) { - out.append("
    ").append(escape(code.toString())).append("
    "); - } - return out.toString(); - } - - private static String asciiDocToHtml(String source) { - List lines = lines(source); - StringBuilder out = new StringBuilder(); - String list = null; - boolean literal = false; - StringBuilder code = new StringBuilder(); - for (String line : lines) { - if ("----".equals(line.trim()) || "....".equals(line.trim())) { - if (literal) { - out.append("
    ").append(escape(code.toString())).append("
    "); - code.setLength(0); - } - literal = !literal; - continue; - } - if (literal) { - if (code.length() > 0) { - code.append('\n'); - } - code.append(line); - continue; - } - String nextList = asciiDocList(line); - if (!equals(list, nextList)) { - closeList(out, list); - list = nextList; - if (list != null) { - out.append('<').append(list).append('>'); - } - } - if (list != null) { - out.append("
  • ").append(asciiDocInline(line.substring(2).trim())).append("
  • "); - continue; - } - if (line.trim().length() == 0 || line.startsWith("[source")) { - continue; - } - int heading = headingLevel(line, '='); - if (heading > 0 && heading <= 6 && line.length() > heading && line.charAt(heading) == ' ') { - out.append("') - .append(asciiDocInline(line.substring(heading + 1))).append("'); - } else if (line.startsWith("> ")) { - out.append("
    ").append(asciiDocInline(line.substring(2))).append("
    "); - } else { - out.append("

    ").append(asciiDocInline(line)).append("

    "); - } - } - closeList(out, list); - if (literal) { - out.append("
    ").append(escape(code.toString())).append("
    "); - } - return out.toString(); - } - - private static String markdownInline(String value) { - StringBuilder out = new StringBuilder(); - int i = 0; - while (i < value.length()) { - if (value.charAt(i) == '\\' && i + 1 < value.length()) { - appendEscaped(out, value.charAt(i + 1)); - i += 2; - continue; - } - if (value.startsWith("![", i)) { - int labelEnd = value.indexOf(']', i + 2); - int urlEnd = labelEnd >= 0 && labelEnd + 1 < value.length() && value.charAt(labelEnd + 1) == '(' - ? value.indexOf(')', labelEnd + 2) : -1; - if (urlEnd > 0) { - out.append(""); - i = urlEnd + 1; - continue; - } - } - if (value.charAt(i) == '[') { - int labelEnd = value.indexOf(']', i + 1); - int urlEnd = labelEnd >= 0 && labelEnd + 1 < value.length() && value.charAt(labelEnd + 1) == '(' - ? value.indexOf(')', labelEnd + 2) : -1; - if (urlEnd > 0) { - out.append("") - .append(markdownInline(value.substring(i + 1, labelEnd))).append(""); - i = urlEnd + 1; - continue; - } - } - String marker = markerAt(value, i); - if (marker != null) { - int end = value.indexOf(marker, i + marker.length()); - if (end > i + marker.length()) { - String tag = "~~".equals(marker) ? "s" : (marker.length() == 2 ? "strong" : "em"); - out.append('<').append(tag).append('>') - .append(markdownInline(value.substring(i + marker.length(), end))) - .append("'); - i = end + marker.length(); - continue; - } - } - if (value.charAt(i) == '`') { - int end = value.indexOf('`', i + 1); - if (end > i) { - out.append("").append(escape(value.substring(i + 1, end))).append(""); - i = end + 1; - continue; - } - } - appendEscaped(out, value.charAt(i++)); - } - return out.toString(); - } - - private static String asciiDocInline(String value) { - StringBuilder out = new StringBuilder(); - int i = 0; - while (i < value.length()) { - if (value.startsWith("http://", i) || value.startsWith("https://", i)) { - int bracket = value.indexOf('[', i); - int end = bracket < 0 ? -1 : value.indexOf(']', bracket + 1); - if (end > bracket) { - out.append("") - .append(escape(value.substring(bracket + 1, end))).append(""); - i = end + 1; - continue; - } - } - char marker = value.charAt(i); - if (marker == '*' || marker == '_' || marker == '`') { - int end = value.indexOf(marker, i + 1); - if (end > i + 1) { - String tag = marker == '*' ? "strong" : (marker == '_' ? "em" : "span"); - out.append('<').append(tag).append('>').append(escape(value.substring(i + 1, end))) - .append("'); - i = end + 1; - continue; - } - } - appendEscaped(out, value.charAt(i++)); - } - return out.toString(); - } - - private static String rtfToHtml(String source) { - RtfState state = new RtfState(); - List stack = new ArrayList(); - RtfState rendered = new RtfState(); - StringBuilder out = new StringBuilder("

    "); - int skipFallback = 0; - for (int i = 0; i < source.length();) { - char c = source.charAt(i++); - if (c == '{') { - stack.add(state.copy()); - continue; - } - if (c == '}') { - if (!stack.isEmpty()) { - state = stack.remove(stack.size() - 1); - } - continue; - } - if (c == '\\') { - if (i >= source.length()) { - break; - } - char next = source.charAt(i); - if (next == '\\' || next == '{' || next == '}') { - i++; - if (!state.skip) { - if (skipFallback <= 0) { - syncRtfStyle(out, rendered, state); - appendEscaped(out, next); - } - skipFallback--; - } - continue; - } - if (next == '\'') { - i++; - if (i + 1 < source.length()) { - int value = hex(source.charAt(i), source.charAt(i + 1)); - i += 2; - if (!state.skip && value >= 0) { - if (skipFallback <= 0) { - syncRtfStyle(out, rendered, state); - appendEscaped(out, (char) value); - } - skipFallback--; - } - } - continue; - } - if (!isAsciiLetter(next)) { - i++; - if (next == '*') { - state.skip = true; - } else if (!state.skip && (next == '~' || next == '_' || next == '-')) { - syncRtfStyle(out, rendered, state); - appendEscaped(out, next == '~' ? ' ' : '-'); - } - continue; - } - int wordStart = i; - while (i < source.length() && isAsciiLetter(source.charAt(i))) { - i++; - } - String word = source.substring(wordStart, i); - int sign = 1; - if (i < source.length() && source.charAt(i) == '-') { - sign = -1; - i++; - } - int numberStart = i; - while (i < source.length() && Character.isDigit(source.charAt(i))) { - i++; - } - boolean hasNumber = i > numberStart; - int number = hasNumber ? sign * Integer.parseInt(source.substring(numberStart, i)) : 1; - if (i < source.length() && source.charAt(i) == ' ') { - i++; - } - if (isRtfDestination(word)) { - state.skip = true; - } else if ("b".equals(word)) { - state.bold = number != 0; - } else if ("i".equals(word)) { - state.italic = number != 0; - } else if ("ul".equals(word)) { - state.underline = number != 0; - } else if ("ulnone".equals(word)) { - state.underline = false; - } else if ("strike".equals(word)) { - state.strike = number != 0; - } else if ("plain".equals(word)) { - state.bold = state.italic = state.underline = state.strike = false; - } else if ("par".equals(word) || "line".equals(word)) { - if (!state.skip) { - closeRtfStyle(out, rendered); - out.append("

    "); - } - } else if ("tab".equals(word) && !state.skip) { - syncRtfStyle(out, rendered, state); - out.append(" "); - } else if ("uc".equals(word) && hasNumber) { - state.unicodeFallback = Math.max(0, number); - } else if ("u".equals(word) && hasNumber && !state.skip) { - syncRtfStyle(out, rendered, state); - int unicode = number < 0 ? number + 65536 : number; - appendEscaped(out, (char) unicode); - skipFallback = state.unicodeFallback; - } - continue; - } - if (c == '\r' || c == '\n' || state.skip) { - continue; - } - if (skipFallback > 0) { - skipFallback--; - continue; - } - syncRtfStyle(out, rendered, state); - appendEscaped(out, c); - } - closeRtfStyle(out, rendered); - return out.append("

    ").toString(); - } - - private static boolean isRtfDestination(String word) { - return "fonttbl".equals(word) || "colortbl".equals(word) || "stylesheet".equals(word) - || "info".equals(word) || "pict".equals(word) || "object".equals(word) - || "header".equals(word) || "footer".equals(word) || "fldinst".equals(word); - } - - private static void syncRtfStyle(StringBuilder out, RtfState rendered, RtfState desired) { - if (rendered.sameStyle(desired)) { - return; - } - closeRtfStyle(out, rendered); - if (desired.bold) { - out.append(""); - } - if (desired.italic) { - out.append(""); - } - if (desired.underline) { - out.append(""); - } - if (desired.strike) { - out.append(""); - } - rendered.setStyle(desired); - } - - private static void closeRtfStyle(StringBuilder out, RtfState rendered) { - if (rendered.strike) { - out.append(""); - } - if (rendered.underline) { - out.append(""); - } - if (rendered.italic) { - out.append(""); - } - if (rendered.bold) { - out.append(""); - } - rendered.bold = rendered.italic = rendered.underline = rendered.strike = false; - } - - private static final class RtfState { - boolean bold; - boolean italic; - boolean underline; - boolean strike; - boolean skip; - int unicodeFallback = 1; - - RtfState copy() { - RtfState result = new RtfState(); - result.bold = bold; - result.italic = italic; - result.underline = underline; - result.strike = strike; - result.skip = skip; - result.unicodeFallback = unicodeFallback; - return result; - } - - boolean sameStyle(RtfState other) { - return bold == other.bold && italic == other.italic && underline == other.underline - && strike == other.strike; - } - - void setStyle(RtfState other) { - bold = other.bold; - italic = other.italic; - underline = other.underline; - strike = other.strike; - } - } - - private static String markerAt(String value, int offset) { - if (value.startsWith("**", offset) || value.startsWith("__", offset)) { - return value.substring(offset, offset + 2); - } - if (value.startsWith("~~", offset)) { - return "~~"; - } - char c = value.charAt(offset); - return c == '*' || c == '_' ? String.valueOf(c) : null; - } - - private static String markdownList(String line) { - if (line.startsWith("- ") || line.startsWith("* ") || line.startsWith("+ ")) { - return "ul"; - } - return orderedListOffset(line) > 0 ? "ol" : null; - } - - private static int orderedListOffset(String line) { - int i = 0; - while (i < line.length() && Character.isDigit(line.charAt(i))) { - i++; - } - return i > 0 && i + 1 < line.length() && line.charAt(i) == '.' && line.charAt(i + 1) == ' ' - ? i + 2 : 0; - } - - private static String asciiDocList(String line) { - if (line.startsWith("* ")) { - return "ul"; - } - return line.startsWith(". ") ? "ol" : null; - } - - private static int headingLevel(String line, char marker) { - int i = 0; - while (i < line.length() && line.charAt(i) == marker) { - i++; - } - return i; - } - - private static void closeList(StringBuilder out, String list) { - if (list != null) { - out.append("'); - } - } - - private static boolean equals(String a, String b) { - return a == null ? b == null : a.equals(b); - } - - private static List lines(String source) { - List result = new ArrayList(); - int start = 0; - for (int i = 0; i < source.length(); i++) { - if (source.charAt(i) == '\n') { - int end = i > start && source.charAt(i - 1) == '\r' ? i - 1 : i; - result.add(source.substring(start, end)); - start = i + 1; - } - } - result.add(source.substring(start)); - return result; - } - - private static int hex(char high, char low) { - int h = Character.digit(high, 16); - int l = Character.digit(low, 16); - return h < 0 || l < 0 ? -1 : (h << 4) | l; - } - - private static boolean isAsciiLetter(char value) { - return value >= 'A' && value <= 'Z' || value >= 'a' && value <= 'z'; - } - - private static String escape(String value) { - StringBuilder out = new StringBuilder(value.length()); - for (int i = 0; i < value.length(); i++) { - appendEscaped(out, value.charAt(i)); - } - return out.toString(); - } - - private static String escapeAttribute(String value) { - return escape(value).replace("\"", """); - } - - private static void appendEscaped(StringBuilder out, char c) { - if (c == '&') { - out.append("&"); - } else if (c == '<') { - out.append("<"); - } else if (c == '>') { - out.append(">"); - } else if (c == '"') { - out.append("""); - } else { - out.append(c); - } - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/RichView.java b/CodenameOne/src/com/codename1/ui/editor/RichView.java deleted file mode 100644 index 1dde539d49d..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/RichView.java +++ /dev/null @@ -1,1137 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import com.codename1.ui.Font; -import com.codename1.ui.Graphics; -import com.codename1.ui.Image; -import com.codename1.ui.Display; -import com.codename1.ui.RichTextClipboardData; -import com.codename1.ui.RichTextFormat; -import com.codename1.ui.plaf.Style; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/// The pure rich text editor surface. It renders styled text (bold / italic / underline / strike, -/// foreground and highlight color, relative font size) organized into paragraphs with block attributes -/// (headings, preformatted, block quotes, alignment, ordered / unordered lists and indentation) on top -/// of the shared `EditorView` engine, keeping a parallel `InlineStyles` and `RichBlocks` model in lockstep -/// with the text. -public class RichView extends EditorView { - private InlineStyles inline = new InlineStyles(0); - private RichBlocks blocks = new RichBlocks(1); - private TextStyle pendingStyle; - private String pendingLink; - private String placeholder = ""; - - // parallel to the document characters: an inline image for each object-replacement char, else null - private static final char OBJ = '\uFFFC'; - private final List imageRuns = new ArrayList(); - private final List imageSources = new ArrayList(); - private final List linkRuns = new ArrayList(); - - private Font baseTtf; - private final Map fontCache = new HashMap(); - - /// Creates a rich text view. - public RichView(EditorHost host) { - super(host, false); - setBackgroundColor(0xffffff); - setTextColor(0x24292e); - setSelectionColor(0xb3d4fc); - } - - // ---- model access for the backend ---- - - /// Returns the inline style model. - public InlineStyles getInlineStyles() { - return inline; - } - - /// Returns the block attribute model. - public RichBlocks getBlocks() { - return blocks; - } - - /// Returns the hyperlink target parallel model. - public List getLinkRuns() { - return linkRuns; - } - - /// Returns the image source parallel model. - public List getImageSources() { - return imageSources; - } - - /// Replaces the document with imported content: text plus per character styles and per paragraph - /// block attributes. Used by the HTML importer. - /// - /// #### Parameters - /// - /// - `text`: the plain text - /// - /// - `perChar`: one style per character (may be shorter; missing entries default) - /// - /// - `blockList`: one block attribute per paragraph (may be shorter; missing entries default) - public void importContent(String text, List perChar, List blockList, - List links, List images, List sources) { - setText(text); - for (int i = 0; i < perChar.size() && i < inline.length(); i++) { - inline.setAt(i, perChar.get(i)); - } - for (int i = 0; i < inline.length(); i++) { - if (i < links.size()) { - linkRuns.set(i, links.get(i)); - } - if (i < images.size()) { - imageRuns.set(i, images.get(i)); - } - if (i < sources.size()) { - imageSources.set(i, sources.get(i)); - } - } - for (int i = 0; i < blockList.size() && i < blocks.count(); i++) { - RichBlocks.BlockAttr dst = blocks.get(i); - RichBlocks.BlockAttr src = blockList.get(i); - dst.type = src.type; - dst.align = src.align; - dst.listType = src.listType; - dst.indent = src.indent; - } - invalidateLayout(); - repaint(); - } - - /// Inserts imported rich content at the selection while preserving its inline and block metadata. - public void insertContent(String text, List perChar, List blockList, - List links, List images, List sources, - boolean blockContent) { - int at = getSelectionStart(); - getUndoManager().breakRun(); - replaceRange(getSelectionStart(), getSelectionEnd(), text, true); - int insertedLength = EditorDocument.normalizeText(text == null ? "" : text).length(); - for (int i = 0; i < insertedLength; i++) { - int offset = at + i; - if (i < perChar.size()) { - inline.setAt(offset, perChar.get(i)); - } - if (offset < linkRuns.size() && i < links.size()) { - linkRuns.set(offset, links.get(i)); - } - if (offset < imageRuns.size() && i < images.size()) { - imageRuns.set(offset, images.get(i)); - } - if (offset < imageSources.size() && i < sources.size()) { - imageSources.set(offset, sources.get(i)); - } - } - if (blockContent) { - int firstLine = getDocument().lineOfOffset(at); - for (int i = 0; i < blockList.size() && firstLine + i < blocks.count(); i++) { - copyBlock(blocks.get(firstLine + i), blockList.get(i)); - } - } - refreshUndoAfterState(); - getUndoManager().breakRun(); - invalidateLayout(); - repaint(); - } - - @Override - protected void pasteClipboardData(Object data) { - RichTextFormat format = null; - String content = null; - if (data instanceof RichTextClipboardData) { - RichTextClipboardData richData = (RichTextClipboardData) data; - format = richData.getPreferredFormat(); - content = richData.getContent(format); - } else if (data instanceof String && ((String) data).trim().startsWith("{\\rtf")) { - format = RichTextFormat.RTF; - content = (String) data; - } - if (format == null || format == RichTextFormat.PLAIN_TEXT) { - super.pasteClipboardData(data); - return; - } - HtmlImporter.Result imported = HtmlImporter.parse(RichTextImporter.toHtml(content, format)); - insertContent(imported.getText(), imported.getStyles(), imported.getBlocks(), imported.getLinks(), - RichPureEditor.loadImages(imported.getImageSources()), imported.getImageSources(), - imported.hasBlockContent()); - } - - @Override - protected void copySelection() { - if (!hasSelection()) { - return; - } - int start = getSelectionStart(); - int end = getSelectionEnd(); - String plain = getDocument().substring(start, end); - EditorDocument fragment = new EditorDocument(); - fragment.setText(plain); - InlineStyles fragmentStyles = new InlineStyles(fragment.length()); - List fragmentLinks = new ArrayList(fragment.length()); - List fragmentSources = new ArrayList(fragment.length()); - for (int i = 0; i < fragment.length(); i++) { - fragmentStyles.setAt(i, inline.styleAt(start + i)); - fragmentLinks.add(valueAt(linkRuns, start + i)); - fragmentSources.add(valueAt(imageSources, start + i)); - } - RichBlocks fragmentBlocks = new RichBlocks(fragment.getLineCount()); - int firstLine = getDocument().lineOfOffset(start); - for (int i = 0; i < fragmentBlocks.count(); i++) { - copyBlock(fragmentBlocks.get(i), blocks.get(firstLine + i)); - } - String html = HtmlSerializer.serialize(fragment, fragmentStyles, fragmentBlocks, - fragmentLinks, fragmentSources); - Display.getInstance().copyToClipboard(new RichTextClipboardData(plain).setHtml(html)); - } - - private static String valueAt(List values, int index) { - return index >= 0 && index < values.size() ? values.get(index) : null; - } - - private static void copyBlock(RichBlocks.BlockAttr destination, RichBlocks.BlockAttr source) { - destination.type = source.type; - destination.align = source.align; - destination.listType = source.listType; - destination.indent = source.indent; - } - - /// Sets the placeholder text shown when the document is empty. - public void setPlaceholder(String text) { - this.placeholder = text == null ? "" : text; - repaint(); - } - - // ---- fonts ---- - - private int baseSize() { - return super.getEditorFont().getHeight(); - } - - private Font fontFor(boolean bold, boolean italic, int px) { - Font base = super.getEditorFont(); - if (base != baseTtf) { // NOPMD - intentional identity comparison - // the style font changed (skin / theme reload) - drop stale derived fonts - baseTtf = base; - fontCache.clear(); - } - if (!base.isTTFNativeFont()) { - // cannot derive size / weight from a non TTF font; use it as-is (correct size, no squares) - return base; - } - if (px < 6) { - px = 6; - } - long key = ((long) px << 2) | (bold ? 2 : 0) | (italic ? 1 : 0); - Font f = fontCache.get(Long.valueOf(key)); - if (f != null) { - return f; - } - int style = (bold ? Font.STYLE_BOLD : 0) | (italic ? Font.STYLE_ITALIC : 0); - try { - f = base.derive(px, style); - } catch (Throwable t) { - f = base; - } - fontCache.put(Long.valueOf(key), f); - return f; - } - - private static float headingScale(int type) { - if (type == RichBlocks.H1) { - return 2.0f; - } - if (type == RichBlocks.H1 + 1) { - return 1.5f; - } - if (type == RichBlocks.H1 + 2) { - return 1.25f; - } - if (type == RichBlocks.H1 + 3) { - return 1.1f; - } - if (type == RichBlocks.H1 + 4) { - return 0.9f; - } - if (type == RichBlocks.H1 + 5) { - return 0.8f; - } - return 1.0f; - } - - private static boolean isHeading(int type) { - return type >= RichBlocks.H1 && type <= RichBlocks.H1 + 5; - } - - private static float sizeLevelScale(int level) { - switch (level) { - case 1: - return 0.7f; - case 2: - return 0.85f; - case 4: - return 1.15f; - case 5: - return 1.5f; - case 6: - return 2.0f; - case 7: - return 2.5f; - default: - return 1.0f; - } - } - - private int runPx(int blockType, int level) { - return Math.round(baseSize() * headingScale(blockType) * sizeLevelScale(level)); - } - - @Override - protected boolean uniformLineHeight() { - return false; - } - - @Override - protected int lineHeightAt(int line) { - RichBlocks.BlockAttr b = blocks.get(line); - int lineStart = getDocument().getLineStart(line); - String text = getDocument().getLineText(line); - int maxLevel = 0; - for (int i = 0; i < text.length(); i++) { - int lv = inline.styleAt(lineStart + i).getFontSizeLevel(); - if (lv > maxLevel) { - maxLevel = lv; - } - } - int px = runPx(b.type, maxLevel); - int h = fontFor(isHeading(b.type), false, px).getHeight(); - int textH = h + Math.max(2, h / 6); - int imgH = 0; - for (int i = 0; i < text.length(); i++) { - if (text.charAt(i) == OBJ) { - Image im = imageAt(lineStart + i); - if (im != null) { - imgH = Math.max(imgH, imageDisplayHeight(im)); - } - } - } - return Math.max(textH, imgH + 4); - } - - // ---- model sync ---- - - @Override - protected void documentReset() { - inline.reset(getDocument().length()); - blocks.reset(getDocument().getLineCount()); - imageRuns.clear(); - imageSources.clear(); - linkRuns.clear(); - int len = getDocument().length(); - for (int i = 0; i < len; i++) { - imageRuns.add(null); - imageSources.add(null); - linkRuns.add(null); - } - pendingStyle = null; - pendingLink = null; - invalidateLayout(); - } - - @Override - protected void documentReplaced(int start, String removed, String inserted) { - TextStyle ins = pendingStyle != null ? pendingStyle - : (start > 0 ? inline.styleAt(start - 1) : TextStyle.DEFAULT); - inline.applyEdit(start, removed.length(), inserted.length(), ins); - int rem = removed.length(); - for (int i = 0; i < rem && start < imageRuns.size(); i++) { - imageRuns.remove(start); - imageSources.remove(start); - linkRuns.remove(start); - } - for (int i = 0; i < inserted.length(); i++) { - imageRuns.add(Math.min(start + i, imageRuns.size()), null); - imageSources.add(Math.min(start + i, imageSources.size()), null); - linkRuns.add(Math.min(start + i, linkRuns.size()), pendingLink); - } - int para = getDocument().lineOfOffset(start); - blocks.applyEdit(para, countNewlines(removed), countNewlines(inserted)); - invalidateLayout(); - } - - private static final class RichState { - final List styles = new ArrayList(); - final List blockAttrs = new ArrayList(); - final List images = new ArrayList(); - final List sources = new ArrayList(); - final List links = new ArrayList(); - TextStyle pendingStyle; - String pendingLink; - } - - @Override - protected Object captureDocumentState() { - RichState state = new RichState(); - for (int i = 0; i < inline.length(); i++) { - state.styles.add(inline.styleAt(i)); - state.images.add(i < imageRuns.size() ? imageRuns.get(i) : null); - state.sources.add(i < imageSources.size() ? imageSources.get(i) : null); - state.links.add(i < linkRuns.size() ? linkRuns.get(i) : null); - } - for (int i = 0; i < blocks.count(); i++) { - state.blockAttrs.add(blocks.get(i).copy()); - } - state.pendingStyle = pendingStyle; - state.pendingLink = pendingLink; - return state; - } - - @Override - protected void restoreDocumentState(Object snapshot) { - if (!(snapshot instanceof RichState)) { - return; - } - RichState state = (RichState) snapshot; - inline.reset(getDocument().length()); - imageRuns.clear(); - imageSources.clear(); - linkRuns.clear(); - for (int i = 0; i < getDocument().length(); i++) { - if (i < state.styles.size()) { - inline.setAt(i, state.styles.get(i)); - } - imageRuns.add(i < state.images.size() ? state.images.get(i) : null); - imageSources.add(i < state.sources.size() ? state.sources.get(i) : null); - linkRuns.add(i < state.links.size() ? state.links.get(i) : null); - } - blocks.reset(getDocument().getLineCount()); - for (int i = 0; i < state.blockAttrs.size() && i < blocks.count(); i++) { - copyBlock(blocks.get(i), state.blockAttrs.get(i)); - } - pendingStyle = state.pendingStyle; - pendingLink = state.pendingLink; - invalidateLayout(); - } - - private Image imageAt(int offset) { - return offset >= 0 && offset < imageRuns.size() ? imageRuns.get(offset) : null; - } - - private int imageDisplayWidth(Image img) { - int maxW = Math.max(16, contentWidth() - baseSize()); - int w = img.getWidth(); - return Math.min(w, maxW); - } - - private int imageDisplayHeight(Image img) { - int w = img.getWidth(); - int h = img.getHeight(); - int dw = imageDisplayWidth(img); - return w > 0 ? h * dw / w : h; - } - - /// Inserts an inline image at the caret (replacing any selection). - public void insertImageObject(Image img, String source) { - if (!isEditableState() || img == null) { - return; - } - int at = getSelectionStart(); - getUndoManager().breakRun(); - replaceRange(getSelectionStart(), getSelectionEnd(), String.valueOf(OBJ), true); - if (at < imageRuns.size()) { - imageRuns.set(at, img); - imageSources.set(at, source); - } - refreshUndoAfterState(); - getUndoManager().breakRun(); - invalidateLayout(); - repaint(); - } - - private static int countNewlines(String s) { - int n = 0; - for (int i = 0; i < s.length(); i++) { - if (s.charAt(i) == '\n') { - n++; - } - } - return n; - } - - @Override - public void moveCaret(int newCaret, boolean extend) { - pendingStyle = null; - pendingLink = null; - super.moveCaret(newCaret, extend); - } - - private TextStyle styleAtCaret() { - int c = getCaretOffset(); - return inline.styleAt(c > 0 ? c - 1 : 0); - } - - // ---- rendering ---- - - private String listPrefix(int line, RichBlocks.BlockAttr b) { - if (b.listType == RichBlocks.LIST_UNORDERED) { - return "\u2022 "; - } - if (b.listType == RichBlocks.LIST_ORDERED) { - return ordinal(line) + ". "; - } - return null; - } - - private int prefixWidth(int line, RichBlocks.BlockAttr b) { - String p = listPrefix(line, b); - if (p == null) { - return 0; - } - return fontFor(false, false, runPx(b.type, 0)).stringWidth(p); - } - - // ---- bidi atom layout: a line is split into atoms that are single bidi level + single inline style - // (an inline image is one atom); the atoms are reordered into visual order so mixed LTR/RTL styled - // text lays out, hit tests and paints correctly while each atom keeps its own font. ---- - - /// Splits a line into atoms in logical order. Each atom is `{logStart, logEnd, level, isImage}`. - private List richAtomsLogical(String text, int lineStart, byte[] levels) { - List atoms = new ArrayList(); - int c = 0; - int n = text.length(); - while (c < n) { - if (text.charAt(c) == OBJ && imageAt(lineStart + c) != null) { - atoms.add(new int[]{c, c + 1, levels[c], 1}); - c++; - continue; - } - TextStyle st = inline.styleAt(lineStart + c); - int lvl = levels[c]; - int e = c + 1; - while (e < n && text.charAt(e) != OBJ && levels[e] == lvl - && inline.styleAt(lineStart + e).equals(st)) { - e++; - } - atoms.add(new int[]{c, e, lvl, 0}); - c = e; - } - return atoms; - } - - /// Pixel width of `text[from, to)` measured with the inline style at `from` (the atom is single style). - private int styledWidth(String text, int lineStart, int from, int to, RichBlocks.BlockAttr b) { - if (to <= from) { - return 0; - } - TextStyle st = inline.styleAt(lineStart + from); - Font rf = fontFor(st.isBold() || isHeading(b.type), st.isItalic(), runPx(b.type, st.getFontSizeLevel())); - return rf.stringWidth(text.substring(from, to)); - } - - private int atomWidth(String text, int lineStart, int[] atom, RichBlocks.BlockAttr b) { - if (atom[3] == 1) { - Image img = imageAt(lineStart + atom[0]); - return img != null ? imageDisplayWidth(img) : 0; - } - return styledWidth(text, lineStart, atom[0], atom[1], b); - } - - /// Visual (left to right) atom layout: each entry is `{logStart, logEnd, level, isImage, xLeft, width}`. - private int[][] richVisualAtoms(int line, String text, int lineStart) { - byte[] levels = BidiUtil.resolveLevels(text, isRTL()); - List logical = richAtomsLogical(text, lineStart, levels); - byte[] al = new byte[logical.size()]; - for (int i = 0; i < al.length; i++) { - al[i] = (byte) logical.get(i)[2]; - } - int[] vis = BidiUtil.reorderVisual(al); - RichBlocks.BlockAttr b = blocks.get(line); - int[][] out = new int[vis.length][6]; - int x = 0; - for (int vi = 0; vi < vis.length; vi++) { - int[] a = logical.get(vis[vi]); - int w = atomWidth(text, lineStart, a, b); - out[vi] = new int[]{a[0], a[1], a[2], a[3], x, w}; - x += w; - } - return out; - } - - @Override - protected int measureColumnX(int line, String text, int col, Font f) { - int lineStart = getDocument().getLineStart(line); - RichBlocks.BlockAttr b = blocks.get(line); - if (!BidiUtil.isTrivialLtr(text, isRTL())) { - int[][] atoms = richVisualAtoms(line, text, lineStart); - for (int[] atom : atoms) { - int as = atom[0]; - int ae = atom[1]; - int lvl = atom[2]; - int img = atom[3]; - int ax = atom[4]; - if (col >= as && col <= ae) { - if (img == 1) { - boolean before = (lvl & 1) == 0 ? col == as : col == ae; - return before ? ax : ax + atom[5]; - } - if ((lvl & 1) == 0) { - return ax + styledWidth(text, lineStart, as, col, b); - } - return ax + styledWidth(text, lineStart, col, ae, b); - } - } - return atoms.length > 0 ? atoms[atoms.length - 1][4] + atoms[atoms.length - 1][5] : 0; - } - int x = 0; - int c = 0; - while (c < col && c < text.length()) { - Image img = text.charAt(c) == OBJ ? imageAt(lineStart + c) : null; - if (img != null) { - x += imageDisplayWidth(img); - c++; - continue; - } - TextStyle st = inline.styleAt(lineStart + c); - int runEnd = c + 1; - while (runEnd < col && runEnd < text.length() && text.charAt(runEnd) != OBJ - && inline.styleAt(lineStart + runEnd).equals(st)) { - runEnd++; - } - Font rf = fontFor(st.isBold() || isHeading(b.type), st.isItalic(), runPx(b.type, st.getFontSizeLevel())); - x += rf.stringWidth(text.substring(c, runEnd)); - c = runEnd; - } - return x; - } - - @Override - protected int columnAtX(int line, String text, int localX, Font f) { - if (BidiUtil.isTrivialLtr(text, isRTL())) { - return super.columnAtX(line, text, localX, f); - } - int lineStart = getDocument().getLineStart(line); - RichBlocks.BlockAttr b = blocks.get(line); - int[][] atoms = richVisualAtoms(line, text, lineStart); - for (int i = 0; i < atoms.length; i++) { - int as = atoms[i][0]; - int ae = atoms[i][1]; - int lvl = atoms[i][2]; - int img = atoms[i][3]; - int ax = atoms[i][4]; - int aw = atoms[i][5]; - boolean last = i == atoms.length - 1; - if (localX < ax + aw || last) { - if (img == 1) { - boolean rightHalf = localX > ax + aw / 2; - if ((lvl & 1) == 0) { - return rightHalf ? ae : as; - } - return rightHalf ? as : ae; - } - if ((lvl & 1) == 0) { - int c = as; - while (c < ae) { - int wa = ax + styledWidth(text, lineStart, as, c, b); - int wb = ax + styledWidth(text, lineStart, as, c + 1, b); - if (localX < (wa + wb) / 2) { - break; - } - c++; - } - return c; - } - int c = ae; - while (c > as) { - int wa = ax + styledWidth(text, lineStart, c, ae, b); - int wb = ax + styledWidth(text, lineStart, c - 1, ae, b); - if (localX < (wa + wb) / 2) { - break; - } - c--; - } - return c; - } - } - return text.length(); - } - - @Override - protected int[] lineVisualSegments(int line, String text, int from, int to, Font f) { - if (BidiUtil.isTrivialLtr(text, isRTL())) { - return super.lineVisualSegments(line, text, from, to, f); - } - int lineStart = getDocument().getLineStart(line); - RichBlocks.BlockAttr b = blocks.get(line); - int[][] atoms = richVisualAtoms(line, text, lineStart); - List segs = new ArrayList(); - for (int[] atom : atoms) { - int as = atom[0]; - int ae = atom[1]; - int lvl = atom[2]; - int img = atom[3]; - int ax = atom[4]; - int aw = atom[5]; - int a = Math.max(from, as); - int e = Math.min(to, ae); - if (a >= e) { - continue; - } - int xl; - int xr; - if (img == 1) { - xl = ax; - xr = ax + aw; - } else if ((lvl & 1) == 0) { - xl = ax + styledWidth(text, lineStart, as, a, b); - xr = ax + styledWidth(text, lineStart, as, e, b); - } else { - xl = ax + styledWidth(text, lineStart, e, ae, b); - xr = ax + styledWidth(text, lineStart, a, ae, b); - } - segs.add(new int[]{Math.min(xl, xr), Math.abs(xr - xl)}); - } - int[] flat = new int[segs.size() * 2]; - for (int k = 0; k < segs.size(); k++) { - flat[k * 2] = segs.get(k)[0]; - flat[k * 2 + 1] = segs.get(k)[1]; - } - return flat; - } - - @Override - protected int lineContentOffsetX(int line) { - RichBlocks.BlockAttr b = blocks.get(line); - int off = b.indent * baseSize(); - if (b.type == RichBlocks.BLOCKQUOTE) { - off += baseSize() / 2; - } - int prefixW = prefixWidth(line, b); - String text = getDocument().getLineText(line); - int totalW = prefixW + measureLine(line, text); - int avail = contentWidth() - off; - if (b.align == RichBlocks.ALIGN_CENTER && totalW < avail) { - off += (avail - totalW) / 2; - } else if (b.align == RichBlocks.ALIGN_RIGHT && totalW < avail) { - off += avail - totalW; - } - return off + prefixW; - } - - @Override - protected void paintLine(Graphics g, int line, String text, int x, int y, int lineHeight, Font f) { - RichBlocks.BlockAttr b = blocks.get(line); - int lineStart = getDocument().getLineStart(line); - int indentPx = b.indent * baseSize(); - - // block quote bar sits at the indented left edge - if (b.type == RichBlocks.BLOCKQUOTE) { - g.setColor(0xcccccc); - g.fillRect(x + indentPx, y, Math.max(2, baseSize() / 8), lineHeight); - } - - // text starts at the shared content offset so the caret / selection line up - int textStart = x + lineContentOffsetX(line); - - String prefix = listPrefix(line, b); - if (prefix != null) { - Font prefixFont = fontFor(false, false, runPx(b.type, 0)); - int prefixW = prefixFont.stringWidth(prefix); - g.setColor(getTextColor()); - g.setFont(prefixFont); - g.drawString(prefix, textStart - prefixW, y + baseline(lineHeight, prefixFont)); - } - - // styled runs - int col = 0; - int cx = textStart; - while (col < text.length()) { - Image img = text.charAt(col) == OBJ ? imageAt(lineStart + col) : null; - if (img != null) { - int iw = imageDisplayWidth(img); - int ih = imageDisplayHeight(img); - g.drawImage(img, cx, y + Math.max(0, lineHeight - ih), iw, ih); - cx += iw; - col++; - continue; - } - TextStyle st = inline.styleAt(lineStart + col); - int runEnd = col + 1; - while (runEnd < text.length() && text.charAt(runEnd) != OBJ - && inline.styleAt(lineStart + runEnd).equals(st)) { - runEnd++; - } - String run = text.substring(col, runEnd); - boolean bold = st.isBold() || isHeading(b.type); - Font rf = fontFor(bold, st.isItalic(), runPx(b.type, st.getFontSizeLevel())); - int w = rf.stringWidth(run); - int ry = y + baseline(lineHeight, rf); - if (st.getHighlight() >= 0) { - g.setColor(st.getHighlight()); - g.fillRect(cx, y, w, lineHeight); - } - int decoration = 0; - if (st.isUnderline()) { - decoration |= Style.TEXT_DECORATION_UNDERLINE; - } - if (st.isStrike()) { - decoration |= Style.TEXT_DECORATION_STRIKETHRU; - } - g.setColor(st.getForeColor() >= 0 ? st.getForeColor() : getTextColor()); - g.setFont(rf); - g.drawString(run, cx, ry, decoration); - cx += w; - col = runEnd; - } - - // placeholder - if (line == 0 && getDocument().length() == 0 && placeholder.length() > 0 && !hasFocus()) { - g.setColor(0x9aa0a6); - g.setFont(fontFor(false, false, baseSize())); - g.drawString(placeholder, x, y + baseline(lineHeight, fontFor(false, false, baseSize()))); - } - } - - private int measureLine(int line, String text) { - return measureColumnX(line, text, text.length(), getEditorFont()); - } - - private int baseline(int lineHeight, Font f) { - return lineHeight - f.getHeight(); - } - - private int ordinal(int line) { - int n = 1; - for (int i = line - 1; i >= 0; i--) { - RichBlocks.BlockAttr pb = blocks.get(i); - if (pb.listType == RichBlocks.LIST_ORDERED) { - n++; - } else { - break; - } - } - return n; - } - - @Override - protected Font getEditorFont() { - return fontFor(false, false, baseSize()); - } - - // ---- inline formatting commands ---- - - private void applyToggle(int which) { - int s = getSelectionStart(); - int e = getSelectionEnd(); - boolean current = isSetInRange(s, e, which); - final boolean value = !current; - final int w = which; - if (s == e) { - TextStyle base = pendingStyle != null ? pendingStyle : styleAtCaret(); - pendingStyle = withFlag(base, w, value); - return; - } - inline.transformRange(s, e, new InlineStyles.StyleTransform() { - @Override - public TextStyle apply(TextStyle st) { - return withFlag(st, w, value); - } - }); - afterStyleChange(); - } - - private static TextStyle withFlag(TextStyle st, int which, boolean value) { - switch (which) { - case 0: - return st.withBold(value); - case 1: - return st.withItalic(value); - case 2: - return st.withUnderline(value); - default: - return st.withStrike(value); - } - } - - private boolean isSetInRange(int s, int e, final int which) { - return inline.allInRange(s, e, new InlineStyles.StylePredicate() { - @Override - public boolean test(TextStyle st) { - switch (which) { - case 0: - return st.isBold(); - case 1: - return st.isItalic(); - case 2: - return st.isUnderline(); - default: - return st.isStrike(); - } - } - }); - } - - /// Toggles bold on the selection (or the pending typing style when the selection is empty). - public void toggleBold() { - applyToggle(0); - } - - /// Toggles italic. - public void toggleItalic() { - applyToggle(1); - } - - /// Toggles underline. - public void toggleUnderline() { - applyToggle(2); - } - - /// Toggles strike-through. - public void toggleStrike() { - applyToggle(3); - } - - /// Sets the foreground color on the selection. - public void setForeColor(final int rgb) { - applyStyle(new InlineStyles.StyleTransform() { - @Override - public TextStyle apply(TextStyle st) { - return st.withForeColor(rgb); - } - }); - } - - /// Sets the highlight color on the selection. - public void setHighlight(final int rgb) { - applyStyle(new InlineStyles.StyleTransform() { - @Override - public TextStyle apply(TextStyle st) { - return st.withHighlight(rgb); - } - }); - } - - /// Sets the relative font size level (1..7) on the selection. - public void setFontSizeLevel(final int level) { - applyStyle(new InlineStyles.StyleTransform() { - @Override - public TextStyle apply(TextStyle st) { - return st.withFontSizeLevel(level); - } - }); - } - - /// Removes all inline formatting from the selection. - public void removeFormat() { - int s = getSelectionStart(); - int e = getSelectionEnd(); - if (s == e) { - pendingStyle = TextStyle.DEFAULT; - return; - } - inline.transformRange(s, e, new InlineStyles.StyleTransform() { - @Override - public TextStyle apply(TextStyle st) { - return TextStyle.DEFAULT; - } - }); - afterStyleChange(); - } - - private void applyStyle(InlineStyles.StyleTransform t) { - int s = getSelectionStart(); - int e = getSelectionEnd(); - if (s == e) { - TextStyle base = pendingStyle != null ? pendingStyle : styleAtCaret(); - pendingStyle = t.apply(base); - return; - } - inline.transformRange(s, e, t); - afterStyleChange(); - } - - private void afterStyleChange() { - invalidateLayout(); - if (host() != null) { - host().editorChanged(); - } - repaint(); - } - - // ---- block formatting commands ---- - - private void forEachSelectedBlock(BlockOp op) { - int s = getSelectionStart(); - int e = getSelectionEnd(); - int firstLine = getDocument().lineOfOffset(s); - int lastLine = getDocument().lineOfOffset(e); - for (int ln = firstLine; ln <= lastLine; ln++) { - op.apply(blocks.get(ln)); - } - afterStyleChange(); - } - - private interface BlockOp { - void apply(RichBlocks.BlockAttr b); - } - - /// Sets the block type (`p`, `h1`..`h6`, `pre`, `blockquote`) on the selected paragraphs. - public void setBlockFormat(String tag) { - final int type = blockTypeForTag(tag); - forEachSelectedBlock(new BlockOp() { - @Override - public void apply(RichBlocks.BlockAttr b) { - b.type = type; - b.listType = RichBlocks.LIST_NONE; - } - }); - } - - private static int blockTypeForTag(String tag) { - if (tag == null) { - return RichBlocks.PARAGRAPH; - } - if (tag.length() == 2 && (tag.charAt(0) == 'h' || tag.charAt(0) == 'H')) { - int n = tag.charAt(1) - '0'; - if (n >= 1 && n <= 6) { - return RichBlocks.H1 + (n - 1); - } - } - if ("pre".equalsIgnoreCase(tag)) { - return RichBlocks.PRE; - } - if ("blockquote".equalsIgnoreCase(tag)) { - return RichBlocks.BLOCKQUOTE; - } - return RichBlocks.PARAGRAPH; - } - - /// Sets the alignment on the selected paragraphs. - public void setAlign(final int align) { - forEachSelectedBlock(new BlockOp() { - @Override - public void apply(RichBlocks.BlockAttr b) { - b.align = align; - } - }); - } - - /// Applies (or toggles off) an ordered / unordered list on the selected paragraphs. - public void setList(final int listType) { - int s = getSelectionStart(); - int firstLine = getDocument().lineOfOffset(s); - boolean allSame = blocks.get(firstLine).listType == listType; - final int target = allSame ? RichBlocks.LIST_NONE : listType; - forEachSelectedBlock(new BlockOp() { - @Override - public void apply(RichBlocks.BlockAttr b) { - b.listType = target; - } - }); - } - - /// Increases the indentation of the selected paragraphs. - public void indentBlocks() { - forEachSelectedBlock(new BlockOp() { - @Override - public void apply(RichBlocks.BlockAttr b) { - b.indent++; - } - }); - } - - /// Decreases the indentation of the selected paragraphs. - public void outdentBlocks() { - forEachSelectedBlock(new BlockOp() { - @Override - public void apply(RichBlocks.BlockAttr b) { - if (b.indent > 0) { - b.indent--; - } - } - }); - } - - /// Applies a hyperlink target and its default appearance to the selection. - public void applyLink(String url) { - int start = getSelectionStart(); - int end = getSelectionEnd(); - if (start == end) { - pendingLink = url; - } else { - for (int i = start; i < end && i < linkRuns.size(); i++) { - linkRuns.set(i, url); - } - } - applyStyle(new InlineStyles.StyleTransform() { - @Override - public TextStyle apply(TextStyle st) { - return st.withUnderline(true).withForeColor(0x1a73e8); - } - }); - } - - /// Removes the link appearance from the selection. - public void removeLinkStyle() { - int start = getSelectionStart(); - int end = getSelectionEnd(); - if (start == end) { - pendingLink = null; - } else { - for (int i = start; i < end && i < linkRuns.size(); i++) { - linkRuns.set(i, null); - } - } - applyStyle(new InlineStyles.StyleTransform() { - @Override - public TextStyle apply(TextStyle st) { - return st.withUnderline(false).withForeColor(-1); - } - }); - } - - /// Returns whether an inline command (`bold`, `italic`, `underline`, `strikeThrough`) is active for - /// the current selection. - public boolean queryState(String command) { - int s = getSelectionStart(); - int e = getSelectionEnd(); - if ("bold".equals(command)) { - return isSetInRange(s, e, 0); - } - if ("italic".equals(command)) { - return isSetInRange(s, e, 1); - } - if ("underline".equals(command)) { - return isSetInRange(s, e, 2); - } - if ("strikeThrough".equals(command)) { - return isSetInRange(s, e, 3); - } - return false; - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/TextStyle.java b/CodenameOne/src/com/codename1/ui/editor/TextStyle.java deleted file mode 100644 index 3ace89e7607..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/TextStyle.java +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -/// An immutable inline text style (bold / italic / underline / strike, foreground color, highlight color -/// and relative font size) used by the pure rich text editor. Instances are value objects; the -/// `#with*` methods return a possibly new instance leaving the original untouched, which makes them safe -/// to share across runs. -public final class TextStyle { - /// The default (unstyled) text style. - public static final TextStyle DEFAULT = new TextStyle(false, false, false, false, -1, -1, 0); - - private final boolean bold; - private final boolean italic; - private final boolean underline; - private final boolean strike; - private final int foreColor; - private final int highlight; - private final int fontSizeLevel; - - private TextStyle(boolean bold, boolean italic, boolean underline, boolean strike, - int foreColor, int highlight, int fontSizeLevel) { - this.bold = bold; - this.italic = italic; - this.underline = underline; - this.strike = strike; - this.foreColor = foreColor; - this.highlight = highlight; - this.fontSizeLevel = fontSizeLevel; - } - - /// True when bold. - public boolean isBold() { - return bold; - } - - /// True when italic. - public boolean isItalic() { - return italic; - } - - /// True when underlined. - public boolean isUnderline() { - return underline; - } - - /// True when struck through. - public boolean isStrike() { - return strike; - } - - /// The foreground color as 0xRRGGBB, or -1 to inherit. - public int getForeColor() { - return foreColor; - } - - /// The highlight (background) color as 0xRRGGBB, or -1 for none. - public int getHighlight() { - return highlight; - } - - /// The relative font size level (1..7), or 0 for the default size. - public int getFontSizeLevel() { - return fontSizeLevel; - } - - /// Returns a style with bold set to the given value. - public TextStyle withBold(boolean v) { - return new TextStyle(v, italic, underline, strike, foreColor, highlight, fontSizeLevel); - } - - /// Returns a style with italic set to the given value. - public TextStyle withItalic(boolean v) { - return new TextStyle(bold, v, underline, strike, foreColor, highlight, fontSizeLevel); - } - - /// Returns a style with underline set to the given value. - public TextStyle withUnderline(boolean v) { - return new TextStyle(bold, italic, v, strike, foreColor, highlight, fontSizeLevel); - } - - /// Returns a style with strike-through set to the given value. - public TextStyle withStrike(boolean v) { - return new TextStyle(bold, italic, underline, v, foreColor, highlight, fontSizeLevel); - } - - /// Returns a style with the given foreground color (or -1 to inherit). - public TextStyle withForeColor(int v) { - return new TextStyle(bold, italic, underline, strike, v, highlight, fontSizeLevel); - } - - /// Returns a style with the given highlight color (or -1 for none). - public TextStyle withHighlight(int v) { - return new TextStyle(bold, italic, underline, strike, foreColor, v, fontSizeLevel); - } - - /// Returns a style with the given font size level (1..7, or 0 for default). - public TextStyle withFontSizeLevel(int v) { - return new TextStyle(bold, italic, underline, strike, foreColor, highlight, v); - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof TextStyle)) { - return false; - } - TextStyle t = (TextStyle) o; - return bold == t.bold && italic == t.italic && underline == t.underline && strike == t.strike - && foreColor == t.foreColor && highlight == t.highlight && fontSizeLevel == t.fontSizeLevel; - } - - @Override - public int hashCode() { - int h = 0; - h = h * 31 + (bold ? 1 : 0); - h = h * 31 + (italic ? 1 : 0); - h = h * 31 + (underline ? 1 : 0); - h = h * 31 + (strike ? 1 : 0); - h = h * 31 + foreColor; - h = h * 31 + highlight; - h = h * 31 + fontSizeLevel; - return h; - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/ThemePalette.java b/CodenameOne/src/com/codename1/ui/editor/ThemePalette.java deleted file mode 100644 index 4d0078c5057..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/ThemePalette.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -/// The color palette for the pure code editor, mirroring the light (GitHub style) and dark (VS Code -/// style) themes used by the previous `BrowserComponent` backend so switching backends is visually -/// consistent. -public final class ThemePalette { - /// The GitHub style light palette. - public static final ThemePalette LIGHT = new ThemePalette( - 0xffffff, 0x24292e, 0xb3d4fc, - 0xd73a49, 0x032f62, 0x6a737d, 0x005cc5, - 0xf6f8fa, 0xb0b6bd, - 0xe51400, 0xe36209, 0x1a73e8); - - /// The VS Code style dark palette. - public static final ThemePalette DARK = new ThemePalette( - 0x1e1e1e, 0xd4d4d4, 0x264f78, - 0x569cd6, 0xce9178, 0x6a9955, 0xb5cea8, - 0x252526, 0x6e7681, - 0xf14c4c, 0xcca700, 0x3794ff); - - private final int background; - private final int foreground; - private final int selection; - private final int keyword; - private final int string; - private final int comment; - private final int number; - private final int gutterBackground; - private final int gutterForeground; - private final int errorColor; - private final int warningColor; - private final int infoColor; - - private ThemePalette(int background, int foreground, int selection, int keyword, int string, - int comment, int number, int gutterBackground, int gutterForeground, - int errorColor, int warningColor, int infoColor) { - this.background = background; - this.foreground = foreground; - this.selection = selection; - this.keyword = keyword; - this.string = string; - this.comment = comment; - this.number = number; - this.gutterBackground = gutterBackground; - this.gutterForeground = gutterForeground; - this.errorColor = errorColor; - this.warningColor = warningColor; - this.infoColor = infoColor; - } - - /// Returns the palette for the given theme id (`"dark"` returns the dark palette, anything else the - /// light palette). - public static ThemePalette forName(String theme) { - return "dark".equals(theme) ? DARK : LIGHT; - } - - /// Returns the color for the given `Tokenizer` token kind. - public int colorForKind(int kind) { - switch (kind) { - case Tokenizer.KEYWORD: - return keyword; - case Tokenizer.STRING: - return string; - case Tokenizer.COMMENT: - return comment; - case Tokenizer.NUMBER: - return number; - default: - return foreground; - } - } - - /// The editor background color. - public int getBackground() { - return background; - } - - /// The default text color. - public int getForeground() { - return foreground; - } - - /// The selection highlight color. - public int getSelection() { - return selection; - } - - /// The gutter background color. - public int getGutterBackground() { - return gutterBackground; - } - - /// The gutter text color. - public int getGutterForeground() { - return gutterForeground; - } - - /// The error diagnostic color. - public int getErrorColor() { - return errorColor; - } - - /// The warning diagnostic color. - public int getWarningColor() { - return warningColor; - } - - /// The info diagnostic color. - public int getInfoColor() { - return infoColor; - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/Tokenizer.java b/CodenameOne/src/com/codename1/ui/editor/Tokenizer.java deleted file mode 100644 index e80c1216d2d..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/Tokenizer.java +++ /dev/null @@ -1,259 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import java.util.ArrayList; -import java.util.List; - -/// A small, allocation light, stateful lexer for the pure code editor. It tokenizes a single line at a -/// time given the lexer state carried over from the previous line, and returns the state to carry into -/// the next line. This makes rehighlighting incremental: after an edit only the changed line and any -/// following lines whose entry state changed need to be retokenized. -/// -/// Only the spans that carry color (keyword, string, comment, number) are emitted; the gaps between them -/// are drawn in the default text color. -public final class Tokenizer { - /// Token kind: a language keyword. - public static final int KEYWORD = 1; - /// Token kind: a string or character literal. - public static final int STRING = 2; - /// Token kind: a comment. - public static final int COMMENT = 3; - /// Token kind: a numeric literal. - public static final int NUMBER = 4; - - /// Lexer state: normal code. - public static final int STATE_NORMAL = 0; - /// Lexer state: inside a block comment that opened on a previous line. - public static final int STATE_BLOCK_COMMENT = 1; - /// Lexer state: inside a backtick template string that opened on a previous line. - public static final int STATE_TEMPLATE = 2; - - private final LanguageDef def; - - /// Creates a tokenizer for the given language. - public Tokenizer(LanguageDef def) { - this.def = def; - } - - /// A colored span within a line: `[start, start + length)` has the given kind. - public static final class Token { - /// The start column within the line. - public final int start; - /// The number of characters. - public final int length; - /// One of the token kind constants. - public final int kind; - - Token(int start, int length, int kind) { - this.start = start; - this.length = length; - this.kind = kind; - } - } - - /// The result of tokenizing one line: the colored spans and the lexer state to carry to the next line. - public static final class TokenLine { - /// The colored spans, ordered by start. - public final List tokens; - /// The lexer state on leaving the line. - public final int endState; - - TokenLine(List tokens, int endState) { - this.tokens = tokens; - this.endState = endState; - } - } - - private static boolean isIdentStart(char c) { - return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' || c == '$'; - } - - private static boolean isIdentPart(char c) { - return isIdentStart(c) || (c >= '0' && c <= '9'); - } - - private static boolean isDigit(char c) { - return c >= '0' && c <= '9'; - } - - /// Tokenizes one line. - /// - /// #### Parameters - /// - /// - `line`: the line text (without its trailing newline) - /// - /// - `startState`: the lexer state carried from the previous line - /// - /// #### Returns - /// - /// the colored spans and exit state - public TokenLine tokenize(String line, int startState) { - List tokens = new ArrayList(); - if (def.isPlain()) { - return new TokenLine(tokens, STATE_NORMAL); - } - int n = line.length(); - int i = 0; - int state = startState; - - if (state == STATE_BLOCK_COMMENT) { - int end = indexOfClose(line, 0, "*/"); - if (end < 0) { - if (n > 0) { - tokens.add(new Token(0, n, COMMENT)); - } - return new TokenLine(tokens, STATE_BLOCK_COMMENT); - } - tokens.add(new Token(0, end + 2, COMMENT)); - i = end + 2; - state = STATE_NORMAL; - } else if (state == STATE_TEMPLATE) { - int end = scanTemplate(line, 0); - if (end < 0) { - if (n > 0) { - tokens.add(new Token(0, n, STRING)); - } - return new TokenLine(tokens, STATE_TEMPLATE); - } - tokens.add(new Token(0, end + 1, STRING)); - i = end + 1; - state = STATE_NORMAL; - } - - while (i < n) { - char c = line.charAt(i); - // line comment - if (def.hasLineCommentSlash() && c == '/' && i + 1 < n && line.charAt(i + 1) == '/') { - tokens.add(new Token(i, n - i, COMMENT)); - break; - } - if (def.hasLineCommentHash() && c == '#') { - tokens.add(new Token(i, n - i, COMMENT)); - break; - } - // block comment - if (def.hasBlockComment() && c == '/' && i + 1 < n && line.charAt(i + 1) == '*') { - int end = indexOfClose(line, i + 2, "*/"); - if (end < 0) { - tokens.add(new Token(i, n - i, COMMENT)); - return new TokenLine(tokens, STATE_BLOCK_COMMENT); - } - tokens.add(new Token(i, end + 2 - i, COMMENT)); - i = end + 2; - continue; - } - // template string - if (def.hasTemplateString() && c == '`') { - int end = scanTemplate(line, i + 1); - if (end < 0) { - tokens.add(new Token(i, n - i, STRING)); - return new TokenLine(tokens, STATE_TEMPLATE); - } - tokens.add(new Token(i, end + 1 - i, STRING)); - i = end + 1; - continue; - } - // string / char literal - if (c == '"' || c == '\'') { - int end = scanString(line, i + 1, c); - int stop = end < 0 ? n : end + 1; - tokens.add(new Token(i, stop - i, STRING)); - i = stop; - continue; - } - // number - if (isDigit(c)) { - int j = i + 1; - while (j < n) { - char d = line.charAt(j); - if (isIdentPart(d) || d == '.') { - j++; - } else { - break; - } - } - tokens.add(new Token(i, j - i, NUMBER)); - i = j; - continue; - } - // identifier / keyword - if (isIdentStart(c)) { - int j = i + 1; - while (j < n && isIdentPart(line.charAt(j))) { - j++; - } - String word = line.substring(i, j); - if (def.isKeyword(word)) { - tokens.add(new Token(i, j - i, KEYWORD)); - } - i = j; - continue; - } - i++; - } - return new TokenLine(tokens, state); - } - - private static int indexOfClose(String line, int from, String close) { - return line.indexOf(close, from); - } - - // scans a single or double quoted string starting after the opening quote; returns the index of the - // closing quote, or -1 if the line ends first (single line strings do not span lines) - private static int scanString(String line, int from, char quote) { - int n = line.length(); - int i = from; - while (i < n) { - char c = line.charAt(i); - if (c == '\\') { - i += 2; - continue; - } - if (c == quote) { - return i; - } - i++; - } - return -1; - } - - // scans a backtick template string; returns index of the closing backtick or -1 if it spans lines - private static int scanTemplate(String line, int from) { - int n = line.length(); - int i = from; - while (i < n) { - char c = line.charAt(i); - if (c == '\\') { - i += 2; - continue; - } - if (c == '`') { - return i; - } - i++; - } - return -1; - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/UndoManager.java b/CodenameOne/src/com/codename1/ui/editor/UndoManager.java deleted file mode 100644 index 329c065b5fa..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/UndoManager.java +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import java.util.ArrayList; - -/// A compact undo / redo stack for the pure editors. Every mutation is recorded as a replacement of the -/// range `[start, start + removed.length)` with `inserted`; the inverse simply swaps `removed` and -/// `inserted`. Consecutive single character insertions are coalesced into one undo unit so a burst of -/// typing undoes as a word rather than a keystroke at a time. -public class UndoManager { - static final class Edit { - int start; - String removed; - String inserted; - Object beforeState; - Object afterState; - - Edit(int start, String removed, String inserted, Object beforeState, Object afterState) { - this.start = start; - this.removed = removed; - this.inserted = inserted; - this.beforeState = beforeState; - this.afterState = afterState; - } - } - - private final ArrayList undo = new ArrayList(); - private final ArrayList redo = new ArrayList(); - private boolean coalesceAllowed; - - /// Records a mutation for later undo. Clears the redo stack. - /// - /// #### Parameters - /// - /// - `start`: the offset at which text was removed / inserted - /// - /// - `removed`: the text that was removed (empty for a pure insert) - /// - /// - `inserted`: the text that was inserted (empty for a pure delete) - public void record(int start, String removed, String inserted) { - record(start, removed, inserted, null, null); - } - - void record(int start, String removed, String inserted, Object beforeState, Object afterState) { - redo.clear(); - if (coalesceAllowed && removed.length() == 0 && inserted.length() == 1 - && inserted.charAt(0) != '\n' && !undo.isEmpty()) { - Edit last = undo.get(undo.size() - 1); - if (last.removed.length() == 0 && last.start + last.inserted.length() == start - && last.inserted.length() > 0 && last.inserted.charAt(last.inserted.length() - 1) != '\n') { - last.inserted = last.inserted + inserted; - last.afterState = afterState; - return; - } - } - undo.add(new Edit(start, removed, inserted, beforeState, afterState)); - coalesceAllowed = removed.length() == 0 && inserted.length() == 1; - } - - /// Updates the post-edit feature-model snapshot of the most recent undo unit. - void updateLastAfterState(Object afterState) { - if (!undo.isEmpty()) { - undo.get(undo.size() - 1).afterState = afterState; - } - } - - /// Breaks the current coalescing run so the next recorded insert starts a fresh undo unit. Called on - /// caret jumps, selection changes and structural edits. - public void breakRun() { - coalesceAllowed = false; - } - - /// True when there is anything to undo. - public boolean canUndo() { - return !undo.isEmpty(); - } - - /// True when there is anything to redo. - public boolean canRedo() { - return !redo.isEmpty(); - } - - /// Undoes the most recent mutation against the supplied document. - /// - /// #### Parameters - /// - /// - `doc`: the document to mutate - /// - /// #### Returns - /// - /// the caret offset after the undo, or -1 when there was nothing to undo - public int undo(EditorDocument doc) { - Edit edit = undoEdit(doc); - return edit == null ? -1 : edit.start + edit.removed.length(); - } - - Edit undoEdit(EditorDocument doc) { - if (undo.isEmpty()) { - return null; - } - coalesceAllowed = false; - Edit e = undo.remove(undo.size() - 1); - doc.delete(e.start, e.start + e.inserted.length()); - doc.insert(e.start, e.removed); - redo.add(e); - return e; - } - - /// Redoes the most recently undone mutation against the supplied document. - /// - /// #### Parameters - /// - /// - `doc`: the document to mutate - /// - /// #### Returns - /// - /// the caret offset after the redo, or -1 when there was nothing to redo - public int redo(EditorDocument doc) { - Edit edit = redoEdit(doc); - return edit == null ? -1 : edit.start + edit.inserted.length(); - } - - Edit redoEdit(EditorDocument doc) { - if (redo.isEmpty()) { - return null; - } - coalesceAllowed = false; - Edit e = redo.remove(redo.size() - 1); - doc.delete(e.start, e.start + e.removed.length()); - doc.insert(e.start, e.inserted); - undo.add(e); - return e; - } - - /// Clears all recorded history. - public void clear() { - undo.clear(); - redo.clear(); - coalesceAllowed = false; - } -} diff --git a/CodenameOne/src/com/codename1/ui/editor/package-info.java b/CodenameOne/src/com/codename1/ui/editor/package-info.java deleted file mode 100644 index c9431192998..00000000000 --- a/CodenameOne/src/com/codename1/ui/editor/package-info.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -/// The pure Codename One text editing engine that backs -/// `com.codename1.ui.RichTextArea` and `com.codename1.ui.CodeEditor`. -/// -/// Overview -/// -/// This package renders and edits text entirely with the Codename One -/// graphics pipeline - it owns the document model, caret, selection, undo -/// stack, layout and painting, and binds directly to the platform text input -/// source (soft keyboard, autocorrect and IME composition) rather than -/// embedding a native web view. Because the engine draws every glyph itself it -/// behaves consistently across platforms and supports mixed left-to-right and -/// right-to-left text via the Unicode Bidirectional Algorithm. -/// -/// Key types -/// -/// - `EditorDocument` - the mutable character buffer with a line index that -/// caret, selection, undo and the platform input source all operate on. -/// -/// - `EditorView` - the base `com.codename1.ui.Component` that measures, -/// paints, scrolls and hit-tests the document and implements the text input -/// client contract; `CodeView` and `RichView` extend it for the code and rich -/// text feature layers. -/// -/// - `BidiUtil` - the Unicode Bidirectional Algorithm used to resolve -/// embedding levels and reorder mixed-direction runs for measurement and paint. -/// -/// - `HtmlImporter` - parses the HTML fragment accepted by `RichTextArea` into -/// the styled block/run model the engine renders. -/// -/// These classes are the implementation of the two public editor components; -/// applications interact with `RichTextArea` and `CodeEditor` rather than with -/// the types here. -package com.codename1.ui.editor; diff --git a/CodenameOne/src/com/codename1/ui/html/HTMLParser.java b/CodenameOne/src/com/codename1/ui/html/HTMLParser.java index 6f858f921ba..4f8dd4f1ed5 100644 --- a/CodenameOne/src/com/codename1/ui/html/HTMLParser.java +++ b/CodenameOne/src/com/codename1/ui/html/HTMLParser.java @@ -36,34 +36,21 @@ /// /// @author Ofir Leitner public class HTMLParser extends XMLParser { - private final boolean preserveUnsupportedAttributes; - /// Creates the legacy validating HTML parser. - public HTMLParser() { - this(false); - } + /// The list of empty tags (tags that naturally don't have any children). + /// This is used to enable empty tags to be closed also in a non-strict way (i.e.
    instead of
    ) + /// some of these tags are not a part of the XHTML-MP 1.0 standard, but including them here allows a more smooth parsing if the document is not strictly XHTML-MP 1.0 + private static final String[] EMPTY_TAGS = {"br", "link", "meta", "base", "area", "basefont", "col", "frame", "hr", "img", "input", "isindex", "param"}; + HTMLComponent htmlC; // The HTMLComponent that uses this Parser - /// Creates an HTML parser, optionally retaining attributes that are not in the legacy - /// `HTMLElement` schema. This is useful for modern HTML fragments containing `data-*` or ARIA - /// metadata while preserving the historic validation behavior by default. - /// - /// #### Parameters - /// - /// - `preserveUnsupportedAttributes`: true to keep unknown attributes in the parsed DOM - public HTMLParser(boolean preserveUnsupportedAttributes) { - this.preserveUnsupportedAttributes = preserveUnsupportedAttributes; + /// Constructs a new instance of HTMLParser + public HTMLParser() { // Add common char entities that are above the HTML 2.0 char entities range addCharEntity("bull", 8226); addCharEntity("euro", 8364); setIncludeWhitespacesBetweenTags(true); } - /// The list of empty tags (tags that naturally don't have any children). - /// This is used to enable empty tags to be closed also in a non-strict way (i.e.
    instead of
    ) - /// some of these tags are not a part of the XHTML-MP 1.0 standard, but including them here allows a more smooth parsing if the document is not strictly XHTML-MP 1.0 - private static final String[] EMPTY_TAGS = {"br", "link", "meta", "base", "area", "basefont", "col", "frame", "hr", "img", "input", "isindex", "param"}; - HTMLComponent htmlC; // The HTMLComponent that uses this Parser - /// Pair this HTMLParser with the HTMLComponent that uses it. /// This pairing is necessary to allow access to the htmlC in parseTagContent upon finding a CSS embedded segment /// @@ -90,7 +77,7 @@ void setHTMLComponent(HTMLComponent htmlC) { /// - `IOException`: if an I/O error in the stream is encountered @Override protected void parseTagContent(Element element, Reader is) throws IOException { - if ((HTMLComponent.SUPPORT_CSS) && (htmlC != null) && (htmlC.loadCSS) && (((HTMLElement) element).getTagId() == HTMLElement.TAG_STYLE)) { // We aren't strict and don't require text/css in a style tag // && "text/css".equals(element.getAttributeById(Element.ATTR_TYPE)))) { + if ((HTMLComponent.SUPPORT_CSS) && (htmlC.loadCSS) && (((HTMLElement) element).getTagId() == HTMLElement.TAG_STYLE)) { // We aren't strict and don't require text/css in a style tag // && "text/css".equals(element.getAttributeById(Element.ATTR_TYPE)))) { CSSElement addTo = CSSParser.getInstance().parseCSSSegment(is, null, htmlC, null); htmlC.addToEmebeddedCSS(addTo); return; @@ -110,32 +97,7 @@ protected void parseTagContent(Element element, Reader is) throws IOException { /// a new instance of the names HTMLElement @Override protected Element createNewElement(String name) { - return preserveUnsupportedAttributes ? new FragmentHTMLElement(name) : new HTMLElement(name); - } - - private static final class FragmentHTMLElement extends HTMLElement { - FragmentHTMLElement(String name) { - super(name); - } - - @Override - public int setAttribute(String attribute, String value) { - int result = super.setAttribute(attribute, value); - if (result != -1) { - setAttribute((Object) attribute.toLowerCase(), value); - return -1; - } - return result; - } - - @Override - public String getAttribute(String name) { - String result = super.getAttribute(name); - if (result == null && getAttributes() != null) { - result = (String) getAttributes().get(name.toLowerCase()); - } - return result; - } + return new HTMLElement(name); } /// Overrides XMLParser.createNewTextElement to return an HTMLElement instance diff --git a/CodenameOne/src/com/codename1/ui/html/HTMLUtils.java b/CodenameOne/src/com/codename1/ui/html/HTMLUtils.java index dbd90466b9f..c471aaf03f8 100644 --- a/CodenameOne/src/com/codename1/ui/html/HTMLUtils.java +++ b/CodenameOne/src/com/codename1/ui/html/HTMLUtils.java @@ -62,23 +62,6 @@ public final class HTMLUtils { "Ugrave", "Uacute", "Ucirc", "Uuml", "Yacute", "THORN", "szlig", "agrave", "aacute", "acirc", "atilde", "auml", "aring", "aelig", "ccedil", "egrave", "eacute", "ecirc", "euml", "igrave", "iacute", "icirc", "iuml", "eth", "ntilde", "ograve", "oacute", "ocirc", "otilde", "ouml", "divide", "oslash", "ugrave", "uacute", "ucirc", "uuml", "yacute", "thorn", "yuml"}; - /// Common HTML 4 named entities outside the contiguous ISO-8859-1 range above. Keeping these in - /// the shared parser utility lets all tolerant HTMLParser clients decode modern pasted fragments - /// without maintaining their own entity tables. - private static final String[] HTML_EXTENDED_CHAR_ENTITY_STRINGS = { - "OElig", "oelig", "Scaron", "scaron", "Yuml", "fnof", "circ", "tilde", - "ensp", "emsp", "thinsp", "zwnj", "zwj", "lrm", "rlm", "ndash", "mdash", - "lsquo", "rsquo", "sbquo", "ldquo", "rdquo", "bdquo", "dagger", "Dagger", "bull", - "hellip", "permil", "prime", "Prime", "lsaquo", "rsaquo", "oline", "frasl", "euro", - "image", "weierp", "real", "trade", "alefsym" - }; - private static final int[] HTML_EXTENDED_CHAR_ENTITY_VALUES = { - 338, 339, 352, 353, 376, 402, 710, 732, - 8194, 8195, 8201, 8204, 8205, 8206, 8207, 8211, 8212, - 8216, 8217, 8218, 8220, 8221, 8222, 8224, 8225, 8226, - 8230, 8240, 8242, 8243, 8249, 8250, 8254, 8260, 8364, - 8465, 8472, 8476, 8482, 8501 - }; // Prevents instantiation - this class has static method only private HTMLUtils() { @@ -176,10 +159,6 @@ private static int getCharEntityCode(String symbol, boolean html, Hashtable user if (val != -1) { return val + 160; } - val = getStringVal(symbol, HTML_EXTENDED_CHAR_ENTITY_STRINGS); - if (val != -1) { - return HTML_EXTENDED_CHAR_ENTITY_VALUES[val]; - } } // Not found in the standard symbol table, see if it is in the user defined symbols table diff --git a/Ports/Android/src/com/codename1/impl/android/AndroidAsyncView.java b/Ports/Android/src/com/codename1/impl/android/AndroidAsyncView.java index 3c5739aaf48..0eacbbee2f8 100644 --- a/Ports/Android/src/com/codename1/impl/android/AndroidAsyncView.java +++ b/Ports/Android/src/com/codename1/impl/android/AndroidAsyncView.java @@ -513,19 +513,12 @@ public InputConnection onCreateInputConnection(EditorInfo editorInfo) { if (!Display.isInitialized() || Display.getInstance().getCurrent() == null) { return super.onCreateInputConnection(editorInfo); } - InputConnection editorConn = AndroidImplementation.createEditorInputConnection(this, editorInfo); - if (editorConn != null) { - return editorConn; - } cn1View.setInputType(editorInfo); return super.onCreateInputConnection(editorInfo); } @Override public boolean onCheckIsTextEditor() { - if (AndroidImplementation.hasActiveInputClient()) { - return true; - } if (!Display.isInitialized() || Display.getInstance().getCurrent() == null) { return false; } diff --git a/Ports/Android/src/com/codename1/impl/android/AndroidImplementation.java b/Ports/Android/src/com/codename1/impl/android/AndroidImplementation.java index b911d03f047..b20cc3baa41 100644 --- a/Ports/Android/src/com/codename1/impl/android/AndroidImplementation.java +++ b/Ports/Android/src/com/codename1/impl/android/AndroidImplementation.java @@ -1,26 +1,25 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - +/* + * Copyright (c) 2012, Codename One and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Codename One designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Codename One through http://www.codenameone.com/ if you + * need additional information or have any questions. + */ package com.codename1.impl.android; import android.Manifest; @@ -74,11 +73,10 @@ import com.codename1.ui.AccessibilityColorVisionDeficiency; import com.codename1.ui.Component; -import com.codename1.ui.Font; -import com.codename1.ui.Image; -import com.codename1.ui.PeerComponent; -import com.codename1.ui.RichTextClipboardData; -import com.codename1.ui.events.ActionEvent; +import com.codename1.ui.Font; +import com.codename1.ui.Image; +import com.codename1.ui.PeerComponent; +import com.codename1.ui.events.ActionEvent; import com.codename1.impl.CodenameOneImplementation; import com.codename1.impl.VirtualKeyboardInterface; import com.codename1.ui.plaf.UIManager; @@ -293,137 +291,7 @@ public void uncaughtException(Thread t, Throwable e) { public static CodenameOneActivity getActivity() { return activity; } - - // ---- low level text input source (pure Codename One editors) ---- - - private static volatile com.codename1.ui.TextInputClient activeInputClient; - private static volatile com.codename1.ui.TextInputState activeInputState; - private static volatile com.codename1.ui.TextInputConfig activeInputConfig; - - /// Returns the last editing state pushed down for the active text input client, read synchronously by - /// `CN1TextInputConnection` on the IME thread. - static com.codename1.ui.TextInputState currentInputState() { - return activeInputState; - } - - static com.codename1.ui.TextInputConfig currentInputConfig() { - return activeInputConfig; - } - - /// Called by the rendering view's `onCreateInputConnection` to supply the custom input connection - /// when a pure editor is bound. Returns null when no client is active so the view keeps its default - /// behavior. - static android.view.inputmethod.InputConnection createEditorInputConnection(android.view.View view, android.view.inputmethod.EditorInfo editorInfo) { - com.codename1.ui.TextInputClient client = activeInputClient; - if (client == null) { - return null; - } - configureEditorInfo(editorInfo, activeInputConfig); - return new CN1TextInputConnection(view, client); - } - - /// True when a pure editor text input client is currently bound. - static boolean hasActiveInputClient() { - return activeInputClient != null; - } - - private static void configureEditorInfo(android.view.inputmethod.EditorInfo editorInfo, com.codename1.ui.TextInputConfig cfg) { - int inputType = android.text.InputType.TYPE_CLASS_TEXT; - boolean multiline = cfg == null || cfg.isMultiline(); - if (multiline) { - inputType |= android.text.InputType.TYPE_TEXT_FLAG_MULTI_LINE; - } - if (cfg != null && !cfg.isAutoCorrect()) { - inputType |= android.text.InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS; - } - if (cfg != null && cfg.isAutoCapitalize()) { - inputType |= android.text.InputType.TYPE_TEXT_FLAG_CAP_SENTENCES; - } - editorInfo.inputType = inputType; - editorInfo.imeOptions = android.view.inputmethod.EditorInfo.IME_FLAG_NO_EXTRACT_UI; - if (multiline) { - editorInfo.imeOptions |= android.view.inputmethod.EditorInfo.IME_ACTION_NONE; - } - editorInfo.initialSelStart = activeInputState != null ? activeInputState.getSelectionStart() : 0; - editorInfo.initialSelEnd = activeInputState != null ? activeInputState.getSelectionEnd() : 0; - } - - @Override - public boolean isTextInputSupported() { - return true; - } - - @Override - public Object startTextInput(com.codename1.ui.TextInputClient client, com.codename1.ui.TextInputConfig config) { - activeInputClient = client; - activeInputConfig = config; - activeInputState = client.getEditingState(); - final CodenameOneActivity a = getActivity(); - final CodenameOneSurface view = myView; - if (a == null || view == null) { - return client; - } - a.runOnUiThread(new Runnable() { - public void run() { - android.view.View v = view.getAndroidView(); - v.setFocusable(true); - v.setFocusableInTouchMode(true); - v.requestFocus(); - android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager) - a.getSystemService(android.content.Context.INPUT_METHOD_SERVICE); - if (imm != null) { - imm.restartInput(v); - imm.showSoftInput(v, android.view.inputmethod.InputMethodManager.SHOW_IMPLICIT); - } - } - }); - return client; - } - - @Override - public void updateTextInputState(Object handle, com.codename1.ui.TextInputState state) { - activeInputState = state; - final CodenameOneActivity a = getActivity(); - final CodenameOneSurface view = myView; - if (a == null || view == null) { - return; - } - a.runOnUiThread(new Runnable() { - public void run() { - android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager) - a.getSystemService(android.content.Context.INPUT_METHOD_SERVICE); - if (imm != null && activeInputClient != null) { - com.codename1.ui.TextInputState s = activeInputState; - imm.updateSelection(view.getAndroidView(), s.getSelectionStart(), s.getSelectionEnd(), - s.getComposingStart(), s.getComposingEnd()); - } - } - }); - } - - @Override - public void stopTextInput(Object handle) { - activeInputClient = null; - activeInputState = null; - activeInputConfig = null; - final CodenameOneActivity a = getActivity(); - final CodenameOneSurface view = myView; - if (a == null || view == null) { - return; - } - a.runOnUiThread(new Runnable() { - public void run() { - android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager) - a.getSystemService(android.content.Context.INPUT_METHOD_SERVICE); - if (imm != null) { - imm.hideSoftInputFromWindow(view.getAndroidView().getWindowToken(), 0); - imm.restartInput(view.getAndroidView()); - } - } - }); - } - - + @Override public void setDisableScreenshots(final boolean disable) { final CodenameOneActivity a = getActivity(); @@ -8697,9 +8565,8 @@ public String[] getPlatformOverrides() { /** * @inheritDoc */ - public void copyToClipboard(final Object obj) { - super.copyToClipboard(obj); - if (getActivity() == null) { + public void copyToClipboard(final Object obj) { + if (getActivity() == null) { return; } getActivity().runOnUiThread(new Runnable() { @@ -8711,15 +8578,8 @@ public void run() { clipboard.setText(obj.toString()); } else { android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); - android.content.ClipData clip; - if (sdk >= 16 && obj instanceof RichTextClipboardData - && ((RichTextClipboardData) obj).getHtml() != null) { - RichTextClipboardData rich = (RichTextClipboardData) obj; - clip = ClipData.newHtmlText("Codename One", rich.getPlainText(), rich.getHtml()); - } else { - clip = ClipData.newPlainText("Codename One", obj.toString()); - } - clipboard.setPrimaryClip(clip); + android.content.ClipData clip = ClipData.newPlainText("Codename One", obj.toString()); + clipboard.setPrimaryClip(clip); } } }); @@ -8742,20 +8602,9 @@ public void run() { response[0] = clipboard.getText().toString(); } else { android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); - ClipData clip = clipboard.getPrimaryClip(); - if (clip == null || clip.getItemCount() == 0) { - return; - } - ClipData.Item item = clip.getItemAt(0); - String html = sdk >= 16 ? item.getHtmlText() : null; - CharSequence plain = item.coerceToText(getContext()); - if (html != null && html.length() > 0) { - response[0] = new RichTextClipboardData( - plain == null ? "" : plain.toString()).setHtml(html); - } else { - response[0] = plain == null ? null : plain.toString(); - } - } + ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0); + response[0] = item.getText(); + } } }); return response[0]; diff --git a/Ports/Android/src/com/codename1/impl/android/AndroidSurfaceView.java b/Ports/Android/src/com/codename1/impl/android/AndroidSurfaceView.java index 74324fabaa0..a3867695bd3 100644 --- a/Ports/Android/src/com/codename1/impl/android/AndroidSurfaceView.java +++ b/Ports/Android/src/com/codename1/impl/android/AndroidSurfaceView.java @@ -1,26 +1,25 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - +/* + * Copyright (c) 2012, Codename One and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Codename One designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Codename One through http://www.codenameone.com/ if you + * need additional information or have any questions. + */ package com.codename1.impl.android; import android.app.Activity; @@ -215,19 +214,12 @@ public InputConnection onCreateInputConnection(EditorInfo editorInfo) { if (!Display.isInitialized() || Display.getInstance().getCurrent() == null) { return super.onCreateInputConnection(editorInfo); } - InputConnection editorConn = AndroidImplementation.createEditorInputConnection(this, editorInfo); - if (editorConn != null) { - return editorConn; - } cn1View.setInputType(editorInfo); return super.onCreateInputConnection(editorInfo); } @Override public boolean onCheckIsTextEditor() { - if (AndroidImplementation.hasActiveInputClient()) { - return true; - } if (!Display.isInitialized() || Display.getInstance().getCurrent() == null) { return false; } diff --git a/Ports/Android/src/com/codename1/impl/android/AndroidTextureView.java b/Ports/Android/src/com/codename1/impl/android/AndroidTextureView.java index 48a29611f13..6150d0ff3cd 100644 --- a/Ports/Android/src/com/codename1/impl/android/AndroidTextureView.java +++ b/Ports/Android/src/com/codename1/impl/android/AndroidTextureView.java @@ -217,19 +217,12 @@ public InputConnection onCreateInputConnection(EditorInfo editorInfo) { if (!Display.isInitialized() || Display.getInstance().getCurrent() == null) { return super.onCreateInputConnection(editorInfo); } - InputConnection editorConn = AndroidImplementation.createEditorInputConnection(this, editorInfo); - if (editorConn != null) { - return editorConn; - } cn1View.setInputType(editorInfo); return super.onCreateInputConnection(editorInfo); } @Override public boolean onCheckIsTextEditor() { - if (AndroidImplementation.hasActiveInputClient()) { - return true; - } if (!Display.isInitialized() || Display.getInstance().getCurrent() == null) { return false; } diff --git a/Ports/Android/src/com/codename1/impl/android/CN1TextInputConnection.java b/Ports/Android/src/com/codename1/impl/android/CN1TextInputConnection.java deleted file mode 100644 index 382881f60d5..00000000000 --- a/Ports/Android/src/com/codename1/impl/android/CN1TextInputConnection.java +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.impl.android; - -import android.view.KeyEvent; -import android.view.View; -import android.view.inputmethod.BaseInputConnection; -import android.view.inputmethod.ExtractedText; -import android.view.inputmethod.ExtractedTextRequest; - -import com.codename1.ui.Display; -import com.codename1.ui.TextInputClient; -import com.codename1.ui.TextInputConfig; -import com.codename1.ui.TextInputState; - -/// A custom Android `InputConnection` that binds the platform soft keyboard / IME directly to a -/// Codename One `TextInputClient` without a shadow `EditText`. Committed text, IME composing text, -/// deletions and key commands are marshaled onto the Codename One EDT and delivered to the client, while -/// the surrounding text the IME needs for prediction and composition is answered synchronously from the -/// last editing state snapshot pushed down through `AndroidImplementation`. -class CN1TextInputConnection extends BaseInputConnection { - private final TextInputClient client; - - CN1TextInputConnection(View targetView, TextInputClient client) { - super(targetView, true); - this.client = client; - } - - private TextInputState state() { - TextInputState s = AndroidImplementation.currentInputState(); - return s != null ? s : new TextInputState("", 0, 0); - } - - private void post(final Runnable r) { - Display.getInstance().callSerially(r); - } - - @Override - public boolean commitText(CharSequence text, int newCursorPosition) { - final String s = text == null ? "" : text.toString(); - post(new Runnable() { - public void run() { - client.commitText(s); - } - }); - return true; - } - - @Override - public boolean setComposingText(CharSequence text, final int newCursorPosition) { - final String s = text == null ? "" : text.toString(); - post(new Runnable() { - public void run() { - client.setComposingText(s, newCursorPosition); - } - }); - return true; - } - - @Override - public boolean finishComposingText() { - post(new Runnable() { - public void run() { - client.finishComposing(); - } - }); - return true; - } - - @Override - public boolean deleteSurroundingText(final int beforeLength, final int afterLength) { - post(new Runnable() { - public void run() { - client.deleteSurroundingText(beforeLength, afterLength); - } - }); - return true; - } - - @Override - public boolean sendKeyEvent(KeyEvent event) { - if (event.getAction() != KeyEvent.ACTION_DOWN) { - return true; - } - int mods = 0; - if (event.isShiftPressed()) { - mods |= TextInputClient.MOD_SHIFT; - } - if (event.isCtrlPressed()) { - mods |= TextInputClient.MOD_CTRL; - } - if (event.isAltPressed()) { - mods |= TextInputClient.MOD_ALT; - } - final int fmods = mods; - int keyCode = event.getKeyCode(); - int command = mapKey(keyCode); - if (command > 0) { - final int cmd = command; - post(new Runnable() { - public void run() { - client.onKeyCommand(cmd, fmods); - } - }); - return true; - } - if (keyCode == KeyEvent.KEYCODE_ENTER) { - post(new Runnable() { - public void run() { - client.onEditorAction(TextInputConfig.ACTION_DEFAULT); - } - }); - return true; - } - final int unicode = event.getUnicodeChar(); - if (unicode > 0) { - final String s = String.valueOf((char) unicode); - post(new Runnable() { - public void run() { - client.commitText(s); - } - }); - return true; - } - return true; - } - - private static int mapKey(int keyCode) { - switch (keyCode) { - case KeyEvent.KEYCODE_DEL: - return TextInputClient.KEY_BACKSPACE; - case KeyEvent.KEYCODE_FORWARD_DEL: - return TextInputClient.KEY_DELETE; - case KeyEvent.KEYCODE_DPAD_LEFT: - return TextInputClient.KEY_LEFT; - case KeyEvent.KEYCODE_DPAD_RIGHT: - return TextInputClient.KEY_RIGHT; - case KeyEvent.KEYCODE_DPAD_UP: - return TextInputClient.KEY_UP; - case KeyEvent.KEYCODE_DPAD_DOWN: - return TextInputClient.KEY_DOWN; - case KeyEvent.KEYCODE_MOVE_HOME: - return TextInputClient.KEY_HOME; - case KeyEvent.KEYCODE_MOVE_END: - return TextInputClient.KEY_END; - case KeyEvent.KEYCODE_ESCAPE: - return TextInputClient.KEY_ESCAPE; - default: - return 0; - } - } - - @Override - public boolean performEditorAction(int actionCode) { - post(new Runnable() { - public void run() { - client.onEditorAction(TextInputConfig.ACTION_DEFAULT); - } - }); - return true; - } - - @Override - public CharSequence getTextBeforeCursor(int length, int flags) { - TextInputState s = state(); - int start = Math.max(0, s.getSelectionStart() - length); - String t = s.getText(); - int end = Math.min(t.length(), s.getSelectionStart()); - if (end < start) { - return ""; - } - return t.substring(start, end); - } - - @Override - public CharSequence getTextAfterCursor(int length, int flags) { - TextInputState s = state(); - String t = s.getText(); - int start = Math.min(t.length(), s.getSelectionEnd()); - int end = Math.min(t.length(), start + length); - return t.substring(start, end); - } - - @Override - public CharSequence getSelectedText(int flags) { - TextInputState s = state(); - String t = s.getText(); - int a = Math.max(0, Math.min(t.length(), s.getSelectionStart())); - int b = Math.max(a, Math.min(t.length(), s.getSelectionEnd())); - if (b <= a) { - return null; - } - return t.substring(a, b); - } - - @Override - public ExtractedText getExtractedText(ExtractedTextRequest request, int flags) { - TextInputState s = state(); - ExtractedText et = new ExtractedText(); - et.text = s.getText(); - et.startOffset = 0; - et.selectionStart = s.getSelectionStart(); - et.selectionEnd = s.getSelectionEnd(); - et.partialStartOffset = -1; - et.partialEndOffset = -1; - return et; - } - - @Override - public int getCursorCapsMode(int reqModes) { - return 0; - } -} diff --git a/Ports/JavaSE/src/com/codename1/impl/javase/JavaSEPort.java b/Ports/JavaSE/src/com/codename1/impl/javase/JavaSEPort.java index 3f7971bc506..9a77893b38b 100644 --- a/Ports/JavaSE/src/com/codename1/impl/javase/JavaSEPort.java +++ b/Ports/JavaSE/src/com/codename1/impl/javase/JavaSEPort.java @@ -139,7 +139,6 @@ import com.codename1.ui.TextArea; import com.codename1.ui.TextSelection; import com.codename1.ui.Transform; -import com.codename1.ui.RichTextClipboardData; import com.codename1.ui.plaf.Style; import com.codename1.ui.util.UITimer; import com.codename1.util.AsyncResource; @@ -149,8 +148,6 @@ import java.awt.*; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.StringSelection; -import java.awt.datatransfer.Transferable; -import java.awt.datatransfer.UnsupportedFlavorException; import java.awt.font.TextAttribute; import java.awt.font.TextLayout; import java.awt.geom.GeneralPath; @@ -1633,16 +1630,14 @@ public static void addFormChangeListener(com.codename1.ui.events.ActionListener @Override public void copyToClipboard(Object obj) { - if (obj instanceof String || obj instanceof RichTextClipboardData) { - final String text = obj instanceof RichTextClipboardData - ? ((RichTextClipboardData) obj).getPlainText() : (String)obj; - final RichTextClipboardData rich = obj instanceof RichTextClipboardData - ? (RichTextClipboardData)obj : null; + if (obj instanceof String) { + final String text = (String)obj; EventQueue.invokeLater(new Runnable() { public void run() { Toolkit toolkit = Toolkit.getDefaultToolkit(); Clipboard clipboard = toolkit.getSystemClipboard(); - clipboard.setContents(rich == null ? new StringSelection(text) : new RichTransferable(rich), null); + StringSelection strSel = new StringSelection(text.trim()); + clipboard.setContents(strSel, null); } }); } else { @@ -1659,144 +1654,42 @@ public void run() { super.copyToClipboard(obj); //To change body of generated methods, choose Tools | Templates. } - private static final class RichTransferable implements Transferable { - private static final DataFlavor HTML = new DataFlavor("text/html;class=java.lang.String", "HTML"); - private static final DataFlavor RTF = new DataFlavor("text/rtf;class=java.lang.String", "RTF"); - private static final DataFlavor MARKDOWN = new DataFlavor("text/markdown;class=java.lang.String", "Markdown"); - private static final DataFlavor ASCIIDOC = new DataFlavor("text/asciidoc;class=java.lang.String", "AsciiDoc"); - private final RichTextClipboardData data; - private final DataFlavor[] flavors; - - RichTransferable(RichTextClipboardData data) { - this.data = data; - ArrayList available = new ArrayList(); - available.add(DataFlavor.stringFlavor); - if (data.getHtml() != null) { - available.add(HTML); - } - if (data.getRtf() != null) { - available.add(RTF); - } - if (data.getMarkdown() != null) { - available.add(MARKDOWN); - } - if (data.getAsciiDoc() != null) { - available.add(ASCIIDOC); - } - flavors = available.toArray(new DataFlavor[available.size()]); - } - - public DataFlavor[] getTransferDataFlavors() { - return flavors.clone(); - } - - public boolean isDataFlavorSupported(DataFlavor flavor) { - for (int i = 0; i < flavors.length; i++) { - if (flavors[i].equals(flavor)) { - return true; - } - } - return false; - } - - public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException { - if (DataFlavor.stringFlavor.equals(flavor)) { - return data.getPlainText(); - } - if (HTML.equals(flavor) && data.getHtml() != null) { - return data.getHtml(); - } - if (RTF.equals(flavor) && data.getRtf() != null) { - return data.getRtf(); - } - if (MARKDOWN.equals(flavor) && data.getMarkdown() != null) { - return data.getMarkdown(); - } - if (ASCIIDOC.equals(flavor) && data.getAsciiDoc() != null) { - return data.getAsciiDoc(); - } - throw new UnsupportedFlavorException(flavor); - } - } - @Override public Object getPasteDataFromClipboard() { Toolkit toolkit = Toolkit.getDefaultToolkit(); Clipboard clipboard = toolkit.getSystemClipboard(); - String plain = null; - String html = null; - String rtf = null; - String markdown = null; - String asciidoc = null; + for (DataFlavor flavor : clipboard.getAvailableDataFlavors()) { try { + Object out = clipboard.getData(flavor); - String str = clipboardText(out); - if (str == null) { - continue; + String str = null; + if (out != null) { + str = out.toString(); } - if (str.startsWith("cn1lightweightclipboard://")) { + if (str != null && str.startsWith("cn1lightweightclipboard://")) { return super.getPasteDataFromClipboard(); } - if (html == null && flavor.isMimeTypeEqual("text/html")) { - html = str; - } else if (rtf == null && (flavor.isMimeTypeEqual("text/rtf") - || flavor.isMimeTypeEqual("application/rtf"))) { - rtf = str; - } else if (markdown == null && (flavor.isMimeTypeEqual("text/markdown") - || flavor.isMimeTypeEqual("text/x-markdown"))) { - markdown = str; - } else if (asciidoc == null && (flavor.isMimeTypeEqual("text/asciidoc") - || flavor.isMimeTypeEqual("text/x-asciidoc"))) { - asciidoc = str; - } else if (plain == null && (DataFlavor.stringFlavor.equals(flavor) - || flavor.isMimeTypeEqual("text/plain"))) { - plain = str; - } } catch (Exception ex) { - // Try the next representation offered by the native clipboard. - } - } - if (html != null || rtf != null || markdown != null || asciidoc != null) { - return new RichTextClipboardData(plain == null ? "" : plain).setHtml(html).setRtf(rtf) - .setMarkdown(markdown).setAsciiDoc(asciidoc); - } - if (plain != null) { - Object lightweight = super.getPasteDataFromClipboard(); - if (lightweight instanceof RichTextClipboardData - && plain.equals(((RichTextClipboardData) lightweight).getPlainText())) { - return lightweight; - } - return plain; - } - return super.getPasteDataFromClipboard(); - } - private static String clipboardText(Object value) throws IOException { - if (value instanceof String) { - return (String)value; - } - if (value instanceof Reader) { - Reader reader = (Reader)value; - StringBuilder out = new StringBuilder(); - char[] buffer = new char[2048]; - int read; - while ((read = reader.read(buffer)) >= 0) { - out.append(buffer, 0, read); } - return out.toString(); + } - if (value instanceof InputStream) { - InputStream input = (InputStream)value; - ByteArrayOutputStream out = new ByteArrayOutputStream(); - byte[] buffer = new byte[2048]; - int read; - while ((read = input.read(buffer)) >= 0) { - out.write(buffer, 0, read); + + for (DataFlavor flavor : clipboard.getAvailableDataFlavors()) { + try { + Object out = clipboard.getData(flavor); + if (out != null) { + String str = out.toString(); + if (str != null) return str; + } + } catch (Exception ex) { + } - return new String(out.toByteArray(), "UTF-8"); + } - return value == null ? null : value.toString(); + + return super.getPasteDataFromClipboard(); } public void setCurrentForm(Form f) { @@ -3258,43 +3151,11 @@ public void keyTyped(KeyEvent e) { // are taking action when the key is released... so we need to track whether the // control key was down while a key was pressed. private HashSet ignorePressedKeys = new HashSet(); - private boolean isPureEditorFocused() { - com.codename1.ui.Form f = com.codename1.ui.CN.getCurrentForm(); - return f != null && (f.getFocused() instanceof com.codename1.ui.editor.EditorView); - } - - // True only for keys a pure editor actually consumes: real characters, navigation, and editing - // keys. This prevents modifier / function / home-end keys (whose key codes overlap printable - // ASCII) from being delivered and inserted as garbage "tofu" characters. - private boolean editorHandlesKey(KeyEvent e) { - int vk = e.getKeyCode(); - switch (vk) { - case KeyEvent.VK_UP: - case KeyEvent.VK_DOWN: - case KeyEvent.VK_LEFT: - case KeyEvent.VK_RIGHT: - case KeyEvent.VK_ENTER: - case KeyEvent.VK_SPACE: - case KeyEvent.VK_BACK_SPACE: - case KeyEvent.VK_DELETE: - case KeyEvent.VK_TAB: - return true; - default: - break; - } - if ((vk >= KeyEvent.VK_A && vk <= KeyEvent.VK_Z) || (vk >= KeyEvent.VK_0 && vk <= KeyEvent.VK_9)) { - return true; - } - char kc = e.getKeyChar(); - return kc != KeyEvent.CHAR_UNDEFINED && kc >= 32 && kc != 127; - } - public void keyPressed(KeyEvent e) { if (!isEnabled()) { return; } - boolean editorFocused = isPureEditorFocused(); - if (!editorFocused && e.isMetaDown() && e.getKeyChar() == 'c') { + if (e.isMetaDown() && e.getKeyChar() == 'c') { Form f = CN.getCurrentForm(); if (f != null) { final TextSelection ts = f.getTextSelection(); @@ -3320,7 +3181,7 @@ public void run() { } - if (!editorFocused && e.isMetaDown() && e.getKeyChar() == 'a') { + if (e.isMetaDown() && e.getKeyChar() == 'a') { Form f = CN.getCurrentForm(); if (f != null) { final TextSelection ts = f.getTextSelection(); @@ -3332,28 +3193,15 @@ public void run() { }); } } - + } lastInputEvent = e; - // block key combos that might generate unreadable events, unless a pure editor is focused and - // wants the modifier combos (word / line navigation, clipboard shortcuts) - if (!editorFocused && (e.isAltDown() || e.isControlDown() || e.isMetaDown() || e.isAltGraphDown())) { + // block key combos that might generate unreadable events + if (e.isAltDown() || e.isControlDown() || e.isMetaDown() || e.isAltGraphDown()) { ignorePressedKeys.add(e.getKeyCode()); return; } - if (editorFocused && !editorHandlesKey(e)) { - return; - } int code = getCode(e); - // a pure editor needs the real Enter / Space characters; getCode() otherwise collapses both - // to the FIRE game key which the editor cannot distinguish - if (editorFocused) { - if (e.getKeyCode() == KeyEvent.VK_ENTER) { - code = '\n'; - } else if (e.getKeyCode() == KeyEvent.VK_SPACE) { - code = ' '; - } - } if (testRecorder != null) { testRecorder.eventKeyPressed(code); } @@ -3366,26 +3214,12 @@ public void keyReleased(KeyEvent e) { if (!isEnabled()) { return; } - boolean editorFocused = isPureEditorFocused(); lastInputEvent = e; - if (ignore) { - return; - } - // block key combos that might generate unreadable events, unless a pure editor is focused - if (!editorFocused && (e.isAltDown() || e.isControlDown() || e.isMetaDown() || e.isAltGraphDown())) { - return; - } - if (editorFocused && !editorHandlesKey(e)) { + // block key combos that might generate unreadable events + if (ignore || e.isAltDown() || e.isControlDown() || e.isMetaDown() || e.isAltGraphDown()) { return; } int code = getCode(e); - if (editorFocused) { - if (e.getKeyCode() == KeyEvent.VK_ENTER) { - code = '\n'; - } else if (e.getKeyCode() == KeyEvent.VK_SPACE) { - code = ' '; - } - } if (testRecorder != null) { testRecorder.eventKeyReleased(code); } diff --git a/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/HTML5BrowserComponent.java b/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/HTML5BrowserComponent.java index 9a9f334b42a..88d1b0b1360 100644 --- a/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/HTML5BrowserComponent.java +++ b/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/HTML5BrowserComponent.java @@ -177,8 +177,8 @@ public void handleEvent(Event event) { // iframe -- i.e. when #codenameone-canvas has been flipped to // pointer-events:none over a transparent ("punched") hole because the // peer is showing through (see browser_bridge.js installPeerPointerToggle). - // In that state the event genuinely belongs to the peer (e.g. typing or - // clicking in an embedded editor), so re-dispatching a + // In that state the event genuinely belongs to the peer (e.g. typing / + // clicking in the Playground's Monaco editor), so re-dispatching a // synthetic copy back into CN1 is wrong: CN1 treats it as a press on the // peer component and relayout/refocus churn reloads the iframe, wiping // the editor back to its bootstrap source. When the canvas is opaque the @@ -601,8 +601,8 @@ public void reload(){ // so ``doc.documentElement.contains(el)`` compares the worker's doc proxy // against the el proxy and ALWAYS returns false. initComponent() then thinks the // iframe was never added and re-appends it on every call -- and re-inserting an - // iframe RELOADS its document and wipes the user's edits back to the bootstrap source - // ("typed character erased immediately" + // iframe RELOADS it, which re-runs editor.js / re-bootstraps Monaco and wipes the + // user's edits back to the bootstrap source ("typed character erased immediately" // / "no interaction"). Because clicking a peer now actually reaches it (the // pointer-events toggle), initComponent gets driven repeatedly and the editor // reloaded on every interaction. Probe through the JSO bridge instead: diff --git a/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/HTML5Implementation.java b/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/HTML5Implementation.java index 89f6270185a..4bc1a656805 100644 --- a/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/HTML5Implementation.java +++ b/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/HTML5Implementation.java @@ -91,7 +91,6 @@ import com.codename1.ui.Image; import com.codename1.ui.Label; import com.codename1.ui.PeerComponent; -import com.codename1.ui.RichTextClipboardData; import com.codename1.ui.Sheet; import com.codename1.ui.Stroke; import com.codename1.ui.TextArea; @@ -1492,9 +1491,8 @@ public void copyPlainText(String text) { } @Override - public void copyRichText(String plainText, String html) { - HTML5Implementation.super.copyToClipboard( - new RichTextClipboardData(plainText).setHtml(html)); + public void copyHtmlText(String html) { + HTML5Implementation.super.copyToClipboard(html); } @Override diff --git a/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/HTML5Peer.java b/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/HTML5Peer.java index dfc0fa200f3..5ad3f59fbe9 100644 --- a/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/HTML5Peer.java +++ b/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/HTML5Peer.java @@ -331,8 +331,8 @@ protected void layoutPeer(){ // ``doc.documentElement.contains(el)`` compares the worker's doc proxy against // the el proxy and ALWAYS returns false. initComponent() then re-appends the // peer on every call -- and appendChild() of an element that is already a child - // MOVES it, which RELOADS an iframe peer. For an embedded editor that reload - // re-bootstraps the document and wipes the user's edits on every interaction + // MOVES it, which RELOADS an iframe peer. For the Playground's Monaco editor that + // reload re-bootstraps the editor and wipes the user's edits on every interaction // (the editor only started receiving events once the pointer-events toggle // landed, which is why this surfaced as "typed character erased immediately"). // Probe through the JSO bridge instead: getParentNode() runs on the MAIN thread diff --git a/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/JavaScriptBrowserLifecycleCoordinator.java b/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/JavaScriptBrowserLifecycleCoordinator.java index af53f4f8033..52b72fc5971 100644 --- a/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/JavaScriptBrowserLifecycleCoordinator.java +++ b/Ports/JavaScriptPort/src/main/java/com/codename1/impl/html5/JavaScriptBrowserLifecycleCoordinator.java @@ -40,7 +40,7 @@ public interface BackNavigationHooks { public interface PasteHooks { void copyPlainText(String text); - void copyRichText(String plainText, String html); + void copyHtmlText(String html); void copyFiles(String[] paths); void firePasteEvent(); } @@ -70,13 +70,13 @@ public void run() { } public static boolean handlePaste(PasteHooks hooks, String plainText, String htmlText, String[] filePaths) { - if (htmlText != null && htmlText.length() > 0) { - hooks.copyRichText(plainText == null ? "" : plainText, htmlText); + if (plainText != null && plainText.length() > 0) { + hooks.copyPlainText(plainText); hooks.firePasteEvent(); return true; } - if (plainText != null && plainText.length() > 0) { - hooks.copyPlainText(plainText); + if (htmlText != null && htmlText.length() > 0) { + hooks.copyHtmlText(htmlText); hooks.firePasteEvent(); return true; } diff --git a/Ports/JavaScriptPort/src/main/webapp/css/bootstrap.min.css b/Ports/JavaScriptPort/src/main/webapp/css/bootstrap.min.css index a56c1cfcb2d..cd1c616ad86 100644 --- a/Ports/JavaScriptPort/src/main/webapp/css/bootstrap.min.css +++ b/Ports/JavaScriptPort/src/main/webapp/css/bootstrap.min.css @@ -2,4 +2,4 @@ * Bootstrap v3.3.4 (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px \9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}select[multiple].form-group-sm .form-control,textarea.form-group-sm .form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}select[multiple].form-group-lg .form-control,textarea.form-group-lg .form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default.focus,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px)and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px)and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px)and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file + *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px \9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}select[multiple].form-group-sm .form-control,textarea.form-group-sm .form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}select[multiple].form-group-lg .form-control,textarea.form-group-lg .form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default.focus,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px)and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px)and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px)and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file diff --git a/Ports/LinuxPort/src/com/codename1/impl/linux/LinuxImplementation.java b/Ports/LinuxPort/src/com/codename1/impl/linux/LinuxImplementation.java index ffbe3487af3..8320a41c183 100644 --- a/Ports/LinuxPort/src/com/codename1/impl/linux/LinuxImplementation.java +++ b/Ports/LinuxPort/src/com/codename1/impl/linux/LinuxImplementation.java @@ -1995,9 +1995,8 @@ public void stopTextEditing() { */ @Override public void copyToClipboard(Object obj) { - if (obj instanceof String || obj instanceof com.codename1.ui.RichTextClipboardData) { - LinuxNative.clipboardSetText(obj instanceof com.codename1.ui.RichTextClipboardData - ? ((com.codename1.ui.RichTextClipboardData) obj).getPlainText() : (String) obj); + if (obj instanceof String) { + LinuxNative.clipboardSetText((String) obj); } super.copyToClipboard(obj); } @@ -2006,11 +2005,6 @@ public void copyToClipboard(Object obj) { public Object getPasteDataFromClipboard() { String text = LinuxNative.clipboardGetText(); if (text != null) { - Object lightweight = super.getPasteDataFromClipboard(); - if (lightweight instanceof com.codename1.ui.RichTextClipboardData - && text.equals(((com.codename1.ui.RichTextClipboardData) lightweight).getPlainText())) { - return lightweight; - } return text; } return super.getPasteDataFromClipboard(); diff --git a/Ports/WindowsPort/src/com/codename1/impl/windows/WindowsImplementation.java b/Ports/WindowsPort/src/com/codename1/impl/windows/WindowsImplementation.java index 8f1c4e83b24..937f9a122ed 100644 --- a/Ports/WindowsPort/src/com/codename1/impl/windows/WindowsImplementation.java +++ b/Ports/WindowsPort/src/com/codename1/impl/windows/WindowsImplementation.java @@ -1998,9 +1998,8 @@ public void stopTextEditing() { */ @Override public void copyToClipboard(Object obj) { - if (obj instanceof String || obj instanceof com.codename1.ui.RichTextClipboardData) { - WindowsNative.clipboardSetText(obj instanceof com.codename1.ui.RichTextClipboardData - ? ((com.codename1.ui.RichTextClipboardData) obj).getPlainText() : (String) obj); + if (obj instanceof String) { + WindowsNative.clipboardSetText((String) obj); } super.copyToClipboard(obj); } @@ -2009,11 +2008,6 @@ public void copyToClipboard(Object obj) { public Object getPasteDataFromClipboard() { String text = WindowsNative.clipboardGetText(); if (text != null) { - Object lightweight = super.getPasteDataFromClipboard(); - if (lightweight instanceof com.codename1.ui.RichTextClipboardData - && text.equals(((com.codename1.ui.RichTextClipboardData) lightweight).getPlainText())) { - return lightweight; - } return text; } return super.getPasteDataFromClipboard(); diff --git a/Ports/iOSPort/nativeSources/CN1TextInputView.h b/Ports/iOSPort/nativeSources/CN1TextInputView.h deleted file mode 100644 index 7ee95fd16f2..00000000000 --- a/Ports/iOSPort/nativeSources/CN1TextInputView.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2012, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ -#import - -#if !TARGET_OS_WATCH - -/// A transparent first responder view that binds the platform soft keyboard, hardware / bluetooth -/// keyboard and IME to a Codename One pure editor through the low level text input source. It conforms -/// to the full UITextInput protocol so iOS drives edits by range (typed text, dictation, marked text / -/// CJK composition, hardware keys) and can position the IME candidate window and selection loupe using -/// the caret geometry Codename One reports. The view keeps a shadow mirror of the document text and -/// selection (pushed down from Java) purely to answer UITextInput's text and position queries; Codename -/// One renders the document itself and remains authoritative. -@interface CN1TextInputView : UIView - -@property (nonatomic) UITextAutocorrectionType autocorrectionType; -@property (nonatomic) UITextAutocapitalizationType autocapitalizationType; -@property (nonatomic) UIKeyboardType keyboardType; -@property (nonatomic) UIReturnKeyType returnKeyType; -@property (nonatomic) UITextSpellCheckingType spellCheckingType; -@property (nonatomic) BOOL multiline; - -/// Replaces the shadow mirror with the authoritative Java state (text + selection + caret rect in -/// screen pixels) without echoing the change back to Java. -- (void)cn1SyncText:(NSString *)text selStart:(NSInteger)selStart selEnd:(NSInteger)selEnd - caretRect:(CGRect)caretPixels; - -@end - -#endif diff --git a/Ports/iOSPort/nativeSources/CN1TextInputView.m b/Ports/iOSPort/nativeSources/CN1TextInputView.m deleted file mode 100644 index e3b31945df2..00000000000 --- a/Ports/iOSPort/nativeSources/CN1TextInputView.m +++ /dev/null @@ -1,719 +0,0 @@ -/* - * Copyright (c) 2012, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ -#import "CN1TextInputView.h" - -#if !TARGET_OS_WATCH - -#include "xmlvm.h" -#include "java_lang_String.h" -#ifndef NEW_CODENAME_ONE_VM -#include "xmlvm-util.h" -#else -#include "cn1_globals.h" -#endif -#import "CodenameOne_GLViewController.h" - -// Codename One string conversion helpers (defined in IOSNative.m) -extern JAVA_OBJECT fromNSString(CN1_THREAD_STATE_MULTI_ARG NSString* str); -extern NSString* toNSString(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT o); - -// Java callbacks (generated for the static methods on IOSImplementation) -extern void com_codename1_impl_ios_IOSImplementation_tiReplaceRange___int_int_java_lang_String(CN1_THREAD_STATE_MULTI_ARG JAVA_INT start, JAVA_INT end, JAVA_OBJECT text); -extern void com_codename1_impl_ios_IOSImplementation_tiSetSelection___int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_INT start, JAVA_INT end); -extern void com_codename1_impl_ios_IOSImplementation_tiKeyCommand___int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_INT command, JAVA_INT modifiers); -extern void com_codename1_impl_ios_IOSImplementation_tiEditorAction___int(CN1_THREAD_STATE_MULTI_ARG JAVA_INT action); -extern JAVA_OBJECT com_codename1_impl_ios_IOSImplementation_tiSelectionRects___int_int_R_int_1ARRAY(CN1_THREAD_STATE_MULTI_ARG JAVA_INT start, JAVA_INT end); -extern JAVA_INT com_codename1_impl_ios_IOSImplementation_tiOffsetAtPoint___int_int_R_int(CN1_THREAD_STATE_MULTI_ARG JAVA_INT x, JAVA_INT y); - -// mirror of com.codename1.ui.TextInputClient key command + modifier constants -#define CN1_KEY_LEFT 1 -#define CN1_KEY_RIGHT 2 -#define CN1_KEY_UP 3 -#define CN1_KEY_DOWN 4 -#define CN1_KEY_HOME 5 -#define CN1_KEY_END 6 -#define CN1_KEY_DELETE 10 -#define CN1_KEY_ESCAPE 11 -#define CN1_KEY_COPY 12 -#define CN1_KEY_CUT 13 -#define CN1_KEY_PASTE 14 -#define CN1_KEY_SELECT_ALL 15 -#define CN1_KEY_UNDO 16 -#define CN1_KEY_REDO 17 -#define CN1_MOD_SHIFT 1 -#define CN1_MOD_CTRL 2 -#define CN1_MOD_ALT 4 - -static CN1TextInputView* cn1TextInputView = nil; - -#pragma mark - UITextPosition / UITextRange backed by integer offsets - -@interface CN1TextPosition : UITextPosition -@property (nonatomic) NSInteger index; -+ (instancetype)positionWithIndex:(NSInteger)index; -@end - -@implementation CN1TextPosition -+ (instancetype)positionWithIndex:(NSInteger)index { - CN1TextPosition* p = [[[CN1TextPosition alloc] init] autorelease]; - p.index = index; - return p; -} -@end - -@interface CN1TextRange : UITextRange -@property (nonatomic) NSInteger startIndex; -@property (nonatomic) NSInteger endIndex; -+ (instancetype)rangeFrom:(NSInteger)start to:(NSInteger)end; -@end - -@implementation CN1TextRange -+ (instancetype)rangeFrom:(NSInteger)start to:(NSInteger)end { - CN1TextRange* r = [[[CN1TextRange alloc] init] autorelease]; - r.startIndex = MIN(start, end); - r.endIndex = MAX(start, end); - return r; -} -- (UITextPosition *)start { return [CN1TextPosition positionWithIndex:self.startIndex]; } -- (UITextPosition *)end { return [CN1TextPosition positionWithIndex:self.endIndex]; } -- (BOOL)isEmpty { return self.startIndex == self.endIndex; } -@end - -/// One rectangle of a selection, reported to iOS so it can draw the selection highlight, the drag handles -/// (at the rects flagged containsStart / containsEnd) and the magnifier loupe over the range. -@interface CN1TextSelectionRect : UITextSelectionRect -@property (nonatomic) CGRect rectValue; -@property (nonatomic) BOOL startFlag; -@property (nonatomic) BOOL endFlag; -@end - -@implementation CN1TextSelectionRect -- (CGRect)rect { return self.rectValue; } -- (NSWritingDirection)writingDirection { return NSWritingDirectionNatural; } -- (BOOL)containsStart { return self.startFlag; } -- (BOOL)containsEnd { return self.endFlag; } -- (BOOL)isVertical { return NO; } -@end - -#pragma mark - CN1TextInputView - -@interface CN1TextInputView () { - NSMutableString* _shadow; - NSRange _selectedRange; - NSRange _markedRange; // location == NSNotFound when there is no marked (IME) text - CGRect _caretRectPoints; // last caret rectangle from Java, converted to points - CGRect _editorBoundsPoints; // the editor component's bounds in points; the touch region we own - id _textInteraction; // UITextInteraction (iOS 13+) driving the system loupe/handles/menu - // UITextInput declares inputDelegate as a weak property, but ParparVM compiles under manual - // reference counting where weak is unavailable; back it with an unsafe-unretained ivar instead. - __unsafe_unretained id _inputDelegate; -} -@property (nonatomic, retain) UITextInputStringTokenizer* cn1Tokenizer; -@end - -@implementation CN1TextInputView - -@synthesize markedTextStyle = _markedTextStyle; - -- (id)inputDelegate { return _inputDelegate; } -- (void)setInputDelegate:(id)inputDelegate { _inputDelegate = inputDelegate; } - -- (instancetype)init { - self = [super initWithFrame:CGRectMake(0, 0, 1, 1)]; - if (self) { - self.backgroundColor = [UIColor clearColor]; - self.opaque = NO; - // Interactive so physical-keyboard UIPress events reach us, but pointInside: returns NO below - // so the view never claims a touch; Codename One keeps owning the canvas. - self.userInteractionEnabled = YES; - self.autocorrectionType = UITextAutocorrectionTypeDefault; - self.autocapitalizationType = UITextAutocapitalizationTypeSentences; - self.spellCheckingType = UITextSpellCheckingTypeDefault; - self.keyboardType = UIKeyboardTypeDefault; - self.returnKeyType = UIReturnKeyDefault; - self.multiline = YES; - _shadow = [[NSMutableString alloc] init]; - _selectedRange = NSMakeRange(0, 0); - _markedRange = NSMakeRange(NSNotFound, 0); - _caretRectPoints = CGRectMake(0, 0, 2, 16); - } - return self; -} - -- (void)dealloc { - [_shadow release]; - [_markedTextStyle release]; - [_cn1Tokenizer release]; - [_textInteraction release]; - [super dealloc]; -} - -- (BOOL)canBecomeFirstResponder { return YES; } -- (UIView *)textInputView { return self; } - -// While the native text interaction (system loupe/handles) is active we OWN touches inside the editor's -// bounds so its gesture recognizers fire there; everywhere else (and when no interaction is attached) -// touches pass through to Codename One's canvas. UIPress (hardware key) events always arrive regardless -// because they target the first responder directly, not via hit-testing. -- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { - if (_textInteraction == nil || CGRectIsEmpty(_editorBoundsPoints)) { - return NO; - } - return CGRectContainsPoint(_editorBoundsPoints, point); -} - -- (void)cn1SetEditorBounds:(CGRect)b { - _editorBoundsPoints = b; -} - -/// Lazily installs the UITextInteraction that makes iOS draw its own selection magnifier, drag handles and -/// edit menu over the editor. Unavailable on tvOS and before iOS 13, where the cross-platform Codename One -/// drawn selection UI is used instead. -- (void)cn1EnsureInteraction { -#if !TARGET_OS_TV - if (@available(iOS 13.0, *)) { - if (_textInteraction == nil) { - UITextInteraction* ti = [UITextInteraction textInteractionForMode:UITextInteractionModeEditable]; - ti.textInput = self; - [self addInteraction:ti]; - _textInteraction = [ti retain]; - } - } -#endif -} - -#pragma mark hardware / bluetooth keyboard (UIPress) - -- (int)cn1ModsFor:(UIKeyModifierFlags)mf { - int mods = 0; - if (mf & UIKeyModifierShift) { - mods |= CN1_MOD_SHIFT; - } - if (mf & (UIKeyModifierControl | UIKeyModifierCommand)) { - mods |= CN1_MOD_CTRL; - } - if (mf & UIKeyModifierAlternate) { - mods |= CN1_MOD_ALT; - } - return mods; -} - -- (void)cn1KeyCommand:(int)cmd mods:(int)mods { - com_codename1_impl_ios_IOSImplementation_tiKeyCommand___int_int(CN1_THREAD_GET_STATE_PASS_ARG cmd, mods); -} - -- (BOOL)cn1HandleKey:(UIKey *)key { - if (key == nil) { - return NO; - } - UIKeyModifierFlags mf = key.modifierFlags; - int mods = [self cn1ModsFor:mf]; - UIKeyboardHIDUsage code = key.keyCode; - switch (code) { - case UIKeyboardHIDUsageKeyboardDeleteOrBackspace: - [self deleteBackward]; - return YES; - case UIKeyboardHIDUsageKeyboardDeleteForward: - [self cn1KeyCommand:CN1_KEY_DELETE mods:mods]; - return YES; - case UIKeyboardHIDUsageKeyboardReturnOrEnter: - case UIKeyboardHIDUsageKeypadEnter: - [self insertText:@"\n"]; - return YES; - case UIKeyboardHIDUsageKeyboardTab: - [self insertText:@"\t"]; - return YES; - case UIKeyboardHIDUsageKeyboardLeftArrow: - [self cn1KeyCommand:((mf & UIKeyModifierCommand) ? CN1_KEY_HOME : CN1_KEY_LEFT) mods:mods]; - return YES; - case UIKeyboardHIDUsageKeyboardRightArrow: - [self cn1KeyCommand:((mf & UIKeyModifierCommand) ? CN1_KEY_END : CN1_KEY_RIGHT) mods:mods]; - return YES; - case UIKeyboardHIDUsageKeyboardUpArrow: - [self cn1KeyCommand:CN1_KEY_UP mods:mods]; - return YES; - case UIKeyboardHIDUsageKeyboardDownArrow: - [self cn1KeyCommand:CN1_KEY_DOWN mods:mods]; - return YES; - case UIKeyboardHIDUsageKeyboardEscape: - [self cn1KeyCommand:CN1_KEY_ESCAPE mods:mods]; - return YES; - default: - break; - } - NSString* chars = key.characters; - if (mf & UIKeyModifierCommand) { - // Cmd shortcuts -> editor commands; swallow anything else so it is not typed as a character. - NSString* lc = [chars lowercaseString]; - if ([lc isEqualToString:@"c"]) { - [self cn1KeyCommand:CN1_KEY_COPY mods:mods]; - } else if ([lc isEqualToString:@"x"]) { - [self cn1KeyCommand:CN1_KEY_CUT mods:mods]; - } else if ([lc isEqualToString:@"v"]) { - [self cn1KeyCommand:CN1_KEY_PASTE mods:mods]; - } else if ([lc isEqualToString:@"a"]) { - [self cn1KeyCommand:CN1_KEY_SELECT_ALL mods:mods]; - } else if ([lc isEqualToString:@"z"]) { - [self cn1KeyCommand:((mf & UIKeyModifierShift) ? CN1_KEY_REDO : CN1_KEY_UNDO) mods:mods]; - } - return YES; - } - if (chars != nil && chars.length > 0) { - unichar c0 = [chars characterAtIndex:0]; - // Only insert printable text; ignore control characters and the private-use arrow codes. - if (c0 >= 0x20 && c0 != 0x7F && !(c0 >= 0xF700 && c0 <= 0xF8FF)) { - [self insertText:chars]; - return YES; - } - } - return NO; -} - -- (void)pressesBegan:(NSSet *)presses withEvent:(UIPressesEvent *)event { - BOOL handled = NO; - if (@available(iOS 13.4, tvOS 13.4, *)) { - for (UIPress* press in presses) { - if ([self cn1HandleKey:press.key]) { - handled = YES; - } - } - } - if (!handled) { - [super pressesBegan:presses withEvent:event]; - } -} - -// Arrow keys are otherwise consumed by UIKit's own UITextInput navigation (which relies on per-offset -// caret geometry we do not provide), so claim them explicitly here and route to the editor's caret -// navigation. wantsPriorityOverSystemBehavior ensures we win over the system text navigation. -- (NSArray *)keyCommands { - NSArray* inputs = @[UIKeyInputLeftArrow, UIKeyInputRightArrow, UIKeyInputUpArrow, UIKeyInputDownArrow]; - NSArray* mods = @[@0, - @(UIKeyModifierShift), - @(UIKeyModifierAlternate), - @(UIKeyModifierCommand), - @(UIKeyModifierShift | UIKeyModifierAlternate), - @(UIKeyModifierShift | UIKeyModifierCommand)]; - NSMutableArray* cmds = [NSMutableArray array]; - for (NSString* inp in inputs) { - for (NSNumber* m in mods) { - UIKeyCommand* kc = [UIKeyCommand keyCommandWithInput:inp - modifierFlags:(UIKeyModifierFlags)[m integerValue] - action:@selector(cn1Arrow:)]; - if (@available(iOS 15.0, *)) { - kc.wantsPriorityOverSystemBehavior = YES; - } - [cmds addObject:kc]; - } - } - return cmds; -} - -- (void)cn1Arrow:(UIKeyCommand *)cmd { - NSString* inp = cmd.input; - UIKeyModifierFlags mf = cmd.modifierFlags; - int mods = [self cn1ModsFor:mf]; - int c = 0; - if ([inp isEqualToString:UIKeyInputLeftArrow]) { - c = (mf & UIKeyModifierCommand) ? CN1_KEY_HOME : CN1_KEY_LEFT; - } else if ([inp isEqualToString:UIKeyInputRightArrow]) { - c = (mf & UIKeyModifierCommand) ? CN1_KEY_END : CN1_KEY_RIGHT; - } else if ([inp isEqualToString:UIKeyInputUpArrow]) { - c = CN1_KEY_UP; - } else if ([inp isEqualToString:UIKeyInputDownArrow]) { - c = CN1_KEY_DOWN; - } - if (c != 0) { - [self cn1KeyCommand:c mods:mods]; - } -} - -#pragma mark helpers - -- (NSInteger)clampIndex:(NSInteger)i { - if (i < 0) return 0; - if (i > (NSInteger)_shadow.length) return (NSInteger)_shadow.length; - return i; -} - -- (NSRange)clampRange:(NSRange)r { - NSInteger loc = [self clampIndex:(NSInteger)r.location]; - NSInteger end = [self clampIndex:(NSInteger)(r.location + r.length)]; - return NSMakeRange(loc, end - loc); -} - -// Applies an edit to the shadow mirror and (optionally) forwards it to Java as a range replacement. -- (void)cn1EditRange:(NSRange)range with:(NSString *)text notify:(BOOL)notify { - if (text == nil) { - text = @""; - } - range = [self clampRange:range]; - [_shadow replaceCharactersInRange:range withString:text]; - _selectedRange = NSMakeRange(range.location + text.length, 0); - _markedRange = NSMakeRange(NSNotFound, 0); - if (notify) { - com_codename1_impl_ios_IOSImplementation_tiReplaceRange___int_int_java_lang_String(CN1_THREAD_GET_STATE_PASS_ARG - (JAVA_INT)range.location, (JAVA_INT)(range.location + range.length), - fromNSString(CN1_THREAD_GET_STATE_PASS_ARG text)); - } -} - -#pragma mark UIKeyInput - -- (BOOL)hasText { return _shadow.length > 0; } - -- (void)insertText:(NSString *)text { - if (text == nil) { - return; - } - [self cn1EditRange:_selectedRange with:text notify:YES]; -} - -- (void)deleteBackward { - if (_selectedRange.length > 0) { - [self cn1EditRange:_selectedRange with:@"" notify:YES]; - } else if (_selectedRange.location > 0) { - [self cn1EditRange:NSMakeRange(_selectedRange.location - 1, 1) with:@"" notify:YES]; - } -} - -#pragma mark UITextInput - text - -- (NSString *)textInRange:(UITextRange *)range { - CN1TextRange* r = (CN1TextRange *)range; - NSRange nr = [self clampRange:NSMakeRange(r.startIndex, r.endIndex - r.startIndex)]; - return [_shadow substringWithRange:nr]; -} - -- (void)replaceRange:(UITextRange *)range withText:(NSString *)text { - CN1TextRange* r = (CN1TextRange *)range; - [self cn1EditRange:NSMakeRange(r.startIndex, r.endIndex - r.startIndex) with:text notify:YES]; -} - -#pragma mark UITextInput - selection - -- (UITextRange *)selectedTextRange { - return [CN1TextRange rangeFrom:_selectedRange.location to:_selectedRange.location + _selectedRange.length]; -} - -- (void)setSelectedTextRange:(UITextRange *)selectedTextRange { - NSRange newRange; - if (selectedTextRange == nil) { - newRange = NSMakeRange(_shadow.length, 0); - } else { - CN1TextRange* r = (CN1TextRange *)selectedTextRange; - NSInteger s = [self clampIndex:r.startIndex]; - NSInteger e = [self clampIndex:r.endIndex]; - newRange = NSMakeRange(s, e - s); - } - if (NSEqualRanges(newRange, _selectedRange)) { - return; - } - _selectedRange = newRange; - com_codename1_impl_ios_IOSImplementation_tiSetSelection___int_int(CN1_THREAD_GET_STATE_PASS_ARG - (JAVA_INT)newRange.location, (JAVA_INT)(newRange.location + newRange.length)); -} - -#pragma mark UITextInput - marked text (IME composition) - -- (UITextRange *)markedTextRange { - if (_markedRange.location == NSNotFound) { - return nil; - } - return [CN1TextRange rangeFrom:_markedRange.location to:_markedRange.location + _markedRange.length]; -} - -- (void)setMarkedText:(NSString *)markedText selectedRange:(NSRange)selectedRange { - if (markedText == nil) { - markedText = @""; - } - NSRange rep = (_markedRange.location != NSNotFound) ? _markedRange : _selectedRange; - rep = [self clampRange:rep]; - [_shadow replaceCharactersInRange:rep withString:markedText]; - _markedRange = NSMakeRange(rep.location, markedText.length); - NSInteger sel = (NSInteger)selectedRange.location; - if (sel < 0) { - sel = 0; - } - if (sel > (NSInteger)markedText.length) { - sel = (NSInteger)markedText.length; - } - _selectedRange = NSMakeRange(rep.location + sel, 0); - // Mirror the composing text to Codename One as a plain range replacement so the document stays in - // sync; the marked range is tracked natively only so iOS can keep composing. - com_codename1_impl_ios_IOSImplementation_tiReplaceRange___int_int_java_lang_String(CN1_THREAD_GET_STATE_PASS_ARG - (JAVA_INT)rep.location, (JAVA_INT)(rep.location + rep.length), - fromNSString(CN1_THREAD_GET_STATE_PASS_ARG markedText)); -} - -- (void)unmarkText { - _markedRange = NSMakeRange(NSNotFound, 0); -} - -#pragma mark UITextInput - positions and ranges - -- (UITextPosition *)beginningOfDocument { return [CN1TextPosition positionWithIndex:0]; } -- (UITextPosition *)endOfDocument { return [CN1TextPosition positionWithIndex:_shadow.length]; } - -- (UITextRange *)textRangeFromPosition:(UITextPosition *)fromPosition toPosition:(UITextPosition *)toPosition { - return [CN1TextRange rangeFrom:((CN1TextPosition *)fromPosition).index to:((CN1TextPosition *)toPosition).index]; -} - -- (UITextPosition *)positionFromPosition:(UITextPosition *)position offset:(NSInteger)offset { - NSInteger idx = ((CN1TextPosition *)position).index + offset; - if (idx < 0 || idx > (NSInteger)_shadow.length) { - return nil; - } - return [CN1TextPosition positionWithIndex:idx]; -} - -- (UITextPosition *)positionFromPosition:(UITextPosition *)position inDirection:(UITextLayoutDirection)direction offset:(NSInteger)offset { - NSInteger idx = ((CN1TextPosition *)position).index; - if (direction == UITextLayoutDirectionLeft || direction == UITextLayoutDirectionUp) { - idx -= offset; - } else { - idx += offset; - } - return [CN1TextPosition positionWithIndex:[self clampIndex:idx]]; -} - -- (NSComparisonResult)comparePosition:(UITextPosition *)position toPosition:(UITextPosition *)other { - NSInteger a = ((CN1TextPosition *)position).index; - NSInteger b = ((CN1TextPosition *)other).index; - if (a < b) return NSOrderedAscending; - if (a > b) return NSOrderedDescending; - return NSOrderedSame; -} - -- (NSInteger)offsetFromPosition:(UITextPosition *)from toPosition:(UITextPosition *)toPosition { - return ((CN1TextPosition *)toPosition).index - ((CN1TextPosition *)from).index; -} - -- (UITextPosition *)positionWithinRange:(UITextRange *)range farthestInDirection:(UITextLayoutDirection)direction { - CN1TextRange* r = (CN1TextRange *)range; - BOOL toStart = (direction == UITextLayoutDirectionLeft || direction == UITextLayoutDirectionUp); - return [CN1TextPosition positionWithIndex:(toStart ? r.startIndex : r.endIndex)]; -} - -- (UITextRange *)characterRangeByExtendingPosition:(UITextPosition *)position inDirection:(UITextLayoutDirection)direction { - NSInteger idx = ((CN1TextPosition *)position).index; - if (direction == UITextLayoutDirectionLeft || direction == UITextLayoutDirectionUp) { - return [CN1TextRange rangeFrom:[self clampIndex:idx - 1] to:idx]; - } - return [CN1TextRange rangeFrom:idx to:[self clampIndex:idx + 1]]; -} - -#pragma mark UITextInput - writing direction - -- (UITextWritingDirection)baseWritingDirectionForPosition:(UITextPosition *)position inDirection:(UITextStorageDirection)direction { - return UITextWritingDirectionLeftToRight; -} - -- (void)setBaseWritingDirection:(UITextWritingDirection)writingDirection forRange:(UITextRange *)range { -} - -#pragma mark UITextInput - geometry - -- (CGRect)caretRectForPosition:(UITextPosition *)position { - return _caretRectPoints; -} - -- (CGRect)firstRectForRange:(UITextRange *)range { - NSArray* rects = [self selectionRectsForRange:range]; - if (rects.count > 0) { - return rects[0].rect; - } - return _caretRectPoints; -} - -- (NSArray *)selectionRectsForRange:(UITextRange *)range { - NSMutableArray* result = [NSMutableArray array]; - CN1TextRange* r = (CN1TextRange *)range; - JAVA_OBJECT arr = com_codename1_impl_ios_IOSImplementation_tiSelectionRects___int_int_R_int_1ARRAY(CN1_THREAD_GET_STATE_PASS_ARG - (JAVA_INT)r.startIndex, (JAVA_INT)r.endIndex); - if (arr == JAVA_NULL) { - return result; - } - int len = (int)((JAVA_ARRAY)arr)->length; - JAVA_ARRAY_INT* data = (JAVA_ARRAY_INT*)((JAVA_ARRAY)arr)->data; - CGFloat scale = [UIScreen mainScreen].scale; - if (scale <= 0) { - scale = 1; - } - int count = len / 4; - for (int i = 0; i < count; i++) { - // Java reports absolute screen pixels; the input view is full screen so its coordinate space is - // screen points -> divide by scale. - CGRect rc = CGRectMake(data[i * 4] / scale, data[i * 4 + 1] / scale, - data[i * 4 + 2] / scale, data[i * 4 + 3] / scale); - CN1TextSelectionRect* sr = [[[CN1TextSelectionRect alloc] init] autorelease]; - sr.rectValue = rc; - sr.startFlag = (i == 0); - sr.endFlag = (i == count - 1); - [result addObject:sr]; - } - return result; -} - -- (UITextPosition *)closestPositionToPoint:(CGPoint)point { - CGFloat scale = [UIScreen mainScreen].scale; - if (scale <= 0) { - scale = 1; - } - // point is in the view's (full screen) coordinate space = screen points; Java hit-tests in pixels. - JAVA_INT off = com_codename1_impl_ios_IOSImplementation_tiOffsetAtPoint___int_int_R_int(CN1_THREAD_GET_STATE_PASS_ARG - (JAVA_INT)(point.x * scale), (JAVA_INT)(point.y * scale)); - return [CN1TextPosition positionWithIndex:[self clampIndex:off]]; -} - -- (UITextPosition *)closestPositionToPoint:(CGPoint)point withinRange:(UITextRange *)range { - CN1TextPosition* p = (CN1TextPosition *)[self closestPositionToPoint:point]; - CN1TextRange* r = (CN1TextRange *)range; - NSInteger idx = p.index; - if (idx < r.startIndex) { - idx = r.startIndex; - } - if (idx > r.endIndex) { - idx = r.endIndex; - } - return [CN1TextPosition positionWithIndex:idx]; -} - -- (UITextRange *)characterRangeAtPoint:(CGPoint)point { - CN1TextPosition* p = (CN1TextPosition *)[self closestPositionToPoint:point]; - NSInteger idx = p.index; - NSInteger end = [self clampIndex:idx + 1]; - return [CN1TextRange rangeFrom:idx to:end]; -} - -#pragma mark UITextInput - tokenizer - -- (id)tokenizer { - if (self.cn1Tokenizer == nil) { - self.cn1Tokenizer = [[[UITextInputStringTokenizer alloc] initWithTextInput:self] autorelease]; - } - return self.cn1Tokenizer; -} - -#pragma mark sync from Java - -- (void)cn1SyncText:(NSString *)text selStart:(NSInteger)selStart selEnd:(NSInteger)selEnd - caretRect:(CGRect)caretPixels { - CGFloat scale = [UIScreen mainScreen].scale; - if (scale <= 0) { - scale = 1; - } - _caretRectPoints = CGRectMake(caretPixels.origin.x / scale, caretPixels.origin.y / scale, - MAX((CGFloat)2, caretPixels.size.width / scale), caretPixels.size.height / scale); - // Never disturb an active IME composition; only the caret geometry is refreshed above. - if (_markedRange.location != NSNotFound) { - return; - } - if (text != nil) { - [_shadow setString:text]; - } - NSInteger len = (NSInteger)_shadow.length; - NSInteger s = MAX((NSInteger)0, MIN(selStart, len)); - NSInteger e = MAX((NSInteger)0, MIN(selEnd, len)); - _selectedRange = NSMakeRange(MIN(s, e), (NSUInteger)(s > e ? s - e : e - s)); -} - -@end - -#pragma mark - native bridge (declared native in IOSNative.java) - -void com_codename1_impl_ios_IOSNative_startTextInput___int_boolean_boolean_boolean_java_lang_String_int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject, JAVA_INT constraint, JAVA_BOOLEAN autoCorrect, JAVA_BOOLEAN autoCapitalize, JAVA_BOOLEAN multiline, JAVA_OBJECT initialText, JAVA_INT selStart, JAVA_INT selEnd) { - NSString* startText = initialText != NULL ? toNSString(CN1_THREAD_GET_STATE_PASS_ARG initialText) : @""; - dispatch_async(dispatch_get_main_queue(), ^{ - @autoreleasepool { - if (cn1TextInputView == nil) { - cn1TextInputView = [[CN1TextInputView alloc] init]; - } - cn1TextInputView.autocorrectionType = autoCorrect ? UITextAutocorrectionTypeYes : UITextAutocorrectionTypeNo; - cn1TextInputView.autocapitalizationType = autoCapitalize ? UITextAutocapitalizationTypeSentences : UITextAutocapitalizationTypeNone; - cn1TextInputView.spellCheckingType = autoCorrect ? UITextSpellCheckingTypeDefault : UITextSpellCheckingTypeNo; - cn1TextInputView.multiline = multiline != 0; - [cn1TextInputView cn1SyncText:(startText != nil ? startText : @"") selStart:selStart selEnd:selEnd caretRect:CGRectMake(0, 0, 2, 16)]; - UIViewController* vc = [CodenameOne_GLViewController instance]; - if (vc != nil) { - cn1TextInputView.frame = vc.view.bounds; - if (cn1TextInputView.superview == nil) { - [vc.view addSubview:cn1TextInputView]; - } - } - [cn1TextInputView becomeFirstResponder]; - [cn1TextInputView cn1EnsureInteraction]; - } - }); -} - -void com_codename1_impl_ios_IOSNative_setTextInputBounds___int_int_int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject, JAVA_INT x, JAVA_INT y, JAVA_INT w, JAVA_INT h) { - dispatch_async(dispatch_get_main_queue(), ^{ - @autoreleasepool { - if (cn1TextInputView != nil) { - CGFloat scale = [UIScreen mainScreen].scale; - if (scale <= 0) { - scale = 1; - } - [cn1TextInputView cn1SetEditorBounds:CGRectMake(x / scale, y / scale, w / scale, h / scale)]; - } - } - }); -} - -void com_codename1_impl_ios_IOSNative_updateTextInputState___java_lang_String_int_int_int_int_int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject, JAVA_OBJECT text, JAVA_INT selStart, JAVA_INT selEnd, JAVA_INT caretX, JAVA_INT caretY, JAVA_INT caretW, JAVA_INT caretH) { - NSString* nsText = text != NULL ? toNSString(CN1_THREAD_GET_STATE_PASS_ARG text) : nil; - CGRect caret = CGRectMake(caretX, caretY, caretW, caretH); - dispatch_async(dispatch_get_main_queue(), ^{ - @autoreleasepool { - if (cn1TextInputView != nil) { - [cn1TextInputView cn1SyncText:nsText selStart:selStart selEnd:selEnd caretRect:caret]; - } - } - }); -} - -void com_codename1_impl_ios_IOSNative_stopTextInput__(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject) { - dispatch_async(dispatch_get_main_queue(), ^{ - @autoreleasepool { - if (cn1TextInputView != nil) { - [cn1TextInputView resignFirstResponder]; - [cn1TextInputView removeFromSuperview]; - } - } - }); -} - -#else - -// watchOS has no UIKeyInput / UITextInput keyboard support; provide stubs so the symbols still link. -void com_codename1_impl_ios_IOSNative_startTextInput___int_boolean_boolean_boolean_java_lang_String_int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject, JAVA_INT constraint, JAVA_BOOLEAN autoCorrect, JAVA_BOOLEAN autoCapitalize, JAVA_BOOLEAN multiline, JAVA_OBJECT initialText, JAVA_INT selStart, JAVA_INT selEnd) { -} -void com_codename1_impl_ios_IOSNative_updateTextInputState___java_lang_String_int_int_int_int_int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject, JAVA_OBJECT text, JAVA_INT selStart, JAVA_INT selEnd, JAVA_INT caretX, JAVA_INT caretY, JAVA_INT caretW, JAVA_INT caretH) { -} -void com_codename1_impl_ios_IOSNative_setTextInputBounds___int_int_int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject, JAVA_INT x, JAVA_INT y, JAVA_INT w, JAVA_INT h) { -} -void com_codename1_impl_ios_IOSNative_stopTextInput__(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject) { -} - -#endif diff --git a/Ports/iOSPort/nativeSources/CodenameOne_GLViewController.h b/Ports/iOSPort/nativeSources/CodenameOne_GLViewController.h index ab80ea8d677..758931c0241 100644 --- a/Ports/iOSPort/nativeSources/CodenameOne_GLViewController.h +++ b/Ports/iOSPort/nativeSources/CodenameOne_GLViewController.h @@ -45,6 +45,7 @@ void cn1RunSyncOnMainQueue(void (^block)(void)); #import //#define CN1_USE_STOREKIT //#define CN1_USE_APPREVIEW +//#define CN1_USE_CODEMIRROR #if defined(CN1_USE_STOREKIT) || defined(CN1_USE_APPREVIEW) #import "StoreKit/StoreKit.h" #endif diff --git a/Ports/iOSPort/src/com/codename1/impl/ios/IOSImplementation.java b/Ports/iOSPort/src/com/codename1/impl/ios/IOSImplementation.java index 0c1ffc20c70..ac3d0995f5f 100644 --- a/Ports/iOSPort/src/com/codename1/impl/ios/IOSImplementation.java +++ b/Ports/iOSPort/src/com/codename1/impl/ios/IOSImplementation.java @@ -1411,227 +1411,7 @@ public void run() { } } }); - - } - - // ---- low level text input source (pure Codename One editors) ---- - - private static com.codename1.ui.TextInputClient tiClient; - - @Override - public boolean isTextInputSupported() { - return true; - } - - @Override - public Object startTextInput(com.codename1.ui.TextInputClient client, com.codename1.ui.TextInputConfig config) { - tiClient = client; - com.codename1.ui.TextInputState st = client.getEditingState(); - int constraint = config != null ? config.getConstraint() : 0; - boolean autoCorrect = config == null || config.isAutoCorrect(); - boolean autoCap = config == null || config.isAutoCapitalize(); - boolean multiline = config == null || config.isMultiline(); - nativeInstance.startTextInput(constraint, autoCorrect, autoCap, multiline, - st.getText(), st.getSelectionStart(), st.getSelectionEnd()); - return client; - } - - @Override - public void updateTextInputState(Object handle, com.codename1.ui.TextInputState state) { - com.codename1.ui.TextInputClient c = tiClient; - int[] r = c != null ? c.getCaretRect() : new int[]{0, 0, 0, 0}; - nativeInstance.updateTextInputState(state.getText(), state.getSelectionStart(), state.getSelectionEnd(), - r[0], r[1], r[2], r[3]); - // Push the editor component's absolute bounds so the native input view can gate its touch region to - // the editor (letting iOS draw its selection loupe/handles there) while passing other touches through. - if (c instanceof com.codename1.ui.Component) { - com.codename1.ui.Component comp = (com.codename1.ui.Component) c; - nativeInstance.setTextInputBounds(comp.getAbsoluteX(), comp.getAbsoluteY(), - comp.getWidth(), comp.getHeight()); - } - tiKeepNativeCallbacksAlive(); - } - - // The ti* callbacks below are invoked ONLY from native code (CN1TextInputView.m). ParparVM's dead - // code eliminator does not reliably retain such methods from the native-source scan, so it stubs some - // of them to an empty body and the native call silently does nothing. Referencing them from this - // reachable method (behind a guard that is always false at runtime) forces the eliminator to keep - // their real bodies. tiKeepAlive is never set true. - private static boolean tiKeepAlive = false; - - private static void tiKeepNativeCallbacksAlive() { - if (tiKeepAlive) { - tiCommit(""); - tiSetComposing("", 0); - tiFinishComposing(); - tiDeleteBackward(); - tiKeyCommand(0, 0); - tiEditorAction(0); - tiReplaceRange(0, 0, ""); - tiSetSelection(0, 0); - tiTextLength(); - tiTextRange(0, 0); - tiSelectionStart(); - tiSelectionEnd(); - tiRectForOffset(0); - tiOffsetAtPoint(0, 0); - tiSelectionRects(0, 0); - } - } - - @Override - public void stopTextInput(Object handle) { - tiClient = null; - nativeInstance.stopTextInput(); - } - - /// Callback from native: committed text. - public static void tiCommit(final String text) { - final com.codename1.ui.TextInputClient c = tiClient; - if (c == null) { - return; - } - Display.getInstance().callSerially(new Runnable() { - public void run() { - c.commitText(text); - } - }); - } - - /// Callback from native: IME composing (marked) text. - public static void tiSetComposing(final String text, final int rel) { - final com.codename1.ui.TextInputClient c = tiClient; - if (c == null) { - return; - } - Display.getInstance().callSerially(new Runnable() { - public void run() { - c.setComposingText(text, rel); - } - }); - } - - /// Callback from native: composition finished. - public static void tiFinishComposing() { - final com.codename1.ui.TextInputClient c = tiClient; - if (c == null) { - return; - } - Display.getInstance().callSerially(new Runnable() { - public void run() { - c.finishComposing(); - } - }); - } - - /// Callback from native: delete backward (one character before caret). - public static void tiDeleteBackward() { - final com.codename1.ui.TextInputClient c = tiClient; - if (c == null) { - return; - } - Display.getInstance().callSerially(new Runnable() { - public void run() { - c.deleteSurroundingText(1, 0); - } - }); - } - - /// Callback from native: a navigation / editing key command. - public static void tiKeyCommand(final int command, final int modifiers) { - final com.codename1.ui.TextInputClient c = tiClient; - if (c == null) { - return; - } - Display.getInstance().callSerially(new Runnable() { - public void run() { - c.onKeyCommand(command, modifiers); - } - }); - } - - /// Callback from native: keyboard return / action key. - public static void tiEditorAction(final int action) { - final com.codename1.ui.TextInputClient c = tiClient; - if (c == null) { - return; - } - Display.getInstance().callSerially(new Runnable() { - public void run() { - c.onEditorAction(action); - } - }); - } - - // ---- UITextInput geometry + range edits (native calls these; geometry queries run synchronously on - // the iOS main thread, which is also the Codename One EDT on iOS) ---- - - /// Total document length in UTF-16 characters. - public static int tiTextLength() { - com.codename1.ui.TextInputClient c = tiClient; - return c != null ? c.getTextLength() : 0; - } - - /// Text in the range `[start, end)`. - public static String tiTextRange(int start, int end) { - com.codename1.ui.TextInputClient c = tiClient; - return c != null ? c.getTextRange(start, end) : ""; - } - - /// Current selection start offset. - public static int tiSelectionStart() { - com.codename1.ui.TextInputClient c = tiClient; - return c != null ? c.getEditingState().getSelectionStart() : 0; - } - - /// Current selection end offset. - public static int tiSelectionEnd() { - com.codename1.ui.TextInputClient c = tiClient; - return c != null ? c.getEditingState().getSelectionEnd() : 0; - } - - /// Caret rectangle for an offset, absolute screen pixels `{x, y, w, h}`. - public static int[] tiRectForOffset(int offset) { - com.codename1.ui.TextInputClient c = tiClient; - return c != null ? c.rectForOffset(offset) : new int[]{0, 0, 0, 0}; - } - - /// Document offset nearest an absolute screen point (pixels). - public static int tiOffsetAtPoint(int x, int y) { - com.codename1.ui.TextInputClient c = tiClient; - return c != null ? c.offsetAtPoint(x, y) : 0; - } - - /// Selection rectangles for `[start, end)`, flat array of absolute-pixel `{x, y, w, h, ...}`. - public static int[] tiSelectionRects(int start, int end) { - com.codename1.ui.TextInputClient c = tiClient; - return c != null ? c.selectionRects(start, end) : new int[0]; - } - - /// Callback from native: replace a range with text (range based edit). - public static void tiReplaceRange(final int start, final int end, final String text) { - final com.codename1.ui.TextInputClient c = tiClient; - if (c == null) { - return; - } - Display.getInstance().callSerially(new Runnable() { - public void run() { - c.replaceRange(start, end, text); - } - }); - } - - /// Callback from native: set the selection range. - public static void tiSetSelection(final int start, final int end) { - final com.codename1.ui.TextInputClient c = tiClient; - if (c == null) { - return; - } - Display.getInstance().callSerially(new Runnable() { - public void run() { - c.setSelectionRange(start, end); - } - }); + } @Override @@ -7853,11 +7633,6 @@ else if (largest == 2436) { public Object getPasteDataFromClipboard() { String s = nativeInstance.getClipboardString(); if(s != null) { - Object lightweight = super.getPasteDataFromClipboard(); - if(lightweight instanceof com.codename1.ui.RichTextClipboardData - && s.equals(((com.codename1.ui.RichTextClipboardData)lightweight).getPlainText())) { - return lightweight; - } return s; } return super.getPasteDataFromClipboard(); @@ -7865,11 +7640,6 @@ public Object getPasteDataFromClipboard() { @Override public void copyToClipboard(Object obj) { - if(obj instanceof com.codename1.ui.RichTextClipboardData) { - nativeInstance.setClipboardString(((com.codename1.ui.RichTextClipboardData)obj).getPlainText()); - super.copyToClipboard(obj); - return; - } if(obj instanceof String) { nativeInstance.setClipboardString((String)obj); super.copyToClipboard(obj); diff --git a/Ports/iOSPort/src/com/codename1/impl/ios/IOSNative.java b/Ports/iOSPort/src/com/codename1/impl/ios/IOSNative.java index 3b0bf797f79..7e99f2e7fe7 100644 --- a/Ports/iOSPort/src/com/codename1/impl/ios/IOSNative.java +++ b/Ports/iOSPort/src/com/codename1/impl/ios/IOSNative.java @@ -63,10 +63,6 @@ native void editStringAt(int x, int y, int w, int h, long peer, boolean singleLi int color, long imagePeer, int padTop, int padBottom, int padLeft, int padRight, String hint, int hintColor, boolean showToolbar, boolean blockCopyPaste, int alignment, int verticalAlignment, boolean returnExitsEditing); - native void startTextInput(int constraint, boolean autoCorrect, boolean autoCapitalize, boolean multiline, String initialText, int selStart, int selEnd); - native void updateTextInputState(String text, int selStart, int selEnd, int caretX, int caretY, int caretW, int caretH); - native void setTextInputBounds(int x, int y, int w, int h); - native void stopTextInput(); native void resizeNativeTextView(int x, int y, int w, int h, int padTop, int padRight, int padBottom, int padLeft); native void flushBuffer(long peer, int x, int y, int width, int height); native void flushBufferForReadback(int x, int y, int width, int height); diff --git a/docs/demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/RichTextAndCodeEditingJavaSnippet.java b/docs/demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/RichTextAndCodeEditingJavaSnippet.java deleted file mode 100644 index 73287c897e1..00000000000 --- a/docs/demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/RichTextAndCodeEditingJavaSnippet.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codenameone.developerguide.snippets.generated; - -import com.codename1.ui.CodeCompletion; -import com.codename1.ui.CodeDiagnostic; -import com.codename1.ui.CodeEditor; -import com.codename1.ui.RichTextArea; -import com.codename1.ui.RichTextFormat; -import com.codename1.ui.TextArea; -import com.codename1.ui.TextField; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -class RichTextAndCodeEditingJavaSnippet { - void richFormats() { - RichTextArea editor = new RichTextArea(); - // tag::rich-text-and-code-editing-java-formats[] - editor.setContent("# Release notes\n\nThis is **ready**.", RichTextFormat.MARKDOWN); - editor.insertContent("{\\rtf1\\ansi {\\i pasted notes}}", RichTextFormat.RTF); - editor.insertContent("== Details\n\n* Portable\n* Lightweight", RichTextFormat.ASCIIDOC); - // end::rich-text-and-code-editing-java-formats[] - } - - void lightweightFields() { - // tag::rich-text-and-code-editing-java-lightweight-fields[] - TextField title = new TextField("", "Title", 80, TextArea.ANY); - title.setLightweightEditingEnabled(true); - - TextArea notes = new TextArea("", 5, 30); - notes.setLightweightEditingEnabled(true); - // end::rich-text-and-code-editing-java-lightweight-fields[] - } - - void completion() { - CodeEditor editor = new CodeEditor(); - // tag::rich-text-and-code-editing-java-completion[] - editor.setCompletionProvider((sourceEditor, code, cursor, results) -> { - List proposals = new ArrayList<>(); - proposals.add(new CodeCompletion("println(String value)", "println()") - .setType("method") - .setDetail("void")); - proposals.add(new CodeCompletion("private").setType("keyword")); - results.onSucess(proposals); - }); - // end::rich-text-and-code-editing-java-completion[] - } - - void diagnostics() { - CodeEditor editor = new CodeEditor(); - // tag::rich-text-and-code-editing-java-diagnostics[] - editor.setDiagnostics(Arrays.asList( - new CodeDiagnostic(6, 9, 6, 16, "Cannot resolve method prinln") - .setSeverity(CodeDiagnostic.ERROR), - new CodeDiagnostic(3, 5, "Value is never read") - .setSeverity(CodeDiagnostic.WARNING) - )); - // end::rich-text-and-code-editing-java-diagnostics[] - } -} diff --git a/docs/demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/TheComponentsOfCodenameOneJava115Snippet.java b/docs/demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/TheComponentsOfCodenameOneJava115Snippet.java index 4a846caf89a..2277fce4ff3 100644 --- a/docs/demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/TheComponentsOfCodenameOneJava115Snippet.java +++ b/docs/demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/TheComponentsOfCodenameOneJava115Snippet.java @@ -1,26 +1,3 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - package com.codenameone.developerguide.snippets.generated; import com.codename1.gpu.*; @@ -82,7 +59,7 @@ void snippet() throws Exception { // tag::the-components-of-codename-one-java-115[] Form hi = new Form("Compose", new BorderLayout()); RichTextArea editor = new RichTextArea(); - editor.setPlaceholder("Write something..."); + editor.setPlaceholder("Write somethingnull"); editor.setHtml("

    Trip itinerary

    Meet at the main lobby.

    "); Toolbar tb = hi.getToolbar(); diff --git a/docs/developer-guide/Rich-Text-And-Code-Editing.asciidoc b/docs/developer-guide/Rich-Text-And-Code-Editing.asciidoc deleted file mode 100644 index 7c69d1221cc..00000000000 --- a/docs/developer-guide/Rich-Text-And-Code-Editing.asciidoc +++ /dev/null @@ -1,257 +0,0 @@ -[[text-editing]] -== Rich Text and Code Editing - -Codename One includes two full-document editors. Use -https://www.codenameone.com/javadoc/com/codename1/ui/RichTextArea.html[`RichTextArea`] when users -compose formatted prose and the application stores HTML. Use -https://www.codenameone.com/javadoc/com/codename1/ui/CodeEditor.html[`CodeEditor`] for source code, -configuration files, queries, or any text that benefits from syntax highlighting, line numbers, -completion, and diagnostics. Both are lightweight Codename One components and share the same editing, -selection, scrolling, undo, and platform-input infrastructure. - -.The rich-text and code editors rendered by the same lightweight engine -image::img/editors-overview.png[RichTextArea and CodeEditor rendered together,scaledwidth=45%] - -=== Editor architecture and backend selection - -Both components extend -https://www.codenameone.com/javadoc/com/codename1/ui/AbstractEditorComponent.html[`AbstractEditorComponent`]. -The public components send semantic commands and queries to one of three backends: - -* A port can provide a native peer through `CodenameOneImplementation.createNativeEditorPeer(...)`. -* Otherwise, a port that implements the low-level text-input contract uses the pure Codename One - engine in `com.codename1.ui.editor`. It paints text, selections, carets, gutters, diagnostics, and - completion UI with `Graphics` and `Font`. -* A port without low-level text input uses a `BrowserComponent` fallback. This is important on the - JavaScript port and on any third-party port that hasn't implemented `TextInputClient`; the browser's - editable surface supplies keyboard and IME input instead of leaving a canvas editor read-only. - -Backend selection is transparent to application code. `isNativeEditor()` reports only the first case, -and `getInternalBrowser()` returns the fallback browser when the third case is active. The browser -backend is a compatibility path, not a requirement for the lightweight renderer. `CodeEditor.setEngineURL()` -can replace the built-in browser page on a port that needs that fallback; it doesn't replace the pure -engine on ports that support low-level input. - -Editor initialization can be asynchronous for native and browser peers. Commands issued immediately -after construction are queued. Use `onReady(Runnable)` or a ready listener when work must run only after -the backend exists. Reads use callbacks (`getHtml(...)`, `getText(...)`, and -`getCursorPosition(...)`) so the same application code works with every backend. - -==== The editor package - -The `com.codename1.ui.editor` package separates editing mechanics from feature-specific rendering. -`EditorDocument` owns normalized UTF-16 text and line offsets. `EditorView` owns the caret, selection, -composition range, scrolling, hit testing, clipboard commands, and undo transactions. `CodeView` and -`RichView` extend that surface instead of creating independent input implementations. - -The code layer adds incremental tokenization, palettes, completion, diagnostics, indentation, and the -line-number gutter. The rich layer keeps `InlineStyles`, `RichBlocks`, hyperlink targets, and image -runs parallel to the text. Every mutation, including undo and redo, updates those parallel models in -the same transaction. `HtmlImporter` and `HtmlSerializer` are model adapters; they don't implement a -second HTML tokenizer. Fragment parsing and entity decoding go through the framework's tolerant -`HTMLParser`, which extends `XMLParser`. The parser's fragment mode retains modern attributes such as -`data-*` while the legacy `HTMLComponent` path keeps its existing validation behavior. - -`EditorHost` is the narrow bridge between a view and its owner. It starts and stops platform text -input, pushes updated editing state to the port, and reports semantic editor events. This split lets -the same document and interaction engine run inside the full editors and the optional lightweight -mode of standard text components. - -=== Focus, change events, and editability - -`focusEditor()` moves focus into the editing surface and opens the virtual keyboard when appropriate. -`blurEditor()` relinquishes focus and dismisses the active platform input session. `setEditable(false)` -keeps the document visible while preventing edits; `CodeEditor.setReadOnly(true)` is the code-oriented -equivalent. - -Register an `addChangeListener(...)` listener to observe user edits and programmatic mutations. Avoid -saving on every keystroke when serialization or storage is expensive; debounce the listener, then read -the document through the asynchronous callback. - -=== Platform text input and input methods - -The pure editor doesn't treat a key release as text. Modern input can come from a virtual keyboard, -autocorrect, dictation, handwriting, a hardware keyboard, or an input method editor (IME). The platform -therefore drives a -https://www.codenameone.com/javadoc/com/codename1/ui/TextInputClient.html[`TextInputClient`] with -semantic operations: - -* `commitText(...)` inserts final text, including accepted autocorrect and dictation results. -* `setComposingText(...)` replaces the current marked-text range while an IME is still composing. - `finishComposing()` finalizes that range. -* `deleteSurroundingText(...)` implements soft-keyboard deletion without manufacturing key codes. -* `onKeyCommand(...)` carries navigation, selection, clipboard, undo, and redo commands. -* Geometry methods map UTF-16 offsets to caret and selection rectangles so native candidate windows, - selection handles, and accessibility UI align with the lightweight rendering. - -https://www.codenameone.com/javadoc/com/codename1/ui/TextInputConfig.html[`TextInputConfig`] tells the -port which keyboard constraint, return-key action, autocorrection, capitalization, and multiline -behavior the client needs. Rich prose enables normal language assistance; source editing disables -autocorrection and automatic capitalization. The immutable -https://www.codenameone.com/javadoc/com/codename1/ui/TextInputState.html[`TextInputState`] returns the -authoritative text, selection, and composing range to the port after each edit. - -All offsets in this contract are UTF-16 indices, matching Java `String`, Android `Editable`, and Apple -string indices. The document canonicalizes CRLF and bare CR line endings to LF before it updates the -caret, undo history, formatting runs, or platform state. Port authors must deliver composition updates -on the EDT and must stop the input session when the client loses focus. - -NOTE: `TextInputClient`, `TextInputConfig`, and `TextInputState` are general port-level APIs. Custom -lightweight editing components can implement the same protocol, but ordinary applications normally use -`RichTextArea` or `CodeEditor` and don't bind an input client directly. - -=== Optional lightweight TextArea and TextField editing - -`TextArea` and `TextField` normally keep their established native editing behavior. Applications that -want Codename One to retain control of painting, selection, scrolling, focus, and clipboard handling -can opt individual components into the shared lightweight engine. The option is off by default and is -inherited by `TextField` from `TextArea`. - -[source,java] ----- -include::../demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/RichTextAndCodeEditingJavaSnippet.java[tag=rich-text-and-code-editing-java-lightweight-fields,indent=0] ----- - -While editing, the framework places an `EditorView` over the text component in the form's layered -pane. Changes still flow through the original component's text, data-change listeners, max-size rule, -constraint, capitalization settings, multiline setting, and action events. The overlay is removed -when editing ends, so the `TextArea` or `TextField` remains the application-facing component. - -The mode requires a port implementation of the low-level text-input contract. A port that doesn't -provide it falls back to the existing native editor rather than presenting a read-only canvas. -Password fields also retain native editing so the platform can provide its protected text-entry -behavior. This makes the feature safe to enable selectively while ports and applications migrate away -from heavyweight native text overlays. - -=== Selection, bidirectional text, and scrolling - -On touch devices, a tap places the caret, a long press selects a word, and draggable handles adjust the -selection. The loupe follows a handle or long-press placement gesture. A normal one-finger drag scrolls -the document and doesn't turn the swipe into a selection. On desktop, mouse drag selects text, -double-click selects a word, triple-click selects a line, and the mouse wheel or trackpad scrolls the -document. Standard command/control shortcuts handle copy, cut, paste, select all, undo, and redo. - -Hebrew, Arabic, and mixed left-to-right/right-to-left lines use Unicode bidirectional layout. Glyph -painting, hit testing, caret movement, and selection rectangles share the same visual runs. Set the -component's RTL flag to choose the paragraph base direction. - -=== RichTextArea - -`RichTextArea` accepts and returns an HTML fragment. The importer maps common paragraph, heading, -blockquote, preformatted, list, link, image, bold, italic, underline, strike-through, color, highlight, -and relative-size markup into a document model. `getHtml(...)` emits canonical HTML from that model; it -preserves meaning rather than the input's exact whitespace, tag aliases, or attribute order. - -[source,java] ----- -include::../demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/TheComponentsOfCodenameOneJava115Snippet.java[tag=the-components-of-codename-one-java-115,indent=0] ----- - -.RichTextArea rendering headings, inline formatting, and a list -image::img/editors-richtext.png[RichTextArea with formatted itinerary content,scaledwidth=30%] - -The formatting methods act on the current selection: `bold()`, `italic()`, `underline()`, -`strikeThrough()`, ordered and unordered lists, indentation, alignment, foreground and highlight -colors, block formats, and font sizes. `queryCommandState(...)` keeps toolbar toggles synchronized with -the selection. `removeFormat()` clears inline formatting; `undo()` and `redo()` restore text together -with inline styles, paragraph attributes, links, and image runs. - -Use `setHtml(...)` to replace the document and `insertHtml(...)` to insert a fragment at the selection. -Fragment insertion retains its formatting and block structure. `createLink(url)` stores the target in -the model, and `removeLink()` removes it. `insertImage(url)` accepts normal URLs, data URIs, and supported -application resources; the source is retained so `getHtml(...)` can emit an `img` element when the -document is saved and reloaded. - -==== HTML, RTF, Markdown, and AsciiDoc - -`setContent(...)` and `insertContent(...)` accept a `RichTextFormat`. HTML is parsed directly; -Markdown and AsciiDoc headings, emphasis, links, images, lists, quotes, and literal blocks are mapped -to the same rich model. The RTF importer handles paragraph breaks, Unicode escapes, bold, italic, -underline, strike-through, and skips metadata destinations such as font and color tables. - -[source,java] ----- -include::../demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/RichTextAndCodeEditingJavaSnippet.java[tag=rich-text-and-code-editing-java-formats,indent=0] ----- - -Rich paste uses `RichTextClipboardData`, which always carries a plain-text fallback and can also carry -HTML, RTF, Markdown, or AsciiDoc. `RichTextArea` chooses the richest available representation; plain -`EditorView` consumers use the fallback. Copying a rich selection publishes both canonical HTML and -plain text. Android, Java SE, and the JavaScript port read the rich MIME types exposed by their native -clipboards, while ports with text-only clipboard APIs preserve rich data for in-application -round-trips and publish the plain representation to other applications. - -RTF is also recognized when a clipboard provider returns it as a string beginning with an RTF header. -Format import is intentionally a practical interchange subset, not a layout-compatible word -processor: unsupported RTF destinations and advanced Markdown or AsciiDoc extensions degrade to the -supported text and structure rather than controlling document layout. - -TIP: Treat imported HTML as document data, not as a browser page. The pure importer doesn't execute -scripts. Keep image URLs and link destinations subject to the same trust and validation rules used by -the rest of the application. - -=== CodeEditor - -`CodeEditor` provides incremental highlighting for `java`, `kotlin`, `javascript`, `python`, `css`, -`xml`, `json`, and `c`. It includes a line-number gutter, light and dark palettes, automatic bracket and -quote closing, tab expansion, automatic indentation, horizontal and vertical scrolling, and read-only -viewing. - -[source,java] ----- -include::../demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/TheComponentsOfCodenameOneJava117Snippet.java[tag=the-components-of-codename-one-java-117,indent=0] ----- - -.CodeEditor with Java syntax highlighting and line numbers -image::img/editors-code.png[CodeEditor showing highlighted Java source,scaledwidth=30%] - -Choose the language with `setLanguage(...)`, select `"light"` or `"dark"` with `setTheme(...)`, toggle -the gutter with `setShowLineNumbers(...)`, and configure indentation with `setTabSize(...)`. -`insertAtCursor(...)` replaces the active selection, while `getCursorPosition(...)` reports the current -UTF-16 caret offset asynchronously. - -The Codename One Playground uses ordinary multiline `TextArea` components for its Java and CSS source -panes and opts into `setLightweightEditingEnabled(true)`. The source panes therefore exercise the same -framework-rendered caret, selection, scrolling, clipboard, virtual-keyboard, and IME path available to -applications. Run diagnostics and inline messages are rendered with lightweight Codename One -components beneath the source field, so the web build doesn't need a separate browser editor. - -==== Asynchronous code completion - -A `CodeCompletionProvider` receives the complete source and caret offset, then delivers proposals -through its callback. The callback can run after a local analysis or network/language-server request; -the editor doesn't block the EDT while proposals are produced. - -[source,java] ----- -include::../demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/RichTextAndCodeEditingJavaSnippet.java[tag=rich-text-and-code-editing-java-completion,indent=0] ----- - -Return an empty list or `null` to dismiss the popup. A proposal can use different display and insertion -text, plus a type badge and detail string. - -==== Diagnostics - -`setDiagnostics(...)` accepts 1-based source ranges. Errors, warnings, and informational entries appear -as squiggly underlines, gutter markers, and messages associated with the marked range. - -[source,java] ----- -include::../demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/RichTextAndCodeEditingJavaSnippet.java[tag=rich-text-and-code-editing-java-diagnostics,indent=0] ----- - -Replace the list whenever a compiler, linter, or language server publishes a newer analysis. Passing an -empty list clears the current diagnostics. - -=== Port integration checklist - -Port maintainers who want the lightweight engine should implement `isTextInputSupported()`, -`startTextInput(...)`, `updateTextInputState(...)`, and `stopTextInput(...)` in -`CodenameOneImplementation`. The binding must distinguish committed from composing text, preserve -UTF-16 offsets, map native navigation and clipboard actions to `TextInputClient.KEY_*`, update native -selection state after programmatic edits, and anchor candidate UI with the supplied caret geometry. - -If a port can't implement that contract, leave `isTextInputSupported()` false so the editor selects its -editable browser fallback. A port with a better platform editor can instead supply a native peer and -implement the existing semantic command/query channel. In all three cases application code, change -listeners, ready handling, and asynchronous queries remain the same. diff --git a/docs/developer-guide/The-Components-Of-Codename-One.asciidoc b/docs/developer-guide/The-Components-Of-Codename-One.asciidoc index c3897180850..5bc12ec18d0 100644 --- a/docs/developer-guide/The-Components-Of-Codename-One.asciidoc +++ b/docs/developer-guide/The-Components-Of-Codename-One.asciidoc @@ -1953,12 +1953,58 @@ The effort to integrate Cordova/PhoneGap support into Codename One is handled wi This is discussed further in the https://www.codenameone.com/blog/phonegap-cordova-compatibility-for-codename-one.html[original announcement]. -=== Text editors +=== RichTextArea -`RichTextArea` and `CodeEditor` are introduced here as components, but editing is broad enough to have -its own chapter. See <> for rich HTML, syntax highlighting, completion, diagnostics, -touch and desktop selection, scrolling, bidirectional text, input methods, backend selection, and the -port-level `TextInputClient` contract. +The https://www.codenameone.com/javadoc/com/codename1/ui/RichTextArea.html[RichTextArea] is a visual editor for formatted text (a WYSIWYG / HTML editor). It lets the user select text and apply styling - bold, italic, underline, lists, links, colors, headings - and exchanges the result with your application as HTML. It works on phones and tablets with the on-screen virtual keyboard, and on desktops with a physical keyboard. + +`RichTextArea` derives from `AbstractEditorComponent`. By default the editing surface is a `contenteditable` document hosted inside the platform's native web widget (the same one used by `BrowserComponent`), which makes it fully cross-platform and gives correct keyboard, selection and IME behavior on every device. A platform port may transparently replace this with a fully native editing widget without any change to your code. + +NOTE: Because the editor is created asynchronously you should treat it like `BrowserComponent`: setters such as `setHtml(String)` are safe to call immediately (they're queued until the editor is ready) while reads such as `getHtml(SuccessCallback)` are asynchronous and deliver their result through a callback. + +The following sample places a `RichTextArea` in a form and wires a couple of formatting commands into the `Toolbar`: + +[source,java] +---- +include::../demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/TheComponentsOfCodenameOneJava115Snippet.java[tag=the-components-of-codename-one-java-115,indent=0] +---- + +.RichTextArea with a formatting toolbar editing styled content +image::img/components-richtextarea.png[RichTextArea with a formatting toolbar editing styled content,scaledwidth=35%] + +The formatting commands map to the operations you would expect from a word processor and all act on the current selection: `bold()`, `italic()`, `underline()`, `strikeThrough()`, `insertOrderedList()`, `insertUnorderedList()`, `indent()`/`outdent()`, `justifyLeft()`/`justifyCenter()`/`justifyRight()`, `createLink(url)`/`removeLink()`, `setForegroundColor(rgb)`/`setHighlightColor(rgb)`, `setBlockFormat("h1")`, `setFontSize(1..7)`, `removeFormat()`, `undo()` and `redo()`. You can also insert content at the cursor with `insertHtml(String)` and `insertImage(String)`. + +TIP: To keep a formatting toolbar in sync with the selection (for example, to highlight the bold button when the caret is inside bold text) register a change listener with `addChangeListener(ActionListener)` and query the active state with `queryCommandState("bold", active -> ...)`. + +Reading the edited content is asynchronous: + + +=== CodeEditor + +The https://www.codenameone.com/javadoc/com/codename1/ui/CodeEditor.html[CodeEditor] is an IDE-style source editor with syntax highlighting, a line-number gutter, light/dark themes and asynchronous code completion. Like `RichTextArea` it's designed for both touch devices (with the virtual keyboard) and desktops (with a physical keyboard), and uses the same cross-platform editing backend with an optional native upgrade per platform. + +[source,java] +---- +include::../demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/TheComponentsOfCodenameOneJava117Snippet.java[tag=the-components-of-codename-one-java-117,indent=0] +---- + +The highlighting language is selected with `setLanguage(String)` and understands common languages such as `java`, `kotlin`, `javascript`, `python`, `css`, `xml`, `json` and `c`. The content is exchanged with `setText(String)` and the asynchronous `getText(SuccessCallback)`, and `setReadOnly(boolean)` turns the editor into a syntax-highlighted code viewer. + +.CodeEditor showing Java with the completion popup (light theme) +image::img/components-codeeditor.png[CodeEditor showing Java with the completion popup,scaledwidth=35%] + +==== Code completion + +Code completion is driven by a https://www.codenameone.com/javadoc/com/codename1/ui/CodeCompletionProvider.html[CodeCompletionProvider]. The editor calls the provider as the user types (or when completion is explicitly triggered), passing the full text and the caret offset; the provider returns its proposals asynchronously, which makes it suitable both for fast in-memory completion and for completion backed by a remote language server. + + +Each https://www.codenameone.com/javadoc/com/codename1/ui/CodeCompletion.html[CodeCompletion] carries the text shown in the popup, the text inserted when it's chosen (which may differ), an optional category used to badge the entry (`"method"`, `"keyword"`, `"class"`, ...) and an optional detail string such as a signature. + +The editor honors light and dark themes through `setTheme(String)`: + +.CodeEditor in the dark theme +image::img/components-codeeditor-dark.png[CodeEditor in the dark theme,scaledwidth=35%] + +TIP: The built-in editing surface is fully self contained and works offline with no external dependencies. When an app actually references `CodeEditor` the build server can additionally bundle a richer code editor library; apps that don't use `CodeEditor` never pay that cost. === AutoCompleteTextField diff --git a/docs/developer-guide/Working-With-Javascript.asciidoc b/docs/developer-guide/Working-With-Javascript.asciidoc index b8eed60b66c..ffb474312b4 100644 --- a/docs/developer-guide/Working-With-Javascript.asciidoc +++ b/docs/developer-guide/Working-With-Javascript.asciidoc @@ -633,7 +633,7 @@ When a `Dialog` is shown, the parent `Form` is deinitialized. This causes any `B This affects: -* **Stateful embedded editors** - content and cursor position lost +* **Editors** (Monaco, CodeMirror) - content and cursor position lost * **WebRTC** connections - broken when removed from DOM * **Interactive visualizations** - charts, maps, diagrams with JavaScript state * **Any JavaScript state** - event listeners, variables, etc. @@ -671,3 +671,4 @@ With `removeOnDeinitialize=false`: . Parent `Form`'s `initComponent()` is called . `BrowserComponent` reconnects to the existing iframe - JavaScript state preserved + diff --git a/docs/developer-guide/developer-guide.asciidoc b/docs/developer-guide/developer-guide.asciidoc index a850b22b269..b21b9277658 100644 --- a/docs/developer-guide/developer-guide.asciidoc +++ b/docs/developer-guide/developer-guide.asciidoc @@ -57,8 +57,6 @@ include::css.asciidoc[] include::The-Components-Of-Codename-One.asciidoc[] -include::Rich-Text-And-Code-Editing.asciidoc[] - include::Accessibility-Semantics.asciidoc[] include::MCP-Headless-API.asciidoc[] diff --git a/docs/developer-guide/img/components-codeeditor-dark.png b/docs/developer-guide/img/components-codeeditor-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a42257351eaf1eeb90c13d40d6b71e4e291ef30b GIT binary patch literal 66714 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≶Q8l@Fu$$GdN> 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

    V^gqK$fPX5-oPh+e7*Ou=& zxTg>JpXX$V?|bQ-5Ukv_;a7+3`QLv0)_8|6w^Z2Wy`ZYXxjl8VptubLNx$<;kKMT8 z<@W!SKkwfYq5pMj;NRc+KkUW)`+@)c!2bi5-@jk8zhASzU$cMjr*{;xeY9Z%U&Q4L zXW=@*f5L?S_lo>`MgF}a|NV-DRmhXsuz|;msor;O!-fs~>r0bwgWulh-x42O^@ERW OxU8dpA?w_o$NvYp6|@Tg literal 0 HcmV?d00001 diff --git a/docs/developer-guide/img/components-codeeditor.png b/docs/developer-guide/img/components-codeeditor.png new file mode 100644 index 0000000000000000000000000000000000000000..64897a7f5e920c82ba5a62057163a68945e50875 GIT binary patch literal 69582 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 Ix6R-F4>X`pS^xk5 literal 0 HcmV?d00001 diff --git a/docs/developer-guide/img/components-richtextarea.png b/docs/developer-guide/img/components-richtextarea.png new file mode 100644 index 0000000000000000000000000000000000000000..bc55eefd879d58e54b0c1f1b62a585b6ec36244f GIT binary patch literal 57644 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 Y^_odUo>wcv-&_%XC&6FvM&rx>0uXX)00000 literal 0 HcmV?d00001 diff --git a/docs/developer-guide/img/editors-code.png b/docs/developer-guide/img/editors-code.png deleted file mode 100644 index ac8f78faee793e3579c9b3b5a23ca2b3e4e0aed5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23684 zcmdSBWmFtdw=LQvIKcxXc+lVk_YUq7+(`licXtQ@LI^I6ySsZM!L@OBcXxfoch4F3 zzCUN&pYP>Q22B;U_o^jx%{6xiD=A2#qY|QmKp=E!DKTXb2<|fo^vV|*5%}aVBEui} z56(eZQUp{wOuP&H0Pi3ot%?l%^F%iK4FZvaq{W0)U6T(MU0mOG5w)EjQ#WjkdA$0C z?|v+f{T5F6OEx7k1#0G3jRT6A8?Dcuv9R&5B9=T@UipEfcLWhcq*x%%bQ<11y7o~U z+EKFSTjv4-8`dT++cX|F&L$??u|~$mW?1mTH*2|+Bn^=F!*Vfi}+%G;NVUljFwEMpygt|F24L2PL`f7 z)vKtWb5En@=7vPmDxU4;rBxdCV3ZoP4yOuwt{z>NR@BiBC?&90?)8iXro(P>f>(jlWvZ$mai{L`!Nx9=CXab)TeU15K;a(xK z2+AggFJWk)BKR>TJDVyHgQVYO*((SNh4x)8EG%f2e}zLQez+wbGaBaqdm#@WiDZl0(JzvS_}ea-H#QXBk97PXMMEQHp?xl^Cfa|mXI%55_ShOpSUb% z+S>eH!)aC;p`>}9Ne5T5wA_4;oIc-%nT%yiQ}=7_X+{ie!o$OZ<~|j%CH(CQAz(Kd zCSF{$@GUQAP2{xrF}00n9%qlx_WL(74h{~;6mXY>I(DBYPr$n97~4{cirbgd1}5iQ zL!gU;*=QitR`>TqbeXpwZqJJiT2o;{_kTABAXV;{=Gryp#*S&LtE+EF_+m~@Y(WxX z#M1XyhjxyRR3AS0K|QX|uI6nVc1AvI!P0D|wgEeT-J2+|Txxz_pxU4RC2MD*0C#wJ zSWHr~%3_+?`Cz6!jD-JXZ-zZ#OyUe`VSh{^YkSjWu=r1gj%CxuT3PqE?bm4jiW-m>uY2V(eL;H%2RmnH=JD;fg{{B_|FK9nIUn|4zMC)%7yMzX|S?{S4WEjL^jRs9>-9VGxm**jgx<9EVe6ca6qQ$N#=Dh1ztrY z8=23;CkFN6l@ynyZ)Y2QH#aw|U)w;@^QDYQj; z$)60nu?Pryl5ARnMKVTooJTXob)oLDz;-I#FZXZ^>_;$gy!Q(7W@@d7bZRX>X~BT4 z+rKRKVz;AEtw;tQJaT0QJ?m!x_K4;CV$o?NH4;^^CQW5=VzdD7hf~R|!GsQofj8aH zG(0*DP|Uz42=5BZ6NuJjpJzc38a^ZIZKppJD(J8^m;rbyJOV-m5YRZrY;0_fuY+3e z_86L>&`|3t`6RAJzIXQ5M|v&KPaZ~W@4=53xTU3~5(BM(2?g$Uvc$y2D?F~Pvy2&J z#j8W8)jBIq(t(P>?sjGrGO3aOz8?>Cetr(u?^HJt|L-Xtc-ZNPC}u)USW^=}kgGqW z`}2#Q-K`ad@&~L4omz~RaIs9aB~Ven5pO}=6hG^ zxU1agw69+1)85`rU8{n9_+1*$j!|Hz0~0*KZ)|~_+^yw1_--GM2 z{q%c)Voi*?goH%G>-46krrCAU&MuPMtI+F_Y* z9k7niE9ER ztf0%o*GHh_>*QL!tu<7ubZke*jh<{J*_;8;!T$NlYwC%}+uMu7;)277sYPZr-CGB52 zBqk<%zo;;nagjMr^-IrB@)!ot-0bY9@14k?=-2Y-4KBy2N0E(4WIWfWrx_00!)>iD zABSRNVmkYxY5k&L9|@Mk84pLWMPI#o?GGM< zqhB!x5U_}*X-LdVeUArKuvg_kg;BPuvK`dCK3bIBAljWOAp*U`@BNm4MbiRK@Grnu zUX=s2TY0jI@8$hy1JU|Z=?FAaph6pnNv5EnfB~d_#z_dpr%#avK96|5(*{0JvE`Sn z7AccsxlkX8ORErHGX(gL_suF2C|52)`Fj#j^r*^`MGeAYuYOXq% zQZg*QM*gEaQbQr&#qk59qu3+h&rM4I_1uq~ROxB0>eoOa?;_fG(|`#t*)&`CFujqUa@N!C1L^4QLB3jf8?qK?bd33-BCwRqf;#|(guu8t0W1T=hB`wgk#G;o=VlsI6VAWX8YVA|BL+rud@ z1p%m(M4oRgf%^1@R3IKG?4L|W$ghr<%UpOmOLXeqaa$AbPnYEZS$8lEyu4!hZ@oJ- zOEFDoq0uP>n^Izj^tFf53r^*>Hd<-(`yse?^>lxHelf0yi-*_64io4AD*TrMRqB3Y zW8(_jRgpk+A_;wc{Tf17U0~f|K;e5;Zok=&gIg|?PZ5UD-Y8vJS;@$CvJceV=F2Ia z#w0ire&=ji2=mR|T~tCs!2p^r&yMp%{+Gc-&Vh{`?*Nf@Br?yoO5*{LRmvj0iH_{-S;~rWF0`fot>R06Do?Q z_s6Z{B|6+k%dIfLEa(c4X(=f~J!C$EX+BRVpT~3M-L?`;0L04G(9j?zAyEk=Pi19g z)46IopQqcrQis;+t>Kg+*}wWz&23FC$IPP&an=yO*GO^k*p2o1`5#HWZ@!Ivqi>O;*rK=^lnuW2^Be)`X1NwBc6+APYT-LfpuUwL_X zT9*^s?I2C{4fM-R)TOnii3O)r?h5i8dAz?4 z4iBg0^ zV`WZ(kL}jGH;*_JrKMMapa6{V&Bi7?EsYF-l>c7(r1=s?yh-NnE0@iFJRmd#Mhsx3YX1NLSX#JG zj{H+;mx_yPMw*1Uu#pt_O{~JJnFbzy4JSc(VJ!MIv7aerX$EQ;rYL9(TyFM8FLyd3%@01`M)ds zh%Bb zdS8cz2S2*k9yvMpBD{r^scCxsIWDVA;q?e3^GQ?`5y@<4v$H$(d|p@l6_~P)V&nnsSu!Awn1%|3UgdeN=vT$B3%QUnS54a2YAwkzh_#u9>vCeYHI z27b)U&f$0tH_H|x^<5K-O*PZeyYXq6h(ylF+Icn8VxaF^K#qlcMY95XwK*nBqTTiw z^EvAU#^kT{uL1^)5P~Qws=8`i6p0BrN19p(aocBjc-IzcvW^6e?dji3hDDR5{qiF5 z(Y+V?Q<7BF&IhUW^wxcqK&y}?Cncht7gyU{6k_dmbST9JU@{Y7{V;iYj&w zH#;cVepf=(2Vy?Y7-85O#!Aa)Khc@_`SBcw9*X0ht}cg*wDnF}Dkbi8jK}-Sj+*qa z9!2=oogJxbYdz3RjR~1NAvfUFaiT%t6p>OplT}DeiQL?pdG{3+6Ga-+EB3Zl?P%p!s@F`)rlNfp}VyErw)f^H)3i zv}M|g2i)KcIXRm39cc=KWbN-MA_YXX(Jj{zM@~nF$P{U5a(6A1ruGg}TCJhI1i4XU zkaU;Fu{fB3Q{3;-=w4I|@su>hv%*j@=mmb^U%5k*S&#T$6q^W#O}_pO)irNjsSA(s z(R|e(Ow&Dmqmf@I11sDY191k_%k*I9u+YvUKae}y&fCXS!p^?*aRA_+&yx+j6LM$V zeLvUI80%B^ZTrY)-s9<~!Oh0`dpWmrz0BjTa+hT|L`*WP<}{_Oia+c&8GCAb@4vdy z;YJH*eK;u#kjhq`;B63Vy+lE2WzJeXc91VE8}1c}E~B#TqOc@3HjR-vl1~y|%go_n zd7Rz2J3Wshw-}FV1P^}xZV{p#*^#2LOzGCeXYO_LqhTPgbUARlxBUhxgbg~bpsW`( z5_sREuy#5Kih`7MTTFa?SW0~3+mrsZkZ=Y!n?YcAG&j0o?`3cA@SbZ!E3Qnl>yn7u zY_$13h=9dlb!?Mi@YWljy)`w5q1F77kEZ2<;<)9K4}{wto?~)M%VU2*hKT9j*m=dy zUiJHLqo~vg%7U(5-@t(3N>#^fjR}j@d^PhIAuu?t>H7P-gKdiomk-EsN>zdFrX0PA z+``HceZvx4zT5fj8@feL;NKwI4gxJVCgk^TJ8`}&3^q0jsO z+?wyF_VXvrl~u+^fcR^ykBE=ScDWChmcF^YUE3;z9@N#<!nN8gj>FIB^!OQr1% z(AV{yd>6Owiu6pApf1EIb9;NVDehEqedTi9=p>VBU9EwvQQPD7G9ZtPxvtwM9%#z1 zhYtLKXSsKWn=m*b3FUqcxW4&f6r@jX|Iq67CpT_Ciy2w>@lGhLB$NpWlk6LiU+Nnh z&os+YLHVe6Se%6DHZA<d)#%XaiEAxIP23zWCbL@Cg_a5x2$!0{0tIqxGv}J=Lz*eevm5 zdy-()KPj!JECtohOqNC%)QA#!R?D(yXPleNWpdJ#+uc?RNLL-h1ETl2+9mwasx(yC z;A8HyqeaQR@`%@#gJ>~mXdStkAbDiw#R>|s!Cru{42A6 zkm9`4EK0+=&0%L;iul0Ja`M%!U)ILLpU(;La(gsZX>pzE9ytcCT-3`BSjP5$oF9#g zPT#R%5ha}31#__>HFv+E+znSV3euZ61g~x{S6te%xVY(XYgh^{NH11~ES!9_@5uUn ztLt$t9Gwahh$_rgL#*x}%uWEdebIgIiAL1tt= z{n4;DUG43D8nnE||w-KUKES?Ir7~?(WXGx$hiF=@d6>hqCeF>0r80 zDL?w8sh&A<$i!YLYr$N3RR#uROVp#2lYa&U@hh_n`ItQ(2hApYc-EW9Xk!R@c6Q^mYFzFr_Z9edUL_o7?Qn z%*y`0%7=E$uNS@8Vqy}N_Ltf*GR6T1qFCvONS{|*8Cc6dBu$rW-CYtHF}zjNBUuF( zOX$7YUZ@W(Y0?RdlDTuKWADbaB3bD5!MviY*ss~mfkcU#vDfJov_bhz*Y$4vQT(HyHndMZ-2G8s z95dIJQJWr5ex!Z6A^@^nVK!l`Aawh>%4h8?)(0FSlS8rN$Z9cdW3(73uiKzq>s%|= zIJzbgPT2mWH?P@npeS^=A{b)b)NFox&;D)AVj(n)ORHAEOqGEX)J;ugf98mM{r!92 zU_S)~ePa6fhu-n$qy~d%jZ#{tjw{r8Z|e<`D2-A{l|QX>cT)vB?up8i_tV?gIRm#I zLwCw04i__a7{q-4fV4vqD-#?NVzSfwshR(f@}~lV!^+Axi7+=mOz^F)OD-NZc3)+y zdZNHNy{wnq>BR{-VDr#dL@V1Cu44;@BNd_^`UyOK;X;r9HnjA<5l&Kv;IAC%+vidn z(pz!8tI-~+*{?gju+3As=aQnD+nrHNLtA(5B;j*0Rnbx_;J`~!XJ9*_N-@lD+ zb}Fi^C!+`q-pRTeQB}314dr8Z{1wu%3UuGjrLMvYXC!dQIJ z_&EEQ0<{UW{1Oid0~&|6fewF1!RUDPUy1SR<4TFLw@0tDttWwYG<|6ku&NiY$vBi3vPcK})8es_(%l(8y&=J(d;6gl%lb2J z&-|Ovmd9=JW!m+TPXHvM&gEdR-adkISdGOuHw%QNz4^Dal-fhKFTO4j`n%Bq;va;O zrChK()_|MB|Ckis6}2k}OGTq*+f#^SF+WLgkW0OZV!nanFn`+%Y!ewpFuV>zz@Slv z@b$5KsM=~gkvWCG!U87riinGxnmRV3oV7dLD;14^C6;e-XK}~$icCN*j3OwAbT2S3 zh=1BNBh(w}v9`UhxAB;~pqre0p=e@b#>rHYTfqTosH5y_up{zKw%~S} zXN}VyAK}|9$fKtYy=V6s$vJ}WMTLHTP;8}$3O{D)yW*z+6enU|yzO%B#|2aKvrGp{Zbv^992P_b_Cqg!Jchb*nF_K@Gr{lwN= z?+l4WG43CfoA812F;!UGc!DkExFC77{|@eA535Y5hY47jY1G+gKsbBuhxqeB{+ES zVNWNOh~MuP&HK|#Sa-ZRiMy-|DP?=MH1AVtl_gh6$WOR*kLl86 zWWJmsenTnVv3&L2U-`k(ec65EyAv(;%sv*{+VX~G%#TZne+`r3I^~|pYQP?tL?(y3 ztrZiAfm3vff_m=Gk`y(R`xCqich`vI=bBi7b?#rvQ1^3M=*W@geH<-WT~hVrT^(F`S4 zTflmWb-uWg7%RueK@wT3{^4N5%el)p?myDI#y#{KJrlS}wDGh|?o7x|#~4(0z$aP& zOi)PcAsFLP@?lny}4*O_-rJvtyrdnkAPENh{=fJczw$eNqnGLLe z)(l;y2*p^|!Hm8pmoBFyFEpC6H2j)kz1I%JaVx_XmfCsP*D@!2s$z2L?tRlrhh%Aa zLi$YHfbF8B+oJ#7qmYC5Pl(1Tu@JJfumVo7zu=YAemWN`XPj~Y6?yt_D?}kIte(e$ zW#|FT9x6qJGgoUSZ!|&j;&O&ZJ!^-09MO6JK$@*_qCAG4)8zTXSbr?QBMJ!q%IXQ* zUzE&fe(+paTnu&IAu0;jWu^sc!g^2W=%$mMt!=va`Ib>kMN^+DV4Eslr<2puEdZ4* zgoh%ei{3lyLT$sCQ=SjcP8g-gB9nF5EV8Hp*XjeN>-wY_1kCGe2VzA?ck}e3^3wm? z2F3+>^S(U|+*XK%gN*j2i()C!Ar`Qs4GA&0uLgBH7k2?=v8U851?Om2EKE1hw^379 zw8u+c{!TlWQsES3I<=+}Upq3rs&InExZ4YJ#yx(R7(=8e5azx<0FYe(?EZEY8=KMK zl)FsM&EJ4vILjcd=kiF>+@z-y(oIwxRB%Uy2Or|gCq7^94F#1h*MGBbx{Eh2TXW*d z!&vs_^e=0<4ePlRk}is4dUqmbAn}Ii&+=;%hXAX@XdO23pD$Z<2dNgS{z`5Ao0398 zGGAAE#;>!LJ?ZGlnkPY>Gx^JBTz9L7Hj~FEc!H@(YQ8x-aDZSh4Yz{4CN~8_8_LZ* zZ47A=oVb7#2wXbuOR4=fp=N^-zKCIv(wX~F3{45@rciZy|Bm)D0 zm5<}KWVQ7WUf9#nr@1Fj~XFE#c`kQq}WHJ6j5Z z`W|&T5Vj9p4Ed_&e04UVdhOKe#)WidoC8r?W2)xz4l%W_Kmi?E<&GO-hP0;+M4K0FahW!#X=QEMCv7n@e_Bf+wSo2r;Q4DoUwH!ULHgM@$# zHbX#bf2AuGTq(4)l$~wfBuBpn-v*mTA|Nnf)@@eZca>W(3+a;uTYwVjyyqlu45kzaa^7uQ5oA)KB&u(u)xQ;1JdR

    VR{e#&oAzK(ihMdBO#}P2deE=dZo_%e( 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 I&ZEfx0R22bbN~PV diff --git a/docs/developer-guide/img/editors-overview.png b/docs/developer-guide/img/editors-overview.png deleted file mode 100644 index fd90a2a7d5f8254446493d4b3e55c1d809dbf30b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23132 zcmeFZ1yI$|_b++?1qB3=QYi%iX{8&LZUO1;ICS?x5owTaknZm8F6r);=FoNS=J$Uy zZ|2V2`)2OUdvov1bLNbK=X}qOwb%Nr&-$$G|5Zlx8TxB<2n6y>TuewF0zvu&fgpQ5 zK?T3r|DEa${z9^o7ySY$8Y12SKRmMgBL3|O_~ZV>zz+g>0}&Vc{LMLWZ^6m_o8ny8 zini<9XYx;ee$Djul8{3Z#(5;1ArVI97l6N^c-ygv|0v^$Qe>8weTFyrpVN>}PmsQd zAHL;--{CO77;Vq!sV%P5=;v}6#;o0n^f=d#ij6h-BGlnk&|i;4PQD?G^q%}zCIkyg)k-mH+`Fh3&$tgkkeE9&7mZWPsLh| zM@L8Rw+Q?r8S^_jgvNr+TMU@P;^I_~WC{vOswP{Fbjt)JBYJ;EMJf7M>FVn%tlm*m zQm$-lJZ@QO_svx<)+#a_N)Z^IDK|Eqt75>y!lGP^5fip<7xhxelG1Ja`P7GTYh~s0 z-SwI2Oc^B!k7I^p3}a1A&HVO(6|L|cJ;n<>yq}?=p+0Jn3g+hYB;59I$jN`$taTk9 z)E`Foc?$Ifbjo~BN=kzB8TJhfynFZVC!gDSiSaOL)72)??cH4*vmrV*|K*>|cx#1R ztwvY>NxGddeYtm(lsGszNS~aYotyd}qoRgKM~j^Oo3OF7qpLjkn|~kpc-adHC6?Vn ztqHCmFYgx+pf^>dIgr2+S_z#R&6Xuw^t`dq@;FnJWLwKR>cEx7yHt%P)YjIXEKqGf zUhCdjsCR1W4}Q%S0RB;KyCHGVjJRhuPZc|koblm8Lqp3`%UmaovFP@S#R#*hscB;YFN{cu(TS>{u+ZgtC)?#}BL?ZEfG4lNzyHPv z9?r)S+eWsVQAwti?d=}0$}^?k1F3?(+oPF*E?P!L zR8OBig$OtOP7Vvx>`P~|i&FUkI*$Si{2MH1)qQI1t6c=qU#({XY zK=BBwxI=SfVoqx>)Mu~PRX8Xpyf^w|SWHLXVUci0LYw(qPnXZ8w6lc+34E$bd4)to zm~B>tnh^JH@K6bM7!1}GOw_#=Dxj5Nadxa}~0g&Bk+hs}thldcnrW@_TUeI2{bIHCry!1rc+F%cYCpPkZELEZM24y#@

    3w!aq*Rn7;U4KHXq15 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 I)a8Hu8$oVRi2wiq diff --git a/docs/website/content/blog/funding-open-source-without-the-bait-and-switch.md b/docs/website/content/blog/funding-open-source-without-the-bait-and-switch.md index eec575e9758..8fb0bb11152 100644 --- a/docs/website/content/blog/funding-open-source-without-the-bait-and-switch.md +++ b/docs/website/content/blog/funding-open-source-without-the-bait-and-switch.md @@ -90,7 +90,7 @@ That work also finished wiring `@media` for the existing watch port, which never ![The CodeEditor with Java syntax highlighting, a gutter, and an async code-completion popup, and the RichTextArea WYSIWYG editor with a formatting toolbar](/blog/rich-text-and-code-editing/components-codeeditor.png) -Both sit on a single `AbstractEditorComponent` with two interchangeable backends: a pure Codename One engine that renders on the canvas and receives keyboard and IME input through the port, and an optional native backend a port can supply. The Playground dogfoods the same lightweight editing machinery by enabling it on its multiline `TextArea` source panes. The deep dive is in {{< post-link path="/blog/rich-text-and-code-editing" text="Sunday's post" >}}. +Both sit on a single `AbstractEditorComponent` with two interchangeable backends: a fully cross-platform engine made of self-contained HTML and JS inside the core jar, and an optional richer native backend a port can supply. The `CodeEditor` is not a toy demo: the Playground already uses it. The deep dive is in {{< post-link path="/blog/rich-text-and-code-editing" text="Sunday's post" >}}. ## Device integrity and app review diff --git a/docs/website/content/blog/java-one-detailed-trip-report.md b/docs/website/content/blog/java-one-detailed-trip-report.md index 39700caecdb..b50a0b5f8ab 100644 --- a/docs/website/content/blog/java-one-detailed-trip-report.md +++ b/docs/website/content/blog/java-one-detailed-trip-report.md @@ -362,7 +362,9 @@ A bit later I attended a great session "The Chuck Norris Experiment: Running Jav Jaroslav Tulach ](https://twitter.com/JaroslavTulach) (co-founder of NetBeans or Xelfi for us old timers) and +[ Anton Epple +](https://twitter.com/monacotoni) . The session presented the [ Bck2Brwsr diff --git a/docs/website/content/blog/rich-text-and-code-editing.md b/docs/website/content/blog/rich-text-and-code-editing.md index 535ee129c49..08865b1533d 100644 --- a/docs/website/content/blog/rich-text-and-code-editing.md +++ b/docs/website/content/blog/rich-text-and-code-editing.md @@ -20,16 +20,16 @@ Both editors extend `AbstractEditorComponent`. That base class does not draw any There are two backends behind that channel, and they are interchangeable. -The first is a pure Codename One engine. It paints text, selection, carets, diagnostics, images, and formatting with lightweight components, while the port's low-level text-input bridge supplies virtual-keyboard and IME events. That keeps the document and interaction model consistent across canvas-based ports without embedding a web editor. +The first is a cross-platform engine built on `BrowserComponent`. The editor's HTML and JavaScript ship inside the core jar, so there is nothing to download at runtime. It renders through whatever web view the platform already provides: `WKWebView` on iOS, `WebView` on Android, CEF on the desktop simulator, and an iframe on the web target. Going through a real web view means the editor gets correct virtual-keyboard behavior and physical-keyboard handling for free, instead of us re-implementing text input per platform. -The second backend is optional and supplied by a port. A platform implementation can return a native editor peer through `CodenameOneImplementation#createNativeEditorPeer`, then handle `editorPeerCommand` and `editorPeerQuery`. The same semantic channel drives it, so the component code does not change. Applications can also point `CodeEditor#setEngineURL(...)` at a compatible custom engine when they need a specialized integration. +The second backend is optional and supplied by a port. A platform implementation can return a native editor peer through `CodenameOneImplementation#createNativeEditorPeer`, then handle `editorPeerCommand` and `editorPeerQuery`. The same semantic channel drives it, so the component code does not change. `CodeEditor#setEngineURL(...)` is the application-level version of the same idea: point the editor at a richer engine, such as a full Monaco or CodeMirror build you host yourself. {{< mermaid >}} flowchart TD A["RichTextArea / CodeEditor"] --> B["AbstractEditorComponent
    (command / query / event channel)"] - B --> C["Pure Codename One engine
    lightweight rendering + text input bridge"] + B --> C["Cross-platform engine
    BrowserComponent + bundled HTML/JS"] B --> D["Optional native peer
    createNativeEditorPeer /
    editorPeerCommand / editorPeerQuery"] - C --> E["Canvas rendering
    keyboard + IME input from the port"] + C --> E["WKWebView (iOS)
    WebView (Android)
    CEF (desktop)
    iframe (web)"] {{< /mermaid >}} ## CodeEditor @@ -103,7 +103,7 @@ The toolbar drives the same command channel described earlier; pressing the bold `CodeEditor` can be backed by a heavier engine, and CodeMirror assets are not free weight to carry around. So the Android and iOS builders scan your app for use of `com.codename1.ui.CodeEditor`. The optional CodeMirror assets are bundled only when that API actually appears, gated by `CN1_USE_CODEMIRROR`. An app that never touches `CodeEditor` ships nothing extra. -The Playground opts its multiline `TextArea` source panes into `setLightweightEditingEnabled(true)`, so the same caret, selection, scrolling, clipboard, keyboard, and IME machinery is dogfooded in a real application. There are 33 deterministic unit tests across `RichTextAreaTest` and `CodeEditorTest`, backed by an editor SPI in the test implementation, plus a dedicated developer-guide chapter with screenshots. +The Playground already uses `CodeEditor` for its editor pane, so it is dogfooded rather than demo-ware. There are 33 deterministic unit tests across `RichTextAreaTest` and `CodeEditorTest`, backed by an editor SPI in the test implementation so they run without a real web view, plus new developer-guide sections with screenshots. ## The tradeoff diff --git a/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/AndroidGradleBuilder.java b/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/AndroidGradleBuilder.java index dde0cd08278..12a137ea514 100644 --- a/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/AndroidGradleBuilder.java +++ b/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/AndroidGradleBuilder.java @@ -301,6 +301,7 @@ public File getGradleProjectDirectory() { private boolean usesAppleSignIn; private boolean usesWebauthn; private boolean usesAppReview; + private boolean usesCodeEditor; private boolean vibratePermission; private boolean smsPermission; private boolean gpsPermission; @@ -1352,6 +1353,13 @@ public void usesClass(String cls) { if (!usesAppReview && cls.indexOf("com/codename1/appreview") == 0) { usesAppReview = true; } + // CodeEditor optionally upgrades its built-in highlighter to + // the bundled CodeMirror web assets. Detected from actual + // usage so apps that never embed a code editor pay nothing + // (see the bundling step further below). + if (!usesCodeEditor && cls.indexOf("com/codename1/ui/CodeEditor") == 0) { + usesCodeEditor = true; + } if (cls.indexOf("com/codename1/location/Geofence") > -1) { if (!"true".equals(playServicesValue)) { // If play services are not currently "blanket" enabled @@ -4681,6 +4689,15 @@ public void usesClassMethod(String cls, String method) { additionalDependencies += " implementation 'com.google.android.play:review:"+reviewVersion+"'\n"; } + // CodeEditor (com.codename1.ui.CodeEditor) can upgrade its self-contained + // built-in highlighter to the bundled CodeMirror assets. We only flag the + // bundling when the app actually references CodeEditor (detected during the + // class scan above) so apps that never embed a code editor stay lean. + if (usesCodeEditor) { + debug("CodeEditor detected: enabling CodeMirror asset bundling"); + request.putArgument("codeEditor.bundleCodeMirror", "true"); + } + // OidcClient routes sign-in through androidx.browser Custom Tabs. // Pull the browser dep in automatically when the app references // anything in com.codename1.io.oidc -- otherwise apps that don't diff --git a/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/IPhoneBuilder.java b/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/IPhoneBuilder.java index 58cee299c10..154297a272c 100644 --- a/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/IPhoneBuilder.java +++ b/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/IPhoneBuilder.java @@ -108,6 +108,7 @@ public class IPhoneBuilder extends Executor { private boolean usesLocalNotifications; private boolean usesPurchaseAPI; private boolean usesAppReview; + private boolean usesCodeEditor; private boolean usesWalletApi; private boolean usesCryptoAPI; private boolean usesCryptoGcm; @@ -809,6 +810,12 @@ public void usesClass(String cls) { if (!usesAppReview && cls.indexOf("com/codename1/appreview") == 0) { usesAppReview = true; } + // CodeEditor optionally upgrades its built-in highlighter to the + // bundled CodeMirror web assets. Gated on actual usage (CN1_USE_CODEMIRROR) + // so apps that never embed a code editor pay nothing. + if (!usesCodeEditor && cls.indexOf("com/codename1/ui/CodeEditor") == 0) { + usesCodeEditor = true; + } // Wallet issuer-provisioning natives are only compiled in when // the app actually references the API (or enables the extension // via the ios.wallet.extension hint) - see CN1_INCLUDE_WALLET. @@ -2113,6 +2120,11 @@ public void usesClassMethod(String cls, String method) { replaceInFile(CodenameOne_GLViewController_h, "//#define CN1_USE_APPREVIEW", "#define CN1_USE_APPREVIEW"); } + if (usesCodeEditor) { + File CodenameOne_GLViewController_h = new File(buildinRes, "CodenameOne_GLViewController.h"); + replaceInFile(CodenameOne_GLViewController_h, "//#define CN1_USE_CODEMIRROR", "#define CN1_USE_CODEMIRROR"); + + } } catch (Exception ex) { throw new BuildException("Failure while injecting code from build hints", ex); } diff --git a/maven/core-unittests/spotbugs-exclude.xml b/maven/core-unittests/spotbugs-exclude.xml index f613d6b86db..720bb1c913b 100644 --- a/maven/core-unittests/spotbugs-exclude.xml +++ b/maven/core-unittests/spotbugs-exclude.xml @@ -370,17 +370,4 @@ - - - - - - diff --git a/maven/core-unittests/src/test/java/com/codename1/testing/TestCodenameOneImplementation.java b/maven/core-unittests/src/test/java/com/codename1/testing/TestCodenameOneImplementation.java index 63bc6ba1e73..168308c876c 100644 --- a/maven/core-unittests/src/test/java/com/codename1/testing/TestCodenameOneImplementation.java +++ b/maven/core-unittests/src/test/java/com/codename1/testing/TestCodenameOneImplementation.java @@ -1,26 +1,3 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - package com.codename1.testing; import com.codename1.capture.VideoCaptureConstraints; @@ -169,7 +146,6 @@ public class TestCodenameOneImplementation extends CodenameOneImplementation { private final List browserExecuted = new ArrayList<>(); private final Map browserUrls = new HashMap(); private boolean editorNativePeerSupported = false; - private boolean textInputSupported = true; private String lastEditorType; private PeerComponent lastEditorPeer; private final List editorCommands = new ArrayList(); @@ -1056,15 +1032,6 @@ public boolean isEditorNativePeerSupported() { return editorNativePeerSupported; } - @Override - public boolean isTextInputSupported() { - return textInputSupported; - } - - public void setTextInputSupported(boolean supported) { - textInputSupported = supported; - } - public String getLastEditorType() { return lastEditorType; } @@ -1215,7 +1182,6 @@ public void reset() { browserExecuted.clear(); browserUrls.clear(); editorNativePeerSupported = false; - textInputSupported = true; lastEditorType = null; lastEditorPeer = null; editorCommands.clear(); diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/CodeEditorTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/CodeEditorTest.java index 671c60c3254..7e3c28068fa 100644 --- a/maven/core-unittests/src/test/java/com/codename1/ui/CodeEditorTest.java +++ b/maven/core-unittests/src/test/java/com/codename1/ui/CodeEditorTest.java @@ -1,26 +1,3 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - package com.codename1.ui; import com.codename1.junit.FormTest; @@ -239,31 +216,9 @@ void testChangeEventStillDispatchesThroughOverride() { } @FormTest - void testPureBackendUsedWhenNoNativePeer() { - // no native peer -> pure Codename One code engine - CodeEditor editor = new CodeEditor("java", "class A {}"); - Form f = new Form("code", new BorderLayout()); - f.add(BorderLayout.CENTER, editor); - f.show(); - pump(); - assertFalse(editor.isNativeEditor()); - assertTrue(editor.isEditorReady()); - assertNull(editor.getInternalBrowser()); - final java.util.concurrent.atomic.AtomicReference text = - new java.util.concurrent.atomic.AtomicReference(); - editor.getText(new com.codename1.util.SuccessCallback() { - public void onSucess(String v) { - text.set(v); - } - }); - pump(); - assertEquals("class A {}", text.get()); - } - - @FormTest - void testBrowserFallbackUsedWithoutLowLevelTextInput() { - implementation.setTextInputSupported(false); - CodeEditor editor = new CodeEditor("java", "class A {}"); + void testBrowserFallbackUsesCodeEditorPage() { + // no native peer -> cross platform browser backend + CodeEditor editor = new CodeEditor(); Form f = new Form("code", new BorderLayout()); f.add(BorderLayout.CENTER, editor); f.show(); diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/RichTextAreaTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/RichTextAreaTest.java index d561c5f2115..1c333f7af51 100644 --- a/maven/core-unittests/src/test/java/com/codename1/ui/RichTextAreaTest.java +++ b/maven/core-unittests/src/test/java/com/codename1/ui/RichTextAreaTest.java @@ -1,26 +1,3 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - package com.codename1.ui; import com.codename1.junit.FormTest; @@ -38,8 +15,8 @@ * Deep coverage for {@link RichTextArea}. The component routes every operation through the semantic * command/query channel of {@link AbstractEditorComponent}; these tests drive it against the * deterministic native editor backend provided by the test implementation so the full command, query, - * event and ready-queue machinery is exercised. A couple of tests additionally verify the pure - * Codename One text engine that is selected when no native peer is available. + * event and ready-queue machinery is exercised without a real web view. A couple of tests additionally + * verify the cross-platform {@code BrowserComponent} fallback selection. */ class RichTextAreaTest extends UITestBase { @@ -266,45 +243,41 @@ void testReadyListenerFiresAfterInitialization() { assertEquals(1, count.get()); } - // --- pure Codename One text engine (default when no native peer) --- + // --- cross platform BrowserComponent fallback --- @FormTest - void testPureBackendSelectedWhenNoNativePeer() { - // State this explicitly so the test remains deterministic if form tests run concurrently. - implementation.setEditorNativePeerSupported(false); - implementation.setTextInputSupported(true); + void testBrowserFallbackSelectedWhenNoNativePeer() { + // editorNativePeerSupported defaults to false -> no native peer -> browser fallback RichTextArea editor = new RichTextArea(); Form f = new Form("rt", new BorderLayout()); f.add(BorderLayout.CENTER, editor); f.show(); pump(); assertFalse(editor.isNativeEditor()); - assertTrue(editor.isEditorReady()); - assertNull(editor.getInternalBrowser()); + assertNotNull(editor.getInternalBrowser()); } @FormTest - void testPureBackendRoundTripsContent() { - implementation.setEditorNativePeerSupported(false); - implementation.setTextInputSupported(true); + void testBrowserFallbackBecomesReadyOnLoadAndRoutesCommands() { RichTextArea editor = new RichTextArea(); Form f = new Form("rt", new BorderLayout()); f.add(BorderLayout.CENTER, editor); f.show(); pump(); + assertFalse(editor.isEditorReady()); + // simulate the web view finishing load -> editor becomes ready + editor.getInternalBrowser().fireWebEvent(BrowserComponent.onLoad, new com.codename1.ui.events.ActionEvent(editor)); + pump(); assertTrue(editor.isEditorReady()); - editor.setHtml("

    hello world

    "); + editor.bold(); pump(); - final java.util.concurrent.atomic.AtomicReference text = - new java.util.concurrent.atomic.AtomicReference(); - editor.getText(new com.codename1.util.SuccessCallback() { - public void onSucess(String v) { - text.set(v); + boolean routed = false; + for (String s : implementation.getBrowserExecuted()) { + if (s.contains("cn1editor.cmd") && s.contains("bold")) { + routed = true; + break; } - }); - pump(); - assertNotNull(text.get()); - assertTrue(text.get().contains("hello")); - assertTrue(text.get().contains("world")); + } + assertTrue(routed, "bold() should be routed to the browser backend as a cn1editor.cmd call"); } } diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/TextAreaTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/TextAreaTest.java index 4e215f145a9..8ff225ffb6a 100644 --- a/maven/core-unittests/src/test/java/com/codename1/ui/TextAreaTest.java +++ b/maven/core-unittests/src/test/java/com/codename1/ui/TextAreaTest.java @@ -1,26 +1,3 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - package com.codename1.ui; import com.codename1.junit.FormTest; @@ -149,52 +126,6 @@ void testEditableFlag() { assertTrue(textArea.isEditable()); } - @FormTest - void testLightweightEditingIsOptInAndUsesTextInputClient() { - TextField field = new TextField("ab"); - field.setMaxSize(5); - assertFalse(field.isLightweightEditingEnabled()); - field.setLightweightEditingEnabled(true); - assertTrue(field.isLightweightEditingEnabled()); - - Form form = new Form(BoxLayout.y()); - form.add(field); - form.show(); - flushSerialCalls(); - field.startEditing(); - flushSerialCalls(); - - assertTrue(field.isEditing()); - assertTrue(form.getFocused() instanceof TextInputClient); - TextInputClient input = (TextInputClient) form.getFocused(); - assertFalse(input.getConfig().isMultiline()); - input.commitText("\ncdXYZ"); - assertEquals("ab cd", field.getText(), "single-line and max-size filtering should happen in the editor engine"); - - field.stopEditing(); - assertFalse(field.isEditing()); - assertEquals("ab cd", field.getText()); - } - - @FormTest - void testLightweightTextAreaAcceptsMultilineImeInput() { - TextArea area = new TextArea("one", 3, 20); - area.setMaxSize(20); - area.setLightweightEditingEnabled(true); - Form form = new Form(BoxLayout.y()); - form.add(area); - form.show(); - flushSerialCalls(); - - area.startEditing(); - flushSerialCalls(); - TextInputClient input = (TextInputClient) form.getFocused(); - assertTrue(input.getConfig().isMultiline()); - input.commitText("\ntwo"); - assertEquals("one\ntwo", area.getText()); - area.stopEditing(); - } - @FormTest void testGrowByContent() { TextArea textArea = new TextArea(); diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/BidiUtilTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/BidiUtilTest.java deleted file mode 100644 index 4e439b907be..00000000000 --- a/maven/core-unittests/src/test/java/com/codename1/ui/editor/BidiUtilTest.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; - -/// Unit tests for the Unicode Bidi Algorithm core used by the pure editor. Samples use unicode escapes -/// to keep the source ASCII only: Hebrew alef/bet/gimel = u05D0..u05D2, Arabic alef/beh/teh = -/// u0627/u0628/u062A, Arabic-Indic zero = u0660. -class BidiUtilTest { - - private static final String HEB = "\u05D0\u05D1\u05D2"; // aleph bet gimel (strong R) - private static final String ARABIC = "\u0627\u0628\u062A"; // alef beh teh (strong AL) - - @Test - void classifiesCommonTypes() { - assertEquals(BidiUtil.L, BidiUtil.typeOf('a')); - assertEquals(BidiUtil.L, BidiUtil.typeOf('Z')); - assertEquals(BidiUtil.EN, BidiUtil.typeOf('5')); - assertEquals(BidiUtil.R, BidiUtil.typeOf('\u05D0')); - assertEquals(BidiUtil.AL, BidiUtil.typeOf('\u0627')); - assertEquals(BidiUtil.AN, BidiUtil.typeOf('\u0660')); - assertEquals(BidiUtil.WS, BidiUtil.typeOf(' ')); - assertEquals(BidiUtil.ON, BidiUtil.typeOf('!')); - assertEquals(BidiUtil.L, BidiUtil.typeOf('\u4E2D')); // CJK -> strong L - } - - @Test - void autoBaseDirectionFromFirstStrong() { - assertFalse(BidiUtil.autoBaseRtl("hello")); - assertFalse(BidiUtil.autoBaseRtl("123 abc")); // digits are not strong; first strong is 'a' - assertTrue(BidiUtil.autoBaseRtl(HEB)); - assertTrue(BidiUtil.autoBaseRtl("123 " + HEB)); // first strong is Hebrew - assertFalse(BidiUtil.autoBaseRtl("abc " + HEB)); // first strong is Latin - assertTrue(BidiUtil.autoBaseRtl(ARABIC + " abc")); // first strong is Arabic - } - - @Test - void pureLtrIsIdentityOrder() { - byte[] levels = BidiUtil.resolveLevels("hello", false); - for (byte b : levels) { - assertEquals(0, b); - } - int[] vis = BidiUtil.reorderVisual(levels); - assertArrayEquals(new int[]{0, 1, 2, 3, 4}, vis); - assertTrue(BidiUtil.isTrivialLtr("hello world 123", false)); - } - - @Test - void pureRtlIsFullyReversed() { - byte[] levels = BidiUtil.resolveLevels(HEB, true); - for (byte b : levels) { - assertEquals(1, b); - } - int[] vis = BidiUtil.reorderVisual(levels); - assertArrayEquals(new int[]{2, 1, 0}, vis); - assertFalse(BidiUtil.isTrivialLtr(HEB, true)); - assertFalse(BidiUtil.isTrivialLtr(HEB, false)); // strong R makes even an LTR base non-trivial - } - - @Test - void embeddedRtlRunReversesWithinLtrParagraph() { - // logical: a b c _ H0 H1 _ x y z (H = Hebrew), LTR base - String s = "abc \u05D0\u05D1 xyz"; - byte[] levels = BidiUtil.resolveLevels(s, false); - int[] vis = BidiUtil.reorderVisual(levels); - // only the two Hebrew letters (indices 4,5) swap; everything else stays put - assertArrayEquals(new int[]{0, 1, 2, 3, 5, 4, 6, 7, 8, 9}, vis); - } - - @Test - void numberRunStaysLtrInsideRtlParagraph() { - // logical: H0 H1 _ '1' '2' with RTL base. The number is an LTR island inside RTL text, so - // visually (left to right) the number reads "12" on the left, then space, then the reversed Hebrew. - String s = "\u05D0\u05D1 12"; - byte[] levels = BidiUtil.resolveLevels(s, true); - assertEquals(1, levels[0]); // Hebrew - assertEquals(1, levels[1]); - assertEquals(2, levels[3]); // '1' European number -> level base+1 = 2 inside RTL - assertEquals(2, levels[4]); // '2' - int[] vis = BidiUtil.reorderVisual(levels); - assertArrayEquals(new int[]{3, 4, 2, 1, 0}, vis); - } - - @Test - void arabicNumberFollowsArabicLetters() { - // W2: European digits after an Arabic letter become Arabic numbers (still an LTR-ordered run). - String s = ARABIC + "12"; - byte[] levels = BidiUtil.resolveLevels(s, true); - // Arabic letters resolve to R (level 1); the digits are AN -> level 2 - assertEquals(1, levels[0]); - assertEquals(2, levels[levels.length - 1]); - } - - @Test - void reorderIsAStablePermutation() { - String s = "abc " + HEB + " 42 " + ARABIC; - for (boolean rtl : new boolean[]{false, true}) { - int[] vis = BidiUtil.reorderVisual(BidiUtil.resolveLevels(s, rtl)); - assertEquals(s.length(), vis.length); - boolean[] seen = new boolean[s.length()]; - for (int v : vis) { - assertTrue(v >= 0 && v < s.length()); - assertFalse(seen[v], "index " + v + " appeared twice"); - seen[v] = true; - } - } - } - - @Test - void emptyLineIsHandled() { - assertEquals(0, BidiUtil.resolveLevels("", false).length); - assertEquals(0, BidiUtil.reorderVisual(new byte[0]).length); - assertTrue(BidiUtil.isTrivialLtr("", false)); - } -} diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorDocumentTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorDocumentTest.java deleted file mode 100644 index a81e98d52c3..00000000000 --- a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorDocumentTest.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; - -/// Pure (no UI) unit tests for the editor document model: text mutation, the cached line index, offset -/// conversions and newline normalization. -class EditorDocumentTest { - private EditorDocument doc; - - @BeforeEach - void setUp() { - doc = new EditorDocument(); - } - - @Test - void emptyDocument() { - assertEquals(0, doc.length()); - assertEquals("", doc.getText()); - assertEquals(1, doc.getLineCount()); - assertEquals(0, doc.lineOfOffset(0)); - } - - @Test - void insertAndDelete() { - doc.insert(0, "hello world"); - assertEquals("hello world", doc.getText()); - assertEquals(11, doc.length()); - doc.delete(5, 11); - assertEquals("hello", doc.getText()); - doc.insert(0, ">> "); - assertEquals(">> hello", doc.getText()); - } - - @Test - void substringAndCharAt() { - doc.setText("abcdef"); - assertEquals("cde", doc.substring(2, 5)); - assertEquals('a', doc.charAt(0)); - assertEquals('f', doc.charAt(5)); - } - - @Test - void clampKeepsOffsetsInRange() { - doc.setText("abc"); - assertEquals(0, doc.clamp(-5)); - assertEquals(3, doc.clamp(99)); - assertEquals(2, doc.clamp(2)); - } - - @Test - void lineIndexForMultipleLines() { - doc.setText("line1\nline2\nline3"); - assertEquals(3, doc.getLineCount()); - assertEquals(0, doc.getLineStart(0)); - assertEquals(6, doc.getLineStart(1)); - assertEquals(12, doc.getLineStart(2)); - assertEquals("line2", doc.getLineText(1)); - assertEquals(5, doc.getLineEnd(0)); - } - - @Test - void offsetToLineAndColumn() { - doc.setText("ab\ncde\nf"); - assertEquals(0, doc.lineOfOffset(0)); - assertEquals(0, doc.lineOfOffset(2)); - assertEquals(1, doc.lineOfOffset(3)); - assertEquals(1, doc.lineOfOffset(6)); - assertEquals(2, doc.lineOfOffset(7)); - assertEquals(0, doc.columnOfOffset(3)); // start of line 1 - assertEquals(3, doc.columnOfOffset(6)); // end of "cde" - } - - @Test - void crlfAndCrNormalizeToLf() { - doc.setText("a\r\nb\rc\nd"); - assertEquals("a\nb\nc\nd", doc.getText()); - assertEquals(4, doc.getLineCount()); - } - - @Test - void lineIndexUpdatesAfterEdit() { - doc.setText("one\ntwo"); - assertEquals(2, doc.getLineCount()); - doc.insert(3, "\ninserted"); - assertEquals("one\ninserted\ntwo", doc.getText()); - assertEquals(3, doc.getLineCount()); - assertEquals("inserted", doc.getLineText(1)); - } -} diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorFirstLineTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorFirstLineTest.java deleted file mode 100644 index 3f1affd9fa6..00000000000 --- a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorFirstLineTest.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import com.codename1.junit.FormTest; -import com.codename1.junit.UITestBase; -import com.codename1.ui.Form; -import com.codename1.ui.TextInputClient; -import com.codename1.ui.TextInputConfig; -import com.codename1.ui.TextInputState; -import com.codename1.ui.Toolbar; -import com.codename1.ui.layouts.BorderLayout; -import static org.junit.jupiter.api.Assertions.*; - -/// Verifies the editor shows its FIRST line at the top after loading content (i.e. it is not scrolled so -/// the first line hides under the title bar). -class EditorFirstLineTest extends UITestBase { - - private static final class NoopHost implements EditorHost { - public boolean isTextInputSupported() { - return false; - } - - public Object startTextInput(TextInputClient client, TextInputConfig config) { - return null; - } - - public void updateTextInputState(Object handle, TextInputState state) { - } - - public void stopTextInput(Object handle) { - } - - public void editorChanged() { - } - - public void fireEditorEvent(String type, String value) { - } - } - - @FormTest - void codeViewShowsFirstLineAfterSetText() { - Toolbar.setGlobalToolbar(true); - CodeView v = new CodeView(new NoopHost()); - Form f = new Form("Code", new BorderLayout()); - f.setToolbar(new Toolbar()); - f.setTitle("Code"); - f.add(BorderLayout.CENTER, v); - f.show(); - for (int i = 0; i < 6; i++) { - flushSerialCalls(); - } - v.setText("line1\nline2\nline3\nline4\nline5"); - for (int i = 0; i < 6; i++) { - flushSerialCalls(); - } - assertEquals(0, v.firstVisibleLine(), - "the editor must show line 0 at the top (first line not scrolled under the title bar)"); - assertEquals(0, v.getVerticalScroll(), "vertical scroll must be 0 after loading content"); - } - - /// Reproduces the device/simulator ordering: the backend flushes the queued setText BEFORE the - /// component is laid out (height still 0). Previously scrollCaretVisible() ran against a negative - /// contentHeight() and pushed scrollY to ~one line, hiding the first line under the title bar. - @FormTest - void codeViewShowsFirstLineWhenTextSetBeforeLayout() { - Toolbar.setGlobalToolbar(true); - CodeView v = new CodeView(new NoopHost()); - // set text while the component is still unlaid-out (height == 0), as the backend does on device - assertEquals(0, v.getHeight(), "precondition: component not laid out yet"); - v.setText("line1\nline2\nline3\nline4\nline5"); - Form f = new Form("Code", new BorderLayout()); - f.setToolbar(new Toolbar()); - f.setTitle("Code"); - f.add(BorderLayout.CENTER, v); - f.show(); - for (int i = 0; i < 6; i++) { - flushSerialCalls(); - } - assertEquals(0, v.getVerticalScroll(), - "vertical scroll must be 0 even when text is set before the first layout"); - assertEquals(0, v.firstVisibleLine(), - "line 0 must be visible at the top even when text is set before the first layout"); - } -} diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorLayoutTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorLayoutTest.java deleted file mode 100644 index ba3b68405f0..00000000000 --- a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorLayoutTest.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import com.codename1.junit.FormTest; -import com.codename1.junit.UITestBase; -import com.codename1.ui.CodeEditor; -import com.codename1.ui.Form; -import com.codename1.ui.RichTextArea; -import com.codename1.ui.Toolbar; -import com.codename1.ui.layouts.BorderLayout; -import static org.junit.jupiter.api.Assertions.*; - -/// Verifies the editors lay out below the form title bar (Toolbar) rather than under it. -class EditorLayoutTest extends UITestBase { - - private void pump() { - for (int i = 0; i < 6; i++) { - flushSerialCalls(); - } - } - - @FormTest - void codeEditorSitsBelowToolbar() { - Toolbar.setGlobalToolbar(true); - Form f = new Form("Code", new BorderLayout()); - f.setToolbar(new Toolbar()); - f.setTitle("Code"); - CodeEditor ed = new CodeEditor("java", "line1\nline2\nline3"); - f.add(BorderLayout.CENTER, ed); - f.show(); - pump(); - Toolbar tb = f.getToolbar(); - assertNotNull(tb); - int toolbarBottom = tb.getAbsoluteY() + tb.getHeight(); - assertTrue(ed.getAbsoluteY() >= toolbarBottom, - "code editor top (" + ed.getAbsoluteY() + ") must be at or below the toolbar bottom (" - + toolbarBottom + ")"); - } - - @FormTest - void richTextAreaSitsBelowToolbar() { - Toolbar.setGlobalToolbar(true); - Form f = new Form("Rich", new BorderLayout()); - f.setToolbar(new Toolbar()); - f.setTitle("Rich"); - RichTextArea ed = new RichTextArea("

    hello

    "); - f.add(BorderLayout.CENTER, ed); - f.show(); - pump(); - Toolbar tb = f.getToolbar(); - int toolbarBottom = tb.getAbsoluteY() + tb.getHeight(); - assertTrue(ed.getAbsoluteY() >= toolbarBottom, - "rich text area top (" + ed.getAbsoluteY() + ") must be at or below the toolbar bottom (" - + toolbarBottom + ")"); - } -} diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorRegressionTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorRegressionTest.java deleted file mode 100644 index 75ce33b916f..00000000000 --- a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorRegressionTest.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import com.codename1.junit.FormTest; -import com.codename1.junit.UITestBase; -import com.codename1.testing.TestCodenameOneImplementation; -import com.codename1.ui.Form; -import com.codename1.ui.TextInputClient; -import com.codename1.ui.TextInputConfig; -import com.codename1.ui.TextInputState; -import com.codename1.ui.layouts.BorderLayout; -import static org.junit.jupiter.api.Assertions.*; - -/// Regression coverage for normalized offsets, rich-model round trips, undo/redo and touch scrolling. -class EditorRegressionTest extends UITestBase { - private static class Host implements EditorHost { - int starts; - int stops; - - public boolean isTextInputSupported() { return true; } - public Object startTextInput(TextInputClient client, TextInputConfig config) { - starts++; - return this; - } - public void updateTextInputState(Object handle, TextInputState state) { } - public void stopTextInput(Object handle) { stops++; } - public void editorChanged() { } - public void fireEditorEvent(String type, String value) { } - } - - private static final class ExposedView extends EditorView { - ExposedView(EditorHost host) { super(host, true); } - int verticalScroll() { return getVerticalScroll(); } - int maximumVerticalScroll() { return getMaximumVerticalScroll(); } - } - - private T show(T view) { - Form form = new Form("Editor", new BorderLayout()); - form.add(BorderLayout.CENTER, view); - form.show(); - for (int i = 0; i < 4; i++) { - flushSerialCalls(); - } - return view; - } - - @FormTest - void replacementNormalizesBeforeUpdatingCaretAndHistory() { - EditorView view = show(new EditorView(new Host(), true)); - view.commitText("a\r\nb\rc"); - assertEquals("a\nb\nc", view.getText()); - assertEquals(view.getText().length(), view.getCaretOffset()); - view.onKeyCommand(TextInputClient.KEY_BACKSPACE, 0); - assertEquals("a\nb\n", view.getText()); - view.performUndo(); - assertEquals("a\nb\nc", view.getText()); - - RichView rich = new RichView(new Host()); - rich.commitText("a\r\nb"); - assertEquals(rich.getDocument().length(), rich.getInlineStyles().length()); - assertEquals(rich.getDocument().length(), rich.getLinkRuns().size()); - assertEquals(rich.getDocument().length(), rich.getImageSources().size()); - } - - @FormTest - void richHtmlFragmentsLinksAndImagesRoundTrip() { - RichPureEditor editor = new RichPureEditor(new Host(), "richtext"); - RichView view = (RichView) editor.view(); - show(view); - editor.cmd("setHtml", "

    start

    "); - view.setSelectionRange(view.getText().length(), view.getText().length()); - editor.cmd("insertHtml", "bold
    link"); - editor.cmd("insertImage", "gen:2x3:ff0000"); - String html = editor.query("getHtml", null); - assertTrue(html.contains("bold"), html); - assertTrue(html.contains("href=\"https://example.com/a?x=1&y=2\""), html); - assertTrue(html.contains(""), html); - } - - @FormTest - void createLinkPersistsItsTarget() { - RichPureEditor editor = new RichPureEditor(new Host(), "richtext"); - RichView view = (RichView) editor.view(); - show(view); - editor.cmd("setHtml", "

    Codename One

    "); - view.setSelectionRange(0, 8); - editor.cmd("createLink", "https://www.codenameone.com/"); - String html = editor.query("getHtml", null); - assertTrue(html.contains("href=\"https://www.codenameone.com/\""), html); - } - - @FormTest - void undoRedoRestoreRichFormattingAndParagraphs() { - RichPureEditor editor = new RichPureEditor(new Host(), "richtext"); - RichView view = (RichView) editor.view(); - show(view); - editor.cmd("setHtml", "

    Head

    Body

    "); - String original = editor.query("getHtml", null); - assertTrue(original.contains("

    Head

    "), original); - view.setSelectionRange(0, 5); // formatted text plus the paragraph separator - view.commitText(""); - view.performUndo(); - assertEquals(original, editor.query("getHtml", null)); - view.performRedo(); - assertFalse(editor.query("getHtml", null).contains("Head")); - } - - @FormTest - void touchDragScrollsWithoutMovingCaret() { - TestCodenameOneImplementation impl = TestCodenameOneImplementation.getInstance(); - boolean wasDesktop = impl.isDesktop(); - impl.setDesktop(false); - try { - ExposedView view = show(new ExposedView(new Host())); - StringBuilder text = new StringBuilder(); - for (int i = 0; i < 240; i++) { - text.append("line ").append(i).append('\n'); - } - view.setText(text.toString()); - view.setSelectionRange(0, 0); - assertFalse(com.codename1.ui.Display.getInstance().isDesktop()); - assertTrue(view.maximumVerticalScroll() > 0, - "precondition: long document must exceed viewport; height=" + view.getHeight() - + ", preferred=" + view.getPreferredH()); - int x = view.getAbsoluteX() + 20; - int y = view.getAbsoluteY() + Math.max(60, view.getHeight() - 40); - view.pointerPressed(x, y); - view.pointerDragged(x, y - 120); - view.pointerReleased(x, y - 120); - assertTrue(view.verticalScroll() > 0, - "vertical swipe must scroll the document; max=" + view.maximumVerticalScroll()); - assertEquals(0, view.getCaretOffset(), "scroll gesture must restore the pre-press caret"); - } finally { - impl.setDesktop(wasDesktop); - } - } - - @FormTest - void blurStopsTextInputAndClearsFocus() { - Host host = new Host(); - EditorView view = show(new EditorView(host, true)); - view.requestFocus(); - assertTrue(host.starts > 0); - view.blur(); - assertNull(view.getComponentForm().getFocused()); - assertTrue(host.stops > 0); - } -} diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewBidiTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewBidiTest.java deleted file mode 100644 index 60b4f51bc58..00000000000 --- a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewBidiTest.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import com.codename1.junit.FormTest; -import com.codename1.junit.UITestBase; -import com.codename1.ui.Font; -import com.codename1.ui.Form; -import com.codename1.ui.TextInputClient; -import com.codename1.ui.TextInputConfig; -import com.codename1.ui.TextInputState; -import com.codename1.ui.layouts.BorderLayout; -import static org.junit.jupiter.api.Assertions.*; - -/// Headless integration tests for the bidi geometry wiring in {@link EditorView} (same package, so the -/// protected {@code measureColumnX}/{@code columnAtX}/{@code lineVisualSegments} hooks are reachable). -/// The Unicode Bidi Algorithm itself is covered by {@link BidiUtilTest}; this verifies the editor maps -/// logical columns to visual x and back correctly for right-to-left and mixed lines. -class EditorViewBidiTest extends UITestBase { - - private static final String HEB = "\u05D0\u05D1\u05D2\u05D3"; // 4 Hebrew letters (strong R) - - private static final class NoopHost implements EditorHost { - public boolean isTextInputSupported() { - return false; - } - - public Object startTextInput(TextInputClient client, TextInputConfig config) { - return null; - } - - public void updateTextInputState(Object handle, TextInputState state) { - } - - public void stopTextInput(Object handle) { - } - - public void editorChanged() { - } - - public void fireEditorEvent(String type, String value) { - } - } - - private EditorView show(String text) { - EditorView v = new EditorView(new NoopHost(), true); - Form f = new Form("ev", new BorderLayout()); - f.add(BorderLayout.CENTER, v); - f.show(); - for (int i = 0; i < 4; i++) { - flushSerialCalls(); - } - v.setText(text); - return v; - } - - private Font font(EditorView v) { - return v.getUnselectedStyle().getFont(); - } - - @FormTest - void ltrCaretXIncreasesWithColumn() { - EditorView v = show("abcd"); - Font f = font(v); - assertTrue(f.stringWidth("abcd") > 0, "test font must report widths"); - int prev = -1; - for (int c = 0; c <= 4; c++) { - int x = v.measureColumnX(0, "abcd", c, f); - assertTrue(x >= prev, "LTR caret x must be non-decreasing (col " + c + ")"); - prev = x; - } - } - - @FormTest - void rtlCaretXDecreasesWithColumn() { - EditorView v = show(HEB); - Font f = font(v); - // pure RTL line: logical column 0 is the RIGHTMOST caret, the end is the LEFTMOST - int x0 = v.measureColumnX(0, HEB, 0, f); - int xEnd = v.measureColumnX(0, HEB, HEB.length(), f); - assertTrue(x0 > xEnd, "in RTL the start caret is to the right of the end caret"); - int prev = Integer.MAX_VALUE; - for (int c = 0; c <= HEB.length(); c++) { - int x = v.measureColumnX(0, HEB, c, f); - assertTrue(x <= prev, "RTL caret x must be non-increasing (col " + c + ")"); - prev = x; - } - } - - @FormTest - void caretRoundTripsThroughHitTestForUnidirectionalText() { - // In purely LTR or purely RTL text every logical column has a distinct visual x, so hit testing - // the caret x returns the exact same column. - for (String text : new String[]{"abcd", HEB}) { - EditorView v = show(text); - Font f = font(v); - for (int c = 0; c <= text.length(); c++) { - int x = v.measureColumnX(0, text, c, f); - int back = v.columnAtX(0, text, x, f); - assertEquals(c, back, "hit test of caret x should return the same column for '" - + text + "' col " + c); - } - } - } - - @FormTest - void hitTestIsVisuallyStableForMixedText() { - // At a bidi direction boundary two logical columns can share one visual x, so hit testing may - // return the equivalent column; the correct invariant is that the visual x is preserved. - String text = "ab " + HEB + " cd"; - EditorView v = show(text); - Font f = font(v); - for (int c = 0; c <= text.length(); c++) { - int x = v.measureColumnX(0, text, c, f); - int back = v.columnAtX(0, text, x, f); - assertEquals(x, v.measureColumnX(0, text, back, f), - "hit testing caret x must map to a column at the same visual x (col " + c + ")"); - } - } - - @FormTest - void selectionSegmentsCoverRangeWidth() { - EditorView v = show(HEB); - Font f = font(v); - int[] segs = v.lineVisualSegments(0, HEB, 0, HEB.length(), f); - assertTrue(segs.length >= 2, "a non-empty selection yields at least one segment"); - int total = 0; - for (int i = 1; i < segs.length; i += 2) { - total += segs[i]; - } - // the segments of a full-line selection add up to the whole line width - assertEquals(f.substringWidth(HEB, 0, HEB.length()), total, 2); - } - - @FormTest - void mixedLineProducesMultipleSelectionSegments() { - String s = "ab " + HEB + " cd"; // LTR ... RTL ... LTR -> visually disjoint when selecting across - EditorView v = show(s); - Font f = font(v); - // select the whole line: because the RTL run reverses, the logical range still tiles the line, - // so total segment width equals the full line width - int[] segs = v.lineVisualSegments(0, s, 0, s.length(), f); - int total = 0; - for (int i = 1; i < segs.length; i += 2) { - total += segs[i]; - } - assertEquals(f.substringWidth(s, 0, s.length()), total, 3); - } -} diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewInputTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewInputTest.java deleted file mode 100644 index e80983d958f..00000000000 --- a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewInputTest.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import com.codename1.junit.FormTest; -import com.codename1.junit.UITestBase; -import com.codename1.ui.Form; -import com.codename1.ui.TextInputClient; -import com.codename1.ui.TextInputConfig; -import com.codename1.ui.TextInputState; -import com.codename1.ui.layouts.BorderLayout; -import static org.junit.jupiter.api.Assertions.*; - -/// Headless tests for the text-input path of the pure editor: IME/CJK marked-text composition (the -/// counterpart to the platform {@code setMarkedText}/{@code setComposingText}) and text commit. -class EditorViewInputTest extends UITestBase { - - // Japanese: NI HON (start with kana, convert to kanji); Chinese: ZHONG WEN - private static final String KANA = "\u306B\u307B\u3093"; - private static final String KANJI = "\u65E5\u672C"; - - private static final class NoopHost implements EditorHost { - public boolean isTextInputSupported() { - return false; - } - - public Object startTextInput(TextInputClient client, TextInputConfig config) { - return null; - } - - public void updateTextInputState(Object handle, TextInputState state) { - } - - public void stopTextInput(Object handle) { - } - - public void editorChanged() { - } - - public void fireEditorEvent(String type, String value) { - } - } - - private EditorView show(String text) { - EditorView v = new EditorView(new NoopHost(), true); - Form f = new Form("ev", new BorderLayout()); - f.add(BorderLayout.CENTER, v); - f.show(); - for (int i = 0; i < 4; i++) { - flushSerialCalls(); - } - v.setText(text); - v.setSelectionRange(text.length(), text.length()); - return v; - } - - @FormTest - void composingTextInsertsAtCaret() { - EditorView v = show("ab"); - v.setComposingText(KANA, KANA.length()); - assertEquals("ab" + KANA, v.getText()); - // the marked (composing) range is reported to the platform for candidate placement - TextInputState st = v.getEditingState(); - assertEquals(2, st.getComposingStart()); - assertEquals(2 + KANA.length(), st.getComposingEnd()); - } - - @FormTest - void composingUpdatesInPlace() { - EditorView v = show("ab"); - v.setComposingText(KANA, KANA.length()); - assertEquals("ab" + KANA, v.getText()); - // the IME converts the kana to kanji: the composing region is replaced, not appended - v.setComposingText(KANJI, KANJI.length()); - assertEquals("ab" + KANJI, v.getText()); - } - - @FormTest - void finishComposingKeepsTextAndClearsMarkedRange() { - EditorView v = show("ab"); - v.setComposingText(KANJI, KANJI.length()); - v.finishComposing(); - assertEquals("ab" + KANJI, v.getText()); - TextInputState st = v.getEditingState(); - assertTrue(st.getComposingStart() < 0, "marked range cleared after finishComposing"); - // subsequent input is a normal insert at the caret, not part of a composition - v.commitText("!"); - assertEquals("ab" + KANJI + "!", v.getText()); - } - - @FormTest - void emptyComposingTextRemovesMarkedText() { - EditorView v = show("ab"); - v.setComposingText(KANA, KANA.length()); - assertEquals("ab" + KANA, v.getText()); - // deleting during composition (empty marked text) removes the composed characters - v.setComposingText("", 0); - assertEquals("ab", v.getText()); - } - - @FormTest - void commitTextReplacesActiveComposition() { - EditorView v = show("ab"); - v.setComposingText(KANA, KANA.length()); - v.commitText(KANJI); - assertEquals("ab" + KANJI, v.getText()); - } -} diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/HtmlImporterTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/HtmlImporterTest.java deleted file mode 100644 index ca0f6ef5889..00000000000 --- a/maven/core-unittests/src/test/java/com/codename1/ui/editor/HtmlImporterTest.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; - -/// Pure tests for the HTML importer, focused on entity decoding (named, numeric and hex). -class HtmlImporterTest { - - private static String text(String html) { - return HtmlImporter.parse(html).getText(); - } - - @Test - void decodesBasicEntities() { - assertEquals("a & b < c > d \" e ' f", text("

    a & b < c > d " e ' f

    ")); - } - - @Test - void decodesNamedTypographyEntities() { - // mdash, ndash, hellip, curly quotes - assertEquals("a \u2014 b", text("

    a — b

    ")); - assertEquals("a \u2013 b", text("

    a – b

    ")); - assertEquals("go\u2026", text("

    go…

    ")); - assertEquals("\u201Chi\u201D \u2018yo\u2019", text("

    “hi” ‘yo’

    ")); - } - - @Test - void decodesSymbolEntities() { - assertEquals("\u00A9 \u00AE \u2122", text("

    © ® ™

    ")); - assertEquals("5 \u00D7 3 = 15", text("

    5 × 3 = 15

    ")); - assertEquals("\u20AC100 \u00A350", text("

    €100 £50

    ")); - } - - @Test - void decodesNumericEntities() { - assertEquals("A B", text("

    A B

    ")); // decimal - assertEquals("A\u2014B", text("

    A—B

    ")); // hex mdash between letters - } - - @Test - void leavesUnknownEntitiesUntouched() { - // an unknown entity is passed through verbatim rather than dropped - assertTrue(text("

    a &bogus; b

    ").contains("&bogus;")); - } - - @Test - void retainsModernDataAttributesInFragmentMode() { - HtmlImporter.Result result = HtmlImporter.parse("

    indented

    "); - assertEquals(3, result.getBlocks().get(0).indent); - } -} diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/RichTextImporterTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/RichTextImporterTest.java deleted file mode 100644 index 457bc1ad1e8..00000000000 --- a/maven/core-unittests/src/test/java/com/codename1/ui/editor/RichTextImporterTest.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import com.codename1.ui.RichTextFormat; -import com.codename1.ui.RichTextClipboardData; -import com.codename1.ui.TextInputClient; -import com.codename1.ui.TextInputConfig; -import com.codename1.ui.TextInputState; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; - -class RichTextImporterTest { - - private static final class NoopHost implements EditorHost { - public boolean isTextInputSupported() { return false; } - public Object startTextInput(TextInputClient client, TextInputConfig config) { return null; } - public void updateTextInputState(Object handle, TextInputState state) { } - public void stopTextInput(Object handle) { } - public void editorChanged() { } - public void fireEditorEvent(String type, String value) { } - } - - private static final class PasteView extends RichView { - PasteView() { super(new NoopHost()); } - void paste(Object data) { pasteClipboardData(data); } - } - - private static HtmlImporter.Result parse(String value, RichTextFormat format) { - return HtmlImporter.parse(RichTextImporter.toHtml(value, format)); - } - - @Test - void markdownPreservesBlocksInlineStylesLinksAndImages() { - HtmlImporter.Result result = parse("# Title\n\nA **bold** [link](https://example.com)\n\n- one\n- two\n\n![alt](pic.png)", - RichTextFormat.MARKDOWN); - assertTrue(result.getText().contains("Title")); - assertEquals(RichBlocks.H1, result.getBlocks().get(0).type); - int bold = result.getText().indexOf("bold"); - assertTrue(result.getStyles().get(bold).isBold()); - int link = result.getText().indexOf("link"); - assertEquals("https://example.com", result.getLinks().get(link)); - assertTrue(result.getBlocks().get(2).listType == RichBlocks.LIST_UNORDERED - || result.getBlocks().get(1).listType == RichBlocks.LIST_UNORDERED); - assertTrue(result.getImageSources().contains("pic.png")); - } - - @Test - void asciidocPreservesHeadingInlineStylesLinkAndList() { - HtmlImporter.Result result = parse("= Heading\n\nA *bold* https://example.com[link]\n\n. first\n. second", - RichTextFormat.ASCIIDOC); - assertEquals(RichBlocks.H1, result.getBlocks().get(0).type); - assertTrue(result.getStyles().get(result.getText().indexOf("bold")).isBold()); - assertEquals("https://example.com", result.getLinks().get(result.getText().indexOf("link"))); - boolean ordered = false; - for (RichBlocks.BlockAttr block : result.getBlocks()) { - ordered |= block.listType == RichBlocks.LIST_ORDERED; - } - assertTrue(ordered); - } - - @Test - void rtfPreservesStylesParagraphsUnicodeAndSkipsMetadata() { - String rtf = "{\\rtf1\\ansi{\\fonttbl{\\f0 Arial;}}Plain {\\b bold} {\\i italic} " - + "{\\ul under} {\\strike gone}\\par Unicode \\u8212? end}"; - HtmlImporter.Result result = parse(rtf, RichTextFormat.RTF); - assertFalse(result.getText().contains("Arial")); - assertTrue(result.getText().contains("Plain bold italic under gone")); - assertTrue(result.getText().contains("Unicode \u2014 end")); - assertTrue(result.getStyles().get(result.getText().indexOf("bold")).isBold()); - assertTrue(result.getStyles().get(result.getText().indexOf("italic")).isItalic()); - assertTrue(result.getStyles().get(result.getText().indexOf("under")).isUnderline()); - assertTrue(result.getStyles().get(result.getText().indexOf("gone")).isStrike()); - assertTrue(result.getBlocks().size() >= 2); - } - - @Test - void plainTextIsEscapedBeforeHtmlImport() { - HtmlImporter.Result result = parse(" & value\nnext", RichTextFormat.PLAIN_TEXT); - assertEquals(" & value\nnext", result.getText()); - } - - @Test - void richViewPastePrefersRichRepresentationAndRecognizesRtf() { - PasteView view = new PasteView(); - view.paste(new RichTextClipboardData("plain").setHtml("rich")); - assertEquals("rich", view.getText()); - assertTrue(view.getInlineStyles().styleAt(0).isBold()); - - view.setText(""); - view.paste("{\\rtf1\\ansi {\\i RTF}}"); - assertEquals("RTF", view.getText().trim()); - assertTrue(view.getInlineStyles().styleAt(view.getText().indexOf("RTF")).isItalic()); - } -} diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/RichViewBidiTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/RichViewBidiTest.java deleted file mode 100644 index 2ee8e70e199..00000000000 --- a/maven/core-unittests/src/test/java/com/codename1/ui/editor/RichViewBidiTest.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codename1.ui.editor; - -import com.codename1.junit.FormTest; -import com.codename1.junit.UITestBase; -import com.codename1.ui.Font; -import com.codename1.ui.Form; -import com.codename1.ui.TextInputClient; -import com.codename1.ui.TextInputConfig; -import com.codename1.ui.TextInputState; -import com.codename1.ui.layouts.BorderLayout; -import static org.junit.jupiter.api.Assertions.*; - -/// Bidi geometry tests for the rich text view, which measures per styled run (variable fonts) and must -/// still reorder mixed LTR/RTL content into the correct visual order via its atom layout. -class RichViewBidiTest extends UITestBase { - - private static final String HEB = "\u05D0\u05D1\u05D2\u05D3"; - - private static final class NoopHost implements EditorHost { - public boolean isTextInputSupported() { - return false; - } - - public Object startTextInput(TextInputClient client, TextInputConfig config) { - return null; - } - - public void updateTextInputState(Object handle, TextInputState state) { - } - - public void stopTextInput(Object handle) { - } - - public void editorChanged() { - } - - public void fireEditorEvent(String type, String value) { - } - } - - private RichView show(String text) { - RichView v = new RichView(new NoopHost()); - Form f = new Form("rv", new BorderLayout()); - f.add(BorderLayout.CENTER, v); - f.show(); - for (int i = 0; i < 4; i++) { - flushSerialCalls(); - } - v.setText(text); - return v; - } - - private Font font(RichView v) { - return v.getUnselectedStyle().getFont(); - } - - @FormTest - void rtlCaretXDecreasesWithColumn() { - RichView v = show(HEB); - Font f = font(v); - assertTrue(f.stringWidth(HEB) > 0); - assertTrue(v.measureColumnX(0, HEB, 0, f) > v.measureColumnX(0, HEB, HEB.length(), f)); - } - - @FormTest - void ltrCaretRoundTrips() { - RichView v = show("abcd"); - Font f = font(v); - for (int c = 0; c <= 4; c++) { - assertEquals(c, v.columnAtX(0, "abcd", v.measureColumnX(0, "abcd", c, f), f)); - } - } - - @FormTest - void rtlCaretRoundTrips() { - RichView v = show(HEB); - Font f = font(v); - for (int c = 0; c <= HEB.length(); c++) { - assertEquals(c, v.columnAtX(0, HEB, v.measureColumnX(0, HEB, c, f), f)); - } - } - - @FormTest - void mixedLineHitTestIsVisuallyStable() { - String s = "ab " + HEB + " cd"; - RichView v = show(s); - Font f = font(v); - for (int c = 0; c <= s.length(); c++) { - int x = v.measureColumnX(0, s, c, f); - int back = v.columnAtX(0, s, x, f); - assertEquals(x, v.measureColumnX(0, s, back, f), "col " + c); - } - } - - @FormTest - void selectionSegmentsTileTheLine() { - String s = "ab " + HEB + " cd"; - RichView v = show(s); - Font f = font(v); - int[] segs = v.lineVisualSegments(0, s, 0, s.length(), f); - int total = 0; - for (int i = 1; i < segs.length; i += 2) { - total += segs[i]; - } - assertEquals(f.substringWidth(s, 0, s.length()), total, 3); - } -} diff --git a/scripts/android/screenshots/CodeEditor.png b/scripts/android/screenshots/CodeEditor.png index ac8f78faee793e3579c9b3b5a23ca2b3e4e0aed5..8708b0e41b171b54878db67bfd8bc2bbedfa0b6a 100644 GIT binary patch literal 20586 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�l8g$oQNg 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
    VR{e#&oAzK(ihMdBO#}P2deE=dZo_%e( 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 I&ZEfx0R22bbN~PV diff --git a/scripts/android/screenshots/CodeEditor.tolerance b/scripts/android/screenshots/CodeEditor.tolerance index e435316ce73..b497bdd049c 100644 --- a/scripts/android/screenshots/CodeEditor.tolerance +++ b/scripts/android/screenshots/CodeEditor.tolerance @@ -1,4 +1,5 @@ -# Pure Codename One text editor render; absorb minor glyph anti-aliasing -# variance between CI runs / GPU backends. +# The editor renders inside the platform native web widget; absorb minor +# web-render anti-aliasing variance between CI runs (blank/black peer captures +# are well within this). maxChannelDelta=16 maxMismatchPercent=2.0 diff --git a/scripts/android/screenshots/PureEditors.png b/scripts/android/screenshots/PureEditors.png deleted file mode 100644 index fd90a2a7d5f8254446493d4b3e55c1d809dbf30b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23132 zcmeFZ1yI$|_b++?1qB3=QYi%iX{8&LZUO1;ICS?x5owTaknZm8F6r);=FoNS=J$Uy zZ|2V2`)2OUdvov1bLNbK=X}qOwb%Nr&-$$G|5Zlx8TxB<2n6y>TuewF0zvu&fgpQ5 zK?T3r|DEa${z9^o7ySY$8Y12SKRmMgBL3|O_~ZV>zz+g>0}&Vc{LMLWZ^6m_o8ny8 zini<9XYx;ee$Djul8{3Z#(5;1ArVI97l6N^c-ygv|0v^$Qe>8weTFyrpVN>}PmsQd zAHL;--{CO77;Vq!sV%P5=;v}6#;o0n^f=d#ij6h-BGlnk&|i;4PQD?G^q%}zCIkyg)k-mH+`Fh3&$tgkkeE9&7mZWPsLh| zM@L8Rw+Q?r8S^_jgvNr+TMU@P;^I_~WC{vOswP{Fbjt)JBYJ;EMJf7M>FVn%tlm*m zQm$-lJZ@QO_svx<)+#a_N)Z^IDK|Eqt75>y!lGP^5fip<7xhxelG1Ja`P7GTYh~s0 z-SwI2Oc^B!k7I^p3}a1A&HVO(6|L|cJ;n<>yq}?=p+0Jn3g+hYB;59I$jN`$taTk9 z)E`Foc?$Ifbjo~BN=kzB8TJhfynFZVC!gDSiSaOL)72)??cH4*vmrV*|K*>|cx#1R ztwvY>NxGddeYtm(lsGszNS~aYotyd}qoRgKM~j^Oo3OF7qpLjkn|~kpc-adHC6?Vn ztqHCmFYgx+pf^>dIgr2+S_z#R&6Xuw^t`dq@;FnJWLwKR>cEx7yHt%P)YjIXEKqGf zUhCdjsCR1W4}Q%S0RB;KyCHGVjJRhuPZc|koblm8Lqp3`%UmaovFP@S#R#*hscB;YFN{cu(TS>{u+ZgtC)?#}BL?ZEfG4lNzyHPv z9?r)S+eWsVQAwti?d=}0$}^?k1F3?(+oPF*E?P!L zR8OBig$OtOP7Vvx>`P~|i&FUkI*$Si{2MH1)qQI1t6c=qU#({XY zK=BBwxI=SfVoqx>)Mu~PRX8Xpyf^w|SWHLXVUci0LYw(qPnXZ8w6lc+34E$bd4)to zm~B>tnh^JH@K6bM7!1}GOw_#=Dxj5Nadxa}~0g&Bk+hs}thldcnrW@_TUeI2{bIHCry!1rc+F%cYCpPkZELEZM24y#@

    3w!aq*Rn7;U4KHXq15 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 W=?dwT1^0tE0M#+RQ*qn*@&5q(kZ6hk literal 23963 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 I)a8Hu8$oVRi2wiq diff --git a/scripts/android/screenshots/RichTextArea.tolerance b/scripts/android/screenshots/RichTextArea.tolerance index e435316ce73..b497bdd049c 100644 --- a/scripts/android/screenshots/RichTextArea.tolerance +++ b/scripts/android/screenshots/RichTextArea.tolerance @@ -1,4 +1,5 @@ -# Pure Codename One text editor render; absorb minor glyph anti-aliasing -# variance between CI runs / GPU backends. +# The editor renders inside the platform native web widget; absorb minor +# web-render anti-aliasing variance between CI runs (blank/black peer captures +# are well within this). maxChannelDelta=16 maxMismatchPercent=2.0 diff --git a/scripts/cn1playground/common/pom.xml b/scripts/cn1playground/common/pom.xml index d4ca37ab375..b9695d8580d 100644 --- a/scripts/cn1playground/common/pom.xml +++ b/scripts/cn1playground/common/pom.xml @@ -329,7 +329,6 @@ ${project.parent.basedir} ${cn1.accessRegistry.useLocalSources} - ${settings.localRepository}/com/codenameone ${project.parent.basedir}/tools/generate-cn1-access-registry.sh diff --git a/scripts/cn1playground/common/src/main/css/theme.css b/scripts/cn1playground/common/src/main/css/theme.css index 689737c12e8..37b44461de6 100644 --- a/scripts/cn1playground/common/src/main/css/theme.css +++ b/scripts/cn1playground/common/src/main/css/theme.css @@ -1,26 +1,3 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - /** Define Theme Constants here */ #Constants { defaultSourceDPIInt: "0"; @@ -641,8 +618,9 @@ PlaygroundPanelDark { border: none; } -/* The preview still uses BrowserComponent. Clear its default border so it - * sits flush against the surrounding panel. */ +/* The default "BrowserComponent" UIID ships a border that shows as a 1px + * outline around the Monaco editor / preview. Clear it so the editor sits + * flush against its panel. */ BrowserComponent { border: none; padding: 0; @@ -650,22 +628,6 @@ BrowserComponent { background: transparent; } -PlaygroundSourceEditor { - background: #FFFFFF; - color: #0F172A; - border: none; - margin: 0; - padding: 1.5mm; -} - -PlaygroundSourceEditorDark { - background: #0F172A; - color: #E2E8F0; - border: none; - margin: 0; - padding: 1.5mm; -} - /* ----- Split pane divider ----- */ PlaygroundSplitDivider { diff --git a/scripts/cn1playground/common/src/main/java/com/codenameone/playground/CN1Playground.java b/scripts/cn1playground/common/src/main/java/com/codenameone/playground/CN1Playground.java index 8ea42ca2541..3c6083f0c33 100644 --- a/scripts/cn1playground/common/src/main/java/com/codenameone/playground/CN1Playground.java +++ b/scripts/cn1playground/common/src/main/java/com/codenameone/playground/CN1Playground.java @@ -1,26 +1,3 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - package com.codenameone.playground; import com.codename1.components.SplitPane; @@ -74,8 +51,8 @@ public class CN1Playground extends Lifecycle { private final PlaygroundProjectExporter projectExporter = new PlaygroundProjectExporter(); private Form appForm; - private PlaygroundLightweightEditor editor; - private PlaygroundLightweightEditor cssEditor; + private PlaygroundBrowserEditor editor; + private PlaygroundBrowserEditor cssEditor; private PlaygroundInspector inspector; private PlaygroundTopBar topBar; private PlaygroundActivityBar activityBar; @@ -171,8 +148,8 @@ public void runApp() { toolbar.hideToolbar(); } - editor = new PlaygroundLightweightEditor(PlaygroundLightweightEditor.Mode.JAVA, currentScript, websiteDarkMode, this::handleSourceChanged); - cssEditor = new PlaygroundLightweightEditor(PlaygroundLightweightEditor.Mode.CSS, currentCss, websiteDarkMode, this::handleCssChanged); + editor = new PlaygroundBrowserEditor(PlaygroundBrowserEditor.Mode.JAVA, currentScript, websiteDarkMode, this::handleSourceChanged); + cssEditor = new PlaygroundBrowserEditor(PlaygroundBrowserEditor.Mode.CSS, currentCss, websiteDarkMode, this::handleCssChanged); inspector = new PlaygroundInspector(websiteDarkMode, (component, property, value) -> handlePropertyChanged(component)); topBar = new PlaygroundTopBar(currentMode, websiteDarkMode, new PlaygroundTopBar.Actions() { @@ -535,8 +512,8 @@ private void assembleMobileLayout() { // Put bottomNav at the FORM's SOUTH slot (not inside bodyContainer) so // the Form-level BorderLayout carves out its height BEFORE allocating // bodyContainer to the editor + tab stack. Keeps the nav height out - // of the tab content region so the source editor can't shrink or - // reflow it when it reports its own preferred size. + // of the tab content region, so the Monaco iframe peers can't shrink + // or reflow it when the editor reports its own preferred size. detach(bottomNav); appForm.add(BorderLayout.SOUTH, bottomNav); @@ -789,6 +766,7 @@ private void executeRunScript(Form form) { editor.setMarkers(diagnostics); editor.setInlineMessages(currentMessages); + editor.setUiidCompletions(PlaygroundCssSupport.collectVisibleUiids(previewColumn.getContentHost())); applyCurrentCss(); persistCurrentState(); }); @@ -1062,6 +1040,7 @@ private void applyCurrentCss() { currentCssMessages = messages; cssEditor.setMarkers(diagnostics); cssEditor.setInlineMessages(messages); + cssEditor.setUiidCompletions(PlaygroundCssSupport.collectVisibleUiids(previewColumn.getContentHost())); // Refresh only the user's preview content. Walking the bezel/screen/mask would // wipe programmatic borders that have no theme.css counterpart. if (previewColumn != null) { diff --git a/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundBrowserEditor.java b/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundBrowserEditor.java new file mode 100644 index 00000000000..5d972fe9dc0 --- /dev/null +++ b/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundBrowserEditor.java @@ -0,0 +1,422 @@ +package com.codenameone.playground; + +import com.codename1.io.CharArrayReader; +import com.codename1.io.JSONParser; +import com.codename1.ui.BrowserComponent; +import com.codename1.ui.CN; +import com.codename1.ui.Component; +import com.codename1.ui.Container; +import com.codename1.ui.TextArea; +import com.codename1.ui.plaf.Style; +import com.codename1.ui.events.ActionEvent; +import com.codename1.ui.layouts.BorderLayout; +import com.codename1.util.CallbackAdapter; + +import java.io.IOException; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +final class PlaygroundBrowserEditor { + interface Listener { + void onSourceChanged(String source, int version); + } + + enum Mode { + JAVA("java"), + CSS("css"); + + private final String monacoLanguage; + + Mode(String monacoLanguage) { + this.monacoLanguage = monacoLanguage; + } + + String monacoLanguage() { + return monacoLanguage; + } + } + + private final Component component; + private final Listener listener; + private final String metadataJson; + private final Mode mode; + private final BrowserComponent browser; + private final TextArea fallbackEditor; + private final TextArea fallbackMessages; + private String pendingSource = ""; + private String pendingMarkersJson = "[]"; + private String pendingMessagesJson = "[]"; + private String pendingUiidsJson = "[]"; + private boolean pendingDarkMode; + private boolean ready; + + PlaygroundBrowserEditor(Mode mode, String source, boolean darkMode, Listener listener) { + this.mode = mode == null ? Mode.JAVA : mode; + this.listener = listener; + this.metadataJson = PlaygroundEditorMetadata.json(); + this.pendingSource = source == null ? "" : source; + this.pendingDarkMode = darkMode; + if (shouldUseBrowserEditor()) { + browser = new BrowserComponent(); + browser.putClientProperty("HTML5Peer.removeOnDeinitialize", Boolean.FALSE); + fallbackEditor = null; + fallbackMessages = null; + component = browser; + browser.addWebEventListener(BrowserComponent.onMessage, this::handleMessage); + try { + browser.setURLHierarchy("/playground-editor/index.html"); + } catch (IOException ex) { + throw new RuntimeException("Failed to load playground editor resources", ex); + } + browser.ready(new CallbackAdapter() { + @Override + public void onSucess(BrowserComponent value) { + flush(); + } + }); + } else { + browser = null; + fallbackEditor = new TextArea(pendingSource, 20, 80, TextArea.ANY); + fallbackEditor.setUIID("TextArea"); + fallbackEditor.setEditable(true); + fallbackEditor.setSingleLineTextArea(false); + fallbackEditor.getAllStyles().setPaddingUnit(Style.UNIT_TYPE_DIPS); + fallbackEditor.getAllStyles().setPadding(1.5f, 1.5f, 1.5f, 1.5f); + fallbackEditor.addDataChangedListener((type, index) -> { + pendingSource = fallbackEditor.getText(); + listener.onSourceChanged(pendingSource, ++readyVersion); + }); + fallbackMessages = new TextArea("", 4, 80, TextArea.ANY); + fallbackMessages.setEditable(false); + fallbackMessages.setSingleLineTextArea(false); + fallbackMessages.setUIID("Label"); + Container wrapper = new Container(new BorderLayout()); + wrapper.add(BorderLayout.CENTER, fallbackEditor); + wrapper.add(BorderLayout.SOUTH, fallbackMessages); + component = wrapper; + applyThemeToFallback(darkMode); + } + } + + private int readyVersion; + + Component getComponent() { + return component; + } + + void setSource(String source) { + pendingSource = source == null ? "" : source; + if (browser == null) { + if (!pendingSource.equals(fallbackEditor.getText())) { + fallbackEditor.setText(pendingSource); + } + return; + } + if (ready) { + browser.execute("window.PlaygroundEditor && window.PlaygroundEditor.setSource(" + asJsString(pendingSource) + ");"); + } + } + + void setMarkers(List diagnostics) { + pendingMarkersJson = toMarkersJson(diagnostics); + if (browser == null) { + renderFallbackMessages(diagnostics, null); + return; + } + if (ready) { + browser.execute("window.PlaygroundEditor && window.PlaygroundEditor.setMarkers(" + pendingMarkersJson + ");"); + } + } + + void setInlineMessages(List messages) { + pendingMessagesJson = toMessagesJson(messages); + if (browser == null) { + renderFallbackMessages(null, messages); + return; + } + if (ready) { + browser.execute("window.PlaygroundEditor && window.PlaygroundEditor.setInlineMessages(" + pendingMessagesJson + ");"); + } + } + + void applyTheme(boolean darkMode) { + pendingDarkMode = darkMode; + if (browser == null) { + applyThemeToFallback(darkMode); + return; + } + if (ready) { + browser.execute("window.PlaygroundEditor && window.PlaygroundEditor.applyTheme(" + (darkMode ? "true" : "false") + ");"); + } + } + + void setUiidCompletions(List uiids) { + pendingUiidsJson = toUiidJson(uiids); + if (browser != null && ready) { + browser.execute("window.PlaygroundEditor && window.PlaygroundEditor.setUiids(" + pendingUiidsJson + ");"); + } + } + + private void flush() { + if (browser == null) { + return; + } + // The BrowserComponent fires ready as soon as the iframe document loads, + // which can be BEFORE editor.js has run and defined window.PlaygroundEditor + // (loader.js + editor.js load asynchronously). A plain + // "PlaygroundEditor && PlaygroundEditor.bootstrap(...)" then silently + // no-ops and the editor never initialises -- and the iframe->host message + // channel is one-way here, so we can't rely on the editor signalling back. + // Inject a self-retrying bootstrap that waits inside the iframe until + // PlaygroundEditor exists, so bootstrap runs regardless of load ordering. + String bootstrapArgs = asJsString(metadataJson) + ", " + + asJsString(pendingSource) + ", " + + asJsString(mode.monacoLanguage()) + ", " + + (pendingDarkMode ? "true" : "false") + ", " + + pendingMarkersJson + ", " + + pendingMessagesJson + ", " + + pendingUiidsJson; + browser.execute("(function(){var n=0;function go(){" + + "if(window.PlaygroundEditor){window.PlaygroundEditor.bootstrap(" + bootstrapArgs + ");}" + + "else if(n++<200){setTimeout(go,25);}}go();})();"); + } + + private boolean shouldUseBrowserEditor() { + return "HTML5".equals(CN.getPlatformName()); + } + + private void applyThemeToFallback(boolean darkMode) { + if (fallbackEditor == null || fallbackMessages == null) { + return; + } + int bg = darkMode ? 0x0f172a : 0xffffff; + int fg = darkMode ? 0xe2e8f0 : 0x0f172a; + fallbackEditor.getAllStyles().setBgColor(bg); + fallbackEditor.getAllStyles().setFgColor(fg); + fallbackEditor.getAllStyles().setBgTransparency(255); + fallbackMessages.getAllStyles().setBgColor(bg); + fallbackMessages.getAllStyles().setFgColor(fg); + fallbackMessages.getAllStyles().setBgTransparency(255); + fallbackMessages.setVisible(fallbackMessages.getText() != null && fallbackMessages.getText().length() > 0); + fallbackEditor.repaint(); + fallbackMessages.repaint(); + } + + private void renderFallbackMessages(List diagnostics, List messages) { + if (fallbackMessages == null) { + return; + } + StringBuilder out = new StringBuilder(); + if (diagnostics != null) { + for (int i = 0; i < diagnostics.size(); i++) { + PlaygroundRunner.Diagnostic diagnostic = diagnostics.get(i); + if (out.length() > 0) { + out.append('\n'); + } + if (diagnostic.line > 0) { + out.append("Line ").append(diagnostic.line).append(": "); + } + out.append(diagnostic.message); + } + } + if (messages != null) { + for (int i = 0; i < messages.size(); i++) { + PlaygroundRunner.InlineMessage message = messages.get(i); + if (out.length() > 0) { + out.append('\n'); + } + out.append(message.text); + } + } + fallbackMessages.setText(out.toString()); + fallbackMessages.setVisible(out.length() > 0); + ((Container) component).revalidate(); + } + + private void handleMessage(ActionEvent event) { + Object source = event.getSource(); + if (!(source instanceof String)) { + return; + } + Map payload = parseMessage((String) source); + if (payload.isEmpty()) { + return; + } + String type = asString(payload.get("type")); + if ("ready".equals(type)) { + // The editor re-signals "ready" every 400ms until it's bootstrapped, and + // on the JS port a ready from any editor iframe reaches every editor's + // handler. Only bootstrap once -- re-flushing re-runs setSource in the + // editor and resets the caret / re-pushes stale text while the user types. + if (ready) { + return; + } + ready = true; + flush(); + return; + } + if ("change".equals(type)) { + // On the JS port onMessage is delivered to every editor's handler + // (the port can't match a message to a specific iframe), so each + // editor only acts on changes tagged with its own language. + String language = asString(payload.get("language")); + if (language.length() > 0 && !language.equals(mode.monacoLanguage())) { + return; + } + String text = asString(payload.get("text")); + int version = asInt(payload.get("version")); + // Keep pendingSource current with what the user has typed. If the + // editor iframe is ever reloaded/re-bootstrapped (peer recreation), + // flush() re-sends pendingSource -- if that were still the stale + // bootstrap source it would wipe the user's edits ("typed char erased + // immediately"). Tracking the latest text here makes a re-bootstrap + // restore the current content instead. + pendingSource = text == null ? "" : text; + listener.onSourceChanged(text, version); + } + } + + private Map parseMessage(String message) { + try { + return new JSONParser().parseJSON(new CharArrayReader(message.toCharArray())); + } catch (IOException ex) { + return Collections.emptyMap(); + } + } + + private String asString(Object value) { + return value == null ? "" : String.valueOf(value); + } + + private int asInt(Object value) { + if (value instanceof Number) { + return ((Number) value).intValue(); + } + try { + return Integer.parseInt(String.valueOf(value)); + } catch (Exception ex) { + return 0; + } + } + + private String toMarkersJson(List diagnostics) { + StringBuilder out = new StringBuilder(); + out.append('['); + for (int i = 0; i < diagnostics.size(); i++) { + PlaygroundRunner.Diagnostic diagnostic = diagnostics.get(i); + if (i > 0) { + out.append(','); + } + out.append('{'); + appendJsonField(out, "message", diagnostic.message); + out.append(','); + appendJsonField(out, "severity", diagnostic.severity); + out.append(','); + appendJsonField(out, "line", diagnostic.line); + out.append(','); + appendJsonField(out, "column", diagnostic.column); + out.append(','); + appendJsonField(out, "endLine", diagnostic.endLine); + out.append(','); + appendJsonField(out, "endColumn", diagnostic.endColumn); + out.append('}'); + } + out.append(']'); + return out.toString(); + } + + private String toMessagesJson(List messages) { + StringBuilder out = new StringBuilder(); + out.append('['); + for (int i = 0; i < messages.size(); i++) { + PlaygroundRunner.InlineMessage message = messages.get(i); + if (i > 0) { + out.append(','); + } + out.append('{'); + appendJsonField(out, "kind", message.kind); + out.append(','); + appendJsonField(out, "text", message.text); + out.append(','); + appendJsonField(out, "line", message.line); + out.append('}'); + } + out.append(']'); + return out.toString(); + } + + private String toUiidJson(List uiids) { + StringBuilder out = new StringBuilder(); + out.append('['); + if (uiids != null) { + int j = 0; + for (int i = 0; i < uiids.size(); i++) { + String uiid = uiids.get(i); + if (uiid == null || uiid.trim().length() == 0) { + continue; + } + if (j++ > 0) { + out.append(','); + } + appendJsonString(out, uiid.trim()); + } + } + out.append(']'); + return out.toString(); + } + + private void appendJsonField(StringBuilder out, String name, String value) { + appendJsonString(out, name); + out.append(':'); + appendJsonString(out, value == null ? "" : value); + } + + private void appendJsonField(StringBuilder out, String name, int value) { + appendJsonString(out, name); + out.append(':').append(value); + } + + private void appendJsonString(StringBuilder out, String value) { + out.append('"'); + for (int i = 0; i < value.length(); i++) { + char ch = value.charAt(i); + switch (ch) { + case '\\': + out.append("\\\\"); + break; + case '"': + out.append("\\\""); + break; + case '\n': + out.append("\\n"); + break; + case '\r': + out.append("\\r"); + break; + case '\t': + out.append("\\t"); + break; + default: + if (ch < 0x20) { + String hex = Integer.toHexString(ch); + out.append("\\u"); + for (int j = hex.length(); j < 4; j++) { + out.append('0'); + } + out.append(hex); + } else { + out.append(ch); + } + break; + } + } + out.append('"'); + } + + private String asJsString(String value) { + StringBuilder out = new StringBuilder(); + appendJsonString(out, value == null ? "" : value); + return out.toString(); + } +} diff --git a/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundEditorMetadata.java b/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundEditorMetadata.java new file mode 100644 index 00000000000..3d689d3610c --- /dev/null +++ b/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundEditorMetadata.java @@ -0,0 +1,159 @@ +package com.codenameone.playground; + +import bsh.cn1.GeneratedCN1Access; + +final class PlaygroundEditorMetadata { + private static final String[] DEFAULT_IMPORTS = new String[]{ + "com.codename1.ui", + "com.codename1.ui.layouts", + "com.codename1.components", + "com.codename1.ui.geom", + "java.lang", + "java.io", + "java.util" + }; + + private static final String[][] GLOBALS = new String[][]{ + {"ctx", "com.codenameone.playground.PlaygroundContext"}, + {"theme", "com.codename1.ui.util.Resources"}, + {"hostForm", "com.codename1.ui.Form"}, + {"previewRoot", "com.codename1.ui.Container"}, + {"Display", "com.codename1.ui.Display"}, + {"UIManager", "com.codename1.ui.plaf.UIManager"}, + {"FontImage", "com.codename1.ui.FontImage"}, + {"CN", "com.codename1.ui.CN"}, + {"BoxLayout", "com.codename1.ui.layouts.BoxLayout"}, + {"BorderLayout", "com.codename1.ui.layouts.BorderLayout"}, + {"FlowLayout", "com.codename1.ui.layouts.FlowLayout"}, + {"GridLayout", "com.codename1.ui.layouts.GridLayout"}, + {"LayeredLayout", "com.codename1.ui.layouts.LayeredLayout"}, + {"Style", "com.codename1.ui.plaf.Style"} + }; + + private static String cachedJson; + + private PlaygroundEditorMetadata() { + } + + static synchronized String json() { + if (cachedJson == null) { + cachedJson = buildJson(); + } + return cachedJson; + } + + private static String buildJson() { + String[] classNames = GeneratedCN1Access.INSTANCE.getIndexedClassNames(); + StringBuilder out = new StringBuilder(1 << 20); + out.append('{'); + appendArrayField(out, "defaultImports", DEFAULT_IMPORTS); + out.append(','); + appendGlobals(out); + out.append(','); + out.append("\"types\":{"); + boolean first = true; + for (int i = 0; i < classNames.length; i++) { + String qualifiedName = classNames[i]; + if (!first) { + out.append(','); + } + first = false; + appendString(out, qualifiedName); + out.append(':'); + appendType(out, qualifiedName); + } + out.append("}}"); + return out.toString(); + } + + private static void appendGlobals(StringBuilder out) { + out.append("\"globals\":{"); + for (int i = 0; i < GLOBALS.length; i++) { + if (i > 0) { + out.append(','); + } + appendString(out, GLOBALS[i][0]); + out.append(':'); + appendString(out, GLOBALS[i][1]); + } + out.append('}'); + } + + private static void appendType(StringBuilder out, String qualifiedName) { + String packageName = packageName(qualifiedName); + out.append('{'); + out.append("\"simple\":"); + appendString(out, simpleName(qualifiedName)); + out.append(",\"package\":"); + appendString(out, packageName); + out.append(",\"methods\":"); + appendArray(out, GeneratedCN1Access.INSTANCE.getMethodSignatures(qualifiedName)); + out.append(",\"fields\":"); + appendArray(out, GeneratedCN1Access.INSTANCE.getFieldNames(qualifiedName)); + out.append('}'); + } + + private static String packageName(String qualifiedName) { + int lastDot = qualifiedName.lastIndexOf('.'); + return lastDot < 0 ? "" : qualifiedName.substring(0, lastDot); + } + + private static String simpleName(String qualifiedName) { + int lastDot = qualifiedName.lastIndexOf('.'); + return lastDot < 0 ? qualifiedName : qualifiedName.substring(lastDot + 1); + } + + private static void appendArrayField(StringBuilder out, String name, String[] values) { + appendString(out, name); + out.append(':'); + appendArray(out, values); + } + + private static void appendArray(StringBuilder out, String[] values) { + out.append('['); + for (int i = 0; i < values.length; i++) { + if (i > 0) { + out.append(','); + } + appendString(out, values[i]); + } + out.append(']'); + } + + private static void appendString(StringBuilder out, String value) { + out.append('"'); + for (int i = 0; i < value.length(); i++) { + char ch = value.charAt(i); + switch (ch) { + case '\\': + out.append("\\\\"); + break; + case '"': + out.append("\\\""); + break; + case '\n': + out.append("\\n"); + break; + case '\r': + out.append("\\r"); + break; + case '\t': + out.append("\\t"); + break; + default: + if (ch < 0x20) { + String hex = Integer.toHexString(ch); + out.append("\\u"); + for (int j = hex.length(); j < 4; j++) { + out.append('0'); + } + out.append(hex); + } else { + out.append(ch); + } + break; + } + } + out.append('"'); + } +} diff --git a/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundLightweightEditor.java b/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundLightweightEditor.java deleted file mode 100644 index 9927cf6b7ff..00000000000 --- a/scripts/cn1playground/common/src/main/java/com/codenameone/playground/PlaygroundLightweightEditor.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - -package com.codenameone.playground; - -import com.codename1.ui.Component; -import com.codename1.ui.Container; -import com.codename1.ui.Font; -import com.codename1.ui.TextArea; -import com.codename1.ui.layouts.BorderLayout; -import com.codename1.ui.plaf.Border; -import com.codename1.ui.plaf.Style; - -import java.util.ArrayList; -import java.util.List; - -/** - * Playground source editor built directly on the opt-in lightweight editing API in {@link TextArea}. - */ -final class PlaygroundLightweightEditor { - private static final int MAX_SOURCE_LENGTH = 1_000_000; - - interface Listener { - void onSourceChanged(String source, int version); - } - - enum Mode { - JAVA, - CSS - } - - private final TextArea editor; - private final TextArea messages; - private final Container component; - private final Listener listener; - private List diagnostics = new ArrayList(); - private List inlineMessages = new ArrayList(); - private String source; - private int version; - - PlaygroundLightweightEditor(Mode mode, String source, boolean darkMode, Listener listener) { - Mode actualMode = mode == null ? Mode.JAVA : mode; - this.source = source == null ? "" : source; - this.listener = listener; - - editor = new TextArea(this.source, 20, 80, TextArea.ANY); - editor.setName(actualMode == Mode.CSS ? "PlaygroundCssSourceEditor" : "PlaygroundJavaSourceEditor"); - editor.setMaxSize(Math.max(MAX_SOURCE_LENGTH, this.source.length() + 1)); - editor.setSingleLineTextArea(false); - editor.setGrowByContent(false); - editor.setSmoothScrolling(true); - editor.setLightweightEditingEnabled(true); - - messages = new TextArea("", 4, 80, TextArea.ANY); - messages.setEditable(false); - messages.setSingleLineTextArea(false); - messages.setGrowByContent(true); - messages.setUIID("Label"); - messages.setVisible(false); - - component = new Container(new BorderLayout()); - component.add(BorderLayout.CENTER, editor); - component.add(BorderLayout.SOUTH, messages); - - editor.addDataChangedListener((type, index) -> { - String updated = editor.getText(); - if (updated == null) { - updated = ""; - } - if (updated.equals(PlaygroundLightweightEditor.this.source)) { - return; - } - PlaygroundLightweightEditor.this.source = updated; - if (PlaygroundLightweightEditor.this.listener != null) { - PlaygroundLightweightEditor.this.listener.onSourceChanged(updated, ++version); - } - }); - applyTheme(darkMode); - } - - Component getComponent() { - return component; - } - - void setSource(String source) { - this.source = source == null ? "" : source; - if (this.source.length() >= editor.getMaxSize()) { - editor.setMaxSize(this.source.length() + 1); - } - editor.setText(this.source); - } - - void setMarkers(List diagnostics) { - this.diagnostics = diagnostics == null - ? new ArrayList() - : new ArrayList(diagnostics); - renderMessages(); - } - - void setInlineMessages(List inlineMessages) { - this.inlineMessages = inlineMessages == null - ? new ArrayList() - : new ArrayList(inlineMessages); - renderMessages(); - } - - void applyTheme(boolean darkMode) { - editor.setUIID(darkMode ? "PlaygroundSourceEditorDark" : "PlaygroundSourceEditor"); - Style editorStyle = editor.getAllStyles(); - editorStyle.setBgColor(darkMode ? 0x0f172a : 0xffffff); - editorStyle.setFgColor(darkMode ? 0xe2e8f0 : 0x0f172a); - editorStyle.setBgTransparency(255); - editorStyle.setBorder(Border.createEmpty()); - editorStyle.setFont(Font.createSystemFont(Font.FACE_MONOSPACE, Font.STYLE_PLAIN, Font.SIZE_MEDIUM)); - editorStyle.setPaddingUnit(Style.UNIT_TYPE_DIPS); - editorStyle.setPadding(1.5f, 1.5f, 1.5f, 1.5f); - - Style messageStyle = messages.getAllStyles(); - messageStyle.setBgColor(darkMode ? 0x0f172a : 0xffffff); - messageStyle.setFgColor(darkMode ? 0xe2e8f0 : 0x0f172a); - messageStyle.setBgTransparency(255); - messageStyle.setPaddingUnit(Style.UNIT_TYPE_DIPS); - messageStyle.setPadding(1f, 1f, 1.5f, 1.5f); - editor.repaint(); - messages.repaint(); - } - - private void renderMessages() { - StringBuilder out = new StringBuilder(); - for (PlaygroundRunner.Diagnostic diagnostic : diagnostics) { - appendLine(out, diagnostic.line > 0 - ? "Line " + diagnostic.line + ": " + diagnostic.message - : diagnostic.message); - } - for (PlaygroundRunner.InlineMessage message : inlineMessages) { - appendLine(out, message.text); - } - messages.setText(out.toString()); - messages.setVisible(out.length() > 0); - if (component.getComponentForm() != null) { - component.revalidate(); - } - } - - private static void appendLine(StringBuilder out, String value) { - if (out.length() > 0) { - out.append('\n'); - } - out.append(value == null ? "" : value); - } -} diff --git a/scripts/cn1playground/common/src/test/java/com/codenameone/playground/PlaygroundLayoutHarness.java b/scripts/cn1playground/common/src/test/java/com/codenameone/playground/PlaygroundLayoutHarness.java index e810e7e2fd4..cf54a56f6e7 100644 --- a/scripts/cn1playground/common/src/test/java/com/codenameone/playground/PlaygroundLayoutHarness.java +++ b/scripts/cn1playground/common/src/test/java/com/codenameone/playground/PlaygroundLayoutHarness.java @@ -1,26 +1,3 @@ -/* - * Copyright (c) 2026, Codename One and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Codename One designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Codename One through http://www.codenameone.com/ if you - * need additional information or have any questions. - */ - package com.codenameone.playground; import com.codename1.ui.CN; @@ -28,7 +5,6 @@ import com.codename1.ui.Container; import com.codename1.ui.Display; import com.codename1.ui.Form; -import com.codename1.ui.TextArea; /// Headless layout smoke test. /// @@ -42,8 +18,9 @@ /// split pane vs. top bar + tab strip + tab content + bottom nav). Exits /// with non-zero status on any failure so CI can fail the job. /// -/// Both scenarios verify that the source pane opts into TextArea's framework- -/// rendered editing API instead of using a native or browser editor peer. +/// Caveat: the JavaSE simulator cannot exercise the HTML5 Monaco editor +/// (it relies on BrowserComponent which renders as an empty placeholder), +/// so checks are scoped to the native-CN1 chrome. public final class PlaygroundLayoutHarness { private PlaygroundLayoutHarness() { } @@ -106,16 +83,6 @@ public void run() { } int failures = 0; - Component sourceEditor = findByUiid(form, "PlaygroundSourceEditor", "PlaygroundSourceEditorDark"); - if (!(sourceEditor instanceof TextArea)) { - System.err.println("[" + label + "] lightweight TextArea source editor NOT FOUND in form tree"); - failures++; - } else if (!((TextArea) sourceEditor).isLightweightEditingEnabled()) { - System.err.println("[" + label + "] source editor did not enable lightweight editing"); - failures++; - } else { - System.out.println("[" + label + "] lightweight TextArea source editor present"); - } failures += expectPresent(label, form, "PlaygroundTopBar", "PlaygroundTopBarDark"); failures += expectPresent(label, form, "PlaygroundAppIcon", "PlaygroundAppIconDark"); if (mobile) { @@ -265,5 +232,4 @@ private static Component findByUiid(Component root, String... uiids) { } return null; } - } diff --git a/scripts/cn1playground/src/html/playground-editor/editor.js b/scripts/cn1playground/src/html/playground-editor/editor.js new file mode 100644 index 00000000000..d79cb1eaf80 --- /dev/null +++ b/scripts/cn1playground/src/html/playground-editor/editor.js @@ -0,0 +1,923 @@ +(function() { + var state = { + metadata: null, + language: "java", + monacoReady: false, + bootstrapped: false, + editor: null, + model: null, + dark: false, + version: 0, + suppressChange: false, + runtimeMarkers: [], + heuristicMarkers: [], + inlineMessages: [], + decorations: [], + zoneId: null, + changeTimer: 0, + lintTimer: 0, + uiids: [] + }; + var SUPPORTED_STATES = ["pressed", "selected", "unselected", "disabled"]; + var SUPPORTED_PROPERTIES = [ + "color", "background-color", "font-family", "font-size", "font-style", "text-decoration", + "margin", "padding", "border", + "transparency", "opacity", "alignment", + "cn1-derive", "cn1-background-type", "cn1-bg-color", "cn1-bg-image", "cn1-bg-image-scaled", + "cn1-border-type", "cn1-border-color", "cn1-border-radius", "cn1-border-width", + "cn1-box-shadow-h", "cn1-box-shadow-v", "cn1-box-shadow-spread", "cn1-box-shadow-blur", "cn1-box-shadow-color" + ]; + + function post(payload) { + var message = JSON.stringify(payload); + if (window.cn1PostMessage) { + window.cn1PostMessage(message); + return; + } + if (window.parent && window.parent !== window && window.parent.postMessage) { + window.parent.postMessage(message, '*'); + } + } + + function ensureMonaco(callback) { + if (state.monacoReady) { + callback(); + return; + } + var vsBasePath = "monaco/min/vs"; + var workerMainUrl = new URL(vsBasePath + "/base/worker/workerMain.js", window.location.href).toString(); + // The label worker runs from a data: URL, which has no base for resolving + // relative URLs. Monaco loads each language worker as baseUrl + "vs/...", + // so baseUrl must be the ABSOLUTE parent of the vs/ directory. The old + // value ("monaco/min/vs/") was both relative (unparseable in the data: + // worker -> "Failed to parse URL") and wrong (produced a duplicated + // "vs/vs/" path). Use the absolute monaco/min/ directory instead. + var workerBaseUrl = new URL("monaco/min/", window.location.href).toString(); + window.MonacoEnvironment = { + getWorkerUrl: function() { + var worker = "" + + "self.MonacoEnvironment={baseUrl:'" + workerBaseUrl + "'};" + + "importScripts('" + workerMainUrl + "');"; + return "data:text/javascript;charset=utf-8," + encodeURIComponent(worker); + } + }; + require.config({ + paths: { + vs: vsBasePath + } + }); + require(["vs/editor/editor.main"], function() { + createEditor(); + state.monacoReady = true; + callback(); + post({ type: "ready" }); + }); + } + + function createEditor() { + registerMonacoThemes(); + state.model = monaco.editor.createModel("", state.language || "java"); + state.editor = monaco.editor.create(document.getElementById("editor"), { + model: state.model, + automaticLayout: true, + fontSize: 14, + minimap: { enabled: false }, + scrollBeyondLastLine: false, + wordWrap: "off", + glyphMargin: false, + // Narrower, lighter line-number gutter. + lineNumbersMinChars: 2, + lineDecorationsWidth: 4, + renderLineHighlight: "none", + quickSuggestions: { + other: true, + comments: false, + strings: false + }, + suggestOnTriggerCharacters: true, + tabSize: 4, + insertSpaces: true + }); + registerCompletionProviders(); + // The editor lives in a BrowserComponent iframe that the Codename One peer + // creates hidden (display:none, 0x0) and only sizes once it is shown. Monaco + // is created against that 0x0 container, and its automaticLayout observer + // doesn't reliably catch the later display:none -> visible resize, so it can + // stay laid out at ~5x5 (a blank editor pane). Observe the iframe body and + // re-layout whenever it resizes so the editor fills the pane once shown. + if (typeof ResizeObserver !== "undefined") { + try { + var ro = new ResizeObserver(function() { + if (state.editor) { + state.editor.layout(); + } + }); + ro.observe(document.body); + } catch (e) { /* non-fatal: automaticLayout still applies */ } + } + state.editor.onDidChangeModelContent(function() { + if (state.suppressChange) { + return; + } + state.version += 1; + scheduleLocalLint(); + scheduleChangeNotification(); + }); + } + + function registerMonacoThemes() { + monaco.editor.defineTheme("cn1-playground-light", { + base: "vs", + inherit: true, + rules: [], + colors: { + "editor.background": "#FAFAFC", + "editor.foreground": "#112247", + "editorGutter.background": "#FAFAFC", + "editorLineNumber.foreground": "#C5CBD6", + "editorLineNumber.activeForeground": "#8692A8", + "editorCursor.foreground": "#2F6BFF", + "editor.selectionBackground": "#E8F0FF", + "editor.inactiveSelectionBackground": "#E8F0FFAA", + "editorIndentGuide.background1": "#D9DEE8", + "editorIndentGuide.activeBackground1": "#BFC7D6" + } + }); + monaco.editor.defineTheme("cn1-playground-dark", { + base: "vs-dark", + inherit: true, + rules: [], + colors: { + "editor.background": "#112F70", + "editor.foreground": "#F5F8FF", + "editorGutter.background": "#112F70", + "editorLineNumber.foreground": "#6E80A6", + "editorLineNumber.activeForeground": "#D0DBEF", + "editorCursor.foreground": "#4D86FF", + "editor.selectionBackground": "#4D86FF33", + "editor.inactiveSelectionBackground": "#4D86FF22", + "editorIndentGuide.background1": "#4C6EA8", + "editorIndentGuide.activeBackground1": "#7390C0" + } + }); + } + + function registerCompletionProviders() { + monaco.languages.registerCompletionItemProvider("java", { + triggerCharacters: [".", "(", ",", " "], + provideCompletionItems: function(model, position) { + if (!state.metadata) { + return { suggestions: [] }; + } + var text = model.getValue(); + var offset = model.getOffsetAt(position); + return { suggestions: collectSuggestions(model, position, text, offset) }; + } + }); + monaco.languages.registerCompletionItemProvider("css", { + triggerCharacters: [".", "-", " "], + provideCompletionItems: function(model, position) { + return { suggestions: cssSuggestions(model, position) }; + } + }); + } + + function cssSuggestions(model, position) { + var text = model.getValue(); + var offset = model.getOffsetAt(position); + if (isInsideCssRuleBlock(text, offset)) { + return cssPropertySuggestions(model, position); + } + var stateContext = findCssStateContext(text, offset); + if (stateContext) { + return cssStateSuggestions(model, position, stateContext.prefix); + } + return cssSelectorSuggestions(model, position); + } + + function cssSelectorSuggestions(model, position) { + var word = model.getWordUntilPosition(position); + var prefix = (word && word.word ? word.word : ""); + var range = new monaco.Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn); + var suggestions = []; + (state.uiids || []).forEach(function(uiid) { + if (!uiid) { + return; + } + var selector = uiid; + if (!matchesPrefix(selector, prefix)) { + return; + } + suggestions.push({ + label: selector, + kind: monaco.languages.CompletionItemKind.Class, + insertText: selector, + detail: "UIID selector", + range: range + }); + suggestions.push({ + label: selector + " { ... }", + kind: monaco.languages.CompletionItemKind.Snippet, + insertText: selector + " {\n\t$0\n}", + insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet, + detail: "UIID rule", + range: range + }); + }); + return suggestions; + } + + function cssStateSuggestions(model, position, prefix) { + var range = new monaco.Range(position.lineNumber, position.column - prefix.length, position.lineNumber, position.column); + var suggestions = []; + SUPPORTED_STATES.forEach(function(stateName) { + if (!matchesPrefix(stateName, prefix)) { + return; + } + suggestions.push({ + label: "." + stateName, + kind: monaco.languages.CompletionItemKind.EnumMember, + insertText: stateName, + detail: "Component state", + range: range + }); + }); + return suggestions; + } + + function cssPropertySuggestions(model, position) { + var word = model.getWordUntilPosition(position); + var prefix = (word && word.word ? word.word : ""); + var range = new monaco.Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn); + var suggestions = []; + SUPPORTED_PROPERTIES.forEach(function(propertyName) { + if (!matchesPrefix(propertyName, prefix)) { + return; + } + suggestions.push({ + label: propertyName, + kind: monaco.languages.CompletionItemKind.Property, + insertText: propertyName + ": ", + detail: "Supported CN1 property", + range: range + }); + }); + return suggestions; + } + + function isInsideCssRuleBlock(text, offset) { + var depth = 0; + for (var i = 0; i < offset && i < text.length; i++) { + var ch = text.charAt(i); + if (ch === "{") { + depth++; + } else if (ch === "}" && depth > 0) { + depth--; + } + } + return depth > 0; + } + + function findCssStateContext(text, offset) { + var i = offset - 1; + while (i >= 0 && /\s/.test(text.charAt(i))) { + i--; + } + var end = i + 1; + while (i >= 0 && /[A-Za-z0-9_-]/.test(text.charAt(i))) { + i--; + } + var prefix = text.substring(i + 1, end); + while (i >= 0 && /\s/.test(text.charAt(i))) { + i--; + } + if (i < 0 || text.charAt(i) !== ".") { + return null; + } + i--; + while (i >= 0 && /\s/.test(text.charAt(i))) { + i--; + } + var selectorEnd = i + 1; + while (i >= 0 && /[A-Za-z0-9_-]/.test(text.charAt(i))) { + i--; + } + var selector = text.substring(i + 1, selectorEnd); + if (!selector || selector.length === 0) { + return null; + } + return { selector: selector, prefix: prefix }; + } + + function collectSuggestions(model, position, text, offset) { + var importContext = findImportContext(model, position); + if (importContext) { + return importSuggestions(importContext, model, position); + } + var visibleTypes = getVisibleTypes(text); + var receiver = findReceiver(text, offset); + if (receiver) { + var typeName = inferExpressionType(receiver, text, visibleTypes); + return memberSuggestions(typeName); + } + return globalSuggestions(model, position, text, visibleTypes); + } + + function memberSuggestions(typeName) { + var typeInfo = typeName && state.metadata.types[typeName]; + if (!typeInfo) { + return []; + } + var suggestions = []; + (typeInfo.fields || []).forEach(function(field) { + suggestions.push({ + label: field, + kind: monaco.languages.CompletionItemKind.Field, + insertText: field, + detail: typeInfo.simple + "." + field + }); + }); + (typeInfo.methods || []).forEach(function(signature) { + var name = signature.substring(0, signature.indexOf("(")); + var hasArgs = signature !== name + "()"; + suggestions.push({ + label: signature, + kind: monaco.languages.CompletionItemKind.Method, + insertText: hasArgs ? name + "(${1})" : name + "()", + insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet, + detail: typeInfo.simple + "." + signature + }); + }); + return suggestions; + } + + function globalSuggestions(model, position, text, visibleTypes) { + var suggestions = []; + var word = model.getWordUntilPosition(position); + var prefix = (word && word.word ? word.word : ""); + var range = new monaco.Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn); + var globals = state.metadata.globals || {}; + Object.keys(globals).forEach(function(name) { + if (!matchesPrefix(name, prefix)) { + return; + } + suggestions.push({ + label: name, + kind: monaco.languages.CompletionItemKind.Variable, + insertText: name, + detail: globals[name], + range: range + }); + }); + Object.keys(visibleTypes).forEach(function(simple) { + if (!matchesPrefix(simple, prefix)) { + return; + } + suggestions.push({ + label: simple, + kind: monaco.languages.CompletionItemKind.Class, + insertText: simple, + detail: visibleTypes[simple], + range: range + }); + }); + Object.keys(state.metadata.simpleIndex || {}).forEach(function(simple) { + if (visibleTypes[simple] || !matchesPrefix(simple, prefix)) { + return; + } + var candidates = state.metadata.simpleIndex[simple]; + for (var i = 0; i < candidates.length; i++) { + suggestions.push(typeSuggestion(simple, candidates[i], text, range)); + } + }); + ["import", "new", "return", "if", "for", "while", "class"].forEach(function(keyword) { + if (!matchesPrefix(keyword, prefix)) { + return; + } + suggestions.push({ + label: keyword, + kind: monaco.languages.CompletionItemKind.Keyword, + insertText: keyword, + range: range + }); + }); + return suggestions; + } + + function findImportContext(model, position) { + var line = model.getLineContent(position.lineNumber).substring(0, position.column - 1); + var match = line.match(/^\s*import\s+([A-Za-z0-9_$.]*)$/); + if (!match) { + return null; + } + var path = match[1] || ""; + var lastDot = path.lastIndexOf("."); + if (lastDot < 0) { + return { + parentPath: "", + segmentPrefix: path + }; + } + return { + parentPath: path.substring(0, lastDot), + segmentPrefix: path.substring(lastDot + 1) + }; + } + + function importSuggestions(context, model, position) { + var suggestions = []; + var word = model.getWordUntilPosition(position); + var range = new monaco.Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn); + var seen = {}; + var packageNames = Object.keys(state.metadata.packages || {}); + for (var i = 0; i < packageNames.length; i++) { + var packageName = packageNames[i]; + var child = childPackageSegment(packageName, context.parentPath); + if (child && matchesPrefix(child, context.segmentPrefix) && !seen["pkg:" + child]) { + seen["pkg:" + child] = true; + suggestions.push({ + label: child, + kind: monaco.languages.CompletionItemKind.Module, + insertText: child, + detail: context.parentPath ? context.parentPath + "." + child : child, + range: range + }); + } + } + var importPackage = context.segmentPrefix.length === 0 ? context.parentPath : null; + if (importPackage && state.metadata.packages[importPackage]) { + suggestions.push({ + label: "*", + kind: monaco.languages.CompletionItemKind.Module, + insertText: "*", + detail: importPackage + ".*", + range: range + }); + var classes = state.metadata.packages[importPackage]; + for (var j = 0; j < classes.length; j++) { + suggestions.push({ + label: classes[j], + kind: monaco.languages.CompletionItemKind.Class, + insertText: classes[j], + detail: importPackage + "." + classes[j], + range: range + }); + } + } + return suggestions; + } + + function typeSuggestion(simple, qualifiedName, text, range) { + var packageName = qualifiedName.substring(0, qualifiedName.lastIndexOf(".")); + return { + label: simple, + kind: monaco.languages.CompletionItemKind.Class, + insertText: simple, + detail: qualifiedName, + range: range, + additionalTextEdits: buildImportEdits(text, qualifiedName, packageName + ".*") + }; + } + + function buildImportEdits(text, qualifiedName, wildcardImport) { + if (text.indexOf("import " + qualifiedName + ";") >= 0 || text.indexOf("import " + wildcardImport + ";") >= 0) { + return []; + } + var lines = text.split("\n"); + var insertAfter = 0; + for (var i = 0; i < lines.length; i++) { + var trimmed = lines[i].trim(); + if (trimmed.indexOf("package ") === 0 || trimmed.indexOf("import ") === 0) { + insertAfter = i + 1; + } + } + return [{ + range: new monaco.Range(insertAfter + 1, 1, insertAfter + 1, 1), + text: "import " + qualifiedName + ";\n" + }]; + } + + function childPackageSegment(packageName, parentPath) { + if (!parentPath) { + var rootDot = packageName.indexOf("."); + return rootDot < 0 ? packageName : packageName.substring(0, rootDot); + } + if (packageName === parentPath || packageName.indexOf(parentPath + ".") !== 0) { + return ""; + } + var remainder = packageName.substring(parentPath.length() + 1); + var nextDot = remainder.indexOf("."); + return nextDot < 0 ? remainder : remainder.substring(0, nextDot); + } + + function matchesPrefix(candidate, prefix) { + return !prefix || candidate.toLowerCase().indexOf(prefix.toLowerCase()) === 0; + } + + function findReceiver(text, offset) { + var prefix = text.substring(0, offset); + var dot = prefix.lastIndexOf("."); + if (dot < 0) { + return ""; + } + var tail = prefix.substring(dot + 1); + if (/[^A-Za-z0-9_$]/.test(tail)) { + return ""; + } + var head = prefix.substring(0, dot).match(/([A-Za-z_$][A-Za-z0-9_$]*)\s*$/); + return head ? head[1] : ""; + } + + function inferExpressionType(token, text, visibleTypes) { + if (!token) { + return ""; + } + var globals = state.metadata.globals || {}; + if (globals[token]) { + return globals[token]; + } + if (visibleTypes[token]) { + return visibleTypes[token]; + } + var declarations = collectDeclaredTypes(text, visibleTypes); + return declarations[token] || ""; + } + + function collectDeclaredTypes(text, visibleTypes) { + var found = {}; + var declaration = /\b([A-Z][A-Za-z0-9_$.<>\[\]]*)\s+([a-zA-Z_$][A-Za-z0-9_$]*)\s*(=|;|,)/g; + var match; + while ((match = declaration.exec(text))) { + var typeToken = sanitizeTypeToken(match[1]); + var fqcn = visibleTypes[typeToken] || state.metadata.simpleToQualified[typeToken] || ""; + if (fqcn) { + found[match[2]] = fqcn; + } + } + return found; + } + + function sanitizeTypeToken(value) { + return value.replace(/<.*$/, "").replace(/\[\]/g, "").replace(/^.*\./, function(prefix) { + return prefix.indexOf(".") >= 0 ? prefix : ""; + }); + } + + function getVisibleTypes(text) { + var visible = {}; + var defaults = state.metadata.defaultImports || []; + for (var i = 0; i < defaults.length; i++) { + mergePackage(visible, defaults[i]); + } + var importMatch; + var explicitImport = /^\s*import\s+([a-zA-Z0-9_$.]+)\s*;\s*$/gm; + while ((importMatch = explicitImport.exec(text))) { + var imported = importMatch[1]; + if (imported.slice(-2) === ".*") { + mergePackage(visible, imported.substring(0, imported.length - 2)); + } else { + var simple = imported.substring(imported.lastIndexOf(".") + 1); + visible[simple] = imported; + } + } + Object.keys(state.metadata.globals || {}).forEach(function(name) { + var typeName = state.metadata.globals[name]; + if (typeName) { + visible[name] = typeName; + } + }); + return visible; + } + + function mergePackage(target, packageName) { + var names = state.metadata.packages[packageName] || []; + for (var i = 0; i < names.length; i++) { + target[names[i]] = packageName + "." + names[i]; + } + } + + function scheduleChangeNotification() { + if (state.changeTimer) { + clearTimeout(state.changeTimer); + } + state.changeTimer = setTimeout(function() { + post({ + type: "change", + text: state.model.getValue(), + version: state.version, + // The host's onMessage now receives messages from every editor iframe + // (the JS port can't match a message to a specific iframe), so tag the + // language and let the host route this change to the right editor. + language: state.language + }); + }, 350); + } + + function scheduleLocalLint() { + if (state.lintTimer) { + clearTimeout(state.lintTimer); + } + state.lintTimer = setTimeout(function() { + applyHeuristicMarkers(computeHeuristicMarkers(state.model.getValue())); + }, 180); + } + + function applyHeuristicMarkers(markers) { + state.heuristicMarkers = markers; + refreshMarkers(); + } + + function refreshMarkers() { + if (!state.model) { + return; + } + monaco.editor.setModelMarkers( + state.model, + "cn1-playground", + state.heuristicMarkers.concat(state.runtimeMarkers) + ); + } + + function computeHeuristicMarkers(text) { + var markers = []; + var braceStack = []; + var lines = text.split("\n"); + var inBlockComment = false; + for (var lineIndex = 0; lineIndex < lines.length; lineIndex++) { + var line = lines[lineIndex]; + var inString = ""; + var codeLine = ""; + for (var column = 0; column < line.length; column++) { + var ch = line.charAt(column); + var next = column + 1 < line.length ? line.charAt(column + 1) : ""; + if (inBlockComment) { + codeLine += " "; + if (ch === "*" && next === "/") { + inBlockComment = false; + codeLine += " "; + column += 1; + } + continue; + } + if (!inString && ch === "/" && next === "/") { + while (codeLine.length < line.length) { + codeLine += " "; + } + break; + } + if (!inString && ch === "/" && next === "*") { + inBlockComment = true; + codeLine += " "; + column += 1; + continue; + } + if (!inString && (ch === '"' || ch === "'")) { + inString = ch; + codeLine += " "; + continue; + } + if (inString) { + codeLine += " "; + if (ch === "\\") { + if (column + 1 < line.length) { + codeLine += " "; + } + column += 1; + continue; + } + if (ch === inString) { + inString = ""; + } + continue; + } + codeLine += ch; + if (ch === "{" || ch === "(" || ch === "[") { + braceStack.push({ ch: ch, line: lineIndex + 1, column: column + 1 }); + } else if (ch === "}" || ch === ")" || ch === "]") { + var open = braceStack.pop(); + if (!open || !matchesBrace(open.ch, ch)) { + markers.push(marker(lineIndex + 1, column + 1, lineIndex + 1, column + 2, "Unmatched " + ch, monaco.MarkerSeverity.Error)); + } + } + } + collectUnknownTypeMarkers(markers, codeLine, lineIndex + 1, text); + } + for (var i = 0; i < braceStack.length; i++) { + var item = braceStack[i]; + markers.push(marker(item.line, item.column, item.line, item.column + 1, "Missing closing match for " + item.ch, monaco.MarkerSeverity.Error)); + } + return markers; + } + + function collectUnknownTypeMarkers(markers, line, lineNumber, fullText) { + var visible = getVisibleTypes(fullText); + var matcher = /\b([A-Z][A-Za-z0-9_]*)\b/g; + var match; + while ((match = matcher.exec(line))) { + var token = match[1]; + if (isIgnoredTypeToken(line, token, match.index)) { + continue; + } + if (!visible[token] && !(state.metadata.simpleIndex && state.metadata.simpleIndex[token])) { + markers.push(marker(lineNumber, match.index + 1, lineNumber, match.index + token.length + 1, + "Unknown type " + token, monaco.MarkerSeverity.Warning)); + } + } + } + + function isIgnoredTypeToken(line, token, index) { + if (["Component", "Object", "String", "Integer", "Long", "Boolean", "Double", "Float"].indexOf(token) >= 0) { + return false; + } + if (line.indexOf("class " + token) >= 0 || line.indexOf("interface " + token) >= 0 || line.indexOf("enum " + token) >= 0) { + return true; + } + if (index > 0 && line.charAt(index - 1) === ".") { + return true; + } + return false; + } + + function matchesBrace(open, close) { + return (open === "{" && close === "}") || + (open === "(" && close === ")") || + (open === "[" && close === "]"); + } + + function marker(startLine, startColumn, endLine, endColumn, message, severity) { + return { + startLineNumber: Math.max(1, startLine), + startColumn: Math.max(1, startColumn), + endLineNumber: Math.max(1, endLine), + endColumn: Math.max(1, endColumn), + message: message, + severity: severity + }; + } + + function renderInlineMessages() { + if (!state.editor || !state.model) { + return; + } + state.editor.changeViewZones(function(accessor) { + if (state.zoneId) { + accessor.removeZone(state.zoneId); + state.zoneId = null; + } + if (!state.inlineMessages.length) { + return; + } + var node = document.createElement("div"); + node.className = "playground-zone" + (state.dark ? " dark" : ""); + state.inlineMessages.forEach(function(message) { + var row = document.createElement("div"); + row.className = "playground-zone-row kind-" + (message.kind || "info"); + row.textContent = message.text; + node.appendChild(row); + }); + state.zoneId = accessor.addZone({ + afterLineNumber: state.model.getLineCount(), + heightInPx: Math.max(28, state.inlineMessages.length * 22 + 8), + domNode: node + }); + }); + } + + function bootstrap(metadataJson, source, language, darkMode, markers, messages, uiids) { + ensureMonaco(function() { + // bootstrap() can be invoked more than once: the editor re-signals "ready" + // every 400ms until it sees state.bootstrapped, and on the JS port a "ready" + // from ANY editor iframe is delivered to every editor's host handler, so the + // host calls bootstrap repeatedly while things settle. Re-running setSource() + // on those later calls is destructive -- model.setValue() resets the caret to + // 1:1 and (within the change debounce window) can re-push stale text, which is + // exactly the "type a char, a second later it bounces to 0,0 / can only type at + // the start" symptom. So only seed the source on the FIRST bootstrap; later + // bootstraps just refresh non-destructive bits (markers/messages/theme). + var alreadyBootstrapped = state.bootstrapped; + state.metadata = normalizeMetadata(JSON.parse(metadataJson)); + state.language = language || "java"; + state.uiids = uiids || []; + state.bootstrapped = true; + if (state.model && state.model.getLanguageId && state.model.getLanguageId() !== state.language) { + monaco.editor.setModelLanguage(state.model, state.language); + } + if (!alreadyBootstrapped) { + setSource(source || ""); + } + setMarkers(markers || []); + setInlineMessages(messages || []); + applyTheme(!!darkMode); + scheduleLocalLint(); + // Force a layout now that the editor has content and is (about to be) + // visible, in case the iframe was sized before Monaco's observer attached. + if (state.editor) { + state.editor.layout(); + setTimeout(function() { if (state.editor) { state.editor.layout(); } }, 0); + } + }); + } + + function normalizeMetadata(raw) { + var packages = {}; + var simpleIndex = {}; + Object.keys(raw.types || {}).forEach(function(name) { + var info = raw.types[name]; + if (!packages[info.package]) { + packages[info.package] = []; + } + packages[info.package].push(info.simple); + if (!simpleIndex[info.simple]) { + simpleIndex[info.simple] = []; + } + simpleIndex[info.simple].push(name); + }); + raw.packages = packages; + raw.simpleIndex = simpleIndex; + return raw; + } + + function setSource(source) { + if (!state.model) { + return; + } + if (state.model.getValue() === source) { + return; + } + state.suppressChange = true; + state.model.setValue(source); + state.suppressChange = false; + scheduleLocalLint(); + } + + function setUiids(uiids) { + state.uiids = uiids || []; + } + + function setMarkers(markers) { + state.runtimeMarkers = (markers || []).map(function(markerDef) { + return { + startLineNumber: Math.max(1, markerDef.line || 1), + startColumn: Math.max(1, markerDef.column || 1), + endLineNumber: Math.max(1, markerDef.endLine || markerDef.line || 1), + endColumn: Math.max(1, markerDef.endColumn || (markerDef.column || 1) + 1), + message: markerDef.message || "", + severity: toSeverity(markerDef.severity) + }; + }); + refreshMarkers(); + } + + function setInlineMessages(messages) { + state.inlineMessages = messages || []; + renderInlineMessages(); + } + + function applyTheme(darkMode) { + state.dark = !!darkMode; + if (!state.monacoReady) { + return; + } + monaco.editor.setTheme(state.dark ? "cn1-playground-dark" : "cn1-playground-light"); + renderInlineMessages(); + } + + function toSeverity(severity) { + switch ((severity || "").toLowerCase()) { + case "warning": + return monaco.MarkerSeverity.Warning; + case "info": + return monaco.MarkerSeverity.Info; + default: + return monaco.MarkerSeverity.Error; + } + } + + window.PlaygroundEditor = { + bootstrap: bootstrap, + setSource: setSource, + setMarkers: setMarkers, + setInlineMessages: setInlineMessages, + applyTheme: applyTheme, + setUiids: setUiids + }; + + // The host bootstraps the editor on a one-time BrowserComponent ready event. + // That can fire before this script has defined window.PlaygroundEditor (the + // host's "PlaygroundEditor && PlaygroundEditor.bootstrap(...)" then no-ops), + // or target a recreated peer, leaving the visible editor un-bootstrapped and + // blank. Now that PlaygroundEditor exists, signal readiness ourselves and + // keep signalling until the host actually bootstraps us. + (function () { + function signalReady() { post({ type: "ready" }); } + signalReady(); + var attempts = 0; + var timer = setInterval(function () { + if (state.bootstrapped || attempts++ > 40) { + clearInterval(timer); + return; + } + signalReady(); + }, 400); + })(); +})(); diff --git a/scripts/cn1playground/src/html/playground-editor/index.html b/scripts/cn1playground/src/html/playground-editor/index.html new file mode 100644 index 00000000000..74b8accb37c --- /dev/null +++ b/scripts/cn1playground/src/html/playground-editor/index.html @@ -0,0 +1,51 @@ + + + + + + CN1 Playground Editor + + + +

    + + + + diff --git a/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/base/browser/ui/codicons/codicon/codicon.ttf b/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/base/browser/ui/codicons/codicon/codicon.ttf new file mode 100644 index 0000000000000000000000000000000000000000..27ee4c68caef1cd22342f481420d6dbda1648012 GIT binary patch literal 80340 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%0DOF`LEiy*`&i@0 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:typeof process<"u"?process.platform==="win32":!1}}W.Environment=n})(ie||(ie={}));var ie;(function(W){class n{constructor(d,f,p){this.type=d,this.detail=f,this.timestamp=p}}W.LoaderEvent=n;class i{constructor(d){this._events=[new n(1,"",d)]}record(d,f){this._events.push(new n(d,f,W.Utilities.getHighPerformanceTimestamp()))}getEvents(){return this._events}}W.LoaderEventRecorder=i;class x{record(d,f){}getEvents(){return[]}}x.INSTANCE=new x,W.NullLoaderEventRecorder=x})(ie||(ie={}));var ie;(function(W){class n{static fileUriToFilePath(x,A){if(A=decodeURI(A).replace(/%23/g,"#"),x){if(/^file:\/\/\//.test(A))return A.substr(8);if(/^file:\/\//.test(A))return A.substr(5)}else if(/^file:\/\//.test(A))return A.substr(7);return A}static startsWith(x,A){return x.length>=A.length&&x.substr(0,A.length)===A}static endsWith(x,A){return x.length>=A.length&&x.substr(x.length-A.length)===A}static containsQueryString(x){return/^[^\#]*\?/gi.test(x)}static isAbsolutePath(x){return/^((http:\/\/)|(https:\/\/)|(file:\/\/)|(\/))/.test(x)}static forEachProperty(x,A){if(x){let d;for(d in x)x.hasOwnProperty(d)&&A(d,x[d])}}static isEmpty(x){let A=!0;return n.forEachProperty(x,()=>{A=!1}),A}static recursiveClone(x){if(!x||typeof x!="object"||x instanceof RegExp||!Array.isArray(x)&&Object.getPrototypeOf(x)!==Object.prototype)return x;let A=Array.isArray(x)?[]:{};return n.forEachProperty(x,(d,f)=>{f&&typeof f=="object"?A[d]=n.recursiveClone(f):A[d]=f}),A}static generateAnonymousModule(){return"===anonymous"+n.NEXT_ANONYMOUS_ID+++"==="}static isAnonymousModule(x){return n.startsWith(x,"===anonymous")}static getHighPerformanceTimestamp(){return this.PERFORMANCE_NOW_PROBED||(this.PERFORMANCE_NOW_PROBED=!0,this.HAS_PERFORMANCE_NOW=W.global.performance&&typeof W.global.performance.now=="function"),this.HAS_PERFORMANCE_NOW?W.global.performance.now():Date.now()}}n.NEXT_ANONYMOUS_ID=1,n.PERFORMANCE_NOW_PROBED=!1,n.HAS_PERFORMANCE_NOW=!1,W.Utilities=n})(ie||(ie={}));var ie;(function(W){function n(A){if(A instanceof Error)return A;const d=new Error(A.message||String(A)||"Unknown Error");return A.stack&&(d.stack=A.stack),d}W.ensureError=n;class i{static validateConfigurationOptions(d){function f(p){if(p.phase==="loading"){console.error('Loading "'+p.moduleId+'" failed'),console.error(p),console.error("Here are the modules that depend on it:"),console.error(p.neededBy);return}if(p.phase==="factory"){console.error('The factory function of "'+p.moduleId+'" has thrown an exception'),console.error(p),console.error("Here are the modules that depend on it:"),console.error(p.neededBy);return}}if(d=d||{},typeof d.baseUrl!="string"&&(d.baseUrl=""),typeof d.isBuild!="boolean"&&(d.isBuild=!1),typeof d.paths!="object"&&(d.paths={}),typeof d.config!="object"&&(d.config={}),typeof d.catchError>"u"&&(d.catchError=!1),typeof d.recordStats>"u"&&(d.recordStats=!1),typeof d.urlArgs!="string"&&(d.urlArgs=""),typeof d.onError!="function"&&(d.onError=f),Array.isArray(d.ignoreDuplicateModules)||(d.ignoreDuplicateModules=[]),d.baseUrl.length>0&&(W.Utilities.endsWith(d.baseUrl,"/")||(d.baseUrl+="/")),typeof d.cspNonce!="string"&&(d.cspNonce=""),typeof d.preferScriptTags>"u"&&(d.preferScriptTags=!1),d.nodeCachedData&&typeof d.nodeCachedData=="object"&&(typeof d.nodeCachedData.seed!="string"&&(d.nodeCachedData.seed="seed"),(typeof d.nodeCachedData.writeDelay!="number"||d.nodeCachedData.writeDelay<0)&&(d.nodeCachedData.writeDelay=1e3*7),!d.nodeCachedData.path||typeof d.nodeCachedData.path!="string")){const p=n(new Error("INVALID cached data configuration, 'path' MUST be set"));p.phase="configuration",d.onError(p),d.nodeCachedData=void 0}return d}static mergeConfigurationOptions(d=null,f=null){let p=W.Utilities.recursiveClone(f||{});return W.Utilities.forEachProperty(d,(c,a)=>{c==="ignoreDuplicateModules"&&typeof p.ignoreDuplicateModules<"u"?p.ignoreDuplicateModules=p.ignoreDuplicateModules.concat(a):c==="paths"&&typeof p.paths<"u"?W.Utilities.forEachProperty(a,(m,e)=>p.paths[m]=e):c==="config"&&typeof p.config<"u"?W.Utilities.forEachProperty(a,(m,e)=>p.config[m]=e):p[c]=W.Utilities.recursiveClone(a)}),i.validateConfigurationOptions(p)}}W.ConfigurationOptionsUtil=i;class x{constructor(d,f){if(this._env=d,this.options=i.mergeConfigurationOptions(f),this._createIgnoreDuplicateModulesMap(),this._createSortedPathsRules(),this.options.baseUrl===""&&this.options.nodeRequire&&this.options.nodeRequire.main&&this.options.nodeRequire.main.filename&&this._env.isNode){let p=this.options.nodeRequire.main.filename,c=Math.max(p.lastIndexOf("/"),p.lastIndexOf("\\"));this.options.baseUrl=p.substring(0,c+1)}}_createIgnoreDuplicateModulesMap(){this.ignoreDuplicateModulesMap={};for(let d=0;d{Array.isArray(f)?this.sortedPathsRules.push({from:d,to:f}):this.sortedPathsRules.push({from:d,to:[f]})}),this.sortedPathsRules.sort((d,f)=>f.from.length-d.from.length)}cloneAndMerge(d){return new x(this._env,i.mergeConfigurationOptions(d,this.options))}getOptionsLiteral(){return this.options}_applyPaths(d){let f;for(let p=0,c=this.sortedPathsRules.length;pthis.triggerCallback(m),s=>this.triggerErrorback(m,s))}triggerCallback(a){let m=this._callbackMap[a];delete this._callbackMap[a];for(let e=0;e{a.removeEventListener("load",r),a.removeEventListener("error",s)},r=o=>{h(),m()},s=o=>{h(),e(o)};a.addEventListener("load",r),a.addEventListener("error",s)}load(a,m,e,h){if(/^node\|/.test(m)){let r=a.getConfig().getOptionsLiteral(),s=f(a.getRecorder(),r.nodeRequire||W.global.nodeRequire),o=m.split("|"),u=null;try{u=s(o[1])}catch(S){h(S);return}a.enqueueDefineAnonymousModule([],()=>u),e()}else{let r=document.createElement("script");r.setAttribute("async","async"),r.setAttribute("type","text/javascript"),this.attachListeners(r,e,h);const{trustedTypesPolicy:s}=a.getConfig().getOptionsLiteral();s&&(m=s.createScriptURL(m)),r.setAttribute("src",m);const{cspNonce:o}=a.getConfig().getOptionsLiteral();o&&r.setAttribute("nonce",o),document.getElementsByTagName("head")[0].appendChild(r)}}}function x(c){const{trustedTypesPolicy:a}=c.getConfig().getOptionsLiteral();try{return(a?self.eval(a.createScript("","true")):new Function("true")).call(self),!0}catch{return!1}}class A{constructor(){this._cachedCanUseEval=null}_canUseEval(a){return this._cachedCanUseEval===null&&(this._cachedCanUseEval=x(a)),this._cachedCanUseEval}load(a,m,e,h){if(/^node\|/.test(m)){const r=a.getConfig().getOptionsLiteral(),s=f(a.getRecorder(),r.nodeRequire||W.global.nodeRequire),o=m.split("|");let u=null;try{u=s(o[1])}catch(S){h(S);return}a.enqueueDefineAnonymousModule([],function(){return u}),e()}else{const{trustedTypesPolicy:r}=a.getConfig().getOptionsLiteral();if(!(/^((http:)|(https:)|(file:))/.test(m)&&m.substring(0,self.origin.length)!==self.origin)&&this._canUseEval(a)){fetch(m).then(o=>{if(o.status!==200)throw new Error(o.statusText);return o.text()}).then(o=>{o=`${o} +//# sourceURL=${m}`,(r?self.eval(r.createScript("",o)):new Function(o)).call(self),e()}).then(void 0,h);return}try{r&&(m=r.createScriptURL(m)),importScripts(m),e()}catch(o){h(o)}}}}class d{constructor(a){this._env=a,this._didInitialize=!1,this._didPatchNodeRequire=!1}_init(a){this._didInitialize||(this._didInitialize=!0,this._fs=a("fs"),this._vm=a("vm"),this._path=a("path"),this._crypto=a("crypto"))}_initNodeRequire(a,m){const{nodeCachedData:e}=m.getConfig().getOptionsLiteral();if(!e||this._didPatchNodeRequire)return;this._didPatchNodeRequire=!0;const h=this,r=a("module");function s(o){const u=o.constructor;let S=function(N){try{return o.require(N)}finally{}};return S.resolve=function(N,P){return u._resolveFilename(N,o,!1,P)},S.resolve.paths=function(N){return u._resolveLookupPaths(N,o)},S.main=process.mainModule,S.extensions=u._extensions,S.cache=u._cache,S}r.prototype._compile=function(o,u){const S=r.wrap(o.replace(/^#!.*/,"")),L=m.getRecorder(),N=h._getCachedDataPath(e,u),P={filename:u};let E;try{const y=h._fs.readFileSync(N);E=y.slice(0,16),P.cachedData=y.slice(16),L.record(60,N)}catch{L.record(61,N)}const v=new h._vm.Script(S,P),l=v.runInThisContext(P),b=h._path.dirname(u),g=s(this),w=[this.exports,g,this,u,b,process,Me,Buffer],M=l.apply(this.exports,w);return h._handleCachedData(v,S,N,!P.cachedData,m),h._verifyCachedData(v,S,N,E,m),M}}load(a,m,e,h){const r=a.getConfig().getOptionsLiteral(),s=f(a.getRecorder(),r.nodeRequire||W.global.nodeRequire),o=r.nodeInstrumenter||function(S){return S};this._init(s),this._initNodeRequire(s,a);let u=a.getRecorder();if(/^node\|/.test(m)){let S=m.split("|"),L=null;try{L=s(S[1])}catch(N){h(N);return}a.enqueueDefineAnonymousModule([],()=>L),e()}else{m=W.Utilities.fileUriToFilePath(this._env.isWindows,m);const S=this._path.normalize(m),L=this._getElectronRendererScriptPathOrUri(S),N=!!r.nodeCachedData,P=N?this._getCachedDataPath(r.nodeCachedData,m):void 0;this._readSourceAndCachedData(S,P,u,(E,v,l,b)=>{if(E){h(E);return}let g;v.charCodeAt(0)===d._BOM?g=d._PREFIX+v.substring(1)+d._SUFFIX:g=d._PREFIX+v+d._SUFFIX,g=o(g,S);const w={filename:L,cachedData:l},M=this._createAndEvalScript(a,g,w,e,h);this._handleCachedData(M,g,P,N&&!l,a),this._verifyCachedData(M,g,P,b,a)})}}_createAndEvalScript(a,m,e,h,r){const s=a.getRecorder();s.record(31,e.filename);const o=new this._vm.Script(m,e),u=o.runInThisContext(e),S=a.getGlobalAMDDefineFunc();let L=!1;const N=function(){return L=!0,S.apply(null,arguments)};return N.amd=S.amd,u.call(W.global,a.getGlobalAMDRequireFunc(),N,e.filename,this._path.dirname(e.filename)),s.record(32,e.filename),L?h():r(new Error(`Didn't receive define call in ${e.filename}!`)),o}_getElectronRendererScriptPathOrUri(a){if(!this._env.isElectronRenderer)return a;let m=a.match(/^([a-z])\:(.*)/i);return m?`file:///${(m[1].toUpperCase()+":"+m[2]).replace(/\\/g,"/")}`:`file://${a}`}_getCachedDataPath(a,m){const e=this._crypto.createHash("md5").update(m,"utf8").update(a.seed,"utf8").update(process.arch,"").digest("hex"),h=this._path.basename(m).replace(/\.js$/,"");return this._path.join(a.path,`${h}-${e}.code`)}_handleCachedData(a,m,e,h,r){a.cachedDataRejected?this._fs.unlink(e,s=>{r.getRecorder().record(62,e),this._createAndWriteCachedData(a,m,e,r),s&&r.getConfig().onError(s)}):h&&this._createAndWriteCachedData(a,m,e,r)}_createAndWriteCachedData(a,m,e,h){let r=Math.ceil(h.getConfig().getOptionsLiteral().nodeCachedData.writeDelay*(1+Math.random())),s=-1,o=0,u;const S=()=>{setTimeout(()=>{u||(u=this._crypto.createHash("md5").update(m,"utf8").digest());const L=a.createCachedData();if(!(L.length===0||L.length===s||o>=5)){if(L.length{N&&h.getConfig().onError(N),h.getRecorder().record(63,e),S()})}},r*Math.pow(4,o++))};S()}_readSourceAndCachedData(a,m,e,h){if(!m)this._fs.readFile(a,{encoding:"utf8"},h);else{let r,s,o,u=2;const S=L=>{L?h(L):--u===0&&h(void 0,r,s,o)};this._fs.readFile(a,{encoding:"utf8"},(L,N)=>{r=N,S(L)}),this._fs.readFile(m,(L,N)=>{!L&&N&&N.length>0?(o=N.slice(0,16),s=N.slice(16),e.record(60,m)):e.record(61,m),S()})}}_verifyCachedData(a,m,e,h,r){h&&(a.cachedDataRejected||setTimeout(()=>{const s=this._crypto.createHash("md5").update(m,"utf8").digest();h.equals(s)||(r.getConfig().onError(new Error(`FAILED TO VERIFY CACHED DATA, deleting stale '${e}' now, but a RESTART IS REQUIRED`)),this._fs.unlink(e,o=>{o&&r.getConfig().onError(o)}))},Math.ceil(5e3*(1+Math.random()))))}}d._BOM=65279,d._PREFIX="(function (require, define, __filename, __dirname) { ",d._SUFFIX=` +});`;function f(c,a){if(a.__$__isRecorded)return a;const m=function(h){c.record(33,h);try{return a(h)}finally{c.record(34,h)}};return m.__$__isRecorded=!0,m}W.ensureRecordedNodeRequire=f;function p(c){return new n(c)}W.createScriptLoader=p})(ie||(ie={}));var ie;(function(W){class n{constructor(c){let a=c.lastIndexOf("/");a!==-1?this.fromModulePath=c.substr(0,a+1):this.fromModulePath=""}static _normalizeModuleId(c){let a=c,m;for(m=/\/\.\//;m.test(a);)a=a.replace(m,"/");for(a=a.replace(/^\.\//g,""),m=/\/(([^\/])|([^\/][^\/\.])|([^\/\.][^\/])|([^\/][^\/][^\/]+))\/\.\.\//;m.test(a);)a=a.replace(m,"/");return a=a.replace(/^(([^\/])|([^\/][^\/\.])|([^\/\.][^\/])|([^\/][^\/][^\/]+))\/\.\.\//,""),a}resolveModule(c){let a=c;return W.Utilities.isAbsolutePath(a)||(W.Utilities.startsWith(a,"./")||W.Utilities.startsWith(a,"../"))&&(a=n._normalizeModuleId(this.fromModulePath+a)),a}}n.ROOT=new n(""),W.ModuleIdResolver=n;class i{constructor(c,a,m,e,h,r){this.id=c,this.strId=a,this.dependencies=m,this._callback=e,this._errorback=h,this.moduleIdResolver=r,this.exports={},this.error=null,this.exportsPassedIn=!1,this.unresolvedDependenciesCount=this.dependencies.length,this._isComplete=!1}static _safeInvokeFunction(c,a){try{return{returnedValue:c.apply(W.global,a),producedError:null}}catch(m){return{returnedValue:null,producedError:m}}}static _invokeFactory(c,a,m,e){return c.shouldInvokeFactory(a)?c.shouldCatchError()?this._safeInvokeFunction(m,e):{returnedValue:m.apply(W.global,e),producedError:null}:{returnedValue:null,producedError:null}}complete(c,a,m,e){this._isComplete=!0;let h=null;if(this._callback)if(typeof this._callback=="function"){c.record(21,this.strId);let r=i._invokeFactory(a,this.strId,this._callback,m);h=r.producedError,c.record(22,this.strId),!h&&typeof r.returnedValue<"u"&&(!this.exportsPassedIn||W.Utilities.isEmpty(this.exports))&&(this.exports=r.returnedValue)}else this.exports=this._callback;if(h){let r=W.ensureError(h);r.phase="factory",r.moduleId=this.strId,r.neededBy=e(this.id),this.error=r,a.onError(r)}this.dependencies=null,this._callback=null,this._errorback=null,this.moduleIdResolver=null}onDependencyError(c){return this._isComplete=!0,this.error=c,this._errorback?(this._errorback(c),!0):!1}isComplete(){return this._isComplete}}W.Module=i;class x{constructor(){this._nextId=0,this._strModuleIdToIntModuleId=new Map,this._intModuleIdToStrModuleId=[],this.getModuleId("exports"),this.getModuleId("module"),this.getModuleId("require")}getMaxModuleId(){return this._nextId}getModuleId(c){let a=this._strModuleIdToIntModuleId.get(c);return typeof a>"u"&&(a=this._nextId++,this._strModuleIdToIntModuleId.set(c,a),this._intModuleIdToStrModuleId[a]=c),a}getStrModuleId(c){return this._intModuleIdToStrModuleId[c]}}class A{constructor(c){this.id=c}}A.EXPORTS=new A(0),A.MODULE=new A(1),A.REQUIRE=new A(2),W.RegularDependency=A;class d{constructor(c,a,m){this.id=c,this.pluginId=a,this.pluginParam=m}}W.PluginDependency=d;class f{constructor(c,a,m,e,h=0){this._env=c,this._scriptLoader=a,this._loaderAvailableTimestamp=h,this._defineFunc=m,this._requireFunc=e,this._moduleIdProvider=new x,this._config=new W.Configuration(this._env),this._hasDependencyCycle=!1,this._modules2=[],this._knownModules2=[],this._inverseDependencies2=[],this._inversePluginDependencies2=new Map,this._currentAnonymousDefineCall=null,this._recorder=null,this._buildInfoPath=[],this._buildInfoDefineStack=[],this._buildInfoDependencies=[],this._requireFunc.moduleManager=this}reset(){return new f(this._env,this._scriptLoader,this._defineFunc,this._requireFunc,this._loaderAvailableTimestamp)}getGlobalAMDDefineFunc(){return this._defineFunc}getGlobalAMDRequireFunc(){return this._requireFunc}static _findRelevantLocationInStack(c,a){let m=r=>r.replace(/\\/g,"/"),e=m(c),h=a.split(/\n/);for(let r=0;rthis._moduleIdProvider.getStrModuleId(u.id))),this._resolve(o)}_normalizeDependency(c,a){if(c==="exports")return A.EXPORTS;if(c==="module")return A.MODULE;if(c==="require")return A.REQUIRE;let m=c.indexOf("!");if(m>=0){let e=a.resolveModule(c.substr(0,m)),h=a.resolveModule(c.substr(m+1)),r=this._moduleIdProvider.getModuleId(e+"!"+h),s=this._moduleIdProvider.getModuleId(e);return new d(r,s,h)}return new A(this._moduleIdProvider.getModuleId(a.resolveModule(c)))}_normalizeDependencies(c,a){let m=[],e=0;for(let h=0,r=c.length;hthis._moduleIdProvider.getStrModuleId(r));const h=W.ensureError(a);return h.phase="loading",h.moduleId=m,h.neededBy=e,h}_onLoadError(c,a){const m=this._createLoadError(c,a);this._modules2[c]||(this._modules2[c]=new i(c,this._moduleIdProvider.getStrModuleId(c),[],()=>{},null,null));let e=[];for(let s=0,o=this._moduleIdProvider.getMaxModuleId();s0;){let s=r.shift(),o=this._modules2[s];o&&(h=o.onDependencyError(m)||h);let u=this._inverseDependencies2[s];if(u)for(let S=0,L=u.length;S0;){let s=h.shift().dependencies;if(s)for(let o=0,u=s.length;othis._relativeRequire(c,m,e,h);return a.toUrl=m=>this._config.requireToUrl(c.resolveModule(m)),a.getStats=()=>this.getLoaderEvents(),a.hasDependencyCycle=()=>this._hasDependencyCycle,a.config=(m,e=!1)=>{this.configure(m,e)},a.__$__nodeRequire=W.global.nodeRequire,a}_loadModule(c){if(this._modules2[c]||this._knownModules2[c])return;this._knownModules2[c]=!0;let a=this._moduleIdProvider.getStrModuleId(c),m=this._config.moduleIdToPaths(a),e=/^@[^\/]+\/[^\/]+$/;this._env.isNode&&(a.indexOf("/")===-1||e.test(a))&&m.push("node|"+a);let h=-1,r=s=>{if(h++,h>=m.length)this._onLoadError(c,s);else{let o=m[h],u=this.getRecorder();if(this._config.isBuild()&&o==="empty:"){this._buildInfoPath[c]=o,this.defineModule(this._moduleIdProvider.getStrModuleId(c),[],null,null,null),this._onLoad(c);return}u.record(10,o),this._scriptLoader.load(this,o,()=>{this._config.isBuild()&&(this._buildInfoPath[c]=o),u.record(11,o),this._onLoad(c)},S=>{u.record(12,o),r(S)})}};r(null)}_loadPluginDependency(c,a){if(this._modules2[a.id]||this._knownModules2[a.id])return;this._knownModules2[a.id]=!0;let m=e=>{this.defineModule(this._moduleIdProvider.getStrModuleId(a.id),[],e,null,null)};m.error=e=>{this._config.onError(this._createLoadError(a.id,e))},c.load(a.pluginParam,this._createRequire(n.ROOT),m,this._config.getOptionsLiteral())}_resolve(c){let a=c.dependencies;if(a)for(let m=0,e=a.length;mthis._moduleIdProvider.getStrModuleId(o)).join(` => +`)),c.unresolvedDependenciesCount--;continue}if(this._inverseDependencies2[h.id]=this._inverseDependencies2[h.id]||[],this._inverseDependencies2[h.id].push(c.id),h instanceof d){let s=this._modules2[h.pluginId];if(s&&s.isComplete()){this._loadPluginDependency(s.exports,h);continue}let o=this._inversePluginDependencies2.get(h.pluginId);o||(o=[],this._inversePluginDependencies2.set(h.pluginId,o)),o.push(h),this._loadModule(h.pluginId);continue}this._loadModule(h.id)}c.unresolvedDependenciesCount===0&&this._onModuleComplete(c)}_onModuleComplete(c){let a=this.getRecorder();if(c.isComplete())return;let m=c.dependencies,e=[];if(m)for(let o=0,u=m.length;othis._config.getConfigForModule(c.strId)};continue}if(S===A.REQUIRE){e[o]=this._createRequire(c.moduleIdResolver);continue}let L=this._modules2[S.id];if(L){e[o]=L.exports;continue}e[o]=null}const h=o=>(this._inverseDependencies2[o]||[]).map(u=>this._moduleIdProvider.getStrModuleId(u));c.complete(a,this._config,e,h);let r=this._inverseDependencies2[c.id];if(this._inverseDependencies2[c.id]=null,r)for(let o=0,u=r.length;o"u"&&f())})(ie||(ie={})),function(){const W=globalThis.MonacoEnvironment,n=W&&W.baseUrl?W.baseUrl:"../../../";function i(e,h){if(W?.createTrustedTypesPolicy)try{return W.createTrustedTypesPolicy(e,h)}catch(r){console.warn(r);return}try{return self.trustedTypes?.createPolicy(e,h)}catch(r){console.warn(r);return}}const x=i("amdLoader",{createScriptURL:e=>e,createScript:(e,...h)=>{const r=h.slice(0,-1).join(","),s=h.pop().toString();return`(function anonymous(${r}) { ${s} +})`}});function A(){try{return(x?globalThis.eval(x.createScript("","true")):new Function("true")).call(globalThis),!0}catch{return!1}}function d(){return new Promise((e,h)=>{if(typeof globalThis.define=="function"&&globalThis.define.amd)return e();const r=n+"vs/loader.js";if(!(/^((http:)|(https:)|(file:))/.test(r)&&r.substring(0,globalThis.origin.length)!==globalThis.origin)&&A()){fetch(r).then(o=>{if(o.status!==200)throw new Error(o.statusText);return o.text()}).then(o=>{o=`${o} +//# sourceURL=${r}`,(x?globalThis.eval(x.createScript("",o)):new Function(o)).call(globalThis),e()}).then(void 0,h);return}x?importScripts(x.createScriptURL(r)):importScripts(r),e()})}function f(){require.config({baseUrl:n,catchError:!0,trustedTypesPolicy:x,amdModulesPattern:/^vs\//})}function p(e){return d().then(()=>(f(),new Promise((h,r)=>{require([e],h,r)})))}function c(e){setTimeout(function(){const h=e.create((r,s)=>{globalThis.postMessage(r,s)});for(self.onmessage=r=>h.onmessage(r.data,r.ports);m.length>0;)self.onmessage(m.shift())},0)}typeof globalThis.define=="function"&&globalThis.define.amd&&f();let a=!0;const m=[];globalThis.onmessage=e=>{if(!a){m.push(e);return}a=!1,p(e.data).then(h=>{c(h)},h=>{console.error(h)})}}(),X(J[7],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Permutation=n.CallbackIterable=n.ArrayQueue=n.booleanComparator=n.numberComparator=n.CompareResult=void 0,n.tail=i,n.tail2=x,n.equals=A,n.removeFastWithoutKeepingOrder=d,n.binarySearch=f,n.binarySearch2=p,n.quickSelect=c,n.groupBy=a,n.groupAdjacentBy=m,n.forEachAdjacent=e,n.forEachWithNeighbors=h,n.coalesce=r,n.coalesceInPlace=s,n.isFalsyOrEmpty=o,n.isNonEmptyArray=u,n.distinct=S,n.firstOrDefault=L,n.range=N,n.arrayInsert=P,n.pushToStart=E,n.pushToEnd=v,n.pushMany=l,n.asArray=b,n.insertInto=g,n.splice=w,n.compareBy=_,n.tieBreakComparators=C,n.reverseOrder=T;function i(F,q=0){return F[F.length-(1+q)]}function x(F){if(F.length===0)throw new Error("Invalid tail call");return[F.slice(0,F.length-1),F[F.length-1]]}function A(F,q,B=(G,$)=>G===$){if(F===q)return!0;if(!F||!q||F.length!==q.length)return!1;for(let G=0,$=F.length;G<$;G++)if(!B(F[G],q[G]))return!1;return!0}function d(F,q){const B=F.length-1;qB(F[G],q))}function p(F,q){let B=0,G=F-1;for(;B<=G;){const $=(B+G)/2|0,U=q($);if(U<0)B=$+1;else if(U>0)G=$-1;else return $}return-(B+1)}function c(F,q,B){if(F=F|0,F>=q.length)throw new TypeError("invalid index");const G=q[Math.floor(q.length*Math.random())],$=[],U=[],ee=[];for(const re of q){const ue=B(re,G);ue<0?$.push(re):ue>0?U.push(re):ee.push(re)}return F<$.length?c(F,$,B):F<$.length+ee.length?ee[0]:c(F-($.length+ee.length),U,B)}function a(F,q){const B=[];let G;for(const $ of F.slice(0).sort(q))!G||q(G[0],$)!==0?(G=[$],B.push(G)):G.push($);return B}function*m(F,q){let B,G;for(const $ of F)G!==void 0&&q(G,$)?B.push($):(B&&(yield B),B=[$]),G=$;B&&(yield B)}function e(F,q){for(let B=0;B<=F.length;B++)q(B===0?void 0:F[B-1],B===F.length?void 0:F[B])}function h(F,q){for(let B=0;B!!q)}function s(F){let q=0;for(let B=0;B0}function S(F,q=B=>B){const B=new Set;return F.filter(G=>{const $=q(G);return B.has($)?!1:(B.add($),!0)})}function L(F,q){return F.length>0?F[0]:q}function N(F,q){let B=typeof q=="number"?F:0;typeof q=="number"?B=F:(B=0,q=F);const G=[];if(B<=q)for(let $=B;$q;$--)G.push($);return G}function P(F,q,B){const G=F.slice(0,q),$=F.slice(q);return G.concat(B,$)}function E(F,q){const B=F.indexOf(q);B>-1&&(F.splice(B,1),F.unshift(q))}function v(F,q){const B=F.indexOf(q);B>-1&&(F.splice(B,1),F.push(q))}function l(F,q){for(const B of q)F.push(B)}function b(F){return Array.isArray(F)?F:[F]}function g(F,q,B){const G=M(F,q),$=F.length,U=B.length;F.length=$+U;for(let ee=$-1;ee>=G;ee--)F[ee+U]=F[ee];for(let ee=0;ee0}F.isGreaterThan=G;function $(U){return U===0}F.isNeitherLessOrGreaterThan=$,F.greaterThan=1,F.lessThan=-1,F.neitherLessOrGreaterThan=0})(y||(n.CompareResult=y={}));function _(F,q){return(B,G)=>q(F(B),F(G))}function C(...F){return(q,B)=>{for(const G of F){const $=G(q,B);if(!y.isNeitherLessOrGreaterThan($))return $}return y.neitherLessOrGreaterThan}}const R=(F,q)=>F-q;n.numberComparator=R;const D=(F,q)=>(0,n.numberComparator)(F?1:0,q?1:0);n.booleanComparator=D;function T(F){return(q,B)=>-F(q,B)}class O{constructor(q){this.items=q,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(q){let B=this.firstIdx;for(;B=0&&q(this.items[B]);)B--;const G=B===this.lastIdx?null:this.items.slice(B+1,this.lastIdx+1);return this.lastIdx=B,G}peek(){if(this.length!==0)return this.items[this.firstIdx]}dequeue(){const q=this.items[this.firstIdx];return this.firstIdx++,q}takeCount(q){const B=this.items.slice(this.firstIdx,this.firstIdx+q);return this.firstIdx+=q,B}}n.ArrayQueue=O;class z{static{this.empty=new z(q=>{})}constructor(q){this.iterate=q}toArray(){const q=[];return this.iterate(B=>(q.push(B),!0)),q}filter(q){return new z(B=>this.iterate(G=>q(G)?B(G):!0))}map(q){return new z(B=>this.iterate(G=>B(q(G))))}findLast(q){let B;return this.iterate(G=>(q(G)&&(B=G),!0)),B}findLastMaxBy(q){let B,G=!0;return this.iterate($=>((G||y.isGreaterThan(q($,B)))&&(G=!1,B=$),!0)),B}}n.CallbackIterable=z;class j{constructor(q){this._indexMap=q}static createSortPermutation(q,B){const G=Array.from(q.keys()).sort(($,U)=>B(q[$],q[U]));return new j(G)}apply(q){return q.map((B,G)=>q[this._indexMap[G]])}inverse(){const q=this._indexMap.slice();for(let B=0;B=0;S--){const L=s[S];if(o(L))return S}return-1}function A(s,o){const u=d(s,o);return u===-1?void 0:s[u]}function d(s,o,u=0,S=s.length){let L=u,N=S;for(;L0&&(u=L)}return u}function m(s,o){if(s.length===0)return;let u=s[0];for(let S=1;S=0&&(u=L)}return u}function e(s,o){return a(s,(u,S)=>-o(u,S))}function h(s,o){if(s.length===0)return-1;let u=0;for(let S=1;S0&&(u=S)}return u}function r(s,o){for(const u of s){const S=o(u);if(S!==void 0)return S}}}),X(J[39],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.CachedFunction=n.LRUCachedFunction=void 0,n.identity=i;function i(d){return d}class x{constructor(f,p){this.lastCache=void 0,this.lastArgKey=void 0,typeof f=="function"?(this._fn=f,this._computeKey=i):(this._fn=p,this._computeKey=f.getCacheKey)}get(f){const p=this._computeKey(f);return this.lastArgKey!==p&&(this.lastArgKey=p,this.lastCache=this._fn(f)),this.lastCache}}n.LRUCachedFunction=x;class A{get cachedValues(){return this._map}constructor(f,p){this._map=new Map,this._map2=new Map,typeof f=="function"?(this._fn=f,this._computeKey=i):(this._fn=p,this._computeKey=f.getCacheKey)}get(f){const p=this._computeKey(f);if(this._map2.has(p))return this._map2.get(p);const c=this._fn(f);return this._map.set(f,c),this._map2.set(p,c),c}}n.CachedFunction=A}),X(J[40],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Color=n.HSVA=n.HSLA=n.RGBA=void 0;function i(p,c){const a=Math.pow(10,c);return Math.round(p*a)/a}class x{constructor(c,a,m,e=1){this._rgbaBrand=void 0,this.r=Math.min(255,Math.max(0,c))|0,this.g=Math.min(255,Math.max(0,a))|0,this.b=Math.min(255,Math.max(0,m))|0,this.a=i(Math.max(Math.min(1,e),0),3)}static equals(c,a){return c.r===a.r&&c.g===a.g&&c.b===a.b&&c.a===a.a}}n.RGBA=x;class A{constructor(c,a,m,e){this._hslaBrand=void 0,this.h=Math.max(Math.min(360,c),0)|0,this.s=i(Math.max(Math.min(1,a),0),3),this.l=i(Math.max(Math.min(1,m),0),3),this.a=i(Math.max(Math.min(1,e),0),3)}static equals(c,a){return c.h===a.h&&c.s===a.s&&c.l===a.l&&c.a===a.a}static fromRGBA(c){const a=c.r/255,m=c.g/255,e=c.b/255,h=c.a,r=Math.max(a,m,e),s=Math.min(a,m,e);let o=0,u=0;const S=(s+r)/2,L=r-s;if(L>0){switch(u=Math.min(S<=.5?L/(2*S):L/(2-2*S),1),r){case a:o=(m-e)/L+(m1&&(m-=1),m<1/6?c+(a-c)*6*m:m<1/2?a:m<2/3?c+(a-c)*(2/3-m)*6:c}static toRGBA(c){const a=c.h/360,{s:m,l:e,a:h}=c;let r,s,o;if(m===0)r=s=o=e;else{const u=e<.5?e*(1+m):e+m-e*m,S=2*e-u;r=A._hue2rgb(S,u,a+1/3),s=A._hue2rgb(S,u,a),o=A._hue2rgb(S,u,a-1/3)}return new x(Math.round(r*255),Math.round(s*255),Math.round(o*255),h)}}n.HSLA=A;class d{constructor(c,a,m,e){this._hsvaBrand=void 0,this.h=Math.max(Math.min(360,c),0)|0,this.s=i(Math.max(Math.min(1,a),0),3),this.v=i(Math.max(Math.min(1,m),0),3),this.a=i(Math.max(Math.min(1,e),0),3)}static equals(c,a){return c.h===a.h&&c.s===a.s&&c.v===a.v&&c.a===a.a}static fromRGBA(c){const a=c.r/255,m=c.g/255,e=c.b/255,h=Math.max(a,m,e),r=Math.min(a,m,e),s=h-r,o=h===0?0:s/h;let u;return s===0?u=0:h===a?u=((m-e)/s%6+6)%6:h===m?u=(e-a)/s+2:u=(a-m)/s+4,new d(Math.round(u*60),o,h,c.a)}static toRGBA(c){const{h:a,s:m,v:e,a:h}=c,r=e*m,s=r*(1-Math.abs(a/60%2-1)),o=e-r;let[u,S,L]=[0,0,0];return a<60?(u=r,S=s):a<120?(u=s,S=r):a<180?(S=r,L=s):a<240?(S=s,L=r):a<300?(u=s,L=r):a<=360&&(u=r,L=s),u=Math.round((u+o)*255),S=Math.round((S+o)*255),L=Math.round((L+o)*255),new x(u,S,L,h)}}n.HSVA=d;class f{static fromHex(c){return f.Format.CSS.parseHex(c)||f.red}static equals(c,a){return!c&&!a?!0:!c||!a?!1:c.equals(a)}get hsla(){return this._hsla?this._hsla:A.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:d.fromRGBA(this.rgba)}constructor(c){if(c)if(c instanceof x)this.rgba=c;else if(c instanceof A)this._hsla=c,this.rgba=A.toRGBA(c);else if(c instanceof d)this._hsva=c,this.rgba=d.toRGBA(c);else throw new Error("Invalid color ctor argument");else throw new Error("Color needs a value")}equals(c){return!!c&&x.equals(this.rgba,c.rgba)&&A.equals(this.hsla,c.hsla)&&d.equals(this.hsva,c.hsva)}getRelativeLuminance(){const c=f._relativeLuminanceForComponent(this.rgba.r),a=f._relativeLuminanceForComponent(this.rgba.g),m=f._relativeLuminanceForComponent(this.rgba.b),e=.2126*c+.7152*a+.0722*m;return i(e,4)}static _relativeLuminanceForComponent(c){const a=c/255;return a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4)}isLighter(){return(this.rgba.r*299+this.rgba.g*587+this.rgba.b*114)/1e3>=128}isLighterThan(c){const a=this.getRelativeLuminance(),m=c.getRelativeLuminance();return a>m}isDarkerThan(c){const a=this.getRelativeLuminance(),m=c.getRelativeLuminance();return a{throw u.stack?r.isErrorNoTelemetry(u)?new r(u.message+` + +`+u.stack):new Error(u.message+` + +`+u.stack):u},0)}}emit(u){this.listeners.forEach(S=>{S(u)})}onUnexpectedError(u){this.unexpectedErrorHandler(u),this.emit(u)}onUnexpectedExternalError(u){this.unexpectedErrorHandler(u)}}n.ErrorHandler=i,n.errorHandler=new i;function x(o){p(o)||n.errorHandler.onUnexpectedError(o)}function A(o){p(o)||n.errorHandler.onUnexpectedExternalError(o)}function d(o){if(o instanceof Error){const{name:u,message:S}=o,L=o.stacktrace||o.stack;return{$isError:!0,name:u,message:S,stack:L,noTelemetry:r.isErrorNoTelemetry(o)}}return o}const f="Canceled";function p(o){return o instanceof c?!0:o instanceof Error&&o.name===f&&o.message===f}class c extends Error{constructor(){super(f),this.name=this.message}}n.CancellationError=c;function a(){const o=new Error(f);return o.name=o.message,o}function m(o){return o?new Error(`Illegal argument: ${o}`):new Error("Illegal argument")}function e(o){return o?new Error(`Illegal state: ${o}`):new Error("Illegal state")}class h extends Error{constructor(u){super("NotSupported"),u&&(this.message=u)}}n.NotSupportedError=h;class r extends Error{constructor(u){super(u),this.name="CodeExpectedError"}static fromError(u){if(u instanceof r)return u;const S=new r;return S.message=u.message,S.stack=u.stack,S}static isErrorNoTelemetry(u){return u.name==="CodeExpectedError"}}n.ErrorNoTelemetry=r;class s extends Error{constructor(u){super(u||"An unexpected bug occurred."),Object.setPrototypeOf(this,s.prototype)}}n.BugIndicatingError=s}),X(J[12],Z([0,1,3]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.ok=x,n.assertNever=A,n.softAssert=d,n.assertFn=f,n.checkAdjacentItems=p;function x(c,a){if(!c)throw new Error(a?`Assertion failed (${a})`:"Assertion Failed")}function A(c,a="Unreachable"){throw new Error(a)}function d(c){c||(0,i.onUnexpectedError)(new i.BugIndicatingError("Soft Assertion Failed"))}function f(c){if(!c()){debugger;c(),(0,i.onUnexpectedError)(new i.BugIndicatingError("Assertion Failed"))}}function p(c,a){let m=0;for(;m=0;b--)yield l[b]}x.reverse=m;function e(l){return!l||l[Symbol.iterator]().next().done===!0}x.isEmpty=e;function h(l){return l[Symbol.iterator]().next().value}x.first=h;function r(l,b){let g=0;for(const w of l)if(b(w,g++))return!0;return!1}x.some=r;function s(l,b){for(const g of l)if(b(g))return g}x.find=s;function*o(l,b){for(const g of l)b(g)&&(yield g)}x.filter=o;function*u(l,b){let g=0;for(const w of l)yield b(w,g++)}x.map=u;function*S(l,b){let g=0;for(const w of l)yield*b(w,g++)}x.flatMap=S;function*L(...l){for(const b of l)yield*b}x.concat=L;function N(l,b,g){let w=g;for(const M of l)w=b(w,M);return w}x.reduce=N;function*P(l,b,g=l.length){for(b<0&&(b+=l.length),g<0?g+=l.length:g>l.length&&(g=l.length);b=98&&L<=113)return null;switch(L){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return x.keyCodeToStr(L)}e.toElectronAccelerator=S})(a||(n.KeyCodeUtils=a={}));function m(e,h){const r=(h&65535)<<16>>>0;return(e|r)>>>0}}),X(J[43],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Lazy=void 0;class i{constructor(A){this.executor=A,this._didRun=!1}get value(){if(!this._didRun)try{this._value=this.executor()}catch(A){this._error=A}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}get rawValue(){return this._value}}n.Lazy=i}),X(J[8],Z([0,1,18,19]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DisposableMap=n.ImmortalReference=n.RefCountedDisposable=n.MutableDisposable=n.Disposable=n.DisposableStore=void 0,n.setDisposableTracker=f,n.trackDisposable=p,n.markAsDisposed=c,n.markAsSingleton=e,n.isDisposable=h,n.dispose=r,n.combinedDisposable=s,n.toDisposable=o;const A=!1;let d=null;function f(v){d=v}if(A){const v="__is_disposable_tracked__";f(new class{trackDisposable(l){const b=new Error("Potentially leaked disposable").stack;setTimeout(()=>{l[v]||console.log(b)},3e3)}setParent(l,b){if(l&&l!==S.None)try{l[v]=!0}catch{}}markAsDisposed(l){if(l&&l!==S.None)try{l[v]=!0}catch{}}markAsSingleton(l){}})}function p(v){return d?.trackDisposable(v),v}function c(v){d?.markAsDisposed(v)}function a(v,l){d?.setParent(v,l)}function m(v,l){if(d)for(const b of v)d.setParent(b,l)}function e(v){return d?.markAsSingleton(v),v}function h(v){return typeof v=="object"&&v!==null&&typeof v.dispose=="function"&&v.dispose.length===0}function r(v){if(x.Iterable.is(v)){const l=[];for(const b of v)if(b)try{b.dispose()}catch(g){l.push(g)}if(l.length===1)throw l[0];if(l.length>1)throw new AggregateError(l,"Encountered errors while disposing of store");return Array.isArray(v)?[]:v}else if(v)return v.dispose(),v}function s(...v){const l=o(()=>r(v));return m(v,l),l}function o(v){const l=p({dispose:(0,i.createSingleCallFunction)(()=>{c(l),v()})});return l}class u{static{this.DISABLE_DISPOSED_WARNING=!1}constructor(){this._toDispose=new Set,this._isDisposed=!1,p(this)}dispose(){this._isDisposed||(c(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{r(this._toDispose)}finally{this._toDispose.clear()}}add(l){if(!l)return l;if(l===this)throw new Error("Cannot register a disposable on itself!");return a(l,this),this._isDisposed?u.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(l),l}deleteAndLeak(l){l&&this._toDispose.has(l)&&(this._toDispose.delete(l),a(l,null))}}n.DisposableStore=u;class S{static{this.None=Object.freeze({dispose(){}})}constructor(){this._store=new u,p(this),a(this._store,this)}dispose(){c(this),this._store.dispose()}_register(l){if(l===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(l)}}n.Disposable=S;class L{constructor(){this._isDisposed=!1,p(this)}get value(){return this._isDisposed?void 0:this._value}set value(l){this._isDisposed||l===this._value||(this._value?.dispose(),l&&a(l,this),this._value=l)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,c(this),this._value?.dispose(),this._value=void 0}}n.MutableDisposable=L;class N{constructor(l){this._disposable=l,this._counter=1}acquire(){return this._counter++,this}release(){return--this._counter===0&&this._disposable.dispose(),this}}n.RefCountedDisposable=N;class P{constructor(l){this.object=l}dispose(){}}n.ImmortalReference=P;class E{constructor(){this._store=new Map,this._isDisposed=!1,p(this)}dispose(){c(this),this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{r(this._store.values())}finally{this._store.clear()}}get(l){return this._store.get(l)}set(l,b,g=!1){this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),g||this._store.get(l)?.dispose(),this._store.set(l,b)}deleteAndDispose(l){this._store.get(l)?.dispose(),this._store.delete(l)}[Symbol.iterator](){return this._store[Symbol.iterator]()}}n.DisposableMap=E}),X(J[20],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.LinkedList=void 0;class i{static{this.Undefined=new i(void 0)}constructor(d){this.element=d,this.next=i.Undefined,this.prev=i.Undefined}}class x{constructor(){this._first=i.Undefined,this._last=i.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===i.Undefined}clear(){let d=this._first;for(;d!==i.Undefined;){const f=d.next;d.prev=i.Undefined,d.next=i.Undefined,d=f}this._first=i.Undefined,this._last=i.Undefined,this._size=0}unshift(d){return this._insert(d,!1)}push(d){return this._insert(d,!0)}_insert(d,f){const p=new i(d);if(this._first===i.Undefined)this._first=p,this._last=p;else if(f){const a=this._last;this._last=p,p.prev=a,a.next=p}else{const a=this._first;this._first=p,p.next=a,a.prev=p}this._size+=1;let c=!1;return()=>{c||(c=!0,this._remove(p))}}shift(){if(this._first!==i.Undefined){const d=this._first.element;return this._remove(this._first),d}}pop(){if(this._last!==i.Undefined){const d=this._last.element;return this._remove(this._last),d}}_remove(d){if(d.prev!==i.Undefined&&d.next!==i.Undefined){const f=d.prev;f.next=d.next,d.next.prev=f}else d.prev===i.Undefined&&d.next===i.Undefined?(this._first=i.Undefined,this._last=i.Undefined):d.next===i.Undefined?(this._last=this._last.prev,this._last.next=i.Undefined):d.prev===i.Undefined&&(this._first=this._first.next,this._first.prev=i.Undefined);this._size-=1}*[Symbol.iterator](){let d=this._first;for(;d!==i.Undefined;)yield d.element,d=d.next}}n.LinkedList=x}),X(J[21],Z([0,1]),function(W,n){"use strict";var i,x;Object.defineProperty(n,"__esModule",{value:!0}),n.SetMap=n.BidirectionalMap=n.LRUCache=n.LinkedMap=n.ResourceMap=void 0;class A{constructor(r,s){this.uri=r,this.value=s}}function d(h){return Array.isArray(h)}class f{static{this.defaultToKey=r=>r.toString()}constructor(r,s){if(this[i]="ResourceMap",r instanceof f)this.map=new Map(r.map),this.toKey=s??f.defaultToKey;else if(d(r)){this.map=new Map,this.toKey=s??f.defaultToKey;for(const[o,u]of r)this.set(o,u)}else this.map=new Map,this.toKey=r??f.defaultToKey}set(r,s){return this.map.set(this.toKey(r),new A(r,s)),this}get(r){return this.map.get(this.toKey(r))?.value}has(r){return this.map.has(this.toKey(r))}get size(){return this.map.size}clear(){this.map.clear()}delete(r){return this.map.delete(this.toKey(r))}forEach(r,s){typeof s<"u"&&(r=r.bind(s));for(const[o,u]of this.map)r(u.value,u.uri,this)}*values(){for(const r of this.map.values())yield r.value}*keys(){for(const r of this.map.values())yield r.uri}*entries(){for(const r of this.map.values())yield[r.uri,r.value]}*[(i=Symbol.toStringTag,Symbol.iterator)](){for(const[,r]of this.map)yield[r.uri,r.value]}}n.ResourceMap=f;class p{constructor(){this[x]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(r){return this._map.has(r)}get(r,s=0){const o=this._map.get(r);if(o)return s!==0&&this.touch(o,s),o.value}set(r,s,o=0){let u=this._map.get(r);if(u)u.value=s,o!==0&&this.touch(u,o);else{switch(u={key:r,value:s,next:void 0,previous:void 0},o){case 0:this.addItemLast(u);break;case 1:this.addItemFirst(u);break;case 2:this.addItemLast(u);break;default:this.addItemLast(u);break}this._map.set(r,u),this._size++}return this}delete(r){return!!this.remove(r)}remove(r){const s=this._map.get(r);if(s)return this._map.delete(r),this.removeItem(s),this._size--,s.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const r=this._head;return this._map.delete(r.key),this.removeItem(r),this._size--,r.value}forEach(r,s){const o=this._state;let u=this._head;for(;u;){if(s?r.bind(s)(u.value,u.key,this):r(u.value,u.key,this),this._state!==o)throw new Error("LinkedMap got modified during iteration.");u=u.next}}keys(){const r=this,s=this._state;let o=this._head;const u={[Symbol.iterator](){return u},next(){if(r._state!==s)throw new Error("LinkedMap got modified during iteration.");if(o){const S={value:o.key,done:!1};return o=o.next,S}else return{value:void 0,done:!0}}};return u}values(){const r=this,s=this._state;let o=this._head;const u={[Symbol.iterator](){return u},next(){if(r._state!==s)throw new Error("LinkedMap got modified during iteration.");if(o){const S={value:o.value,done:!1};return o=o.next,S}else return{value:void 0,done:!0}}};return u}entries(){const r=this,s=this._state;let o=this._head;const u={[Symbol.iterator](){return u},next(){if(r._state!==s)throw new Error("LinkedMap got modified during iteration.");if(o){const S={value:[o.key,o.value],done:!1};return o=o.next,S}else return{value:void 0,done:!0}}};return u}[(x=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(r){if(r>=this.size)return;if(r===0){this.clear();return}let s=this._head,o=this.size;for(;s&&o>r;)this._map.delete(s.key),s=s.next,o--;this._head=s,this._size=o,s&&(s.previous=void 0),this._state++}trimNew(r){if(r>=this.size)return;if(r===0){this.clear();return}let s=this._tail,o=this.size;for(;s&&o>r;)this._map.delete(s.key),s=s.previous,o--;this._tail=s,this._size=o,s&&(s.next=void 0),this._state++}addItemFirst(r){if(!this._head&&!this._tail)this._tail=r;else if(this._head)r.next=this._head,this._head.previous=r;else throw new Error("Invalid list");this._head=r,this._state++}addItemLast(r){if(!this._head&&!this._tail)this._head=r;else if(this._tail)r.previous=this._tail,this._tail.next=r;else throw new Error("Invalid list");this._tail=r,this._state++}removeItem(r){if(r===this._head&&r===this._tail)this._head=void 0,this._tail=void 0;else if(r===this._head){if(!r.next)throw new Error("Invalid list");r.next.previous=void 0,this._head=r.next}else if(r===this._tail){if(!r.previous)throw new Error("Invalid list");r.previous.next=void 0,this._tail=r.previous}else{const s=r.next,o=r.previous;if(!s||!o)throw new Error("Invalid list");s.previous=o,o.next=s}r.next=void 0,r.previous=void 0,this._state++}touch(r,s){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(s!==1&&s!==2)){if(s===1){if(r===this._head)return;const o=r.next,u=r.previous;r===this._tail?(u.next=void 0,this._tail=u):(o.previous=u,u.next=o),r.previous=void 0,r.next=this._head,this._head.previous=r,this._head=r,this._state++}else if(s===2){if(r===this._tail)return;const o=r.next,u=r.previous;r===this._head?(o.previous=void 0,this._head=o):(o.previous=u,u.next=o),r.next=void 0,r.previous=this._tail,this._tail.next=r,this._tail=r,this._state++}}}toJSON(){const r=[];return this.forEach((s,o)=>{r.push([o,s])}),r}fromJSON(r){this.clear();for(const[s,o]of r)this.set(s,o)}}n.LinkedMap=p;class c extends p{constructor(r,s=1){super(),this._limit=r,this._ratio=Math.min(Math.max(0,s),1)}get limit(){return this._limit}set limit(r){this._limit=r,this.checkTrim()}get(r,s=2){return super.get(r,s)}peek(r){return super.get(r,0)}set(r,s){return super.set(r,s,2),this}checkTrim(){this.size>this._limit&&this.trim(Math.round(this._limit*this._ratio))}}class a extends c{constructor(r,s=1){super(r,s)}trim(r){this.trimOld(r)}set(r,s){return super.set(r,s),this.checkTrim(),this}}n.LRUCache=a;class m{constructor(r){if(this._m1=new Map,this._m2=new Map,r)for(const[s,o]of r)this.set(s,o)}clear(){this._m1.clear(),this._m2.clear()}set(r,s){this._m1.set(r,s),this._m2.set(s,r)}get(r){return this._m1.get(r)}getKey(r){return this._m2.get(r)}delete(r){const s=this._m1.get(r);return s===void 0?!1:(this._m1.delete(r),this._m2.delete(s),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}}n.BidirectionalMap=m;class e{constructor(){this.map=new Map}add(r,s){let o=this.map.get(r);o||(o=new Set,this.map.set(r,o)),o.add(s)}delete(r,s){const o=this.map.get(r);o&&(o.delete(s),o.size===0&&this.map.delete(r))}forEach(r,s){const o=this.map.get(r);o&&o.forEach(s)}get(r){const s=this.map.get(r);return s||new Set}}n.SetMap=e}),X(J[22],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.StopWatch=void 0;const i=globalThis.performance&&typeof globalThis.performance.now=="function";class x{static create(d){return new x(d)}constructor(d){this._now=i&&d===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}}n.StopWatch=x}),X(J[9],Z([0,1,3,18,8,20,22]),function(W,n,i,x,A,d,f){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Relay=n.EventBufferer=n.EventMultiplexer=n.MicrotaskEmitter=n.DebounceEmitter=n.PauseableEmitter=n.createEventDeliveryQueue=n.Emitter=n.ListenerRefusalError=n.ListenerLeakError=n.EventProfiling=n.Event=void 0;const p=!1,c=!1,a=!1;var m;(function(C){C.None=()=>A.Disposable.None;function R(K){if(a){const{onDidAddListener:Q}=K,k=s.create();let I=0;K.onDidAddListener=()=>{++I===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),k.print()),Q?.()}}}function D(K,Q){return ee(K,()=>{},0,void 0,!0,void 0,Q)}C.defer=D;function T(K){return(Q,k=null,I)=>{let V=!1,H;return H=K(Y=>{if(!V)return H?H.dispose():V=!0,Q.call(k,Y)},null,I),V&&H.dispose(),H}}C.once=T;function O(K,Q){return C.once(C.filter(K,Q))}C.onceIf=O;function z(K,Q,k){return $((I,V=null,H)=>K(Y=>I.call(V,Q(Y)),null,H),k)}C.map=z;function j(K,Q,k){return $((I,V=null,H)=>K(Y=>{Q(Y),I.call(V,Y)},null,H),k)}C.forEach=j;function F(K,Q,k){return $((I,V=null,H)=>K(Y=>Q(Y)&&I.call(V,Y),null,H),k)}C.filter=F;function q(K){return K}C.signal=q;function B(...K){return(Q,k=null,I)=>{const V=(0,A.combinedDisposable)(...K.map(H=>H(Y=>Q.call(k,Y))));return U(V,I)}}C.any=B;function G(K,Q,k,I){let V=k;return z(K,H=>(V=Q(V,H),V),I)}C.reduce=G;function $(K,Q){let k;const I={onWillAddFirstListener(){k=K(V.fire,V)},onDidRemoveLastListener(){k?.dispose()}};Q||R(I);const V=new E(I);return Q?.add(V),V.event}function U(K,Q){return Q instanceof Array?Q.push(K):Q&&Q.add(K),K}function ee(K,Q,k=100,I=!1,V=!1,H,Y){let te,ne,ae,le=0,oe;const se={leakWarningThreshold:H,onWillAddFirstListener(){te=K(he=>{le++,ne=Q(ne,he),I&&!ae&&(ce.fire(ne),ne=void 0),oe=()=>{const be=ne;ne=void 0,ae=void 0,(!I||le>1)&&ce.fire(be),le=0},typeof k=="number"?(clearTimeout(ae),ae=setTimeout(oe,k)):ae===void 0&&(ae=0,queueMicrotask(oe))})},onWillRemoveListener(){V&&le>0&&oe?.()},onDidRemoveLastListener(){oe=void 0,te.dispose()}};Y||R(se);const ce=new E(se);return Y?.add(ce),ce.event}C.debounce=ee;function re(K,Q=0,k){return C.debounce(K,(I,V)=>I?(I.push(V),I):[V],Q,void 0,!0,void 0,k)}C.accumulate=re;function ue(K,Q=(I,V)=>I===V,k){let I=!0,V;return F(K,H=>{const Y=I||!Q(H,V);return I=!1,V=H,Y},k)}C.latch=ue;function de(K,Q,k){return[C.filter(K,Q,k),C.filter(K,I=>!Q(I),k)]}C.split=de;function ge(K,Q=!1,k=[],I){let V=k.slice(),H=K(ne=>{V?V.push(ne):te.fire(ne)});I&&I.add(H);const Y=()=>{V?.forEach(ne=>te.fire(ne)),V=null},te=new E({onWillAddFirstListener(){H||(H=K(ne=>te.fire(ne)),I&&I.add(H))},onDidAddFirstListener(){V&&(Q?setTimeout(Y):Y())},onDidRemoveLastListener(){H&&H.dispose(),H=null}});return I&&I.add(te),te.event}C.buffer=ge;function t(K,Q){return(I,V,H)=>{const Y=Q(new pe);return K(function(te){const ne=Y.evaluate(te);ne!==me&&I.call(V,ne)},void 0,H)}}C.chain=t;const me=Symbol("HaltChainable");class pe{constructor(){this.steps=[]}map(Q){return this.steps.push(Q),this}forEach(Q){return this.steps.push(k=>(Q(k),k)),this}filter(Q){return this.steps.push(k=>Q(k)?k:me),this}reduce(Q,k){let I=k;return this.steps.push(V=>(I=Q(I,V),I)),this}latch(Q=(k,I)=>k===I){let k=!0,I;return this.steps.push(V=>{const H=k||!Q(V,I);return k=!1,I=V,H?V:me}),this}evaluate(Q){for(const k of this.steps)if(Q=k(Q),Q===me)break;return Q}}function Le(K,Q,k=I=>I){const I=(...te)=>Y.fire(k(...te)),V=()=>K.on(Q,I),H=()=>K.removeListener(Q,I),Y=new E({onWillAddFirstListener:V,onDidRemoveLastListener:H});return Y.event}C.fromNodeEventEmitter=Le;function we(K,Q,k=I=>I){const I=(...te)=>Y.fire(k(...te)),V=()=>K.addEventListener(Q,I),H=()=>K.removeEventListener(Q,I),Y=new E({onWillAddFirstListener:V,onDidRemoveLastListener:H});return Y.event}C.fromDOMEventEmitter=we;function Ce(K){return new Promise(Q=>T(K)(Q))}C.toPromise=Ce;function ve(K){const Q=new E;return K.then(k=>{Q.fire(k)},()=>{Q.fire(void 0)}).finally(()=>{Q.dispose()}),Q.event}C.fromPromise=ve;function fe(K,Q){return K(k=>Q.fire(k))}C.forward=fe;function Se(K,Q,k){return Q(k),K(I=>Q(I))}C.runAndSubscribe=Se;class _e{constructor(Q,k){this._observable=Q,this._counter=0,this._hasChanged=!1;const I={onWillAddFirstListener:()=>{Q.addObserver(this),this._observable.reportChanges()},onDidRemoveLastListener:()=>{Q.removeObserver(this)}};k||R(I),this.emitter=new E(I),k&&k.add(this.emitter)}beginUpdate(Q){this._counter++}handlePossibleChange(Q){}handleChange(Q,k){this._hasChanged=!0}endUpdate(Q){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function ye(K,Q){return new _e(K,Q).emitter.event}C.fromObservable=ye;function Ee(K){return(Q,k,I)=>{let V=0,H=!1;const Y={beginUpdate(){V++},endUpdate(){V--,V===0&&(K.reportChanges(),H&&(H=!1,Q.call(k)))},handlePossibleChange(){},handleChange(){H=!0}};K.addObserver(Y),K.reportChanges();const te={dispose(){K.removeObserver(Y)}};return I instanceof A.DisposableStore?I.add(te):Array.isArray(I)&&I.push(te),te}}C.fromObservableLight=Ee})(m||(n.Event=m={}));class e{static{this.all=new Set}static{this._idPool=0}constructor(R){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${R}_${e._idPool++}`,e.all.add(this)}start(R){this._stopWatch=new f.StopWatch,this.listenerCount=R}stop(){if(this._stopWatch){const R=this._stopWatch.elapsed();this.durations.push(R),this.elapsedOverall+=R,this.invocationCount+=1,this._stopWatch=void 0}}}n.EventProfiling=e;let h=-1;class r{static{this._idPool=1}constructor(R,D,T=(r._idPool++).toString(16).padStart(3,"0")){this._errorHandler=R,this.threshold=D,this.name=T,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(R,D){const T=this.threshold;if(T<=0||D{const z=this._stacks.get(R.value)||0;this._stacks.set(R.value,z-1)}}getMostFrequentStack(){if(!this._stacks)return;let R,D=0;for(const[T,O]of this._stacks)(!R||D{if(C instanceof S)R(C);else for(let D=0;D{C.length!==0&&(console.warn("[LEAKING LISTENERS] GC'ed these listeners that were NOT yet disposed:"),console.warn(C.join(` +`)),C.length=0)},3e3),P=new FinalizationRegistry(R=>{typeof R=="string"&&C.push(R)})}class E{constructor(R){this._size=0,this._options=R,this._leakageMon=h>0||this._options?.leakWarningThreshold?new r(R?.onListenerError??i.onUnexpectedError,this._options?.leakWarningThreshold??h):void 0,this._perfMon=this._options?._profName?new e(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(c){const R=this._listeners;queueMicrotask(()=>{N(R,D=>D.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??=(R,D,T)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){const q=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(q);const B=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],G=new u(`${q}. HINT: Stack shows most frequent listener (${B[1]}-times)`,B[0]);return(this._options?.onListenerError||i.onUnexpectedError)(G),A.Disposable.None}if(this._disposed)return A.Disposable.None;D&&(R=R.bind(D));const O=new S(R);let z,j;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(O.stack=s.create(),z=this._leakageMon.check(O.stack,this._size+1)),c&&(O.stack=j??s.create()),this._listeners?this._listeners instanceof S?(this._deliveryQueue??=new l,this._listeners=[this._listeners,O]):this._listeners.push(O):(this._options?.onWillAddFirstListener?.(this),this._listeners=O,this._options?.onDidAddFirstListener?.(this)),this._size++;const F=(0,A.toDisposable)(()=>{P?.unregister(F),z?.(),this._removeListener(O)});if(T instanceof A.DisposableStore?T.add(F):Array.isArray(T)&&T.push(F),P){const q=new Error().stack.split(` +`).slice(2,3).join(` +`).trim(),B=/(file:|vscode-file:\/\/vscode-app)?(\/[^:]*:\d+:\d+)/.exec(q);P.register(F,B?.[2]??q,F)}return F},this._event}_removeListener(R){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}const D=this._listeners,T=D.indexOf(R);if(T===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,D[T]=void 0;const O=this._deliveryQueue.current===this;if(this._size*L<=D.length){let z=0;for(let j=0;j0}}n.Emitter=E;const v=()=>new l;n.createEventDeliveryQueue=v;class l{constructor(){this.i=-1,this.end=0}enqueue(R,D,T){this.i=0,this.end=T,this.current=R,this.value=D}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class b extends E{constructor(R){super(R),this._isPaused=0,this._eventQueue=new d.LinkedList,this._mergeFn=R?.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){const R=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(R))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(R){this._size&&(this._isPaused!==0?this._eventQueue.push(R):super.fire(R))}}n.PauseableEmitter=b;class g extends b{constructor(R){super(R),this._delay=R.delay??100}fire(R){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(R)}}n.DebounceEmitter=g;class w extends E{constructor(R){super(R),this._queuedEvents=[],this._mergeFn=R?.merge}fire(R){this.hasListeners()&&(this._queuedEvents.push(R),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(D=>super.fire(D)),this._queuedEvents=[]}))}}n.MicrotaskEmitter=w;class M{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new E({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(R){const D={event:R,listener:null};this.events.push(D),this.hasListeners&&this.hook(D);const T=()=>{this.hasListeners&&this.unhook(D);const O=this.events.indexOf(D);this.events.splice(O,1)};return(0,A.toDisposable)((0,x.createSingleCallFunction)(T))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(R=>this.hook(R))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(R=>this.unhook(R))}hook(R){R.listener=R.event(D=>this.emitter.fire(D))}unhook(R){R.listener?.dispose(),R.listener=null}dispose(){this.emitter.dispose();for(const R of this.events)R.listener?.dispose();this.events=[]}}n.EventMultiplexer=M;class y{constructor(){this.data=[]}wrapEvent(R,D,T){return(O,z,j)=>R(F=>{const q=this.data[this.data.length-1];if(!D){q?q.buffers.push(()=>O.call(z,F)):O.call(z,F);return}const B=q;if(!B){O.call(z,D(T,F));return}B.items??=[],B.items.push(F),B.buffers.length===0&&q.buffers.push(()=>{B.reducedResult??=T?B.items.reduce(D,T):B.items.reduce(D),O.call(z,B.reducedResult)})},void 0,j)}bufferEvents(R){const D={buffers:new Array};this.data.push(D);const T=R();return this.data.pop(),D.buffers.forEach(O=>O()),T}}n.EventBufferer=y;class _{constructor(){this.listening=!1,this.inputEvent=m.None,this.inputEventListener=A.Disposable.None,this.emitter=new E({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(R){this.inputEvent=R,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=R(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}n.Relay=_}),X(J[23],Z([0,1,9]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.CancellationTokenSource=n.CancellationToken=void 0,n.cancelOnDispose=p;const x=Object.freeze(function(c,a){const m=setTimeout(c.bind(a),0);return{dispose(){clearTimeout(m)}}});var A;(function(c){function a(m){return m===c.None||m===c.Cancelled||m instanceof d?!0:!m||typeof m!="object"?!1:typeof m.isCancellationRequested=="boolean"&&typeof m.onCancellationRequested=="function"}c.isCancellationToken=a,c.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:i.Event.None}),c.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:x})})(A||(n.CancellationToken=A={}));class d{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?x:(this._emitter||(this._emitter=new i.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}class f{constructor(a){this._token=void 0,this._parentListener=void 0,this._parentListener=a&&a.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new d),this._token}cancel(){this._token?this._token instanceof d&&this._token.cancel():this._token=A.Cancelled}dispose(a=!1){a&&this.cancel(),this._parentListener?.dispose(),this._token?this._token instanceof d&&this._token.dispose():this._token=A.None}}n.CancellationTokenSource=f;function p(c){const a=new f;return c.add({dispose(){a.cancel()}}),a.token}}),X(J[6],Z([0,1,39,43]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.InvisibleCharacters=n.AmbiguousCharacters=n.noBreakWhitespace=n.UTF8_BOM_CHARACTER=n.UNUSUAL_LINE_TERMINATORS=n.GraphemeIterator=n.CodePointIterator=void 0,n.isFalsyOrWhitespace=A,n.format=f,n.htmlAttributeEncodeValue=p,n.escape=c,n.escapeRegExpCharacters=a,n.trim=m,n.ltrim=e,n.rtrim=h,n.convertSimple2RegExpPattern=r,n.stripWildcards=s,n.createRegExp=o,n.regExpLeadsToEndlessLoop=u,n.splitLines=S,n.splitLinesIncludeSeparators=L,n.firstNonWhitespaceIndex=N,n.getLeadingWhitespace=P,n.lastNonWhitespaceIndex=E,n.compare=v,n.compareSubstring=l,n.compareIgnoreCase=b,n.compareSubstringIgnoreCase=g,n.isAsciiDigit=w,n.isLowerAsciiLetter=M,n.isUpperAsciiLetter=y,n.equalsIgnoreCase=_,n.startsWithIgnoreCase=C,n.commonPrefixLength=R,n.commonSuffixLength=D,n.isHighSurrogate=T,n.isLowSurrogate=O,n.computeCodePoint=z,n.getNextCodePoint=j,n.nextCharLength=G,n.prevCharLength=$,n.getCharContainingOffset=U,n.containsRTL=ue,n.isBasicASCII=ge,n.containsUnusualLineTerminators=t,n.isFullWidthCharacter=me,n.isEmojiImprecise=pe,n.startsWithUTF8BOM=Le,n.containsUppercaseCharacter=we,n.singleLetterHash=Ce,n.getLeftDeleteOffset=_e;function A(k){return!k||typeof k!="string"?!0:k.trim().length===0}const d=/{(\d+)}/g;function f(k,...I){return I.length===0?k:k.replace(d,function(V,H){const Y=parseInt(H,10);return isNaN(Y)||Y<0||Y>=I.length?V:I[Y]})}function p(k){return k.replace(/[<>"'&]/g,I=>{switch(I){case"<":return"<";case">":return">";case'"':return""";case"'":return"'";case"&":return"&"}return I})}function c(k){return k.replace(/[<>&]/g,function(I){switch(I){case"<":return"<";case">":return">";case"&":return"&";default:return I}})}function a(k){return k.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function m(k,I=" "){const V=e(k,I);return h(V,I)}function e(k,I){if(!k||!I)return k;const V=I.length;if(V===0||k.length===0)return k;let H=0;for(;k.indexOf(I,H)===H;)H=H+V;return k.substring(H)}function h(k,I){if(!k||!I)return k;const V=I.length,H=k.length;if(V===0||H===0)return k;let Y=H,te=-1;for(;te=k.lastIndexOf(I,Y-1),!(te===-1||te+V!==Y);){if(te===0)return"";Y=te}return k.substring(0,Y)}function r(k){return k.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function s(k){return k.replace(/\*/g,"")}function o(k,I,V={}){if(!k)throw new Error("Cannot create regex from empty string");I||(k=a(k)),V.wholeWord&&(/\B/.test(k.charAt(0))||(k="\\b"+k),/\B/.test(k.charAt(k.length-1))||(k=k+"\\b"));let H="";return V.global&&(H+="g"),V.matchCase||(H+="i"),V.multiline&&(H+="m"),V.unicode&&(H+="u"),new RegExp(k,H)}function u(k){return k.source==="^"||k.source==="^$"||k.source==="$"||k.source==="^\\s*$"?!1:!!(k.exec("")&&k.lastIndex===0)}function S(k){return k.split(/\r\n|\r|\n/)}function L(k){const I=[],V=k.split(/(\r\n|\r|\n)/);for(let H=0;H=0;V--){const H=k.charCodeAt(V);if(H!==32&&H!==9)return V}return-1}function v(k,I){return kI?1:0}function l(k,I,V=0,H=k.length,Y=0,te=I.length){for(;Voe)return 1}const ne=H-V,ae=te-Y;return neae?1:0}function b(k,I){return g(k,I,0,k.length,0,I.length)}function g(k,I,V=0,H=k.length,Y=0,te=I.length){for(;V=128||oe>=128)return l(k.toLowerCase(),I.toLowerCase(),V,H,Y,te);M(le)&&(le-=32),M(oe)&&(oe-=32);const se=le-oe;if(se!==0)return se}const ne=H-V,ae=te-Y;return neae?1:0}function w(k){return k>=48&&k<=57}function M(k){return k>=97&&k<=122}function y(k){return k>=65&&k<=90}function _(k,I){return k.length===I.length&&g(k,I)===0}function C(k,I){const V=I.length;return I.length>k.length?!1:g(k,I,0,V)===0}function R(k,I){const V=Math.min(k.length,I.length);let H;for(H=0;H1){const H=k.charCodeAt(I-2);if(T(H))return z(H,V)}return V}class q{get offset(){return this._offset}constructor(I,V=0){this._str=I,this._len=I.length,this._offset=V}setOffset(I){this._offset=I}prevCodePoint(){const I=F(this._str,this._offset);return this._offset-=I>=65536?2:1,I}nextCodePoint(){const I=j(this._str,this._len,this._offset);return this._offset+=I>=65536?2:1,I}eol(){return this._offset>=this._len}}n.CodePointIterator=q;class B{get offset(){return this._iterator.offset}constructor(I,V=0){this._iterator=new q(I,V)}nextGraphemeLength(){const I=fe.getInstance(),V=this._iterator,H=V.offset;let Y=I.getGraphemeBreakType(V.nextCodePoint());for(;!V.eol();){const te=V.offset,ne=I.getGraphemeBreakType(V.nextCodePoint());if(ve(Y,ne)){V.setOffset(te);break}Y=ne}return V.offset-H}prevGraphemeLength(){const I=fe.getInstance(),V=this._iterator,H=V.offset;let Y=I.getGraphemeBreakType(V.prevCodePoint());for(;V.offset>0;){const te=V.offset,ne=I.getGraphemeBreakType(V.prevCodePoint());if(ve(ne,Y)){V.setOffset(te);break}Y=ne}return H-V.offset}eol(){return this._iterator.eol()}}n.GraphemeIterator=B;function G(k,I){return new B(k,I).nextGraphemeLength()}function $(k,I){return new B(k,I).prevGraphemeLength()}function U(k,I){I>0&&O(k.charCodeAt(I))&&I--;const V=I+G(k,I);return[V-$(k,V),V]}let ee;function re(){return/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/}function ue(k){return ee||(ee=re()),ee.test(k)}const de=/^[\t\n\r\x20-\x7E]*$/;function ge(k){return de.test(k)}n.UNUSUAL_LINE_TERMINATORS=/[\u2028\u2029]/;function t(k){return n.UNUSUAL_LINE_TERMINATORS.test(k)}function me(k){return k>=11904&&k<=55215||k>=63744&&k<=64255||k>=65281&&k<=65374}function pe(k){return k>=127462&&k<=127487||k===8986||k===8987||k===9200||k===9203||k>=9728&&k<=10175||k===11088||k===11093||k>=127744&&k<=128591||k>=128640&&k<=128764||k>=128992&&k<=129008||k>=129280&&k<=129535||k>=129648&&k<=129782}n.UTF8_BOM_CHARACTER="\uFEFF";function Le(k){return!!(k&&k.length>0&&k.charCodeAt(0)===65279)}function we(k,I=!1){return k?(I&&(k=k.replace(/\\./g,"")),k.toLowerCase()!==k):!1}function Ce(k){return k=k%(2*26),k<26?String.fromCharCode(97+k):String.fromCharCode(65+k-26)}function ve(k,I){return k===0?I!==5&&I!==7:k===2&&I===3?!1:k===4||k===2||k===3||I===4||I===2||I===3?!0:!(k===8&&(I===8||I===9||I===11||I===12)||(k===11||k===9)&&(I===9||I===10)||(k===12||k===10)&&I===10||I===5||I===13||I===7||k===1||k===13&&I===14||k===6&&I===6)}class fe{static{this._INSTANCE=null}static getInstance(){return fe._INSTANCE||(fe._INSTANCE=new fe),fe._INSTANCE}constructor(){this._data=Se()}getGraphemeBreakType(I){if(I<32)return I===10?3:I===13?2:4;if(I<127)return 0;const V=this._data,H=V.length/3;let Y=1;for(;Y<=H;)if(IV[3*Y+1])Y=2*Y+1;else return V[3*Y+2];return 0}}function Se(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}function _e(k,I){if(k===0)return 0;const V=ye(k,I);if(V!==void 0)return V;const H=new q(I,k);return H.prevCodePoint(),H.offset}function ye(k,I){const V=new q(I,k);let H=V.prevCodePoint();for(;Ee(H)||H===65039||H===8419;){if(V.offset===0)return;H=V.prevCodePoint()}if(!pe(H))return;let Y=V.offset;return Y>0&&V.prevCodePoint()===8205&&(Y=V.offset),Y}function Ee(k){return 127995<=k&&k<=127999}n.noBreakWhitespace="\xA0";class K{static{this.ambiguousCharacterData=new x.Lazy(()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'))}static{this.cache=new i.LRUCachedFunction({getCacheKey:JSON.stringify},I=>{function V(se){const ce=new Map;for(let he=0;he!se.startsWith("_")&&se in te);ne.length===0&&(ne=["_default"]);let ae;for(const se of ne){const ce=V(te[se]);ae=Y(ae,ce)}const le=V(te._common),oe=H(le,ae);return new K(oe)})}static getInstance(I){return K.cache.get(Array.from(I))}static{this._locales=new x.Lazy(()=>Object.keys(K.ambiguousCharacterData.value).filter(I=>!I.startsWith("_")))}static getLocales(){return K._locales.value}constructor(I){this.confusableDictionary=I}isAmbiguous(I){return this.confusableDictionary.has(I)}getPrimaryConfusable(I){return this.confusableDictionary.get(I)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}}n.AmbiguousCharacters=K;class Q{static getRawData(){return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]")}static{this._data=void 0}static getData(){return this._data||(this._data=new Set(Q.getRawData())),this._data}static isInvisibleCharacter(I){return Q.getData().has(I)}static get codePoints(){return Q.getData()}}n.InvisibleCharacters=Q}),X(J[44],Z([0,1,6]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.StringSHA1=void 0,n.hash=x,n.doHash=A,n.numberHash=d,n.stringHash=p,n.toHexString=r;function x(o){return A(o,0)}function A(o,u){switch(typeof o){case"object":return o===null?d(349,u):Array.isArray(o)?c(o,u):a(o,u);case"string":return p(o,u);case"boolean":return f(o,u);case"number":return d(o,u);case"undefined":return d(937,u);default:return d(617,u)}}function d(o,u){return(u<<5)-u+o|0}function f(o,u){return d(o?433:863,u)}function p(o,u){u=d(149417,u);for(let S=0,L=o.length;SA(L,S),u)}function a(o,u){return u=d(181387,u),Object.keys(o).sort().reduce((S,L)=>(S=p(L,S),A(o[L],S)),u)}function m(o,u,S=32){const L=S-u,N=~((1<>>L)>>>0}function e(o,u=0,S=o.byteLength,L=0){for(let N=0;NS.toString(16).padStart(2,"0")).join(""):h((o>>>0).toString(16),u/4)}class s{static{this._bigBlock32=new DataView(new ArrayBuffer(320))}constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(u){const S=u.length;if(S===0)return;const L=this._buff;let N=this._buffLen,P=this._leftoverHighSurrogate,E,v;for(P!==0?(E=P,v=-1,P=0):(E=u.charCodeAt(0),v=0);;){let l=E;if(i.isHighSurrogate(E))if(v+1>>6,u[S++]=128|(L&63)>>>0):L<65536?(u[S++]=224|(L&61440)>>>12,u[S++]=128|(L&4032)>>>6,u[S++]=128|(L&63)>>>0):(u[S++]=240|(L&1835008)>>>18,u[S++]=128|(L&258048)>>>12,u[S++]=128|(L&4032)>>>6,u[S++]=128|(L&63)>>>0),S>=64&&(this._step(),S-=64,this._totalLen+=64,u[0]=u[64],u[1]=u[65],u[2]=u[66]),S}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),r(this._h0)+r(this._h1)+r(this._h2)+r(this._h3)+r(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,e(this._buff,this._buffLen),this._buffLen>56&&(this._step(),e(this._buff));const u=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(u/4294967296),!1),this._buffDV.setUint32(60,u%4294967296,!1),this._step()}_step(){const u=s._bigBlock32,S=this._buffDV;for(let w=0;w<64;w+=4)u.setUint32(w,S.getUint32(w,!1),!1);for(let w=64;w<320;w+=4)u.setUint32(w,m(u.getUint32(w-12,!1)^u.getUint32(w-32,!1)^u.getUint32(w-56,!1)^u.getUint32(w-64,!1),1),!1);let L=this._h0,N=this._h1,P=this._h2,E=this._h3,v=this._h4,l,b,g;for(let w=0;w<80;w++)w<20?(l=N&P|~N&E,b=1518500249):w<40?(l=N^P^E,b=1859775393):w<60?(l=N&P|N&E|P&E,b=2400959708):(l=N^P^E,b=3395469782),g=m(L,5)+l+v+b+u.getUint32(w*4,!1)&4294967295,v=E,E=P,P=m(N,30),N=L,L=g;this._h0=this._h0+L&4294967295,this._h1=this._h1+N&4294967295,this._h2=this._h2+P&4294967295,this._h3=this._h3+E&4294967295,this._h4=this._h4+v&4294967295}}n.StringSHA1=s}),X(J[24],Z([0,1,41,44]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.LcsDiff=n.StringDiffSequence=void 0,n.stringDiff=d;class A{constructor(e){this.source=e}getElements(){const e=this.source,h=new Int32Array(e.length);for(let r=0,s=e.length;r0||this.m_modifiedCount>0)&&this.m_changes.push(new i.DiffChange(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(e,h){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,h),this.m_originalCount++}AddModifiedElement(e,h){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,h),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class a{constructor(e,h,r=null){this.ContinueProcessingPredicate=r,this._originalSequence=e,this._modifiedSequence=h;const[s,o,u]=a._getElements(e),[S,L,N]=a._getElements(h);this._hasStrings=u&&N,this._originalStringElements=s,this._originalElementsOrHash=o,this._modifiedStringElements=S,this._modifiedElementsOrHash=L,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(e){return e.length>0&&typeof e[0]=="string"}static _getElements(e){const h=e.getElements();if(a._isStringArray(h)){const r=new Int32Array(h.length);for(let s=0,o=h.length;s=e&&s>=r&&this.ElementsAreEqual(h,s);)h--,s--;if(e>h||r>s){let E;return r<=s?(f.Assert(e===h+1,"originalStart should only be one more than originalEnd"),E=[new i.DiffChange(e,0,r,s-r+1)]):e<=h?(f.Assert(r===s+1,"modifiedStart should only be one more than modifiedEnd"),E=[new i.DiffChange(e,h-e+1,r,0)]):(f.Assert(e===h+1,"originalStart should only be one more than originalEnd"),f.Assert(r===s+1,"modifiedStart should only be one more than modifiedEnd"),E=[]),E}const u=[0],S=[0],L=this.ComputeRecursionPoint(e,h,r,s,u,S,o),N=u[0],P=S[0];if(L!==null)return L;if(!o[0]){const E=this.ComputeDiffRecursive(e,N,r,P,o);let v=[];return o[0]?v=[new i.DiffChange(N+1,h-(N+1)+1,P+1,s-(P+1)+1)]:v=this.ComputeDiffRecursive(N+1,h,P+1,s,o),this.ConcatenateChanges(E,v)}return[new i.DiffChange(e,h-e+1,r,s-r+1)]}WALKTRACE(e,h,r,s,o,u,S,L,N,P,E,v,l,b,g,w,M,y){let _=null,C=null,R=new c,D=h,T=r,O=l[0]-w[0]-s,z=-1073741824,j=this.m_forwardHistory.length-1;do{const F=O+e;F===D||F=0&&(N=this.m_forwardHistory[j],e=N[0],D=1,T=N.length-1)}while(--j>=-1);if(_=R.getReverseChanges(),y[0]){let F=l[0]+1,q=w[0]+1;if(_!==null&&_.length>0){const B=_[_.length-1];F=Math.max(F,B.getOriginalEnd()),q=Math.max(q,B.getModifiedEnd())}C=[new i.DiffChange(F,v-F+1,q,g-q+1)]}else{R=new c,D=u,T=S,O=l[0]-w[0]-L,z=1073741824,j=M?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const F=O+o;F===D||F=P[F+1]?(E=P[F+1]-1,b=E-O-L,E>z&&R.MarkNextChange(),z=E+1,R.AddOriginalElement(E+1,b+1),O=F+1-o):(E=P[F-1],b=E-O-L,E>z&&R.MarkNextChange(),z=E,R.AddModifiedElement(E+1,b+1),O=F-1-o),j>=0&&(P=this.m_reverseHistory[j],o=P[0],D=1,T=P.length-1)}while(--j>=-1);C=R.getChanges()}return this.ConcatenateChanges(_,C)}ComputeRecursionPoint(e,h,r,s,o,u,S){let L=0,N=0,P=0,E=0,v=0,l=0;e--,r--,o[0]=0,u[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const b=h-e+(s-r),g=b+1,w=new Int32Array(g),M=new Int32Array(g),y=s-r,_=h-e,C=e-r,R=h-s,T=(_-y)%2===0;w[y]=e,M[_]=h,S[0]=!1;for(let O=1;O<=b/2+1;O++){let z=0,j=0;P=this.ClipDiagonalBound(y-O,O,y,g),E=this.ClipDiagonalBound(y+O,O,y,g);for(let q=P;q<=E;q+=2){q===P||qz+j&&(z=L,j=N),!T&&Math.abs(q-_)<=O-1&&L>=M[q])return o[0]=L,u[0]=N,B<=M[q]&&O<=1448?this.WALKTRACE(y,P,E,C,_,v,l,R,w,M,L,h,o,N,s,u,T,S):null}const F=(z-e+(j-r)-O)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(z,F))return S[0]=!0,o[0]=z,u[0]=j,F>0&&O<=1448?this.WALKTRACE(y,P,E,C,_,v,l,R,w,M,L,h,o,N,s,u,T,S):(e++,r++,[new i.DiffChange(e,h-e+1,r,s-r+1)]);v=this.ClipDiagonalBound(_-O,O,_,g),l=this.ClipDiagonalBound(_+O,O,_,g);for(let q=v;q<=l;q+=2){q===v||q=M[q+1]?L=M[q+1]-1:L=M[q-1],N=L-(q-_)-R;const B=L;for(;L>e&&N>r&&this.ElementsAreEqual(L,N);)L--,N--;if(M[q]=L,T&&Math.abs(q-y)<=O&&L<=w[q])return o[0]=L,u[0]=N,B>=w[q]&&O<=1448?this.WALKTRACE(y,P,E,C,_,v,l,R,w,M,L,h,o,N,s,u,T,S):null}if(O<=1447){let q=new Int32Array(E-P+2);q[0]=y-P+1,p.Copy2(w,P,q,1,E-P+1),this.m_forwardHistory.push(q),q=new Int32Array(l-v+2),q[0]=_-v+1,p.Copy2(M,v,q,1,l-v+1),this.m_reverseHistory.push(q)}}return this.WALKTRACE(y,P,E,C,_,v,l,R,w,M,L,h,o,N,s,u,T,S)}PrettifyChanges(e){for(let h=0;h0,S=r.modifiedLength>0;for(;r.originalStart+r.originalLength=0;h--){const r=e[h];let s=0,o=0;if(h>0){const E=e[h-1];s=E.originalStart+E.originalLength,o=E.modifiedStart+E.modifiedLength}const u=r.originalLength>0,S=r.modifiedLength>0;let L=0,N=this._boundaryScore(r.originalStart,r.originalLength,r.modifiedStart,r.modifiedLength);for(let E=1;;E++){const v=r.originalStart-E,l=r.modifiedStart-E;if(vN&&(N=g,L=E)}r.originalStart-=L,r.modifiedStart-=L;const P=[null];if(h>0&&this.ChangesOverlap(e[h-1],e[h],P)){e[h-1]=P[0],e.splice(h,1),h++;continue}}if(this._hasStrings)for(let h=1,r=e.length;h0&&l>L&&(L=l,N=E,P=v)}return L>0?[N,P]:null}_contiguousSequenceScore(e,h,r){let s=0;for(let o=0;o=this._originalElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._originalStringElements[e])}_OriginalRegionIsBoundary(e,h){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(h>0){const r=e+h;if(this._OriginalIsBoundary(r-1)||this._OriginalIsBoundary(r))return!0}return!1}_ModifiedIsBoundary(e){return e<=0||e>=this._modifiedElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[e])}_ModifiedRegionIsBoundary(e,h){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(h>0){const r=e+h;if(this._ModifiedIsBoundary(r-1)||this._ModifiedIsBoundary(r))return!0}return!1}_boundaryScore(e,h,r,s){const o=this._OriginalRegionIsBoundary(e,h)?1:0,u=this._ModifiedRegionIsBoundary(r,s)?1:0;return o+u}ConcatenateChanges(e,h){const r=[];if(e.length===0||h.length===0)return h.length>0?h:e;if(this.ChangesOverlap(e[e.length-1],h[0],r)){const s=new Array(e.length+h.length-1);return p.Copy(e,0,s,0,e.length-1),s[e.length-1]=r[0],p.Copy(h,1,s,e.length,h.length-1),s}else{const s=new Array(e.length+h.length);return p.Copy(e,0,s,0,e.length),p.Copy(h,0,s,e.length,h.length),s}}ChangesOverlap(e,h,r){if(f.Assert(e.originalStart<=h.originalStart,"Left change is not less than or equal to right change"),f.Assert(e.modifiedStart<=h.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=h.originalStart||e.modifiedStart+e.modifiedLength>=h.modifiedStart){const s=e.originalStart;let o=e.originalLength;const u=e.modifiedStart;let S=e.modifiedLength;return e.originalStart+e.originalLength>=h.originalStart&&(o=h.originalStart+h.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=h.modifiedStart&&(S=h.modifiedStart+h.modifiedLength-e.modifiedStart),r[0]=new i.DiffChange(s,o,u,S),!0}else return r[0]=null,!1}ClipDiagonalBound(e,h,r,s){if(e>=0&&e"u"}function a(u){return!m(u)}function m(u){return c(u)||u===null}function e(u,S){if(!u)throw new Error(S?`Unexpected type, expected '${S}'`:"Unexpected type")}function h(u){if(m(u))throw new Error("Assertion Failed: argument is undefined or null");return u}function r(u){return typeof u=="function"}function s(u,S){const L=Math.min(u.length,S.length);for(let N=0;N{s[o]=u&&typeof u=="object"?x(u):u}),s}function A(r){if(!r||typeof r!="object")return r;const s=[r];for(;s.length>0;){const o=s.shift();Object.freeze(o);for(const u in o)if(d.call(o,u)){const S=o[u];typeof S=="object"&&!Object.isFrozen(S)&&!(0,i.isTypedArray)(S)&&s.push(S)}}return r}const d=Object.prototype.hasOwnProperty;function f(r,s){return p(r,s,new Set)}function p(r,s,o){if((0,i.isUndefinedOrNull)(r))return r;const u=s(r);if(typeof u<"u")return u;if(Array.isArray(r)){const S=[];for(const L of r)S.push(p(L,s,o));return S}if((0,i.isObject)(r)){if(o.has(r))throw new Error("Cannot clone recursive data-structure");o.add(r);const S={};for(const L in r)d.call(r,L)&&(S[L]=p(r[L],s,o));return o.delete(r),S}return r}function c(r,s,o=!0){return(0,i.isObject)(r)?((0,i.isObject)(s)&&Object.keys(s).forEach(u=>{u in r?o&&((0,i.isObject)(r[u])&&(0,i.isObject)(s[u])?c(r[u],s[u],o):r[u]=s[u]):r[u]=s[u]}),r):s}function a(r,s){if(r===s)return!0;if(r==null||s===null||s===void 0||typeof r!=typeof s||typeof r!="object"||Array.isArray(r)!==Array.isArray(s))return!1;let o,u;if(Array.isArray(r)){if(r.length!==s.length)return!1;for(o=0;ofunction(){const L=Array.prototype.slice.call(arguments,0);return s(S,L)},u={};for(const S of r)u[S]=o(S);return u}}),X(J[28],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.toUint8=i,n.toUint32=x;function i(A){return A<0?0:A>255?255:A|0}function x(A){return A<0?0:A>4294967295?4294967295:A|0}}),X(J[29],Z([0,1,28]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.CharacterSet=n.CharacterClassifier=void 0;class x{constructor(f){const p=(0,i.toUint8)(f);this._defaultValue=p,this._asciiMap=x._createAsciiMap(p),this._map=new Map}static _createAsciiMap(f){const p=new Uint8Array(256);return p.fill(f),p}set(f,p){const c=(0,i.toUint8)(p);f>=0&&f<256?this._asciiMap[f]=c:this._map.set(f,c)}get(f){return f>=0&&f<256?this._asciiMap[f]:this._map.get(f)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}}n.CharacterClassifier=x;class A{constructor(){this._actual=new x(0)}add(f){this._actual.set(f,1)}has(f){return this._actual.get(f)===1}clear(){return this._actual.clear()}}n.CharacterSet=A}),X(J[5],Z([0,1,3]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.OffsetRangeSet=n.OffsetRange=void 0;class x{static addRange(f,p){let c=0;for(;cp))return new x(f,p)}static ofLength(f){return new x(0,f)}static ofStartAndLength(f,p){return new x(f,f+p)}constructor(f,p){if(this.start=f,this.endExclusive=p,f>p)throw new i.BugIndicatingError(`Invalid range: ${this.toString()}`)}get isEmpty(){return this.start===this.endExclusive}delta(f){return new x(this.start+f,this.endExclusive+f)}deltaStart(f){return new x(this.start+f,this.endExclusive)}deltaEnd(f){return new x(this.start,this.endExclusive+f)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}contains(f){return this.start<=f&&f=f.endExclusive}slice(f){return f.slice(this.start,this.endExclusive)}substring(f){return f.substring(this.start,this.endExclusive)}clip(f){if(this.isEmpty)throw new i.BugIndicatingError(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,f))}clipCyclic(f){if(this.isEmpty)throw new i.BugIndicatingError(`Invalid clipping range: ${this.toString()}`);return f=this.endExclusive?this.start+(f-this.start)%this.length:f}forEach(f){for(let p=this.start;pf.toString()).join(", ")}intersectsStrict(f){let p=0;for(;pf+p.length,0)}}n.OffsetRangeSet=A}),X(J[4],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Position=void 0;class i{constructor(A,d){this.lineNumber=A,this.column=d}with(A=this.lineNumber,d=this.column){return A===this.lineNumber&&d===this.column?this:new i(A,d)}delta(A=0,d=0){return this.with(this.lineNumber+A,this.column+d)}equals(A){return i.equals(this,A)}static equals(A,d){return!A&&!d?!0:!!A&&!!d&&A.lineNumber===d.lineNumber&&A.column===d.column}isBefore(A){return i.isBefore(this,A)}static isBefore(A,d){return A.lineNumberp||d===p&&f>c?(this.startLineNumber=p,this.startColumn=c,this.endLineNumber=d,this.endColumn=f):(this.startLineNumber=d,this.startColumn=f,this.endLineNumber=p,this.endColumn=c)}isEmpty(){return x.isEmpty(this)}static isEmpty(d){return d.startLineNumber===d.endLineNumber&&d.startColumn===d.endColumn}containsPosition(d){return x.containsPosition(this,d)}static containsPosition(d,f){return!(f.lineNumberd.endLineNumber||f.lineNumber===d.startLineNumber&&f.columnd.endColumn)}static strictContainsPosition(d,f){return!(f.lineNumberd.endLineNumber||f.lineNumber===d.startLineNumber&&f.column<=d.startColumn||f.lineNumber===d.endLineNumber&&f.column>=d.endColumn)}containsRange(d){return x.containsRange(this,d)}static containsRange(d,f){return!(f.startLineNumberd.endLineNumber||f.endLineNumber>d.endLineNumber||f.startLineNumber===d.startLineNumber&&f.startColumnd.endColumn)}strictContainsRange(d){return x.strictContainsRange(this,d)}static strictContainsRange(d,f){return!(f.startLineNumberd.endLineNumber||f.endLineNumber>d.endLineNumber||f.startLineNumber===d.startLineNumber&&f.startColumn<=d.startColumn||f.endLineNumber===d.endLineNumber&&f.endColumn>=d.endColumn)}plusRange(d){return x.plusRange(this,d)}static plusRange(d,f){let p,c,a,m;return f.startLineNumberd.endLineNumber?(a=f.endLineNumber,m=f.endColumn):f.endLineNumber===d.endLineNumber?(a=f.endLineNumber,m=Math.max(f.endColumn,d.endColumn)):(a=d.endLineNumber,m=d.endColumn),new x(p,c,a,m)}intersectRanges(d){return x.intersectRanges(this,d)}static intersectRanges(d,f){let p=d.startLineNumber,c=d.startColumn,a=d.endLineNumber,m=d.endColumn;const e=f.startLineNumber,h=f.startColumn,r=f.endLineNumber,s=f.endColumn;return pr?(a=r,m=s):a===r&&(m=Math.min(m,s)),p>a||p===a&&c>m?null:new x(p,c,a,m)}equalsRange(d){return x.equalsRange(this,d)}static equalsRange(d,f){return!d&&!f?!0:!!d&&!!f&&d.startLineNumber===f.startLineNumber&&d.startColumn===f.startColumn&&d.endLineNumber===f.endLineNumber&&d.endColumn===f.endColumn}getEndPosition(){return x.getEndPosition(this)}static getEndPosition(d){return new i.Position(d.endLineNumber,d.endColumn)}getStartPosition(){return x.getStartPosition(this)}static getStartPosition(d){return new i.Position(d.startLineNumber,d.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(d,f){return new x(this.startLineNumber,this.startColumn,d,f)}setStartPosition(d,f){return new x(d,f,this.endLineNumber,this.endColumn)}collapseToStart(){return x.collapseToStart(this)}static collapseToStart(d){return new x(d.startLineNumber,d.startColumn,d.startLineNumber,d.startColumn)}collapseToEnd(){return x.collapseToEnd(this)}static collapseToEnd(d){return new x(d.endLineNumber,d.endColumn,d.endLineNumber,d.endColumn)}delta(d){return new x(this.startLineNumber+d,this.startColumn,this.endLineNumber+d,this.endColumn)}static fromPositions(d,f=d){return new x(d.lineNumber,d.column,f.lineNumber,f.column)}static lift(d){return d?new x(d.startLineNumber,d.startColumn,d.endLineNumber,d.endColumn):null}static isIRange(d){return d&&typeof d.startLineNumber=="number"&&typeof d.startColumn=="number"&&typeof d.endLineNumber=="number"&&typeof d.endColumn=="number"}static areIntersectingOrTouching(d,f){return!(d.endLineNumberd.startLineNumber}toJSON(){return this}}n.Range=x}),X(J[13],Z([0,1,3,5,2,15]),function(W,n,i,x,A,d){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.LineRangeSet=n.LineRange=void 0;class f{static fromRangeInclusive(a){return new f(a.startLineNumber,a.endLineNumber+1)}static joinMany(a){if(a.length===0)return[];let m=new p(a[0].slice());for(let e=1;em)throw new i.BugIndicatingError(`startLineNumber ${a} cannot be after endLineNumberExclusive ${m}`);this.startLineNumber=a,this.endLineNumberExclusive=m}contains(a){return this.startLineNumber<=a&&ah.endLineNumberExclusive>=a.startLineNumber),e=(0,d.findLastIdxMonotonous)(this._normalizedRanges,h=>h.startLineNumber<=a.endLineNumberExclusive)+1;if(m===e)this._normalizedRanges.splice(m,0,a);else if(m===e-1){const h=this._normalizedRanges[m];this._normalizedRanges[m]=h.join(a)}else{const h=this._normalizedRanges[m].join(this._normalizedRanges[e-1]).join(a);this._normalizedRanges.splice(m,e-m,h)}}contains(a){const m=(0,d.findLastMonotonous)(this._normalizedRanges,e=>e.startLineNumber<=a);return!!m&&m.endLineNumberExclusive>a}intersects(a){const m=(0,d.findLastMonotonous)(this._normalizedRanges,e=>e.startLineNumbera.startLineNumber}getUnion(a){if(this._normalizedRanges.length===0)return a;if(a._normalizedRanges.length===0)return this;const m=[];let e=0,h=0,r=null;for(;e=s.startLineNumber?r=new f(r.startLineNumber,Math.max(r.endLineNumberExclusive,s.endLineNumberExclusive)):(m.push(r),r=s)}return r!==null&&m.push(r),new p(m)}subtractFrom(a){const m=(0,d.findFirstIdxMonotonousOrArrLen)(this._normalizedRanges,s=>s.endLineNumberExclusive>=a.startLineNumber),e=(0,d.findLastIdxMonotonous)(this._normalizedRanges,s=>s.startLineNumber<=a.endLineNumberExclusive)+1;if(m===e)return new p([a]);const h=[];let r=a.startLineNumber;for(let s=m;sr&&h.push(new f(r,o.startLineNumber)),r=o.endLineNumberExclusive}return ra.toString()).join(", ")}getIntersection(a){const m=[];let e=0,h=0;for(;em.delta(a)))}}n.LineRangeSet=p}),X(J[48],Z([0,1,4,2]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Selection=void 0;class A extends x.Range{constructor(f,p,c,a){super(f,p,c,a),this.selectionStartLineNumber=f,this.selectionStartColumn=p,this.positionLineNumber=c,this.positionColumn=a}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(f){return A.selectionsEqual(this,f)}static selectionsEqual(f,p){return f.selectionStartLineNumber===p.selectionStartLineNumber&&f.selectionStartColumn===p.selectionStartColumn&&f.positionLineNumber===p.positionLineNumber&&f.positionColumn===p.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(f,p){return this.getDirection()===0?new A(this.startLineNumber,this.startColumn,f,p):new A(f,p,this.startLineNumber,this.startColumn)}getPosition(){return new i.Position(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new i.Position(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(f,p){return this.getDirection()===0?new A(f,p,this.endLineNumber,this.endColumn):new A(this.endLineNumber,this.endColumn,f,p)}static fromPositions(f,p=f){return new A(f.lineNumber,f.column,p.lineNumber,p.column)}static fromRange(f,p){return p===0?new A(f.startLineNumber,f.startColumn,f.endLineNumber,f.endColumn):new A(f.endLineNumber,f.endColumn,f.startLineNumber,f.startColumn)}static liftSelection(f){return new A(f.selectionStartLineNumber,f.selectionStartColumn,f.positionLineNumber,f.positionColumn)}static selectionsArrEqual(f,p){if(f&&!p||!f&&p)return!1;if(!f&&!p)return!0;if(f.length!==p.length)return!1;for(let c=0,a=f.length;cf.lineCount:this.columnCount>=f.columnCount}createRange(f){return this.lineCount===0?new x.Range(f.lineNumber,f.column,f.lineNumber,f.column+this.columnCount):new x.Range(f.lineNumber,f.column,f.lineNumber+this.lineCount,this.columnCount+1)}addToPosition(f){return this.lineCount===0?new i.Position(f.lineNumber,f.column+this.columnCount):new i.Position(f.lineNumber+this.lineCount,this.columnCount+1)}toString(){return`${this.lineCount},${this.columnCount}`}}n.TextLength=A}),X(J[49],Z([0,1,5,30]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PositionOffsetTransformer=void 0;class A{constructor(f){this.text=f,this.lineStartOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let p=0;p(0,i.checkAdjacentItems)(s,(o,u)=>o.range.getEndPosition().isBeforeOrEqual(u.range.getStartPosition())))}apply(s){let o="",u=new A.Position(1,1);for(const L of this.edits){const N=L.range,P=N.getStartPosition(),E=N.getEndPosition(),v=m(u,P);v.isEmpty()||(o+=s.getValueOfRange(v)),o+=L.text,u=E}const S=m(u,s.endPositionExclusive);return S.isEmpty()||(o+=s.getValueOfRange(S)),o}applyToString(s){const o=new h(s);return this.apply(o)}getNewRanges(){const s=[];let o=0,u=0,S=0;for(const L of this.edits){const N=p.TextLength.ofText(L.text),P=A.Position.lift({lineNumber:L.range.startLineNumber+u,column:L.range.startColumn+(L.range.startLineNumber===o?S:0)}),E=N.createRange(P);s.push(E),u=E.endLineNumber-L.range.endLineNumber,S=E.endColumn-L.range.endColumn,o=L.range.endLineNumber}return s}}n.TextEdit=c;class a{constructor(s,o){this.range=s,this.text=o}toSingleEditOperation(){return{range:this.range,text:this.text}}}n.SingleTextEdit=a;function m(r,s){if(r.lineNumber===s.lineNumber&&r.column===Number.MAX_SAFE_INTEGER)return f.Range.fromPositions(s,s);if(!r.isBeforeOrEqual(s))throw new x.BugIndicatingError("start must be before end");return new f.Range(r.lineNumber,r.column,s.lineNumber,s.column)}class e{get endPositionExclusive(){return this.length.addToPosition(new A.Position(1,1))}}n.AbstractText=e;class h extends e{constructor(s){super(),this.value=s,this._t=new d.PositionOffsetTransformer(this.value)}getValueOfRange(s){return this._t.getOffsetRange(s).substring(this.value)}get length(){return this._t.textLength}}n.StringText=h}),X(J[51],Z([0,1,21,29]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.WordCharacterClassifier=void 0,n.getMapForWordSeparators=f;class A extends x.CharacterClassifier{constructor(c,a){super(0),this._segmenter=null,this._cachedLine=null,this._cachedSegments=[],this.intlSegmenterLocales=a,this.intlSegmenterLocales.length>0?this._segmenter=new Intl.Segmenter(this.intlSegmenterLocales,{granularity:"word"}):this._segmenter=null;for(let m=0,e=c.length;ma)break;m=e}return m}findNextIntlWordAtOrAfterOffset(c,a){for(const m of this._getIntlSegmenterWordsOnLine(c))if(!(m.index/?";function A(a=""){let m="(-?\\d*\\.\\d\\w*)|([^";for(const e of n.USUAL_WORD_SEPARATORS)a.indexOf(e)>=0||(m+="\\"+e);return m+="\\s]+)",new RegExp(m,"g")}n.DEFAULT_WORD_REGEXP=A();function d(a){let m=n.DEFAULT_WORD_REGEXP;if(a&&a instanceof RegExp)if(a.global)m=a;else{let e="g";a.ignoreCase&&(e+="i"),a.multiline&&(e+="m"),a.unicode&&(e+="u"),m=new RegExp(a.source,e)}return m.lastIndex=0,m}const f=new x.LinkedList;f.unshift({maxLen:1e3,windowSize:15,timeBudget:150});function p(a,m,e,h,r){if(m=d(m),r||(r=i.Iterable.first(f)),e.length>r.maxLen){let L=a-r.maxLen/2;return L<0?L=0:h+=L,e=e.substring(L,a+r.maxLen/2),p(a,m,e,h,r)}const s=Date.now(),o=a-1-h;let u=-1,S=null;for(let L=1;!(Date.now()-s>=r.timeBudget);L++){const N=o-r.windowSize*L;m.lastIndex=Math.max(0,N);const P=c(m,e,o,u);if(!P&&S||(S=P,N<=0))break;u=N}if(S){const L={word:S[0],startColumn:h+1+S.index,endColumn:h+1+S.index+S[0].length};return m.lastIndex=0,L}return null}function c(a,m,e,h){let r;for(;r=a.exec(m);){const s=r.index||0;if(s<=e&&a.lastIndex>=e)return r;if(h>0&&s>h)return null}return null}}),X(J[10],Z([0,1,7,3,5]),function(W,n,i,x,A){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DateTimeout=n.InfiniteTimeout=n.OffsetPair=n.SequenceDiff=n.DiffAlgorithmResult=void 0;class d{static trivial(e,h){return new d([new f(A.OffsetRange.ofLength(e.length),A.OffsetRange.ofLength(h.length))],!1)}static trivialTimedOut(e,h){return new d([new f(A.OffsetRange.ofLength(e.length),A.OffsetRange.ofLength(h.length))],!0)}constructor(e,h){this.diffs=e,this.hitTimeout=h}}n.DiffAlgorithmResult=d;class f{static invert(e,h){const r=[];return(0,i.forEachAdjacent)(e,(s,o)=>{r.push(f.fromOffsetPairs(s?s.getEndExclusives():p.zero,o?o.getStarts():new p(h,(s?s.seq2Range.endExclusive-s.seq1Range.endExclusive:0)+h)))}),r}static fromOffsetPairs(e,h){return new f(new A.OffsetRange(e.offset1,h.offset1),new A.OffsetRange(e.offset2,h.offset2))}static assertSorted(e){let h;for(const r of e){if(h&&!(h.seq1Range.endExclusive<=r.seq1Range.start&&h.seq2Range.endExclusive<=r.seq2Range.start))throw new x.BugIndicatingError("Sequence diffs must be sorted");h=r}}constructor(e,h){this.seq1Range=e,this.seq2Range=h}swap(){return new f(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(e){return new f(this.seq1Range.join(e.seq1Range),this.seq2Range.join(e.seq2Range))}delta(e){return e===0?this:new f(this.seq1Range.delta(e),this.seq2Range.delta(e))}deltaStart(e){return e===0?this:new f(this.seq1Range.deltaStart(e),this.seq2Range.deltaStart(e))}deltaEnd(e){return e===0?this:new f(this.seq1Range.deltaEnd(e),this.seq2Range.deltaEnd(e))}intersect(e){const h=this.seq1Range.intersect(e.seq1Range),r=this.seq2Range.intersect(e.seq2Range);if(!(!h||!r))return new f(h,r)}getStarts(){return new p(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new p(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}}n.SequenceDiff=f;class p{static{this.zero=new p(0,0)}static{this.max=new p(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER)}constructor(e,h){this.offset1=e,this.offset2=h}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(e){return e===0?this:new p(this.offset1+e,this.offset2+e)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}}n.OffsetPair=p;class c{static{this.instance=new c}isValid(){return!0}}n.InfiniteTimeout=c;class a{constructor(e){if(this.timeout=e,this.startTime=Date.now(),this.valid=!0,e<=0)throw new x.BugIndicatingError("timeout must be positive")}isValid(){if(!(Date.now()-this.startTimeh.length||_>r.length)continue;const C=s(y,_);u.set(L,C);const R=y===w?S.get(L+1):S.get(L-1);if(S.set(L,C!==y?new d(R,y,_,C-y):R),u.get(L)===h.length&&u.get(L)-L===r.length)break e}}let N=S.get(L);const P=[];let E=h.length,v=r.length;for(;;){const l=N?N.x+N.length:0,b=N?N.y+N.length:0;if((l!==E||b!==v)&&P.push(new x.SequenceDiff(new i.OffsetRange(l,E),new i.OffsetRange(b,v))),!N)break;E=N.x,v=N.y,N=N.prev}return P.reverse(),new x.DiffAlgorithmResult(P,!1)}}n.MyersDiffAlgorithm=A;class d{constructor(a,m,e,h){this.prev=a,this.x=m,this.y=e,this.length=h}}class f{constructor(){this.positiveArr=new Int32Array(10),this.negativeArr=new Int32Array(10)}get(a){return a<0?(a=-a-1,this.negativeArr[a]):this.positiveArr[a]}set(a,m){if(a<0){if(a=-a-1,a>=this.negativeArr.length){const e=this.negativeArr;this.negativeArr=new Int32Array(e.length*2),this.negativeArr.set(e)}this.negativeArr[a]=m}else{if(a>=this.positiveArr.length){const e=this.positiveArr;this.positiveArr=new Int32Array(e.length*2),this.positiveArr.set(e)}this.positiveArr[a]=m}}}class p{constructor(){this.positiveArr=[],this.negativeArr=[]}get(a){return a<0?(a=-a-1,this.negativeArr[a]):this.positiveArr[a]}set(a,m){a<0?(a=-a-1,this.negativeArr[a]=m):this.positiveArr[a]=m}}}),X(J[52],Z([0,1,7,5,10]),function(W,n,i,x,A){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.optimizeSequenceDiffs=d,n.removeShortMatches=a,n.extendDiffsToEntireWordIfAppropriate=m,n.removeVeryShortMatchingLinesBetweenDiffs=h,n.removeVeryShortMatchingTextBetweenLongDiffs=r;function d(s,o,u){let S=u;return S=f(s,o,S),S=f(s,o,S),S=p(s,o,S),S}function f(s,o,u){if(u.length===0)return u;const S=[];S.push(u[0]);for(let N=1;N0&&(E=E.delta(l))}L.push(E)}return S.length>0&&L.push(S[S.length-1]),L}function p(s,o,u){if(!s.getBoundaryScore||!o.getBoundaryScore)return u;for(let S=0;S0?u[S-1]:void 0,N=u[S],P=S+1=S.start&&s.seq2Range.start-P>=L.start&&u.isStronglyEqual(s.seq2Range.start-P,s.seq2Range.endExclusive-P)&&P<100;)P++;P--;let E=0;for(;s.seq1Range.start+El&&(l=y,v=b)}return s.delta(v)}function a(s,o,u){const S=[];for(const L of u){const N=S[S.length-1];if(!N){S.push(L);continue}L.seq1Range.start-N.seq1Range.endExclusive<=2||L.seq2Range.start-N.seq2Range.endExclusive<=2?S[S.length-1]=new A.SequenceDiff(N.seq1Range.join(L.seq1Range),N.seq2Range.join(L.seq2Range)):S.push(L)}return S}function m(s,o,u){const S=A.SequenceDiff.invert(u,s.length),L=[];let N=new A.OffsetPair(0,0);function P(v,l){if(v.offset10;){const C=S[0];if(!(C.seq1Range.intersects(w.seq1Range)||C.seq2Range.intersects(w.seq2Range)))break;const D=s.findWordContaining(C.seq1Range.start),T=o.findWordContaining(C.seq2Range.start),O=new A.SequenceDiff(D,T),z=O.intersect(C);if(y+=z.seq1Range.length,_+=z.seq2Range.length,w=w.join(O),w.seq1Range.endExclusive>=C.seq1Range.endExclusive)S.shift();else break}y+_<(w.seq1Range.length+w.seq2Range.length)*2/3&&L.push(w),N=w.getEndExclusives()}for(;S.length>0;){const v=S.shift();v.seq1Range.isEmpty||(P(v.getStarts(),v),P(v.getEndExclusives().delta(-1),v))}return e(u,L)}function e(s,o){const u=[];for(;s.length>0||o.length>0;){const S=s[0],L=o[0];let N;S&&(!L||S.seq1Range.start0&&u[u.length-1].seq1Range.endExclusive>=N.seq1Range.start?u[u.length-1]=u[u.length-1].join(N):u.push(N)}return u}function h(s,o,u){let S=u;if(S.length===0)return S;let L=0,N;do{N=!1;const P=[S[0]];for(let E=1;E5||M.seq1Range.length+M.seq2Range.length>5)};const v=S[E],l=P[P.length-1];b(l,v)?(N=!0,P[P.length-1]=P[P.length-1].join(v)):P.push(v)}S=P}while(L++<10&&N);return S}function r(s,o,u){let S=u;if(S.length===0)return S;let L=0,N;do{N=!1;const E=[S[0]];for(let v=1;v5||_.length>500)return!1;const R=s.getText(_).trim();if(R.length>20||R.split(/\r\n|\r|\n/).length>1)return!1;const D=s.countLinesIn(M.seq1Range),T=M.seq1Range.length,O=o.countLinesIn(M.seq2Range),z=M.seq2Range.length,j=s.countLinesIn(y.seq1Range),F=y.seq1Range.length,q=o.countLinesIn(y.seq2Range),B=y.seq2Range.length,G=2*40+50;function $(U){return Math.min(U,G)}return Math.pow(Math.pow($(D*40+T),1.5)+Math.pow($(O*40+z),1.5),1.5)+Math.pow(Math.pow($(j*40+F),1.5)+Math.pow($(q*40+B),1.5),1.5)>(G**1.5)**1.5*1.3};const l=S[v],b=E[E.length-1];g(b,l)?(N=!0,E[E.length-1]=E[E.length-1].join(l)):E.push(l)}S=E}while(L++<10&&N);const P=[];return(0,i.forEachWithNeighbors)(S,(E,v,l)=>{let b=v;function g(R){return R.length>0&&R.trim().length<=3&&v.seq1Range.length+v.seq2Range.length>100}const w=s.extendToFullLines(v.seq1Range),M=s.getText(new x.OffsetRange(w.start,v.seq1Range.start));g(M)&&(b=b.deltaStart(-M.length));const y=s.getText(new x.OffsetRange(v.seq1Range.endExclusive,w.endExclusive));g(y)&&(b=b.deltaEnd(y.length));const _=A.SequenceDiff.fromOffsetPairs(E?E.getEndExclusives():A.OffsetPair.zero,l?l.getStarts():A.OffsetPair.max),C=b.intersect(_);P.length>0&&C.getStarts().equals(P[P.length-1].getEndExclusives())?P[P.length-1]=P[P.length-1].join(C):P.push(C)}),P}}),X(J[53],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.LineSequence=void 0;class i{constructor(d,f){this.trimmedHash=d,this.lines=f}getElement(d){return this.trimmedHash[d]}get length(){return this.trimmedHash.length}getBoundaryScore(d){const f=d===0?0:x(this.lines[d-1]),p=d===this.lines.length?0:x(this.lines[d]);return 1e3-(f+p)}getText(d){return this.lines.slice(d.start,d.endExclusive).join(` +`)}isStronglyEqual(d,f){return this.lines[d]===this.lines[f]}}n.LineSequence=i;function x(A){let d=0;for(;d0&&E>0&&h.get(P-1,E-1)===3&&(b+=r.get(P-1,E-1)),b+=m?m(P,E):1):b=-1;const g=Math.max(v,l,b);if(g===b){const w=P>0&&E>0?r.get(P-1,E-1):0;r.set(P,E,w+1),h.set(P,E,3)}else g===v?(r.set(P,E,0),h.set(P,E,1)):g===l&&(r.set(P,E,0),h.set(P,E,2));e.set(P,E,g)}const s=[];let o=p.length,u=c.length;function S(P,E){(P+1!==o||E+1!==u)&&s.push(new x.SequenceDiff(new i.OffsetRange(P+1,o),new i.OffsetRange(E+1,u))),o=P,u=E}let L=p.length-1,N=c.length-1;for(;L>=0&&N>=0;)h.get(L,N)===3?(S(L,N),L--,N--):h.get(L,N)===1?L--:N--;return S(-1,-1),s.reverse(),new x.DiffAlgorithmResult(s,!1)}}n.DynamicProgrammingDiffing=d}),X(J[33],Z([0,1,15,5,4,2,16]),function(W,n,i,x,A,d,f){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.LinesSliceCharSequence=void 0;class p{constructor(r,s,o){this.lines=r,this.range=s,this.considerWhitespaceChanges=o,this.elements=[],this.firstElementOffsetByLineIdx=[],this.lineStartOffsets=[],this.trimmedWsLengthsByLineIdx=[],this.firstElementOffsetByLineIdx.push(0);for(let u=this.range.startLineNumber;u<=this.range.endLineNumber;u++){let S=r[u-1],L=0;u===this.range.startLineNumber&&this.range.startColumn>1&&(L=this.range.startColumn-1,S=S.substring(L)),this.lineStartOffsets.push(L);let N=0;if(!o){const E=S.trimStart();N=S.length-E.length,S=E.trimEnd()}this.trimmedWsLengthsByLineIdx.push(N);const P=u===this.range.endLineNumber?Math.min(this.range.endColumn-1-L-N,S.length):S.length;for(let E=0;EString.fromCharCode(s)).join("")}getElement(r){return this.elements[r]}get length(){return this.elements.length}getBoundaryScore(r){const s=e(r>0?this.elements[r-1]:-1),o=e(rS<=r),u=r-this.firstElementOffsetByLineIdx[o];return new A.Position(this.range.startLineNumber+o,1+this.lineStartOffsets[o]+u+(u===0&&s==="left"?0:this.trimmedWsLengthsByLineIdx[o]))}translateRange(r){const s=this.translateOffset(r.start,"right"),o=this.translateOffset(r.endExclusive,"left");return o.isBefore(s)?d.Range.fromPositions(o,o):d.Range.fromPositions(s,o)}findWordContaining(r){if(r<0||r>=this.elements.length||!c(this.elements[r]))return;let s=r;for(;s>0&&c(this.elements[s-1]);)s--;let o=r;for(;ou<=r.start)??0,o=(0,i.findFirstMonotonous)(this.firstElementOffsetByLineIdx,u=>r.endExclusive<=u)??this.elements.length;return new x.OffsetRange(s,o)}}n.LinesSliceCharSequence=p;function c(h){return h>=97&&h<=122||h>=65&&h<=90||h>=48&&h<=57}const a={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function m(h){return a[h]}function e(h){return h===10?8:h===13?7:(0,f.isSpace)(h)?6:h>=97&&h<=122?0:h>=65&&h<=90?1:h>=48&&h<=57?2:h===-1?3:h===44||h===59?5:4}}),X(J[34],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MovedText=n.LinesDiff=void 0;class i{constructor(d,f,p){this.changes=d,this.moves=f,this.hitTimeout=p}}n.LinesDiff=i;class x{constructor(d,f){this.lineRangeMapping=d,this.changes=f}}n.MovedText=x}),X(J[17],Z([0,1,3,13,4,2,50]),function(W,n,i,x,A,d,f){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.RangeMapping=n.DetailedLineRangeMapping=n.LineRangeMapping=void 0;class p{static inverse(r,s,o){const u=[];let S=1,L=1;for(const P of r){const E=new p(new x.LineRange(S,P.original.startLineNumber),new x.LineRange(L,P.modified.startLineNumber));E.modified.isEmpty||u.push(E),S=P.original.endLineNumberExclusive,L=P.modified.endLineNumberExclusive}const N=new p(new x.LineRange(S,s+1),new x.LineRange(L,o+1));return N.modified.isEmpty||u.push(N),u}static clip(r,s,o){const u=[];for(const S of r){const L=S.original.intersect(s),N=S.modified.intersect(o);L&&!L.isEmpty&&N&&!N.isEmpty&&u.push(new p(L,N))}return u}constructor(r,s){this.original=r,this.modified=s}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new p(this.modified,this.original)}join(r){return new p(this.original.join(r.original),this.modified.join(r.modified))}toRangeMapping(){const r=this.original.toInclusiveRange(),s=this.modified.toInclusiveRange();if(r&&s)return new e(r,s);if(this.original.startLineNumber===1||this.modified.startLineNumber===1){if(!(this.modified.startLineNumber===1&&this.original.startLineNumber===1))throw new i.BugIndicatingError("not a valid diff");return new e(new d.Range(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new d.Range(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1))}else return new e(new d.Range(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),new d.Range(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER))}toRangeMapping2(r,s){if(a(this.original.endLineNumberExclusive,r)&&a(this.modified.endLineNumberExclusive,s))return new e(new d.Range(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new d.Range(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1));if(!this.original.isEmpty&&!this.modified.isEmpty)return new e(d.Range.fromPositions(new A.Position(this.original.startLineNumber,1),c(new A.Position(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),r)),d.Range.fromPositions(new A.Position(this.modified.startLineNumber,1),c(new A.Position(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),s)));if(this.original.startLineNumber>1&&this.modified.startLineNumber>1)return new e(d.Range.fromPositions(c(new A.Position(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER),r),c(new A.Position(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),r)),d.Range.fromPositions(c(new A.Position(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER),s),c(new A.Position(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),s)));throw new i.BugIndicatingError}}n.LineRangeMapping=p;function c(h,r){if(h.lineNumber<1)return new A.Position(1,1);if(h.lineNumber>r.length)return new A.Position(r.length,r[r.length-1].length+1);const s=r[h.lineNumber-1];return h.column>s.length+1?new A.Position(h.lineNumber,s.length+1):h}function a(h,r){return h>=1&&h<=r.length}class m extends p{static fromRangeMappings(r){const s=x.LineRange.join(r.map(u=>x.LineRange.fromRangeInclusive(u.originalRange))),o=x.LineRange.join(r.map(u=>x.LineRange.fromRangeInclusive(u.modifiedRange)));return new m(s,o,r)}constructor(r,s,o){super(r,s),this.innerChanges=o}flip(){return new m(this.modified,this.original,this.innerChanges?.map(r=>r.flip()))}withInnerChangesFromLineRanges(){return new m(this.original,this.modified,[this.toRangeMapping()])}}n.DetailedLineRangeMapping=m;class e{static assertSorted(r){for(let s=1;s${this.modifiedRange.toString()}}`}flip(){return new e(this.modifiedRange,this.originalRange)}toTextEdit(r){const s=r.getValueOfRange(this.modifiedRange);return new f.SingleTextEdit(this.originalRange,s)}}n.RangeMapping=e}),X(J[55],Z([0,1,10,17,7,15,21,13,33,16,32,2]),function(W,n,i,x,A,d,f,p,c,a,m,e){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.computeMovedLines=h;function h(N,P,E,v,l,b){let{moves:g,excludedChanges:w}=s(N,P,E,b);if(!b.isValid())return[];const M=N.filter(_=>!w.has(_)),y=o(M,v,l,P,E,b);return(0,A.pushMany)(g,y),g=S(g),g=g.filter(_=>{const C=_.original.toOffsetRange().slice(P).map(D=>D.trim());return C.join(` +`).length>=15&&r(C,D=>D.length>=2)>=2}),g=L(N,g),g}function r(N,P){let E=0;for(const v of N)P(v)&&E++;return E}function s(N,P,E,v){const l=[],b=N.filter(M=>M.modified.isEmpty&&M.original.length>=3).map(M=>new a.LineRangeFragment(M.original,P,M)),g=new Set(N.filter(M=>M.original.isEmpty&&M.modified.length>=3).map(M=>new a.LineRangeFragment(M.modified,E,M))),w=new Set;for(const M of b){let y=-1,_;for(const C of g){const R=M.computeSimilarity(C);R>y&&(y=R,_=C)}if(y>.9&&_&&(g.delete(_),l.push(new x.LineRangeMapping(M.range,_.range)),w.add(M.source),w.add(_.source)),!v.isValid())return{moves:l,excludedChanges:w}}return{moves:l,excludedChanges:w}}function o(N,P,E,v,l,b){const g=[],w=new f.SetMap;for(const R of N)for(let D=R.original.startLineNumber;DR.modified.startLineNumber,A.numberComparator));for(const R of N){let D=[];for(let T=R.modified.startLineNumber;T{for(const B of D)if(B.originalLineRange.endLineNumberExclusive+1===F.endLineNumberExclusive&&B.modifiedLineRange.endLineNumberExclusive+1===z.endLineNumberExclusive){B.originalLineRange=new p.LineRange(B.originalLineRange.startLineNumber,F.endLineNumberExclusive),B.modifiedLineRange=new p.LineRange(B.modifiedLineRange.startLineNumber,z.endLineNumberExclusive),j.push(B);return}const q={modifiedLineRange:z,originalLineRange:F};M.push(q),j.push(q)}),D=j}if(!b.isValid())return[]}M.sort((0,A.reverseOrder)((0,A.compareBy)(R=>R.modifiedLineRange.length,A.numberComparator)));const y=new p.LineRangeSet,_=new p.LineRangeSet;for(const R of M){const D=R.modifiedLineRange.startLineNumber-R.originalLineRange.startLineNumber,T=y.subtractFrom(R.modifiedLineRange),O=_.subtractFrom(R.originalLineRange).getWithDelta(D),z=T.getIntersection(O);for(const j of z.ranges){if(j.length<3)continue;const F=j,q=j.delta(-D);g.push(new x.LineRangeMapping(q,F)),y.addRange(F),_.addRange(q)}}g.sort((0,A.compareBy)(R=>R.original.startLineNumber,A.numberComparator));const C=new d.MonotonousArray(N);for(let R=0;R$.original.startLineNumber<=D.original.startLineNumber),O=(0,d.findLastMonotonous)(N,$=>$.modified.startLineNumber<=D.modified.startLineNumber),z=Math.max(D.original.startLineNumber-T.original.startLineNumber,D.modified.startLineNumber-O.modified.startLineNumber),j=C.findLastMonotonous($=>$.original.startLineNumber$.modified.startLineNumberv.length||U>l.length||y.contains(U)||_.contains($)||!u(v[$-1],l[U-1],b))break}B>0&&(_.addRange(new p.LineRange(D.original.startLineNumber-B,D.original.startLineNumber)),y.addRange(new p.LineRange(D.modified.startLineNumber-B,D.modified.startLineNumber)));let G;for(G=0;Gv.length||U>l.length||y.contains(U)||_.contains($)||!u(v[$-1],l[U-1],b))break}G>0&&(_.addRange(new p.LineRange(D.original.endLineNumberExclusive,D.original.endLineNumberExclusive+G)),y.addRange(new p.LineRange(D.modified.endLineNumberExclusive,D.modified.endLineNumberExclusive+G))),(B>0||G>0)&&(g[R]=new x.LineRangeMapping(new p.LineRange(D.original.startLineNumber-B,D.original.endLineNumberExclusive+G),new p.LineRange(D.modified.startLineNumber-B,D.modified.endLineNumberExclusive+G)))}return g}function u(N,P,E){if(N.trim()===P.trim())return!0;if(N.length>300&&P.length>300)return!1;const l=new m.MyersDiffAlgorithm().compute(new c.LinesSliceCharSequence([N],new e.Range(1,1,1,N.length),!1),new c.LinesSliceCharSequence([P],new e.Range(1,1,1,P.length),!1),E);let b=0;const g=i.SequenceDiff.invert(l.diffs,N.length);for(const _ of g)_.seq1Range.forEach(C=>{(0,a.isSpace)(N.charCodeAt(C))||b++});function w(_){let C=0;for(let R=0;RP.length?N:P);return b/M>.6&&M>10}function S(N){if(N.length===0)return N;N.sort((0,A.compareBy)(E=>E.original.startLineNumber,A.numberComparator));const P=[N[0]];for(let E=1;E=0&&g>=0&&b+g<=2){P[P.length-1]=v.join(l);continue}P.push(l)}return P}function L(N,P){const E=new d.MonotonousArray(N);return P=P.filter(v=>{const l=E.findLastMonotonous(w=>w.original.startLineNumberw.modified.startLineNumber$===U))return new s.LinesDiff([],[],!1);if(E.length===1&&E[0].length===0||v.length===1&&v[0].length===0)return new s.LinesDiff([new o.DetailedLineRangeMapping(new A.LineRange(1,E.length+1),new A.LineRange(1,v.length+1),[new o.RangeMapping(new f.Range(1,1,E.length,E[E.length-1].length+1),new f.Range(1,1,v.length,v[v.length-1].length+1))])],[],!1);const b=l.maxComputationTimeMs===0?p.InfiniteTimeout.instance:new p.DateTimeout(l.maxComputationTimeMs),g=!l.ignoreTrimWhitespace,w=new Map;function M($){let U=w.get($);return U===void 0&&(U=w.size,w.set($,U)),U}const y=E.map($=>M($.trim())),_=v.map($=>M($.trim())),C=new h.LineSequence(y,E),R=new h.LineSequence(_,v),D=C.length+R.length<1700?this.dynamicProgrammingDiffing.compute(C,R,b,($,U)=>E[$]===v[U]?v[U].length===0?.1:1+Math.log(1+v[U].length):.99):this.myersDiffingAlgorithm.compute(C,R,b);let T=D.diffs,O=D.hitTimeout;T=(0,e.optimizeSequenceDiffs)(C,R,T),T=(0,e.removeVeryShortMatchingLinesBetweenDiffs)(C,R,T);const z=[],j=$=>{if(g)for(let U=0;U<$;U++){const ee=F+U,re=q+U;if(E[ee]!==v[re]){const ue=this.refineDiff(E,v,new p.SequenceDiff(new d.OffsetRange(ee,ee+1),new d.OffsetRange(re,re+1)),b,g);for(const de of ue.mappings)z.push(de);ue.hitTimeout&&(O=!0)}}};let F=0,q=0;for(const $ of T){(0,x.assertFn)(()=>$.seq1Range.start-F===$.seq2Range.start-q);const U=$.seq1Range.start-F;j(U),F=$.seq1Range.endExclusive,q=$.seq2Range.endExclusive;const ee=this.refineDiff(E,v,$,b,g);ee.hitTimeout&&(O=!0);for(const re of ee.mappings)z.push(re)}j(E.length-F);const B=S(z,E,v);let G=[];return l.computeMoves&&(G=this.computeMoves(B,E,v,y,_,b,g)),(0,x.assertFn)(()=>{function $(ee,re){if(ee.lineNumber<1||ee.lineNumber>re.length)return!1;const ue=re[ee.lineNumber-1];return!(ee.column<1||ee.column>ue.length+1)}function U(ee,re){return!(ee.startLineNumber<1||ee.startLineNumber>re.length+1||ee.endLineNumberExclusive<1||ee.endLineNumberExclusive>re.length+1)}for(const ee of B){if(!ee.innerChanges)return!1;for(const re of ee.innerChanges)if(!($(re.modifiedRange.getStartPosition(),v)&&$(re.modifiedRange.getEndPosition(),v)&&$(re.originalRange.getStartPosition(),E)&&$(re.originalRange.getEndPosition(),E)))return!1;if(!U(ee.modified,v)||!U(ee.original,E))return!1}return!0}),new s.LinesDiff(B,G,O)}computeMoves(E,v,l,b,g,w,M){return(0,m.computeMovedLines)(E,v,l,b,g,w).map(C=>{const R=this.refineDiff(v,l,new p.SequenceDiff(C.original.toOffsetRange(),C.modified.toOffsetRange()),w,M),D=S(R.mappings,v,l,!0);return new s.MovedText(C,D)})}refineDiff(E,v,l,b,g){const M=N(l).toRangeMapping2(E,v),y=new r.LinesSliceCharSequence(E,M.originalRange,g),_=new r.LinesSliceCharSequence(v,M.modifiedRange,g),C=y.length+_.length<500?this.dynamicProgrammingDiffing.compute(y,_,b):this.myersDiffingAlgorithm.compute(y,_,b),R=!1;let D=C.diffs;R&&p.SequenceDiff.assertSorted(D),D=(0,e.optimizeSequenceDiffs)(y,_,D),R&&p.SequenceDiff.assertSorted(D),D=(0,e.extendDiffsToEntireWordIfAppropriate)(y,_,D),R&&p.SequenceDiff.assertSorted(D),D=(0,e.removeShortMatches)(y,_,D),R&&p.SequenceDiff.assertSorted(D),D=(0,e.removeVeryShortMatchingTextBetweenLongDiffs)(y,_,D),R&&p.SequenceDiff.assertSorted(D);const T=D.map(O=>new o.RangeMapping(y.translateRange(O.seq1Range),_.translateRange(O.seq2Range)));return R&&o.RangeMapping.assertSorted(T),{mappings:T,hitTimeout:C.hitTimeout}}}n.DefaultLinesDiffComputer=u;function S(P,E,v,l=!1){const b=[];for(const g of(0,i.groupAdjacentBy)(P.map(w=>L(w,E,v)),(w,M)=>w.original.overlapOrTouch(M.original)||w.modified.overlapOrTouch(M.modified))){const w=g[0],M=g[g.length-1];b.push(new o.DetailedLineRangeMapping(w.original.join(M.original),w.modified.join(M.modified),g.map(y=>y.innerChanges[0])))}return(0,x.assertFn)(()=>!l&&b.length>0&&(b[0].modified.startLineNumber!==b[0].original.startLineNumber||v.length-b[b.length-1].modified.endLineNumberExclusive!==E.length-b[b.length-1].original.endLineNumberExclusive)?!1:(0,x.checkAdjacentItems)(b,(g,w)=>w.original.startLineNumber-g.original.endLineNumberExclusive===w.modified.startLineNumber-g.modified.endLineNumberExclusive&&g.original.endLineNumberExclusive=v[P.modifiedRange.startLineNumber-1].length&&P.originalRange.startColumn-1>=E[P.originalRange.startLineNumber-1].length&&P.originalRange.startLineNumber<=P.originalRange.endLineNumber+b&&P.modifiedRange.startLineNumber<=P.modifiedRange.endLineNumber+b&&(l=1);const g=new A.LineRange(P.originalRange.startLineNumber+l,P.originalRange.endLineNumber+1+b),w=new A.LineRange(P.modifiedRange.startLineNumber+l,P.modifiedRange.endLineNumber+1+b);return new o.DetailedLineRangeMapping(g,w,[P])}function N(P){return new o.LineRangeMapping(new A.LineRange(P.seq1Range.start+1,P.seq1Range.endExclusive+1),new A.LineRange(P.seq2Range.start+1,P.seq2Range.endExclusive+1))}}),X(J[57],Z([0,1,24,34,17,6,2,12,13]),function(W,n,i,x,A,d,f,p,c){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DiffComputer=n.LegacyLinesDiffComputer=void 0;const a=3;class m{computeDiff(v,l,b){const w=new S(v,l,{maxComputationTime:b.maxComputationTimeMs,shouldIgnoreTrimWhitespace:b.ignoreTrimWhitespace,shouldComputeCharChanges:!0,shouldMakePrettyDiff:!0,shouldPostProcessCharChanges:!0}).computeDiff(),M=[];let y=null;for(const _ of w.changes){let C;_.originalEndLineNumber===0?C=new c.LineRange(_.originalStartLineNumber+1,_.originalStartLineNumber+1):C=new c.LineRange(_.originalStartLineNumber,_.originalEndLineNumber+1);let R;_.modifiedEndLineNumber===0?R=new c.LineRange(_.modifiedStartLineNumber+1,_.modifiedStartLineNumber+1):R=new c.LineRange(_.modifiedStartLineNumber,_.modifiedEndLineNumber+1);let D=new A.DetailedLineRangeMapping(C,R,_.charChanges?.map(T=>new A.RangeMapping(new f.Range(T.originalStartLineNumber,T.originalStartColumn,T.originalEndLineNumber,T.originalEndColumn),new f.Range(T.modifiedStartLineNumber,T.modifiedStartColumn,T.modifiedEndLineNumber,T.modifiedEndColumn))));y&&(y.modified.endLineNumberExclusive===D.modified.startLineNumber||y.original.endLineNumberExclusive===D.original.startLineNumber)&&(D=new A.DetailedLineRangeMapping(y.original.join(D.original),y.modified.join(D.modified),y.innerChanges&&D.innerChanges?y.innerChanges.concat(D.innerChanges):void 0),M.pop()),M.push(D),y=D}return(0,p.assertFn)(()=>(0,p.checkAdjacentItems)(M,(_,C)=>C.original.startLineNumber-_.original.endLineNumberExclusive===C.modified.startLineNumber-_.modified.endLineNumberExclusive&&_.original.endLineNumberExclusive(v===10?"\\n":String.fromCharCode(v))+`-(${this._lineNumbers[l]},${this._columns[l]})`).join(", ")+"]"}_assertIndex(v,l){if(v<0||v>=l.length)throw new Error("Illegal index")}getElements(){return this._charCodes}getStartLineNumber(v){return v>0&&v===this._lineNumbers.length?this.getEndLineNumber(v-1):(this._assertIndex(v,this._lineNumbers),this._lineNumbers[v])}getEndLineNumber(v){return v===-1?this.getStartLineNumber(v+1):(this._assertIndex(v,this._lineNumbers),this._charCodes[v]===10?this._lineNumbers[v]+1:this._lineNumbers[v])}getStartColumn(v){return v>0&&v===this._columns.length?this.getEndColumn(v-1):(this._assertIndex(v,this._columns),this._columns[v])}getEndColumn(v){return v===-1?this.getStartColumn(v+1):(this._assertIndex(v,this._columns),this._charCodes[v]===10?1:this._columns[v]+1)}}class s{constructor(v,l,b,g,w,M,y,_){this.originalStartLineNumber=v,this.originalStartColumn=l,this.originalEndLineNumber=b,this.originalEndColumn=g,this.modifiedStartLineNumber=w,this.modifiedStartColumn=M,this.modifiedEndLineNumber=y,this.modifiedEndColumn=_}static createFromDiffChange(v,l,b){const g=l.getStartLineNumber(v.originalStart),w=l.getStartColumn(v.originalStart),M=l.getEndLineNumber(v.originalStart+v.originalLength-1),y=l.getEndColumn(v.originalStart+v.originalLength-1),_=b.getStartLineNumber(v.modifiedStart),C=b.getStartColumn(v.modifiedStart),R=b.getEndLineNumber(v.modifiedStart+v.modifiedLength-1),D=b.getEndColumn(v.modifiedStart+v.modifiedLength-1);return new s(g,w,M,y,_,C,R,D)}}function o(E){if(E.length<=1)return E;const v=[E[0]];let l=v[0];for(let b=1,g=E.length;b0&&l.originalLength<20&&l.modifiedLength>0&&l.modifiedLength<20&&w()){const O=b.createCharSequence(v,l.originalStart,l.originalStart+l.originalLength-1),z=g.createCharSequence(v,l.modifiedStart,l.modifiedStart+l.modifiedLength-1);if(O.getElements().length>0&&z.getElements().length>0){let j=e(O,z,w,!0).changes;y&&(j=o(j)),T=[];for(let F=0,q=j.length;F1&&j>1;){const F=T.charCodeAt(z-2),q=O.charCodeAt(j-2);if(F!==q)break;z--,j--}(z>1||j>1)&&this._pushTrimWhitespaceCharChange(g,w+1,1,z,M+1,1,j)}{let z=N(T,1),j=N(O,1);const F=T.length+1,q=O.length+1;for(;z!0;const v=Date.now();return()=>Date.now()-vnew i.LegacyLinesDiffComputer,getDefault:()=>new x.DefaultLinesDiffComputer}}),X(J[59],Z([0,1,40]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.computeDefaultDocumentColors=e;function x(h){const r=[];for(const s of h){const o=Number(s);(o||o===0&&s.replace(/\s/g,"")!=="")&&r.push(o)}return r}function A(h,r,s,o){return{red:h/255,blue:s/255,green:r/255,alpha:o}}function d(h,r){const s=r.index,o=r[0].length;if(!s)return;const u=h.positionAt(s);return{startLineNumber:u.lineNumber,startColumn:u.column,endLineNumber:u.lineNumber,endColumn:u.column+o}}function f(h,r){if(!h)return;const s=i.Color.Format.CSS.parseHex(r);if(s)return{range:h,color:A(s.rgba.r,s.rgba.g,s.rgba.b,s.rgba.a)}}function p(h,r,s){if(!h||r.length!==1)return;const u=r[0].values(),S=x(u);return{range:h,color:A(S[0],S[1],S[2],s?S[3]:1)}}function c(h,r,s){if(!h||r.length!==1)return;const u=r[0].values(),S=x(u),L=new i.Color(new i.HSLA(S[0],S[1]/100,S[2]/100,s?S[3]:1));return{range:h,color:A(L.rgba.r,L.rgba.g,L.rgba.b,L.rgba.a)}}function a(h,r){return typeof h=="string"?[...h.matchAll(r)]:h.findMatches(r)}function m(h){const r=[],o=a(h,/\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%]*\))|(#)([A-Fa-f0-9]{3})\b|(#)([A-Fa-f0-9]{4})\b|(#)([A-Fa-f0-9]{6})\b|(#)([A-Fa-f0-9]{8})\b/gm);if(o.length>0)for(const u of o){const S=u.filter(E=>E!==void 0),L=S[1],N=S[2];if(!N)continue;let P;if(L==="rgb"){const E=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;P=p(d(h,u),a(N,E),!1)}else if(L==="rgba"){const E=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;P=p(d(h,u),a(N,E),!0)}else if(L==="hsl"){const E=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;P=c(d(h,u),a(N,E),!1)}else if(L==="hsla"){const E=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;P=c(d(h,u),a(N,E),!0)}else L==="#"&&(P=f(d(h,u),L+N));P&&r.push(P)}return r}function e(h){return!h||typeof h.getValue!="function"||typeof h.positionAt!="function"?[]:m(h)}}),X(J[60],Z([0,1,29]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.LinkComputer=n.StateMachine=void 0,n.computeLinks=m;class x{constructor(h,r,s){const o=new Uint8Array(h*r);for(let u=0,S=h*r;ur&&(r=N),L>s&&(s=L),P>s&&(s=P)}r++,s++;const o=new x(s,r,0);for(let u=0,S=h.length;u=this._maxCharCode?0:this._states.get(h,r)}}n.StateMachine=A;let d=null;function f(){return d===null&&(d=new A([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),d}let p=null;function c(){if(p===null){p=new i.CharacterClassifier(0);const e=` <>'"\u3001\u3002\uFF61\uFF64\uFF0C\uFF0E\uFF1A\uFF1B\u2018\u3008\u300C\u300E\u3014\uFF08\uFF3B\uFF5B\uFF62\uFF63\uFF5D\uFF3D\uFF09\u3015\u300F\u300D\u3009\u2019\uFF40\uFF5E\u2026`;for(let r=0;ro);if(o>0){const L=r.charCodeAt(o-1),N=r.charCodeAt(S);(L===40&&N===41||L===91&&N===93||L===123&&N===125)&&S--}return{range:{startLineNumber:s,startColumn:o+1,endLineNumber:s,endColumn:S+2},url:r.substring(o,S+1)}}static computeLinks(h,r=f()){const s=c(),o=[];for(let u=1,S=h.getLineCount();u<=S;u++){const L=h.getLineContent(u),N=L.length;let P=0,E=0,v=0,l=1,b=!1,g=!1,w=!1,M=!1;for(;P=0?(p+=f?1:-1,p<0?p=A.length-1:p%=A.length,A[p]):null}}n.BasicInplaceReplace=i}),X(J[62],Z([0,1,27]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.ApplyEditsResult=n.SearchData=n.ValidAnnotatedEditOperation=n.FindMatch=n.TextModelResolvedOptions=n.InjectedTextCursorStops=n.GlyphMarginLane=n.OverviewRulerLane=void 0,n.isITextSnapshot=c,n.shouldSynchronizeModel=h;var x;(function(r){r[r.Left=1]="Left",r[r.Center=2]="Center",r[r.Right=4]="Right",r[r.Full=7]="Full"})(x||(n.OverviewRulerLane=x={}));var A;(function(r){r[r.Left=1]="Left",r[r.Center=2]="Center",r[r.Right=3]="Right"})(A||(n.GlyphMarginLane=A={}));var d;(function(r){r[r.Both=0]="Both",r[r.Right=1]="Right",r[r.Left=2]="Left",r[r.None=3]="None"})(d||(n.InjectedTextCursorStops=d={}));class f{get originalIndentSize(){return this._indentSizeIsTabSize?"tabSize":this.indentSize}constructor(s){this._textModelResolvedOptionsBrand=void 0,this.tabSize=Math.max(1,s.tabSize|0),s.indentSize==="tabSize"?(this.indentSize=this.tabSize,this._indentSizeIsTabSize=!0):(this.indentSize=Math.max(1,s.indentSize|0),this._indentSizeIsTabSize=!1),this.insertSpaces=!!s.insertSpaces,this.defaultEOL=s.defaultEOL|0,this.trimAutoWhitespace=!!s.trimAutoWhitespace,this.bracketPairColorizationOptions=s.bracketPairColorizationOptions}equals(s){return this.tabSize===s.tabSize&&this._indentSizeIsTabSize===s._indentSizeIsTabSize&&this.indentSize===s.indentSize&&this.insertSpaces===s.insertSpaces&&this.defaultEOL===s.defaultEOL&&this.trimAutoWhitespace===s.trimAutoWhitespace&&(0,i.equals)(this.bracketPairColorizationOptions,s.bracketPairColorizationOptions)}createChangeEvent(s){return{tabSize:this.tabSize!==s.tabSize,indentSize:this.indentSize!==s.indentSize,insertSpaces:this.insertSpaces!==s.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==s.trimAutoWhitespace}}}n.TextModelResolvedOptions=f;class p{constructor(s,o){this._findMatchBrand=void 0,this.range=s,this.matches=o}}n.FindMatch=p;function c(r){return r&&typeof r.read=="function"}class a{constructor(s,o,u,S,L,N){this.identifier=s,this.range=o,this.text=u,this.forceMoveMarkers=S,this.isAutoWhitespaceEdit=L,this._isTracked=N}}n.ValidAnnotatedEditOperation=a;class m{constructor(s,o,u){this.regex=s,this.wordSeparators=o,this.simpleSearch=u}}n.SearchData=m;class e{constructor(s,o,u){this.reverseEdits=s,this.changes=o,this.trimAutoWhitespaceLineNumbers=u}}n.ApplyEditsResult=e;function h(r){return!r.isTooLargeForSyncing()&&!r.isForSimpleWidget}}),X(J[63],Z([0,1,7,28]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PrefixSumIndexOfResult=n.ConstantTimePrefixSumComputer=n.PrefixSumComputer=void 0;class A{constructor(c){this.values=c,this.prefixSum=new Uint32Array(c.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(c,a){c=(0,x.toUint32)(c);const m=this.values,e=this.prefixSum,h=a.length;return h===0?!1:(this.values=new Uint32Array(m.length+h),this.values.set(m.subarray(0,c),0),this.values.set(m.subarray(c),c+h),this.values.set(a,c),c-1=0&&this.prefixSum.set(e.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(c,a){return c=(0,x.toUint32)(c),a=(0,x.toUint32)(a),this.values[c]===a?!1:(this.values[c]=a,c-1=m.length)return!1;const h=m.length-c;return a>=h&&(a=h),a===0?!1:(this.values=new Uint32Array(m.length-a),this.values.set(m.subarray(0,c),0),this.values.set(m.subarray(c+a),c),this.prefixSum=new Uint32Array(this.values.length),c-1=0&&this.prefixSum.set(e.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(c){return c<0?0:(c=(0,x.toUint32)(c),this._getPrefixSum(c))}_getPrefixSum(c){if(c<=this.prefixSumValidIndex[0])return this.prefixSum[c];let a=this.prefixSumValidIndex[0]+1;a===0&&(this.prefixSum[0]=this.values[0],a++),c>=this.values.length&&(c=this.values.length-1);for(let m=a;m<=c;m++)this.prefixSum[m]=this.prefixSum[m-1]+this.values[m];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],c),this.prefixSum[c]}getIndexOf(c){c=Math.floor(c),this.getTotalSum();let a=0,m=this.values.length-1,e=0,h=0,r=0;for(;a<=m;)if(e=a+(m-a)/2|0,h=this.prefixSum[e],r=h-this.values[e],c=h)a=e+1;else break;return new f(e,c-r)}}n.PrefixSumComputer=A;class d{constructor(c){this._values=c,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(c){return this._ensureValid(),c===0?0:this._prefixSum[c-1]}getIndexOf(c){this._ensureValid();const a=this._indexBySum[c],m=a>0?this._prefixSum[a-1]:0;return new f(a,c-m)}removeValues(c,a){this._values.splice(c,a),this._invalidate(c)}insertValues(c,a){this._values=(0,i.arrayInsert)(this._values,c,a),this._invalidate(c)}_invalidate(c){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,c-1)}_ensureValid(){if(!this._isValid){for(let c=this._validEndIndex+1,a=this._values.length;c0?this._prefixSum[c-1]:0;this._prefixSum[c]=e+m;for(let h=0;h=0;let N=null;try{N=i.createRegExp(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:L,global:!0,unicode:!0})}catch{return null}if(!N)return null;let P=!this.isRegex&&!L;return P&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(P=this.matchCase),new f.SearchData(N,this.wordSeparators?(0,x.getMapForWordSeparators)(this.wordSeparators,[]):null,P?this.searchString:null)}}n.SearchParams=c;function a(S){if(!S||S.length===0)return!1;for(let L=0,N=S.length;L=N)break;const E=S.charCodeAt(L);if(E===110||E===114||E===87)return!0}}return!1}function m(S,L,N){if(!N)return new f.FindMatch(S,null);const P=[];for(let E=0,v=L.length;E>0);N[v]>=L?E=v-1:N[v+1]>=L?(P=v,E=v):P=v+1}return P+1}}class h{static findMatches(L,N,P,E,v){const l=N.parseSearchRequest();return l?l.regex.multiline?this._doFindMatchesMultiline(L,P,new u(l.wordSeparators,l.regex),E,v):this._doFindMatchesLineByLine(L,P,l,E,v):[]}static _getMultilineMatchRange(L,N,P,E,v,l){let b,g=0;E?(g=E.findLineFeedCountBeforeOffset(v),b=N+v+g):b=N+v;let w;if(E){const C=E.findLineFeedCountBeforeOffset(v+l.length)-g;w=b+l.length+C}else w=b+l.length;const M=L.getPositionAt(b),y=L.getPositionAt(w);return new d.Range(M.lineNumber,M.column,y.lineNumber,y.column)}static _doFindMatchesMultiline(L,N,P,E,v){const l=L.getOffsetAt(N.getStartPosition()),b=L.getValueInRange(N,1),g=L.getEOL()===`\r +`?new e(b):null,w=[];let M=0,y;for(P.reset(0);y=P.next(b);)if(w[M++]=m(this._getMultilineMatchRange(L,l,b,g,y.index,y[0]),y,E),M>=v)return w;return w}static _doFindMatchesLineByLine(L,N,P,E,v){const l=[];let b=0;if(N.startLineNumber===N.endLineNumber){const w=L.getLineContent(N.startLineNumber).substring(N.startColumn-1,N.endColumn-1);return b=this._findMatchesInLine(P,w,N.startLineNumber,N.startColumn-1,b,l,E,v),l}const g=L.getLineContent(N.startLineNumber).substring(N.startColumn-1);b=this._findMatchesInLine(P,g,N.startLineNumber,N.startColumn-1,b,l,E,v);for(let w=N.startLineNumber+1;w=g))return v;return v}const M=new u(L.wordSeparators,L.regex);let y;M.reset(0);do if(y=M.next(N),y&&(l[v++]=m(new d.Range(P,y.index+1+E,P,y.index+1+y[0].length+E),y,b),v>=g))return v;while(y);return v}static findNextMatch(L,N,P,E){const v=N.parseSearchRequest();if(!v)return null;const l=new u(v.wordSeparators,v.regex);return v.regex.multiline?this._doFindNextMatchMultiline(L,P,l,E):this._doFindNextMatchLineByLine(L,P,l,E)}static _doFindNextMatchMultiline(L,N,P,E){const v=new A.Position(N.lineNumber,1),l=L.getOffsetAt(v),b=L.getLineCount(),g=L.getValueInRange(new d.Range(v.lineNumber,v.column,b,L.getLineMaxColumn(b)),1),w=L.getEOL()===`\r +`?new e(g):null;P.reset(N.column-1);const M=P.next(g);return M?m(this._getMultilineMatchRange(L,l,g,w,M.index,M[0]),M,E):N.lineNumber!==1||N.column!==1?this._doFindNextMatchMultiline(L,new A.Position(1,1),P,E):null}static _doFindNextMatchLineByLine(L,N,P,E){const v=L.getLineCount(),l=N.lineNumber,b=L.getLineContent(l),g=this._findFirstMatchInLine(P,b,l,N.column,E);if(g)return g;for(let w=1;w<=v;w++){const M=(l+w-1)%v,y=L.getLineContent(M+1),_=this._findFirstMatchInLine(P,y,M+1,1,E);if(_)return _}return null}static _findFirstMatchInLine(L,N,P,E,v){L.reset(E-1);const l=L.next(N);return l?m(new d.Range(P,l.index+1,P,l.index+1+l[0].length),l,v):null}static findPreviousMatch(L,N,P,E){const v=N.parseSearchRequest();if(!v)return null;const l=new u(v.wordSeparators,v.regex);return v.regex.multiline?this._doFindPreviousMatchMultiline(L,P,l,E):this._doFindPreviousMatchLineByLine(L,P,l,E)}static _doFindPreviousMatchMultiline(L,N,P,E){const v=this._doFindMatchesMultiline(L,new d.Range(1,1,N.lineNumber,N.column),P,E,10*p);if(v.length>0)return v[v.length-1];const l=L.getLineCount();return N.lineNumber!==l||N.column!==L.getLineMaxColumn(l)?this._doFindPreviousMatchMultiline(L,new A.Position(l,L.getLineMaxColumn(l)),P,E):null}static _doFindPreviousMatchLineByLine(L,N,P,E){const v=L.getLineCount(),l=N.lineNumber,b=L.getLineContent(l).substring(0,N.column-1),g=this._findLastMatchInLine(P,b,l,E);if(g)return g;for(let w=1;w<=v;w++){const M=(v+l-w-1)%v,y=L.getLineContent(M+1),_=this._findLastMatchInLine(P,y,M+1,E);if(_)return _}return null}static _findLastMatchInLine(L,N,P,E){let v=null,l;for(L.reset(0);l=L.next(N);)v=m(new d.Range(P,l.index+1,P,l.index+1+l[0].length),l,E);return v}}n.TextModelSearch=h;function r(S,L,N,P,E){if(P===0)return!0;const v=L.charCodeAt(P-1);if(S.get(v)!==0||v===13||v===10)return!0;if(E>0){const l=L.charCodeAt(P);if(S.get(l)!==0)return!0}return!1}function s(S,L,N,P,E){if(P+E===N)return!0;const v=L.charCodeAt(P+E);if(S.get(v)!==0||v===13||v===10)return!0;if(E>0){const l=L.charCodeAt(P+E-1);if(S.get(l)!==0)return!0}return!1}function o(S,L,N,P,E){return r(S,L,N,P,E)&&s(S,L,N,P,E)}class u{constructor(L,N){this._wordSeparators=L,this._searchRegex=N,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(L){this._searchRegex.lastIndex=L,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(L){const N=L.length;let P;do{if(this._prevMatchStartIndex+this._prevMatchLength===N||(P=this._searchRegex.exec(L),!P))return null;const E=P.index,v=P[0].length;if(E===this._prevMatchStartIndex&&v===this._prevMatchLength){if(v===0){i.getNextCodePoint(L,N,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=E,this._prevMatchLength=v,!this._wordSeparators||o(this._wordSeparators,L,N,E,v))return P}while(P);return null}}n.Searcher=u}),X(J[66],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.EditorWorkerHost=void 0;class i{static{this.CHANNEL_NAME="editorWorkerHost"}static getChannel(A){return A.getChannel(i.CHANNEL_NAME)}static setChannel(A,d){A.setChannel(i.CHANNEL_NAME,d)}}n.EditorWorkerHost=i}),X(J[67],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.findSectionHeaders=A;const i=new RegExp("\\bMARK:\\s*(.*)$","d"),x=/^-+|-+$/g;function A(a,m){let e=[];if(m.findRegionSectionHeaders&&m.foldingRules?.markers){const h=d(a,m);e=e.concat(h)}if(m.findMarkSectionHeaders){const h=f(a);e=e.concat(h)}return e}function d(a,m){const e=[],h=a.getLineCount();for(let r=1;r<=h;r++){const s=a.getLineContent(r),o=s.match(m.foldingRules.markers.start);if(o){const u={startLineNumber:r,startColumn:o[0].length+1,endLineNumber:r,endColumn:s.length+1};if(u.endColumn>u.startColumn){const S={range:u,...c(s.substring(o[0].length)),shouldBeInComments:!1};(S.text||S.hasSeparatorLine)&&e.push(S)}}}return e}function f(a){const m=[],e=a.getLineCount();for(let h=1;h<=e;h++){const r=a.getLineContent(h);p(r,h,m)}return m}function p(a,m,e){i.lastIndex=0;const h=i.exec(a);if(h){const r=h.indices[1][0]+1,s=h.indices[1][1]+1,o={startLineNumber:m,startColumn:r,endLineNumber:m,endColumn:s};if(o.endColumn>o.startColumn){const u={range:o,...c(h[1]),shouldBeInComments:!0};(u.text||u.hasSeparatorLine)&&e.push(u)}}}function c(a){a=a.trim();const m=a.startsWith("-");return a=a.replace(x,""),{text:a,hasSeparatorLine:m}}}),X(J[68],Z([0,1,2,65,6,12,31]),function(W,n,i,x,A,d,f){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.UnicodeTextModelHighlighter=void 0;class p{static computeUnicodeHighlights(h,r,s){const o=s?s.startLineNumber:1,u=s?s.endLineNumber:h.getLineCount(),S=new a(r),L=S.getCandidateCodePoints();let N;L==="allNonBasicAscii"?N=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):N=new RegExp(`${c(Array.from(L))}`,"g");const P=new x.Searcher(null,N),E=[];let v=!1,l,b=0,g=0,w=0;e:for(let M=o,y=u;M<=y;M++){const _=h.getLineContent(M),C=_.length;P.reset(0);do if(l=P.next(_),l){let R=l.index,D=l.index+l[0].length;if(R>0){const j=_.charCodeAt(R-1);A.isHighSurrogate(j)&&R--}if(D+1=1e3){v=!0;break e}E.push(new i.Range(M,R+1,M,D+1))}}while(l)}return{ranges:E,hasMore:v,ambiguousCharacterCount:b,invisibleCharacterCount:g,nonBasicAsciiCharacterCount:w}}static computeUnicodeHighlightReason(h,r){const s=new a(r);switch(s.shouldHighlightNonBasicASCII(h,null)){case 0:return null;case 2:return{kind:1};case 3:{const u=h.codePointAt(0),S=s.ambiguousCharacters.getPrimaryConfusable(u),L=A.AmbiguousCharacters.getLocales().filter(N=>!A.AmbiguousCharacters.getInstance(new Set([...r.allowedLocales,N])).isAmbiguous(u));return{kind:0,confusableWith:String.fromCodePoint(S),notAmbiguousInLocales:L}}case 1:return{kind:2}}}}n.UnicodeTextModelHighlighter=p;function c(e,h){return`[${A.escapeRegExpCharacters(e.map(s=>String.fromCodePoint(s)).join(""))}]`}class a{constructor(h){this.options=h,this.allowedCodePoints=new Set(h.allowedCodePoints),this.ambiguousCharacters=A.AmbiguousCharacters.getInstance(new Set(h.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const h=new Set;if(this.options.invisibleCharacters)for(const r of A.InvisibleCharacters.codePoints)m(String.fromCodePoint(r))||h.add(r);if(this.options.ambiguousCharacters)for(const r of this.ambiguousCharacters.getConfusableCodePoints())h.add(r);for(const r of this.allowedCodePoints)h.delete(r);return h}shouldHighlightNonBasicASCII(h,r){const s=h.codePointAt(0);if(this.allowedCodePoints.has(s))return 0;if(this.options.nonBasicASCII)return 1;let o=!1,u=!1;if(r)for(const S of r){const L=S.codePointAt(0),N=A.isBasicASCII(S);o=o||N,!N&&!this.ambiguousCharacters.isAmbiguous(L)&&!A.InvisibleCharacters.isInvisibleCharacter(L)&&(u=!0)}return!o&&u?0:this.options.invisibleCharacters&&!m(h)&&A.InvisibleCharacters.isInvisibleCharacter(s)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(s)?3:0}}function m(e){return e===" "||e===` +`||e===" "}}),X(J[69],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.WrappingIndent=n.TrackedRangeStickiness=n.TextEditorCursorStyle=n.TextEditorCursorBlinkingStyle=n.SymbolTag=n.SymbolKind=n.SignatureHelpTriggerKind=n.ShowLightbulbIconMode=n.SelectionDirection=n.ScrollbarVisibility=n.ScrollType=n.RenderMinimap=n.RenderLineNumbersType=n.PositionAffinity=n.PartialAcceptTriggerKind=n.OverviewRulerLane=n.OverlayWidgetPositionPreference=n.NewSymbolNameTriggerKind=n.NewSymbolNameTag=n.MouseTargetType=n.MinimapSectionHeaderStyle=n.MinimapPosition=n.MarkerTag=n.MarkerSeverity=n.KeyCode=n.InlineEditTriggerKind=n.InlineCompletionTriggerKind=n.InlayHintKind=n.InjectedTextCursorStops=n.IndentAction=n.HoverVerbosityAction=n.GlyphMarginLane=n.EndOfLineSequence=n.EndOfLinePreference=n.EditorOption=n.EditorAutoIndentStrategy=n.DocumentHighlightKind=n.DefaultEndOfLine=n.CursorChangeReason=n.ContentWidgetPositionPreference=n.CompletionTriggerKind=n.CompletionItemTag=n.CompletionItemKind=n.CompletionItemInsertTextRule=n.CodeActionTriggerType=n.AccessibilitySupport=void 0;var i;(function(t){t[t.Unknown=0]="Unknown",t[t.Disabled=1]="Disabled",t[t.Enabled=2]="Enabled"})(i||(n.AccessibilitySupport=i={}));var x;(function(t){t[t.Invoke=1]="Invoke",t[t.Auto=2]="Auto"})(x||(n.CodeActionTriggerType=x={}));var A;(function(t){t[t.None=0]="None",t[t.KeepWhitespace=1]="KeepWhitespace",t[t.InsertAsSnippet=4]="InsertAsSnippet"})(A||(n.CompletionItemInsertTextRule=A={}));var d;(function(t){t[t.Method=0]="Method",t[t.Function=1]="Function",t[t.Constructor=2]="Constructor",t[t.Field=3]="Field",t[t.Variable=4]="Variable",t[t.Class=5]="Class",t[t.Struct=6]="Struct",t[t.Interface=7]="Interface",t[t.Module=8]="Module",t[t.Property=9]="Property",t[t.Event=10]="Event",t[t.Operator=11]="Operator",t[t.Unit=12]="Unit",t[t.Value=13]="Value",t[t.Constant=14]="Constant",t[t.Enum=15]="Enum",t[t.EnumMember=16]="EnumMember",t[t.Keyword=17]="Keyword",t[t.Text=18]="Text",t[t.Color=19]="Color",t[t.File=20]="File",t[t.Reference=21]="Reference",t[t.Customcolor=22]="Customcolor",t[t.Folder=23]="Folder",t[t.TypeParameter=24]="TypeParameter",t[t.User=25]="User",t[t.Issue=26]="Issue",t[t.Snippet=27]="Snippet"})(d||(n.CompletionItemKind=d={}));var f;(function(t){t[t.Deprecated=1]="Deprecated"})(f||(n.CompletionItemTag=f={}));var p;(function(t){t[t.Invoke=0]="Invoke",t[t.TriggerCharacter=1]="TriggerCharacter",t[t.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"})(p||(n.CompletionTriggerKind=p={}));var c;(function(t){t[t.EXACT=0]="EXACT",t[t.ABOVE=1]="ABOVE",t[t.BELOW=2]="BELOW"})(c||(n.ContentWidgetPositionPreference=c={}));var a;(function(t){t[t.NotSet=0]="NotSet",t[t.ContentFlush=1]="ContentFlush",t[t.RecoverFromMarkers=2]="RecoverFromMarkers",t[t.Explicit=3]="Explicit",t[t.Paste=4]="Paste",t[t.Undo=5]="Undo",t[t.Redo=6]="Redo"})(a||(n.CursorChangeReason=a={}));var m;(function(t){t[t.LF=1]="LF",t[t.CRLF=2]="CRLF"})(m||(n.DefaultEndOfLine=m={}));var e;(function(t){t[t.Text=0]="Text",t[t.Read=1]="Read",t[t.Write=2]="Write"})(e||(n.DocumentHighlightKind=e={}));var h;(function(t){t[t.None=0]="None",t[t.Keep=1]="Keep",t[t.Brackets=2]="Brackets",t[t.Advanced=3]="Advanced",t[t.Full=4]="Full"})(h||(n.EditorAutoIndentStrategy=h={}));var r;(function(t){t[t.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",t[t.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",t[t.accessibilitySupport=2]="accessibilitySupport",t[t.accessibilityPageSize=3]="accessibilityPageSize",t[t.ariaLabel=4]="ariaLabel",t[t.ariaRequired=5]="ariaRequired",t[t.autoClosingBrackets=6]="autoClosingBrackets",t[t.autoClosingComments=7]="autoClosingComments",t[t.screenReaderAnnounceInlineSuggestion=8]="screenReaderAnnounceInlineSuggestion",t[t.autoClosingDelete=9]="autoClosingDelete",t[t.autoClosingOvertype=10]="autoClosingOvertype",t[t.autoClosingQuotes=11]="autoClosingQuotes",t[t.autoIndent=12]="autoIndent",t[t.automaticLayout=13]="automaticLayout",t[t.autoSurround=14]="autoSurround",t[t.bracketPairColorization=15]="bracketPairColorization",t[t.guides=16]="guides",t[t.codeLens=17]="codeLens",t[t.codeLensFontFamily=18]="codeLensFontFamily",t[t.codeLensFontSize=19]="codeLensFontSize",t[t.colorDecorators=20]="colorDecorators",t[t.colorDecoratorsLimit=21]="colorDecoratorsLimit",t[t.columnSelection=22]="columnSelection",t[t.comments=23]="comments",t[t.contextmenu=24]="contextmenu",t[t.copyWithSyntaxHighlighting=25]="copyWithSyntaxHighlighting",t[t.cursorBlinking=26]="cursorBlinking",t[t.cursorSmoothCaretAnimation=27]="cursorSmoothCaretAnimation",t[t.cursorStyle=28]="cursorStyle",t[t.cursorSurroundingLines=29]="cursorSurroundingLines",t[t.cursorSurroundingLinesStyle=30]="cursorSurroundingLinesStyle",t[t.cursorWidth=31]="cursorWidth",t[t.disableLayerHinting=32]="disableLayerHinting",t[t.disableMonospaceOptimizations=33]="disableMonospaceOptimizations",t[t.domReadOnly=34]="domReadOnly",t[t.dragAndDrop=35]="dragAndDrop",t[t.dropIntoEditor=36]="dropIntoEditor",t[t.emptySelectionClipboard=37]="emptySelectionClipboard",t[t.experimentalWhitespaceRendering=38]="experimentalWhitespaceRendering",t[t.extraEditorClassName=39]="extraEditorClassName",t[t.fastScrollSensitivity=40]="fastScrollSensitivity",t[t.find=41]="find",t[t.fixedOverflowWidgets=42]="fixedOverflowWidgets",t[t.folding=43]="folding",t[t.foldingStrategy=44]="foldingStrategy",t[t.foldingHighlight=45]="foldingHighlight",t[t.foldingImportsByDefault=46]="foldingImportsByDefault",t[t.foldingMaximumRegions=47]="foldingMaximumRegions",t[t.unfoldOnClickAfterEndOfLine=48]="unfoldOnClickAfterEndOfLine",t[t.fontFamily=49]="fontFamily",t[t.fontInfo=50]="fontInfo",t[t.fontLigatures=51]="fontLigatures",t[t.fontSize=52]="fontSize",t[t.fontWeight=53]="fontWeight",t[t.fontVariations=54]="fontVariations",t[t.formatOnPaste=55]="formatOnPaste",t[t.formatOnType=56]="formatOnType",t[t.glyphMargin=57]="glyphMargin",t[t.gotoLocation=58]="gotoLocation",t[t.hideCursorInOverviewRuler=59]="hideCursorInOverviewRuler",t[t.hover=60]="hover",t[t.inDiffEditor=61]="inDiffEditor",t[t.inlineSuggest=62]="inlineSuggest",t[t.inlineEdit=63]="inlineEdit",t[t.letterSpacing=64]="letterSpacing",t[t.lightbulb=65]="lightbulb",t[t.lineDecorationsWidth=66]="lineDecorationsWidth",t[t.lineHeight=67]="lineHeight",t[t.lineNumbers=68]="lineNumbers",t[t.lineNumbersMinChars=69]="lineNumbersMinChars",t[t.linkedEditing=70]="linkedEditing",t[t.links=71]="links",t[t.matchBrackets=72]="matchBrackets",t[t.minimap=73]="minimap",t[t.mouseStyle=74]="mouseStyle",t[t.mouseWheelScrollSensitivity=75]="mouseWheelScrollSensitivity",t[t.mouseWheelZoom=76]="mouseWheelZoom",t[t.multiCursorMergeOverlapping=77]="multiCursorMergeOverlapping",t[t.multiCursorModifier=78]="multiCursorModifier",t[t.multiCursorPaste=79]="multiCursorPaste",t[t.multiCursorLimit=80]="multiCursorLimit",t[t.occurrencesHighlight=81]="occurrencesHighlight",t[t.overviewRulerBorder=82]="overviewRulerBorder",t[t.overviewRulerLanes=83]="overviewRulerLanes",t[t.padding=84]="padding",t[t.pasteAs=85]="pasteAs",t[t.parameterHints=86]="parameterHints",t[t.peekWidgetDefaultFocus=87]="peekWidgetDefaultFocus",t[t.placeholder=88]="placeholder",t[t.definitionLinkOpensInPeek=89]="definitionLinkOpensInPeek",t[t.quickSuggestions=90]="quickSuggestions",t[t.quickSuggestionsDelay=91]="quickSuggestionsDelay",t[t.readOnly=92]="readOnly",t[t.readOnlyMessage=93]="readOnlyMessage",t[t.renameOnType=94]="renameOnType",t[t.renderControlCharacters=95]="renderControlCharacters",t[t.renderFinalNewline=96]="renderFinalNewline",t[t.renderLineHighlight=97]="renderLineHighlight",t[t.renderLineHighlightOnlyWhenFocus=98]="renderLineHighlightOnlyWhenFocus",t[t.renderValidationDecorations=99]="renderValidationDecorations",t[t.renderWhitespace=100]="renderWhitespace",t[t.revealHorizontalRightPadding=101]="revealHorizontalRightPadding",t[t.roundedSelection=102]="roundedSelection",t[t.rulers=103]="rulers",t[t.scrollbar=104]="scrollbar",t[t.scrollBeyondLastColumn=105]="scrollBeyondLastColumn",t[t.scrollBeyondLastLine=106]="scrollBeyondLastLine",t[t.scrollPredominantAxis=107]="scrollPredominantAxis",t[t.selectionClipboard=108]="selectionClipboard",t[t.selectionHighlight=109]="selectionHighlight",t[t.selectOnLineNumbers=110]="selectOnLineNumbers",t[t.showFoldingControls=111]="showFoldingControls",t[t.showUnused=112]="showUnused",t[t.snippetSuggestions=113]="snippetSuggestions",t[t.smartSelect=114]="smartSelect",t[t.smoothScrolling=115]="smoothScrolling",t[t.stickyScroll=116]="stickyScroll",t[t.stickyTabStops=117]="stickyTabStops",t[t.stopRenderingLineAfter=118]="stopRenderingLineAfter",t[t.suggest=119]="suggest",t[t.suggestFontSize=120]="suggestFontSize",t[t.suggestLineHeight=121]="suggestLineHeight",t[t.suggestOnTriggerCharacters=122]="suggestOnTriggerCharacters",t[t.suggestSelection=123]="suggestSelection",t[t.tabCompletion=124]="tabCompletion",t[t.tabIndex=125]="tabIndex",t[t.unicodeHighlighting=126]="unicodeHighlighting",t[t.unusualLineTerminators=127]="unusualLineTerminators",t[t.useShadowDOM=128]="useShadowDOM",t[t.useTabStops=129]="useTabStops",t[t.wordBreak=130]="wordBreak",t[t.wordSegmenterLocales=131]="wordSegmenterLocales",t[t.wordSeparators=132]="wordSeparators",t[t.wordWrap=133]="wordWrap",t[t.wordWrapBreakAfterCharacters=134]="wordWrapBreakAfterCharacters",t[t.wordWrapBreakBeforeCharacters=135]="wordWrapBreakBeforeCharacters",t[t.wordWrapColumn=136]="wordWrapColumn",t[t.wordWrapOverride1=137]="wordWrapOverride1",t[t.wordWrapOverride2=138]="wordWrapOverride2",t[t.wrappingIndent=139]="wrappingIndent",t[t.wrappingStrategy=140]="wrappingStrategy",t[t.showDeprecated=141]="showDeprecated",t[t.inlayHints=142]="inlayHints",t[t.editorClassName=143]="editorClassName",t[t.pixelRatio=144]="pixelRatio",t[t.tabFocusMode=145]="tabFocusMode",t[t.layoutInfo=146]="layoutInfo",t[t.wrappingInfo=147]="wrappingInfo",t[t.defaultColorDecorators=148]="defaultColorDecorators",t[t.colorDecoratorsActivatedOn=149]="colorDecoratorsActivatedOn",t[t.inlineCompletionsAccessibilityVerbose=150]="inlineCompletionsAccessibilityVerbose"})(r||(n.EditorOption=r={}));var s;(function(t){t[t.TextDefined=0]="TextDefined",t[t.LF=1]="LF",t[t.CRLF=2]="CRLF"})(s||(n.EndOfLinePreference=s={}));var o;(function(t){t[t.LF=0]="LF",t[t.CRLF=1]="CRLF"})(o||(n.EndOfLineSequence=o={}));var u;(function(t){t[t.Left=1]="Left",t[t.Center=2]="Center",t[t.Right=3]="Right"})(u||(n.GlyphMarginLane=u={}));var S;(function(t){t[t.Increase=0]="Increase",t[t.Decrease=1]="Decrease"})(S||(n.HoverVerbosityAction=S={}));var L;(function(t){t[t.None=0]="None",t[t.Indent=1]="Indent",t[t.IndentOutdent=2]="IndentOutdent",t[t.Outdent=3]="Outdent"})(L||(n.IndentAction=L={}));var N;(function(t){t[t.Both=0]="Both",t[t.Right=1]="Right",t[t.Left=2]="Left",t[t.None=3]="None"})(N||(n.InjectedTextCursorStops=N={}));var P;(function(t){t[t.Type=1]="Type",t[t.Parameter=2]="Parameter"})(P||(n.InlayHintKind=P={}));var E;(function(t){t[t.Automatic=0]="Automatic",t[t.Explicit=1]="Explicit"})(E||(n.InlineCompletionTriggerKind=E={}));var v;(function(t){t[t.Invoke=0]="Invoke",t[t.Automatic=1]="Automatic"})(v||(n.InlineEditTriggerKind=v={}));var l;(function(t){t[t.DependsOnKbLayout=-1]="DependsOnKbLayout",t[t.Unknown=0]="Unknown",t[t.Backspace=1]="Backspace",t[t.Tab=2]="Tab",t[t.Enter=3]="Enter",t[t.Shift=4]="Shift",t[t.Ctrl=5]="Ctrl",t[t.Alt=6]="Alt",t[t.PauseBreak=7]="PauseBreak",t[t.CapsLock=8]="CapsLock",t[t.Escape=9]="Escape",t[t.Space=10]="Space",t[t.PageUp=11]="PageUp",t[t.PageDown=12]="PageDown",t[t.End=13]="End",t[t.Home=14]="Home",t[t.LeftArrow=15]="LeftArrow",t[t.UpArrow=16]="UpArrow",t[t.RightArrow=17]="RightArrow",t[t.DownArrow=18]="DownArrow",t[t.Insert=19]="Insert",t[t.Delete=20]="Delete",t[t.Digit0=21]="Digit0",t[t.Digit1=22]="Digit1",t[t.Digit2=23]="Digit2",t[t.Digit3=24]="Digit3",t[t.Digit4=25]="Digit4",t[t.Digit5=26]="Digit5",t[t.Digit6=27]="Digit6",t[t.Digit7=28]="Digit7",t[t.Digit8=29]="Digit8",t[t.Digit9=30]="Digit9",t[t.KeyA=31]="KeyA",t[t.KeyB=32]="KeyB",t[t.KeyC=33]="KeyC",t[t.KeyD=34]="KeyD",t[t.KeyE=35]="KeyE",t[t.KeyF=36]="KeyF",t[t.KeyG=37]="KeyG",t[t.KeyH=38]="KeyH",t[t.KeyI=39]="KeyI",t[t.KeyJ=40]="KeyJ",t[t.KeyK=41]="KeyK",t[t.KeyL=42]="KeyL",t[t.KeyM=43]="KeyM",t[t.KeyN=44]="KeyN",t[t.KeyO=45]="KeyO",t[t.KeyP=46]="KeyP",t[t.KeyQ=47]="KeyQ",t[t.KeyR=48]="KeyR",t[t.KeyS=49]="KeyS",t[t.KeyT=50]="KeyT",t[t.KeyU=51]="KeyU",t[t.KeyV=52]="KeyV",t[t.KeyW=53]="KeyW",t[t.KeyX=54]="KeyX",t[t.KeyY=55]="KeyY",t[t.KeyZ=56]="KeyZ",t[t.Meta=57]="Meta",t[t.ContextMenu=58]="ContextMenu",t[t.F1=59]="F1",t[t.F2=60]="F2",t[t.F3=61]="F3",t[t.F4=62]="F4",t[t.F5=63]="F5",t[t.F6=64]="F6",t[t.F7=65]="F7",t[t.F8=66]="F8",t[t.F9=67]="F9",t[t.F10=68]="F10",t[t.F11=69]="F11",t[t.F12=70]="F12",t[t.F13=71]="F13",t[t.F14=72]="F14",t[t.F15=73]="F15",t[t.F16=74]="F16",t[t.F17=75]="F17",t[t.F18=76]="F18",t[t.F19=77]="F19",t[t.F20=78]="F20",t[t.F21=79]="F21",t[t.F22=80]="F22",t[t.F23=81]="F23",t[t.F24=82]="F24",t[t.NumLock=83]="NumLock",t[t.ScrollLock=84]="ScrollLock",t[t.Semicolon=85]="Semicolon",t[t.Equal=86]="Equal",t[t.Comma=87]="Comma",t[t.Minus=88]="Minus",t[t.Period=89]="Period",t[t.Slash=90]="Slash",t[t.Backquote=91]="Backquote",t[t.BracketLeft=92]="BracketLeft",t[t.Backslash=93]="Backslash",t[t.BracketRight=94]="BracketRight",t[t.Quote=95]="Quote",t[t.OEM_8=96]="OEM_8",t[t.IntlBackslash=97]="IntlBackslash",t[t.Numpad0=98]="Numpad0",t[t.Numpad1=99]="Numpad1",t[t.Numpad2=100]="Numpad2",t[t.Numpad3=101]="Numpad3",t[t.Numpad4=102]="Numpad4",t[t.Numpad5=103]="Numpad5",t[t.Numpad6=104]="Numpad6",t[t.Numpad7=105]="Numpad7",t[t.Numpad8=106]="Numpad8",t[t.Numpad9=107]="Numpad9",t[t.NumpadMultiply=108]="NumpadMultiply",t[t.NumpadAdd=109]="NumpadAdd",t[t.NUMPAD_SEPARATOR=110]="NUMPAD_SEPARATOR",t[t.NumpadSubtract=111]="NumpadSubtract",t[t.NumpadDecimal=112]="NumpadDecimal",t[t.NumpadDivide=113]="NumpadDivide",t[t.KEY_IN_COMPOSITION=114]="KEY_IN_COMPOSITION",t[t.ABNT_C1=115]="ABNT_C1",t[t.ABNT_C2=116]="ABNT_C2",t[t.AudioVolumeMute=117]="AudioVolumeMute",t[t.AudioVolumeUp=118]="AudioVolumeUp",t[t.AudioVolumeDown=119]="AudioVolumeDown",t[t.BrowserSearch=120]="BrowserSearch",t[t.BrowserHome=121]="BrowserHome",t[t.BrowserBack=122]="BrowserBack",t[t.BrowserForward=123]="BrowserForward",t[t.MediaTrackNext=124]="MediaTrackNext",t[t.MediaTrackPrevious=125]="MediaTrackPrevious",t[t.MediaStop=126]="MediaStop",t[t.MediaPlayPause=127]="MediaPlayPause",t[t.LaunchMediaPlayer=128]="LaunchMediaPlayer",t[t.LaunchMail=129]="LaunchMail",t[t.LaunchApp2=130]="LaunchApp2",t[t.Clear=131]="Clear",t[t.MAX_VALUE=132]="MAX_VALUE"})(l||(n.KeyCode=l={}));var b;(function(t){t[t.Hint=1]="Hint",t[t.Info=2]="Info",t[t.Warning=4]="Warning",t[t.Error=8]="Error"})(b||(n.MarkerSeverity=b={}));var g;(function(t){t[t.Unnecessary=1]="Unnecessary",t[t.Deprecated=2]="Deprecated"})(g||(n.MarkerTag=g={}));var w;(function(t){t[t.Inline=1]="Inline",t[t.Gutter=2]="Gutter"})(w||(n.MinimapPosition=w={}));var M;(function(t){t[t.Normal=1]="Normal",t[t.Underlined=2]="Underlined"})(M||(n.MinimapSectionHeaderStyle=M={}));var y;(function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.TEXTAREA=1]="TEXTAREA",t[t.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",t[t.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",t[t.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",t[t.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",t[t.CONTENT_TEXT=6]="CONTENT_TEXT",t[t.CONTENT_EMPTY=7]="CONTENT_EMPTY",t[t.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",t[t.CONTENT_WIDGET=9]="CONTENT_WIDGET",t[t.OVERVIEW_RULER=10]="OVERVIEW_RULER",t[t.SCROLLBAR=11]="SCROLLBAR",t[t.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",t[t.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"})(y||(n.MouseTargetType=y={}));var _;(function(t){t[t.AIGenerated=1]="AIGenerated"})(_||(n.NewSymbolNameTag=_={}));var C;(function(t){t[t.Invoke=0]="Invoke",t[t.Automatic=1]="Automatic"})(C||(n.NewSymbolNameTriggerKind=C={}));var R;(function(t){t[t.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",t[t.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",t[t.TOP_CENTER=2]="TOP_CENTER"})(R||(n.OverlayWidgetPositionPreference=R={}));var D;(function(t){t[t.Left=1]="Left",t[t.Center=2]="Center",t[t.Right=4]="Right",t[t.Full=7]="Full"})(D||(n.OverviewRulerLane=D={}));var T;(function(t){t[t.Word=0]="Word",t[t.Line=1]="Line",t[t.Suggest=2]="Suggest"})(T||(n.PartialAcceptTriggerKind=T={}));var O;(function(t){t[t.Left=0]="Left",t[t.Right=1]="Right",t[t.None=2]="None",t[t.LeftOfInjectedText=3]="LeftOfInjectedText",t[t.RightOfInjectedText=4]="RightOfInjectedText"})(O||(n.PositionAffinity=O={}));var z;(function(t){t[t.Off=0]="Off",t[t.On=1]="On",t[t.Relative=2]="Relative",t[t.Interval=3]="Interval",t[t.Custom=4]="Custom"})(z||(n.RenderLineNumbersType=z={}));var j;(function(t){t[t.None=0]="None",t[t.Text=1]="Text",t[t.Blocks=2]="Blocks"})(j||(n.RenderMinimap=j={}));var F;(function(t){t[t.Smooth=0]="Smooth",t[t.Immediate=1]="Immediate"})(F||(n.ScrollType=F={}));var q;(function(t){t[t.Auto=1]="Auto",t[t.Hidden=2]="Hidden",t[t.Visible=3]="Visible"})(q||(n.ScrollbarVisibility=q={}));var B;(function(t){t[t.LTR=0]="LTR",t[t.RTL=1]="RTL"})(B||(n.SelectionDirection=B={}));var G;(function(t){t.Off="off",t.OnCode="onCode",t.On="on"})(G||(n.ShowLightbulbIconMode=G={}));var $;(function(t){t[t.Invoke=1]="Invoke",t[t.TriggerCharacter=2]="TriggerCharacter",t[t.ContentChange=3]="ContentChange"})($||(n.SignatureHelpTriggerKind=$={}));var U;(function(t){t[t.File=0]="File",t[t.Module=1]="Module",t[t.Namespace=2]="Namespace",t[t.Package=3]="Package",t[t.Class=4]="Class",t[t.Method=5]="Method",t[t.Property=6]="Property",t[t.Field=7]="Field",t[t.Constructor=8]="Constructor",t[t.Enum=9]="Enum",t[t.Interface=10]="Interface",t[t.Function=11]="Function",t[t.Variable=12]="Variable",t[t.Constant=13]="Constant",t[t.String=14]="String",t[t.Number=15]="Number",t[t.Boolean=16]="Boolean",t[t.Array=17]="Array",t[t.Object=18]="Object",t[t.Key=19]="Key",t[t.Null=20]="Null",t[t.EnumMember=21]="EnumMember",t[t.Struct=22]="Struct",t[t.Event=23]="Event",t[t.Operator=24]="Operator",t[t.TypeParameter=25]="TypeParameter"})(U||(n.SymbolKind=U={}));var ee;(function(t){t[t.Deprecated=1]="Deprecated"})(ee||(n.SymbolTag=ee={}));var re;(function(t){t[t.Hidden=0]="Hidden",t[t.Blink=1]="Blink",t[t.Smooth=2]="Smooth",t[t.Phase=3]="Phase",t[t.Expand=4]="Expand",t[t.Solid=5]="Solid"})(re||(n.TextEditorCursorBlinkingStyle=re={}));var ue;(function(t){t[t.Line=1]="Line",t[t.Block=2]="Block",t[t.Underline=3]="Underline",t[t.LineThin=4]="LineThin",t[t.BlockOutline=5]="BlockOutline",t[t.UnderlineThin=6]="UnderlineThin"})(ue||(n.TextEditorCursorStyle=ue={}));var de;(function(t){t[t.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",t[t.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",t[t.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",t[t.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"})(de||(n.TrackedRangeStickiness=de={}));var ge;(function(t){t[t.None=0]="None",t[t.Same=1]="Same",t[t.Indent=2]="Indent",t[t.DeepIndent=3]="DeepIndent"})(ge||(n.WrappingIndent=ge={}))}),X(J[70],Z([0,1,9,8]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.TokenizationRegistry=void 0;class A{constructor(){this._tokenizationSupports=new Map,this._factories=new Map,this._onDidChange=new i.Emitter,this.onDidChange=this._onDidChange.event,this._colorMap=null}handleChange(p){this._onDidChange.fire({changedLanguages:p,changedColorMap:!1})}register(p,c){return this._tokenizationSupports.set(p,c),this.handleChange([p]),(0,x.toDisposable)(()=>{this._tokenizationSupports.get(p)===c&&(this._tokenizationSupports.delete(p),this.handleChange([p]))})}get(p){return this._tokenizationSupports.get(p)||null}registerFactory(p,c){this._factories.get(p)?.dispose();const a=new d(this,p,c);return this._factories.set(p,a),(0,x.toDisposable)(()=>{const m=this._factories.get(p);!m||m!==a||(this._factories.delete(p),m.dispose())})}async getOrCreate(p){const c=this.get(p);if(c)return c;const a=this._factories.get(p);return!a||a.isResolved?null:(await a.resolve(),this.get(p))}isResolved(p){if(this.get(p))return!0;const a=this._factories.get(p);return!!(!a||a.isResolved)}setColorMap(p){this._colorMap=p,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}}n.TokenizationRegistry=A;class d extends x.Disposable{get isResolved(){return this._isResolved}constructor(p,c,a){super(),this._registry=p,this._languageId=c,this._factory=a,this._isDisposed=!1,this._resolvePromise=null,this._isResolved=!1}dispose(){this._isDisposed=!0,super.dispose()}async resolve(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise}async _create(){const p=await this._factory.tokenizationSupport;this._isResolved=!0,p&&!this._isDisposed&&this._register(this._registry.register(this._languageId,p))}}}),X(J[35],Z([0,1]),function(W,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getNLSMessages=i,n.getNLSLanguage=x;function i(){return globalThis._VSCODE_NLS_MESSAGES}function x(){return globalThis._VSCODE_NLS_LANGUAGE}}),X(J[36],Z([0,1,35,35]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getNLSMessages=n.getNLSLanguage=void 0,n.localize=f,n.localize2=c,Object.defineProperty(n,"getNLSLanguage",{enumerable:!0,get:function(){return x.getNLSLanguage}}),Object.defineProperty(n,"getNLSMessages",{enumerable:!0,get:function(){return x.getNLSMessages}});const A=(0,i.getNLSLanguage)()==="pseudo"||typeof document<"u"&&document.location&&document.location.hash.indexOf("pseudo=true")>=0;function d(a,m){let e;return m.length===0?e=a:e=a.replace(/\{(\d+)\}/g,(h,r)=>{const s=r[0],o=m[s];let u=h;return typeof o=="string"?u=o:(typeof o=="number"||typeof o=="boolean"||o===void 0||o===null)&&(u=String(o)),u}),A&&(e="\uFF3B"+e.replace(/[aouei]/g,"$&$&")+"\uFF3D"),e}function f(a,m,...e){return d(typeof a=="number"?p(a,m):m,e)}function p(a,m){const e=(0,i.getNLSMessages)()?.[a];if(typeof e!="string"){if(typeof m=="string")return m;throw new Error(`!!! NLS MISSING: ${a} !!!`)}return e}function c(a,m,...e){let h;typeof a=="number"?h=p(a,m):h=m;const r=d(h,e);return{value:r,original:m===h?r:d(m,e)}}}),X(J[11],Z([0,1,36]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.isAndroid=n.isEdge=n.isSafari=n.isFirefox=n.isChrome=n.OS=n.setTimeout0=n.setTimeout0IsFaster=n.language=n.userAgent=n.isMobile=n.isIOS=n.webWorkerOrigin=n.isWebWorker=n.isWeb=n.isNative=n.isLinux=n.isMacintosh=n.isWindows=n.LANGUAGE_DEFAULT=void 0,n.isLittleEndian=g,n.LANGUAGE_DEFAULT="en";let x=!1,A=!1,d=!1,f=!1,p=!1,c=!1,a=!1,m=!1,e=!1,h=!1,r,s=n.LANGUAGE_DEFAULT,o=n.LANGUAGE_DEFAULT,u,S;const L=globalThis;let N;typeof L.vscode<"u"&&typeof L.vscode.process<"u"?N=L.vscode.process:typeof process<"u"&&typeof process?.versions?.node=="string"&&(N=process);const P=typeof N?.versions?.electron=="string",E=P&&N?.type==="renderer";if(typeof N=="object"){x=N.platform==="win32",A=N.platform==="darwin",d=N.platform==="linux",f=d&&!!N.env.SNAP&&!!N.env.SNAP_REVISION,a=P,e=!!N.env.CI||!!N.env.BUILD_ARTIFACTSTAGINGDIRECTORY,r=n.LANGUAGE_DEFAULT,s=n.LANGUAGE_DEFAULT;const w=N.env.VSCODE_NLS_CONFIG;if(w)try{const M=JSON.parse(w);r=M.userLocale,o=M.osLocale,s=M.resolvedLanguage||n.LANGUAGE_DEFAULT,u=M.languagePack?.translationsConfigFile}catch{}p=!0}else typeof navigator=="object"&&!E?(S=navigator.userAgent,x=S.indexOf("Windows")>=0,A=S.indexOf("Macintosh")>=0,m=(S.indexOf("Macintosh")>=0||S.indexOf("iPad")>=0||S.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,d=S.indexOf("Linux")>=0,h=S?.indexOf("Mobi")>=0,c=!0,s=i.getNLSLanguage()||n.LANGUAGE_DEFAULT,r=navigator.language.toLowerCase(),o=r):console.error("Unable to resolve platform.");let v=0;A?v=1:x?v=3:d&&(v=2),n.isWindows=x,n.isMacintosh=A,n.isLinux=d,n.isNative=p,n.isWeb=c,n.isWebWorker=c&&typeof L.importScripts=="function",n.webWorkerOrigin=n.isWebWorker?L.origin:void 0,n.isIOS=m,n.isMobile=h,n.userAgent=S,n.language=s,n.setTimeout0IsFaster=typeof L.postMessage=="function"&&!L.importScripts,n.setTimeout0=(()=>{if(n.setTimeout0IsFaster){const w=[];L.addEventListener("message",y=>{if(y.data&&y.data.vscodeScheduleAsyncWork)for(let _=0,C=w.length;_{const _=++M;w.push({id:_,callback:y}),L.postMessage({vscodeScheduleAsyncWork:_},"*")}}return w=>setTimeout(w)})(),n.OS=A||m?2:x?1:3;let l=!0,b=!1;function g(){if(!b){b=!0;const w=new Uint8Array(2);w[0]=1,w[1]=2,l=new Uint16Array(w.buffer)[0]===513}return l}n.isChrome=!!(n.userAgent&&n.userAgent.indexOf("Chrome")>=0),n.isFirefox=!!(n.userAgent&&n.userAgent.indexOf("Firefox")>=0),n.isSafari=!!(!n.isChrome&&n.userAgent&&n.userAgent.indexOf("Safari")>=0),n.isEdge=!!(n.userAgent&&n.userAgent.indexOf("Edg/")>=0),n.isAndroid=!!(n.userAgent&&n.userAgent.indexOf("Android")>=0)}),X(J[71],Z([0,1,23,3,9,8,11,45]),function(W,n,i,x,A,d,f,p){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.CancelableAsyncIterableObject=n.AsyncIterableObject=n.Promises=n.DeferredPromise=n.GlobalIdleValue=n.AbstractIdleValue=n._runWhenIdle=n.runWhenGlobalIdle=n.RunOnceScheduler=n.IntervalTimer=n.TimeoutTimer=n.ThrottledDelayer=n.Delayer=n.Throttler=void 0,n.isThenable=c,n.createCancelablePromise=a,n.raceCancellation=m,n.timeout=u,n.disposableTimeout=S,n.first=L,n.createCancelableAsyncIterable=y;function c(_){return!!_&&typeof _.then=="function"}function a(_){const C=new i.CancellationTokenSource,R=_(C.token),D=new Promise((T,O)=>{const z=C.token.onCancellationRequested(()=>{z.dispose(),O(new x.CancellationError)});Promise.resolve(R).then(j=>{z.dispose(),C.dispose(),T(j)},j=>{z.dispose(),C.dispose(),O(j)})});return new class{cancel(){C.cancel(),C.dispose()}then(T,O){return D.then(T,O)}catch(T){return this.then(void 0,T)}finally(T){return D.finally(T)}}}function m(_,C,R){return new Promise((D,T)=>{const O=C.onCancellationRequested(()=>{O.dispose(),D(R)});_.then(D,T).finally(()=>O.dispose())})}class e{constructor(){this.isDisposed=!1,this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(C){if(this.isDisposed)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=C,!this.queuedPromise){const R=()=>{if(this.queuedPromise=null,this.isDisposed)return;const D=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,D};this.queuedPromise=new Promise(D=>{this.activePromise.then(R,R).then(D)})}return new Promise((R,D)=>{this.queuedPromise.then(R,D)})}return this.activePromise=C(),new Promise((R,D)=>{this.activePromise.then(T=>{this.activePromise=null,R(T)},T=>{this.activePromise=null,D(T)})})}dispose(){this.isDisposed=!0}}n.Throttler=e;const h=(_,C)=>{let R=!0;const D=setTimeout(()=>{R=!1,C()},_);return{isTriggered:()=>R,dispose:()=>{clearTimeout(D),R=!1}}},r=_=>{let C=!0;return queueMicrotask(()=>{C&&(C=!1,_())}),{isTriggered:()=>C,dispose:()=>{C=!1}}};class s{constructor(C){this.defaultDelay=C,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(C,R=this.defaultDelay){this.task=C,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((T,O)=>{this.doResolve=T,this.doReject=O}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const T=this.task;return this.task=null,T()}}));const D=()=>{this.deferred=null,this.doResolve?.(null)};return this.deferred=R===p.MicrotaskDelay?r(D):h(R,D),this.completionPromise}isTriggered(){return!!this.deferred?.isTriggered()}cancel(){this.cancelTimeout(),this.completionPromise&&(this.doReject?.(new x.CancellationError),this.completionPromise=null)}cancelTimeout(){this.deferred?.dispose(),this.deferred=null}dispose(){this.cancel()}}n.Delayer=s;class o{constructor(C){this.delayer=new s(C),this.throttler=new e}trigger(C,R){return this.delayer.trigger(()=>this.throttler.queue(C),R)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}}n.ThrottledDelayer=o;function u(_,C){return C?new Promise((R,D)=>{const T=setTimeout(()=>{O.dispose(),R()},_),O=C.onCancellationRequested(()=>{clearTimeout(T),O.dispose(),D(new x.CancellationError)})}):a(R=>u(_,R))}function S(_,C=0,R){const D=setTimeout(()=>{_(),R&&T.dispose()},C),T=(0,d.toDisposable)(()=>{clearTimeout(D),R?.deleteAndLeak(T)});return R?.add(T),T}function L(_,C=D=>!!D,R=null){let D=0;const T=_.length,O=()=>{if(D>=T)return Promise.resolve(R);const z=_[D++];return Promise.resolve(z()).then(F=>C(F)?Promise.resolve(F):O())};return O()}class N{constructor(C,R){this._isDisposed=!1,this._token=-1,typeof C=="function"&&typeof R=="number"&&this.setIfNotSet(C,R)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){this._token!==-1&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(C,R){if(this._isDisposed)throw new x.BugIndicatingError("Calling 'cancelAndSet' on a disposed TimeoutTimer");this.cancel(),this._token=setTimeout(()=>{this._token=-1,C()},R)}setIfNotSet(C,R){if(this._isDisposed)throw new x.BugIndicatingError("Calling 'setIfNotSet' on a disposed TimeoutTimer");this._token===-1&&(this._token=setTimeout(()=>{this._token=-1,C()},R))}}n.TimeoutTimer=N;class P{constructor(){this.disposable=void 0,this.isDisposed=!1}cancel(){this.disposable?.dispose(),this.disposable=void 0}cancelAndSet(C,R,D=globalThis){if(this.isDisposed)throw new x.BugIndicatingError("Calling 'cancelAndSet' on a disposed IntervalTimer");this.cancel();const T=D.setInterval(()=>{C()},R);this.disposable=(0,d.toDisposable)(()=>{D.clearInterval(T),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}}n.IntervalTimer=P;class E{constructor(C,R){this.timeoutToken=-1,this.runner=C,this.timeout=R,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}schedule(C=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,C)}get delay(){return this.timeout}set delay(C){this.timeout=C}isScheduled(){return this.timeoutToken!==-1}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){this.runner?.()}}n.RunOnceScheduler=E,function(){typeof globalThis.requestIdleCallback!="function"||typeof globalThis.cancelIdleCallback!="function"?n._runWhenIdle=(_,C)=>{(0,f.setTimeout0)(()=>{if(R)return;const D=Date.now()+15;C(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,D-Date.now())}}))});let R=!1;return{dispose(){R||(R=!0)}}}:n._runWhenIdle=(_,C,R)=>{const D=_.requestIdleCallback(C,typeof R=="number"?{timeout:R}:void 0);let T=!1;return{dispose(){T||(T=!0,_.cancelIdleCallback(D))}}},n.runWhenGlobalIdle=_=>(0,n._runWhenIdle)(globalThis,_)}();class v{constructor(C,R){this._didRun=!1,this._executor=()=>{try{this._value=R()}catch(D){this._error=D}finally{this._didRun=!0}},this._handle=(0,n._runWhenIdle)(C,()=>this._executor())}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}n.AbstractIdleValue=v;class l extends v{constructor(C){super(globalThis,C)}}n.GlobalIdleValue=l;class b{get isRejected(){return this.outcome?.outcome===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((C,R)=>{this.completeCallback=C,this.errorCallback=R})}complete(C){return new Promise(R=>{this.completeCallback(C),this.outcome={outcome:0,value:C},R()})}error(C){return new Promise(R=>{this.errorCallback(C),this.outcome={outcome:1,value:C},R()})}cancel(){return this.error(new x.CancellationError)}}n.DeferredPromise=b;var g;(function(_){async function C(D){let T;const O=await Promise.all(D.map(z=>z.then(j=>j,j=>{T||(T=j)})));if(typeof T<"u")throw T;return O}_.settled=C;function R(D){return new Promise(async(T,O)=>{try{await D(T,O)}catch(z){O(z)}})}_.withAsyncBody=R})(g||(n.Promises=g={}));class w{static fromArray(C){return new w(R=>{R.emitMany(C)})}static fromPromise(C){return new w(async R=>{R.emitMany(await C)})}static fromPromises(C){return new w(async R=>{await Promise.all(C.map(async D=>R.emitOne(await D)))})}static merge(C){return new w(async R=>{await Promise.all(C.map(async D=>{for await(const T of D)R.emitOne(T)}))})}static{this.EMPTY=w.fromArray([])}constructor(C,R){this._state=0,this._results=[],this._error=null,this._onReturn=R,this._onStateChanged=new A.Emitter,queueMicrotask(async()=>{const D={emitOne:T=>this.emitOne(T),emitMany:T=>this.emitMany(T),reject:T=>this.reject(T)};try{await Promise.resolve(C(D)),this.resolve()}catch(T){this.reject(T)}finally{D.emitOne=void 0,D.emitMany=void 0,D.reject=void 0}})}[Symbol.asyncIterator](){let C=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(C(this._onReturn?.(),{done:!0,value:void 0})}}static map(C,R){return new w(async D=>{for await(const T of C)D.emitOne(R(T))})}map(C){return w.map(this,C)}static filter(C,R){return new w(async D=>{for await(const T of C)R(T)&&D.emitOne(T)})}filter(C){return w.filter(this,C)}static coalesce(C){return w.filter(C,R=>!!R)}coalesce(){return w.coalesce(this)}static async toPromise(C){const R=[];for await(const D of C)R.push(D);return R}toPromise(){return w.toPromise(this)}emitOne(C){this._state===0&&(this._results.push(C),this._onStateChanged.fire())}emitMany(C){this._state===0&&(this._results=this._results.concat(C),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(C){this._state===0&&(this._state=2,this._error=C,this._onStateChanged.fire())}}n.AsyncIterableObject=w;class M extends w{constructor(C,R){super(R),this._source=C}cancel(){this._source.cancel()}}n.CancelableAsyncIterableObject=M;function y(_){const C=new i.CancellationTokenSource,R=_(C.token);return new M(C,async D=>{const T=C.token.onCancellationRequested(()=>{T.dispose(),C.dispose(),D.reject(new x.CancellationError)});try{for await(const O of R){if(C.token.isCancellationRequested)return;D.emitOne(O)}T.dispose(),C.dispose()}catch(O){T.dispose(),C.dispose(),D.reject(O)}})}}),X(J[72],Z([0,1,11]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.platform=n.env=n.cwd=void 0;let x;const A=globalThis.vscode;if(typeof A<"u"&&typeof A.process<"u"){const d=A.process;x={get platform(){return d.platform},get arch(){return d.arch},get env(){return d.env},cwd(){return d.cwd()}}}else typeof process<"u"&&typeof process?.versions?.node=="string"?x={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:x={get platform(){return i.isWindows?"win32":i.isMacintosh?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};n.cwd=x.cwd,n.env=x.env,n.platform=x.platform}),X(J[37],Z([0,1,72]),function(W,n,i){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.sep=n.extname=n.basename=n.dirname=n.relative=n.resolve=n.join=n.normalize=n.posix=n.win32=void 0;const x=65,A=97,d=90,f=122,p=46,c=47,a=92,m=58,e=63;class h extends Error{constructor(b,g,w){let M;typeof g=="string"&&g.indexOf("not ")===0?(M="must not be",g=g.replace(/^not /,"")):M="must be";const y=b.indexOf(".")!==-1?"property":"argument";let _=`The "${b}" ${y} ${M} of type ${g}`;_+=`. Received type ${typeof w}`,super(_),this.code="ERR_INVALID_ARG_TYPE"}}function r(l,b){if(l===null||typeof l!="object")throw new h(b,"Object",l)}function s(l,b){if(typeof l!="string")throw new h(b,"string",l)}const o=i.platform==="win32";function u(l){return l===c||l===a}function S(l){return l===c}function L(l){return l>=x&&l<=d||l>=A&&l<=f}function N(l,b,g,w){let M="",y=0,_=-1,C=0,R=0;for(let D=0;D<=l.length;++D){if(D2){const T=M.lastIndexOf(g);T===-1?(M="",y=0):(M=M.slice(0,T),y=M.length-1-M.lastIndexOf(g)),_=D,C=0;continue}else if(M.length!==0){M="",y=0,_=D,C=0;continue}}b&&(M+=M.length>0?`${g}..`:"..",y=2)}else M.length>0?M+=`${g}${l.slice(_+1,D)}`:M=l.slice(_+1,D),y=D-_-1;_=D,C=0}else R===p&&C!==-1?++C:C=-1}return M}function P(l){return l?`${l[0]==="."?"":"."}${l}`:""}function E(l,b){r(b,"pathObject");const g=b.dir||b.root,w=b.base||`${b.name||""}${P(b.ext)}`;return g?g===b.root?`${g}${w}`:`${g}${l}${w}`:w}n.win32={resolve(...l){let b="",g="",w=!1;for(let M=l.length-1;M>=-1;M--){let y;if(M>=0){if(y=l[M],s(y,`paths[${M}]`),y.length===0)continue}else b.length===0?y=i.cwd():(y=i.env[`=${b}`]||i.cwd(),(y===void 0||y.slice(0,2).toLowerCase()!==b.toLowerCase()&&y.charCodeAt(2)===a)&&(y=`${b}\\`));const _=y.length;let C=0,R="",D=!1;const T=y.charCodeAt(0);if(_===1)u(T)&&(C=1,D=!0);else if(u(T))if(D=!0,u(y.charCodeAt(1))){let O=2,z=O;for(;O<_&&!u(y.charCodeAt(O));)O++;if(O<_&&O!==z){const j=y.slice(z,O);for(z=O;O<_&&u(y.charCodeAt(O));)O++;if(O<_&&O!==z){for(z=O;O<_&&!u(y.charCodeAt(O));)O++;(O===_||O!==z)&&(R=`\\\\${j}\\${y.slice(z,O)}`,C=O)}}}else C=1;else L(T)&&y.charCodeAt(1)===m&&(R=y.slice(0,2),C=2,_>2&&u(y.charCodeAt(2))&&(D=!0,C=3));if(R.length>0)if(b.length>0){if(R.toLowerCase()!==b.toLowerCase())continue}else b=R;if(w){if(b.length>0)break}else if(g=`${y.slice(C)}\\${g}`,w=D,D&&b.length>0)break}return g=N(g,!w,"\\",u),w?`${b}\\${g}`:`${b}${g}`||"."},normalize(l){s(l,"path");const b=l.length;if(b===0)return".";let g=0,w,M=!1;const y=l.charCodeAt(0);if(b===1)return S(y)?"\\":l;if(u(y))if(M=!0,u(l.charCodeAt(1))){let C=2,R=C;for(;C2&&u(l.charCodeAt(2))&&(M=!0,g=3));let _=g0&&u(l.charCodeAt(b-1))&&(_+="\\"),w===void 0?M?`\\${_}`:_:M?`${w}\\${_}`:`${w}${_}`},isAbsolute(l){s(l,"path");const b=l.length;if(b===0)return!1;const g=l.charCodeAt(0);return u(g)||b>2&&L(g)&&l.charCodeAt(1)===m&&u(l.charCodeAt(2))},join(...l){if(l.length===0)return".";let b,g;for(let y=0;y0&&(b===void 0?b=g=_:b+=`\\${_}`)}if(b===void 0)return".";let w=!0,M=0;if(typeof g=="string"&&u(g.charCodeAt(0))){++M;const y=g.length;y>1&&u(g.charCodeAt(1))&&(++M,y>2&&(u(g.charCodeAt(2))?++M:w=!1))}if(w){for(;M=2&&(b=`\\${b.slice(M)}`)}return n.win32.normalize(b)},relative(l,b){if(s(l,"from"),s(b,"to"),l===b)return"";const g=n.win32.resolve(l),w=n.win32.resolve(b);if(g===w||(l=g.toLowerCase(),b=w.toLowerCase(),l===b))return"";let M=0;for(;MM&&l.charCodeAt(y-1)===a;)y--;const _=y-M;let C=0;for(;CC&&b.charCodeAt(R-1)===a;)R--;const D=R-C,T=_T){if(b.charCodeAt(C+z)===a)return w.slice(C+z+1);if(z===2)return w.slice(C+z)}_>T&&(l.charCodeAt(M+z)===a?O=z:z===2&&(O=3)),O===-1&&(O=0)}let j="";for(z=M+O+1;z<=y;++z)(z===y||l.charCodeAt(z)===a)&&(j+=j.length===0?"..":"\\..");return C+=O,j.length>0?`${j}${w.slice(C,R)}`:(w.charCodeAt(C)===a&&++C,w.slice(C,R))},toNamespacedPath(l){if(typeof l!="string"||l.length===0)return l;const b=n.win32.resolve(l);if(b.length<=2)return l;if(b.charCodeAt(0)===a){if(b.charCodeAt(1)===a){const g=b.charCodeAt(2);if(g!==e&&g!==p)return`\\\\?\\UNC\\${b.slice(2)}`}}else if(L(b.charCodeAt(0))&&b.charCodeAt(1)===m&&b.charCodeAt(2)===a)return`\\\\?\\${b}`;return l},dirname(l){s(l,"path");const b=l.length;if(b===0)return".";let g=-1,w=0;const M=l.charCodeAt(0);if(b===1)return u(M)?l:".";if(u(M)){if(g=w=1,u(l.charCodeAt(1))){let C=2,R=C;for(;C2&&u(l.charCodeAt(2))?3:2,w=g);let y=-1,_=!0;for(let C=b-1;C>=w;--C)if(u(l.charCodeAt(C))){if(!_){y=C;break}}else _=!1;if(y===-1){if(g===-1)return".";y=g}return l.slice(0,y)},basename(l,b){b!==void 0&&s(b,"suffix"),s(l,"path");let g=0,w=-1,M=!0,y;if(l.length>=2&&L(l.charCodeAt(0))&&l.charCodeAt(1)===m&&(g=2),b!==void 0&&b.length>0&&b.length<=l.length){if(b===l)return"";let _=b.length-1,C=-1;for(y=l.length-1;y>=g;--y){const R=l.charCodeAt(y);if(u(R)){if(!M){g=y+1;break}}else C===-1&&(M=!1,C=y+1),_>=0&&(R===b.charCodeAt(_)?--_===-1&&(w=y):(_=-1,w=C))}return g===w?w=C:w===-1&&(w=l.length),l.slice(g,w)}for(y=l.length-1;y>=g;--y)if(u(l.charCodeAt(y))){if(!M){g=y+1;break}}else w===-1&&(M=!1,w=y+1);return w===-1?"":l.slice(g,w)},extname(l){s(l,"path");let b=0,g=-1,w=0,M=-1,y=!0,_=0;l.length>=2&&l.charCodeAt(1)===m&&L(l.charCodeAt(0))&&(b=w=2);for(let C=l.length-1;C>=b;--C){const R=l.charCodeAt(C);if(u(R)){if(!y){w=C+1;break}continue}M===-1&&(y=!1,M=C+1),R===p?g===-1?g=C:_!==1&&(_=1):g!==-1&&(_=-1)}return g===-1||M===-1||_===0||_===1&&g===M-1&&g===w+1?"":l.slice(g,M)},format:E.bind(null,"\\"),parse(l){s(l,"path");const b={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return b;const g=l.length;let w=0,M=l.charCodeAt(0);if(g===1)return u(M)?(b.root=b.dir=l,b):(b.base=b.name=l,b);if(u(M)){if(w=1,u(l.charCodeAt(1))){let O=2,z=O;for(;O0&&(b.root=l.slice(0,w));let y=-1,_=w,C=-1,R=!0,D=l.length-1,T=0;for(;D>=w;--D){if(M=l.charCodeAt(D),u(M)){if(!R){_=D+1;break}continue}C===-1&&(R=!1,C=D+1),M===p?y===-1?y=D:T!==1&&(T=1):y!==-1&&(T=-1)}return C!==-1&&(y===-1||T===0||T===1&&y===C-1&&y===_+1?b.base=b.name=l.slice(_,C):(b.name=l.slice(_,y),b.base=l.slice(_,C),b.ext=l.slice(y,C))),_>0&&_!==w?b.dir=l.slice(0,_-1):b.dir=b.root,b},sep:"\\",delimiter:";",win32:null,posix:null};const v=(()=>{if(o){const l=/\\/g;return()=>{const b=i.cwd().replace(l,"/");return b.slice(b.indexOf("/"))}}return()=>i.cwd()})();n.posix={resolve(...l){let b="",g=!1;for(let w=l.length-1;w>=-1&&!g;w--){const M=w>=0?l[w]:v();s(M,`paths[${w}]`),M.length!==0&&(b=`${M}/${b}`,g=M.charCodeAt(0)===c)}return b=N(b,!g,"/",S),g?`/${b}`:b.length>0?b:"."},normalize(l){if(s(l,"path"),l.length===0)return".";const b=l.charCodeAt(0)===c,g=l.charCodeAt(l.length-1)===c;return l=N(l,!b,"/",S),l.length===0?b?"/":g?"./":".":(g&&(l+="/"),b?`/${l}`:l)},isAbsolute(l){return s(l,"path"),l.length>0&&l.charCodeAt(0)===c},join(...l){if(l.length===0)return".";let b;for(let g=0;g0&&(b===void 0?b=w:b+=`/${w}`)}return b===void 0?".":n.posix.normalize(b)},relative(l,b){if(s(l,"from"),s(b,"to"),l===b||(l=n.posix.resolve(l),b=n.posix.resolve(b),l===b))return"";const g=1,w=l.length,M=w-g,y=1,_=b.length-y,C=M<_?M:_;let R=-1,D=0;for(;DC){if(b.charCodeAt(y+D)===c)return b.slice(y+D+1);if(D===0)return b.slice(y+D)}else M>C&&(l.charCodeAt(g+D)===c?R=D:D===0&&(R=0));let T="";for(D=g+R+1;D<=w;++D)(D===w||l.charCodeAt(D)===c)&&(T+=T.length===0?"..":"/..");return`${T}${b.slice(y+R)}`},toNamespacedPath(l){return l},dirname(l){if(s(l,"path"),l.length===0)return".";const b=l.charCodeAt(0)===c;let g=-1,w=!0;for(let M=l.length-1;M>=1;--M)if(l.charCodeAt(M)===c){if(!w){g=M;break}}else w=!1;return g===-1?b?"/":".":b&&g===1?"//":l.slice(0,g)},basename(l,b){b!==void 0&&s(b,"ext"),s(l,"path");let g=0,w=-1,M=!0,y;if(b!==void 0&&b.length>0&&b.length<=l.length){if(b===l)return"";let _=b.length-1,C=-1;for(y=l.length-1;y>=0;--y){const R=l.charCodeAt(y);if(R===c){if(!M){g=y+1;break}}else C===-1&&(M=!1,C=y+1),_>=0&&(R===b.charCodeAt(_)?--_===-1&&(w=y):(_=-1,w=C))}return g===w?w=C:w===-1&&(w=l.length),l.slice(g,w)}for(y=l.length-1;y>=0;--y)if(l.charCodeAt(y)===c){if(!M){g=y+1;break}}else w===-1&&(M=!1,w=y+1);return w===-1?"":l.slice(g,w)},extname(l){s(l,"path");let b=-1,g=0,w=-1,M=!0,y=0;for(let _=l.length-1;_>=0;--_){const C=l.charCodeAt(_);if(C===c){if(!M){g=_+1;break}continue}w===-1&&(M=!1,w=_+1),C===p?b===-1?b=_:y!==1&&(y=1):b!==-1&&(y=-1)}return b===-1||w===-1||y===0||y===1&&b===w-1&&b===g+1?"":l.slice(b,w)},format:E.bind(null,"/"),parse(l){s(l,"path");const b={root:"",dir:"",base:"",ext:"",name:""};if(l.length===0)return b;const g=l.charCodeAt(0)===c;let w;g?(b.root="/",w=1):w=0;let M=-1,y=0,_=-1,C=!0,R=l.length-1,D=0;for(;R>=w;--R){const T=l.charCodeAt(R);if(T===c){if(!C){y=R+1;break}continue}_===-1&&(C=!1,_=R+1),T===p?M===-1?M=R:D!==1&&(D=1):M!==-1&&(D=-1)}if(_!==-1){const T=y===0&&g?1:y;M===-1||D===0||D===1&&M===_-1&&M===y+1?b.base=b.name=l.slice(T,_):(b.name=l.slice(T,M),b.base=l.slice(T,_),b.ext=l.slice(M,_))}return y>0?b.dir=l.slice(0,y-1):g&&(b.dir="/"),b},sep:"/",delimiter:":",win32:null,posix:null},n.posix.win32=n.win32.win32=n.win32,n.posix.posix=n.win32.posix=n.posix,n.normalize=o?n.win32.normalize:n.posix.normalize,n.join=o?n.win32.join:n.posix.join,n.resolve=o?n.win32.resolve:n.posix.resolve,n.relative=o?n.win32.relative:n.posix.relative,n.dirname=o?n.win32.dirname:n.posix.dirname,n.basename=o?n.win32.basename:n.posix.basename,n.extname=o?n.win32.extname:n.posix.extname,n.sep=o?n.win32.sep:n.posix.sep}),X(J[14],Z([0,1,37,11]),function(W,n,i,x){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.URI=void 0,n.uriToFsPath=N;const A=/^\w[\w\d+.-]*$/,d=/^\//,f=/^\/\//;function p(b,g){if(!b.scheme&&g)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${b.authority}", path: "${b.path}", query: "${b.query}", fragment: "${b.fragment}"}`);if(b.scheme&&!A.test(b.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(b.path){if(b.authority){if(!d.test(b.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(f.test(b.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function c(b,g){return!b&&!g?"file":b}function a(b,g){switch(b){case"https":case"http":case"file":g?g[0]!==e&&(g=e+g):g=e;break}return g}const m="",e="/",h=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class r{static isUri(g){return g instanceof r?!0:g?typeof g.authority=="string"&&typeof g.fragment=="string"&&typeof g.path=="string"&&typeof g.query=="string"&&typeof g.scheme=="string"&&typeof g.fsPath=="string"&&typeof g.with=="function"&&typeof g.toString=="function":!1}constructor(g,w,M,y,_,C=!1){typeof g=="object"?(this.scheme=g.scheme||m,this.authority=g.authority||m,this.path=g.path||m,this.query=g.query||m,this.fragment=g.fragment||m):(this.scheme=c(g,C),this.authority=w||m,this.path=a(this.scheme,M||m),this.query=y||m,this.fragment=_||m,p(this,C))}get fsPath(){return N(this,!1)}with(g){if(!g)return this;let{scheme:w,authority:M,path:y,query:_,fragment:C}=g;return w===void 0?w=this.scheme:w===null&&(w=m),M===void 0?M=this.authority:M===null&&(M=m),y===void 0?y=this.path:y===null&&(y=m),_===void 0?_=this.query:_===null&&(_=m),C===void 0?C=this.fragment:C===null&&(C=m),w===this.scheme&&M===this.authority&&y===this.path&&_===this.query&&C===this.fragment?this:new o(w,M,y,_,C)}static parse(g,w=!1){const M=h.exec(g);return M?new o(M[2]||m,l(M[4]||m),l(M[5]||m),l(M[7]||m),l(M[9]||m),w):new o(m,m,m,m,m)}static file(g){let w=m;if(x.isWindows&&(g=g.replace(/\\/g,e)),g[0]===e&&g[1]===e){const M=g.indexOf(e,2);M===-1?(w=g.substring(2),g=e):(w=g.substring(2,M),g=g.substring(M)||e)}return new o("file",w,g,m,m)}static from(g,w){return new o(g.scheme,g.authority,g.path,g.query,g.fragment,w)}static joinPath(g,...w){if(!g.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let M;return x.isWindows&&g.scheme==="file"?M=r.file(i.win32.join(N(g,!0),...w)).path:M=i.posix.join(g.path,...w),g.with({path:M})}toString(g=!1){return P(this,g)}toJSON(){return this}static revive(g){if(g){if(g instanceof r)return g;{const w=new o(g);return w._formatted=g.external??null,w._fsPath=g._sep===s?g.fsPath??null:null,w}}else return g}}n.URI=r;const s=x.isWindows?1:void 0;class o extends r{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=N(this,!1)),this._fsPath}toString(g=!1){return g?P(this,!0):(this._formatted||(this._formatted=P(this,!1)),this._formatted)}toJSON(){const g={$mid:1};return this._fsPath&&(g.fsPath=this._fsPath,g._sep=s),this._formatted&&(g.external=this._formatted),this.path&&(g.path=this.path),this.scheme&&(g.scheme=this.scheme),this.authority&&(g.authority=this.authority),this.query&&(g.query=this.query),this.fragment&&(g.fragment=this.fragment),g}}const u={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function S(b,g,w){let M,y=-1;for(let _=0;_=97&&C<=122||C>=65&&C<=90||C>=48&&C<=57||C===45||C===46||C===95||C===126||g&&C===47||w&&C===91||w&&C===93||w&&C===58)y!==-1&&(M+=encodeURIComponent(b.substring(y,_)),y=-1),M!==void 0&&(M+=b.charAt(_));else{M===void 0&&(M=b.substr(0,_));const R=u[C];R!==void 0?(y!==-1&&(M+=encodeURIComponent(b.substring(y,_)),y=-1),M+=R):y===-1&&(y=_)}}return y!==-1&&(M+=encodeURIComponent(b.substring(y))),M!==void 0?M:b}function L(b){let g;for(let w=0;w1&&b.scheme==="file"?w=`//${b.authority}${b.path}`:b.path.charCodeAt(0)===47&&(b.path.charCodeAt(1)>=65&&b.path.charCodeAt(1)<=90||b.path.charCodeAt(1)>=97&&b.path.charCodeAt(1)<=122)&&b.path.charCodeAt(2)===58?g?w=b.path.substr(1):w=b.path[1].toLowerCase()+b.path.substr(2):w=b.path,x.isWindows&&(w=w.replace(/\//g,"\\")),w}function P(b,g){const w=g?L:S;let M="",{scheme:y,authority:_,path:C,query:R,fragment:D}=b;if(y&&(M+=y,M+=":"),(_||y==="file")&&(M+=e,M+=e),_){let T=_.indexOf("@");if(T!==-1){const O=_.substr(0,T);_=_.substr(T+1),T=O.lastIndexOf(":"),T===-1?M+=w(O,!1,!1):(M+=w(O.substr(0,T),!1,!1),M+=":",M+=w(O.substr(T+1),!1,!0)),M+="@"}_=_.toLowerCase(),T=_.lastIndexOf(":"),T===-1?M+=w(_,!1,!0):(M+=w(_.substr(0,T),!1,!0),M+=_.substr(T))}if(C){if(C.length>=3&&C.charCodeAt(0)===47&&C.charCodeAt(2)===58){const T=C.charCodeAt(1);T>=65&&T<=90&&(C=`/${String.fromCharCode(T+32)}:${C.substr(3)}`)}else if(C.length>=2&&C.charCodeAt(1)===58){const T=C.charCodeAt(0);T>=65&&T<=90&&(C=`${String.fromCharCode(T+32)}:${C.substr(2)}`)}M+=w(C,!0,!1)}return R&&(M+="?",M+=w(R,!1,!1)),D&&(M+="#",M+=g?D:S(D,!1,!1)),M}function E(b){try{return decodeURIComponent(b)}catch{return b.length>3?b.substr(0,3)+E(b.substr(3)):b}}const v=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function l(b){return b.match(v)?b.replace(v,g=>E(g)):b}}),X(J[38],Z([0,1,3,11,6,14,37]),function(W,n,i,x,A,d,f){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.COI=n.FileAccess=n.VSCODE_AUTHORITY=n.RemoteAuthorities=n.connectionTokenQueryName=n.Schemas=void 0,n.matchesScheme=c,n.matchesSomeScheme=a;var p;(function(r){r.inMemory="inmemory",r.vscode="vscode",r.internal="private",r.walkThrough="walkThrough",r.walkThroughSnippet="walkThroughSnippet",r.http="http",r.https="https",r.file="file",r.mailto="mailto",r.untitled="untitled",r.data="data",r.command="command",r.vscodeRemote="vscode-remote",r.vscodeRemoteResource="vscode-remote-resource",r.vscodeManagedRemoteResource="vscode-managed-remote-resource",r.vscodeUserData="vscode-userdata",r.vscodeCustomEditor="vscode-custom-editor",r.vscodeNotebookCell="vscode-notebook-cell",r.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",r.vscodeNotebookCellMetadataDiff="vscode-notebook-cell-metadata-diff",r.vscodeNotebookCellOutput="vscode-notebook-cell-output",r.vscodeNotebookCellOutputDiff="vscode-notebook-cell-output-diff",r.vscodeNotebookMetadata="vscode-notebook-metadata",r.vscodeInteractiveInput="vscode-interactive-input",r.vscodeSettings="vscode-settings",r.vscodeWorkspaceTrust="vscode-workspace-trust",r.vscodeTerminal="vscode-terminal",r.vscodeChatCodeBlock="vscode-chat-code-block",r.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",r.vscodeChatSesssion="vscode-chat-editor",r.webviewPanel="webview-panel",r.vscodeWebview="vscode-webview",r.extension="extension",r.vscodeFileResource="vscode-file",r.tmp="tmp",r.vsls="vsls",r.vscodeSourceControl="vscode-scm",r.commentsInput="comment",r.codeSetting="code-setting",r.outputChannel="output"})(p||(n.Schemas=p={}));function c(r,s){return d.URI.isUri(r)?(0,A.equalsIgnoreCase)(r.scheme,s):(0,A.startsWithIgnoreCase)(r,s+":")}function a(r,...s){return s.some(o=>c(r,o))}n.connectionTokenQueryName="tkn";class m{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null,this._serverRootPath="/"}setPreferredWebSchema(s){this._preferredWebSchema=s}get _remoteResourcesPath(){return f.posix.join(this._serverRootPath,p.vscodeRemoteResource)}rewrite(s){if(this._delegate)try{return this._delegate(s)}catch(P){return i.onUnexpectedError(P),s}const o=s.authority;let u=this._hosts[o];u&&u.indexOf(":")!==-1&&u.indexOf("[")===-1&&(u=`[${u}]`);const S=this._ports[o],L=this._connectionTokens[o];let N=`path=${encodeURIComponent(s.path)}`;return typeof L=="string"&&(N+=`&${n.connectionTokenQueryName}=${encodeURIComponent(L)}`),d.URI.from({scheme:x.isWeb?this._preferredWebSchema:p.vscodeRemoteResource,authority:`${u}:${S}`,path:this._remoteResourcesPath,query:N})}}n.RemoteAuthorities=new m,n.VSCODE_AUTHORITY="vscode-app";class e{static{this.FALLBACK_AUTHORITY=n.VSCODE_AUTHORITY}asBrowserUri(s){const o=this.toUri(s,W);return this.uriToBrowserUri(o)}uriToBrowserUri(s){return s.scheme===p.vscodeRemote?n.RemoteAuthorities.rewrite(s):s.scheme===p.file&&(x.isNative||x.webWorkerOrigin===`${p.vscodeFileResource}://${e.FALLBACK_AUTHORITY}`)?s.with({scheme:p.vscodeFileResource,authority:s.authority||e.FALLBACK_AUTHORITY,query:null,fragment:null}):s}toUri(s,o){if(d.URI.isUri(s))return s;if(globalThis._VSCODE_FILE_ROOT){const u=globalThis._VSCODE_FILE_ROOT;if(/^\w[\w\d+.-]*:\/\//.test(u))return d.URI.joinPath(d.URI.parse(u,!0),s);const S=f.join(u,s);return d.URI.file(S)}return d.URI.parse(o.toUrl(s))}}n.FileAccess=new e;var h;(function(r){const s=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);r.CoopAndCoep=Object.freeze(s.get("3"));const o="vscode-coi";function u(L){let N;typeof L=="string"?N=new URL(L).searchParams:L instanceof URL?N=L.searchParams:d.URI.isUri(L)&&(N=new URL(L.toString(!0)).searchParams);const P=N?.get(o);if(P)return s.get(P)}r.getHeadersFromQuery=u;function S(L,N,P){if(!globalThis.crossOriginIsolated)return;const E=N&&P?"3":P?"2":"1";L instanceof URLSearchParams?L.set(o,E):L[o]=E}r.addSearchParam=S})(h||(n.COI=h={}))}),X(J[76],Z([0,1,3,9,8,38,11,6]),function(W,n,i,x,A,d,f,p){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.SimpleWorkerServer=n.SimpleWorkerClient=void 0,n.logOnceWebWorkerWarning=h,n.create=l;const c=!1,a="default",m="$initialize";let e=!1;function h(b){f.isWeb&&(e||(e=!0,console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq")),console.warn(b.message))}class r{constructor(g,w,M,y,_){this.vsWorker=g,this.req=w,this.channel=M,this.method=y,this.args=_,this.type=0}}class s{constructor(g,w,M,y){this.vsWorker=g,this.seq=w,this.res=M,this.err=y,this.type=1}}class o{constructor(g,w,M,y,_){this.vsWorker=g,this.req=w,this.channel=M,this.eventName=y,this.arg=_,this.type=2}}class u{constructor(g,w,M){this.vsWorker=g,this.req=w,this.event=M,this.type=3}}class S{constructor(g,w){this.vsWorker=g,this.req=w,this.type=4}}class L{constructor(g){this._workerId=-1,this._handler=g,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(g){this._workerId=g}sendMessage(g,w,M){const y=String(++this._lastSentReq);return new Promise((_,C)=>{this._pendingReplies[y]={resolve:_,reject:C},this._send(new r(this._workerId,y,g,w,M))})}listen(g,w,M){let y=null;const _=new x.Emitter({onWillAddFirstListener:()=>{y=String(++this._lastSentReq),this._pendingEmitters.set(y,_),this._send(new o(this._workerId,y,g,w,M))},onDidRemoveLastListener:()=>{this._pendingEmitters.delete(y),this._send(new S(this._workerId,y)),y=null}});return _.event}handleMessage(g){!g||!g.vsWorker||this._workerId!==-1&&g.vsWorker!==this._workerId||this._handleMessage(g)}createProxyToRemoteChannel(g,w){const M={get:(y,_)=>(typeof _=="string"&&!y[_]&&(E(_)?y[_]=C=>this.listen(g,_,C):P(_)?y[_]=this.listen(g,_,void 0):_.charCodeAt(0)===36&&(y[_]=async(...C)=>(await w?.(),this.sendMessage(g,_,C)))),y[_])};return new Proxy(Object.create(null),M)}_handleMessage(g){switch(g.type){case 1:return this._handleReplyMessage(g);case 0:return this._handleRequestMessage(g);case 2:return this._handleSubscribeEventMessage(g);case 3:return this._handleEventMessage(g);case 4:return this._handleUnsubscribeEventMessage(g)}}_handleReplyMessage(g){if(!this._pendingReplies[g.seq]){console.warn("Got reply to unknown seq");return}const w=this._pendingReplies[g.seq];if(delete this._pendingReplies[g.seq],g.err){let M=g.err;g.err.$isError&&(M=new Error,M.name=g.err.name,M.message=g.err.message,M.stack=g.err.stack),w.reject(M);return}w.resolve(g.res)}_handleRequestMessage(g){const w=g.req;this._handler.handleMessage(g.channel,g.method,g.args).then(y=>{this._send(new s(this._workerId,w,y,void 0))},y=>{y.detail instanceof Error&&(y.detail=(0,i.transformErrorForSerialization)(y.detail)),this._send(new s(this._workerId,w,void 0,(0,i.transformErrorForSerialization)(y)))})}_handleSubscribeEventMessage(g){const w=g.req,M=this._handler.handleEvent(g.channel,g.eventName,g.arg)(y=>{this._send(new u(this._workerId,w,y))});this._pendingEvents.set(w,M)}_handleEventMessage(g){if(!this._pendingEmitters.has(g.req)){console.warn("Got event for unknown req");return}this._pendingEmitters.get(g.req).fire(g.event)}_handleUnsubscribeEventMessage(g){if(!this._pendingEvents.has(g.req)){console.warn("Got unsubscribe for unknown req");return}this._pendingEvents.get(g.req).dispose(),this._pendingEvents.delete(g.req)}_send(g){const w=[];if(g.type===0)for(let M=0;M{this._protocol.handleMessage(_)},_=>{(0,i.onUnexpectedError)(_)})),this._protocol=new L({sendMessage:(_,C)=>{this._worker.postMessage(_,C)},handleMessage:(_,C,R)=>this._handleMessage(_,C,R),handleEvent:(_,C,R)=>this._handleEvent(_,C,R)}),this._protocol.setWorkerId(this._worker.getId());let M=null;const y=globalThis.require;typeof y<"u"&&typeof y.getConfig=="function"?M=y.getConfig():typeof globalThis.requirejs<"u"&&(M=globalThis.requirejs.s.contexts._.config),this._onModuleLoaded=this._protocol.sendMessage(a,m,[this._worker.getId(),JSON.parse(JSON.stringify(M)),w.amdModuleId]),this.proxy=this._protocol.createProxyToRemoteChannel(a,async()=>{await this._onModuleLoaded}),this._onModuleLoaded.catch(_=>{this._onError("Worker failed to load "+w.amdModuleId,_)})}_handleMessage(g,w,M){const y=this._localChannels.get(g);if(!y)return Promise.reject(new Error(`Missing channel ${g} on main thread`));if(typeof y[w]!="function")return Promise.reject(new Error(`Missing method ${w} on main thread channel ${g}`));try{return Promise.resolve(y[w].apply(y,M))}catch(_){return Promise.reject(_)}}_handleEvent(g,w,M){const y=this._localChannels.get(g);if(!y)throw new Error(`Missing channel ${g} on main thread`);if(E(w)){const _=y[w].call(y,M);if(typeof _!="function")throw new Error(`Missing dynamic event ${w} on main thread channel ${g}.`);return _}if(P(w)){const _=y[w];if(typeof _!="function")throw new Error(`Missing event ${w} on main thread channel ${g}.`);return _}throw new Error(`Malformed event name ${w}`)}setChannel(g,w){this._localChannels.set(g,w)}_onError(g,w){console.error(g),console.info(w)}}n.SimpleWorkerClient=N;function P(b){return b[0]==="o"&&b[1]==="n"&&p.isUpperAsciiLetter(b.charCodeAt(2))}function E(b){return/^onDynamic/.test(b)&&p.isUpperAsciiLetter(b.charCodeAt(9))}class v{constructor(g,w){this._localChannels=new Map,this._remoteChannels=new Map,this._requestHandlerFactory=w,this._requestHandler=null,this._protocol=new L({sendMessage:(M,y)=>{g(M,y)},handleMessage:(M,y,_)=>this._handleMessage(M,y,_),handleEvent:(M,y,_)=>this._handleEvent(M,y,_)})}onmessage(g){this._protocol.handleMessage(g)}_handleMessage(g,w,M){if(g===a&&w===m)return this.initialize(M[0],M[1],M[2]);const y=g===a?this._requestHandler:this._localChannels.get(g);if(!y)return Promise.reject(new Error(`Missing channel ${g} on worker thread`));if(typeof y[w]!="function")return Promise.reject(new Error(`Missing method ${w} on worker thread channel ${g}`));try{return Promise.resolve(y[w].apply(y,M))}catch(_){return Promise.reject(_)}}_handleEvent(g,w,M){const y=g===a?this._requestHandler:this._localChannels.get(g);if(!y)throw new Error(`Missing channel ${g} on worker thread`);if(E(w)){const _=y[w].call(y,M);if(typeof _!="function")throw new Error(`Missing dynamic event ${w} on request handler.`);return _}if(P(w)){const _=y[w];if(typeof _!="function")throw new Error(`Missing event ${w} on request handler.`);return _}throw new Error(`Malformed event name ${w}`)}getChannel(g){if(!this._remoteChannels.has(g)){const w=this._protocol.createProxyToRemoteChannel(g);this._remoteChannels.set(g,w)}return this._remoteChannels.get(g)}async initialize(g,w,M){if(this._protocol.setWorkerId(g),this._requestHandlerFactory){this._requestHandler=this._requestHandlerFactory(this);return}if(w&&(typeof w.baseUrl<"u"&&delete w.baseUrl,typeof w.paths<"u"&&typeof w.paths.vs<"u"&&delete w.paths.vs,typeof w.trustedTypesPolicy<"u"&&delete w.trustedTypesPolicy,w.catchError=!0,globalThis.require.config(w)),c){const y=d.FileAccess.asBrowserUri(`${M}.js`).toString(!0);return new Promise((_,C)=>{W([`${y}`],_,C)}).then(_=>{if(this._requestHandler=_.create(this),!this._requestHandler)throw new Error("No RequestHandler!")})}return new Promise((y,_)=>{(globalThis.require||W)([M],R=>{if(this._requestHandler=R.create(this),!this._requestHandler){_(new Error("No RequestHandler!"));return}y()},_)})}}n.SimpleWorkerServer=v;function l(b){return new v(b,null)}}),X(J[73],Z([0,1,47,14,2,70,36]),function(W,n,i,x,A,d,f){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.InlineEditTriggerKind=n.TreeSitterTokenizationRegistry=n.TokenizationRegistry=n.LazyTokenizationSupport=n.InlayHintKind=n.Command=n.NewSymbolNameTriggerKind=n.NewSymbolNameTag=n.FoldingRangeKind=n.TextEdit=n.SymbolKinds=n.symbolKindNames=n.DocumentHighlightKind=n.SignatureHelpTriggerKind=n.DocumentPasteTriggerKind=n.SelectedSuggestionInfo=n.InlineCompletionTriggerKind=n.CompletionItemKinds=n.HoverVerbosityAction=n.EncodedTokenizationResult=n.TokenizationResult=n.Token=void 0,n.isLocationLink=S,n.getAriaLabelForSymbol=L;class p{constructor(_,C,R){this.offset=_,this.type=C,this.language=R,this._tokenBrand=void 0}toString(){return"("+this.offset+", "+this.type+")"}}n.Token=p;class c{constructor(_,C){this.tokens=_,this.endState=C,this._tokenizationResultBrand=void 0}}n.TokenizationResult=c;class a{constructor(_,C){this.tokens=_,this.endState=C,this._encodedTokenizationResultBrand=void 0}}n.EncodedTokenizationResult=a;var m;(function(y){y[y.Increase=0]="Increase",y[y.Decrease=1]="Decrease"})(m||(n.HoverVerbosityAction=m={}));var e;(function(y){const _=new Map;_.set(0,i.Codicon.symbolMethod),_.set(1,i.Codicon.symbolFunction),_.set(2,i.Codicon.symbolConstructor),_.set(3,i.Codicon.symbolField),_.set(4,i.Codicon.symbolVariable),_.set(5,i.Codicon.symbolClass),_.set(6,i.Codicon.symbolStruct),_.set(7,i.Codicon.symbolInterface),_.set(8,i.Codicon.symbolModule),_.set(9,i.Codicon.symbolProperty),_.set(10,i.Codicon.symbolEvent),_.set(11,i.Codicon.symbolOperator),_.set(12,i.Codicon.symbolUnit),_.set(13,i.Codicon.symbolValue),_.set(15,i.Codicon.symbolEnum),_.set(14,i.Codicon.symbolConstant),_.set(15,i.Codicon.symbolEnum),_.set(16,i.Codicon.symbolEnumMember),_.set(17,i.Codicon.symbolKeyword),_.set(27,i.Codicon.symbolSnippet),_.set(18,i.Codicon.symbolText),_.set(19,i.Codicon.symbolColor),_.set(20,i.Codicon.symbolFile),_.set(21,i.Codicon.symbolReference),_.set(22,i.Codicon.symbolCustomColor),_.set(23,i.Codicon.symbolFolder),_.set(24,i.Codicon.symbolTypeParameter),_.set(25,i.Codicon.account),_.set(26,i.Codicon.issues);function C(T){let O=_.get(T);return O||(console.info("No codicon found for CompletionItemKind "+T),O=i.Codicon.symbolProperty),O}y.toIcon=C;const R=new Map;R.set("method",0),R.set("function",1),R.set("constructor",2),R.set("field",3),R.set("variable",4),R.set("class",5),R.set("struct",6),R.set("interface",7),R.set("module",8),R.set("property",9),R.set("event",10),R.set("operator",11),R.set("unit",12),R.set("value",13),R.set("constant",14),R.set("enum",15),R.set("enum-member",16),R.set("enumMember",16),R.set("keyword",17),R.set("snippet",27),R.set("text",18),R.set("color",19),R.set("file",20),R.set("reference",21),R.set("customcolor",22),R.set("folder",23),R.set("type-parameter",24),R.set("typeParameter",24),R.set("account",25),R.set("issue",26);function D(T,O){let z=R.get(T);return typeof z>"u"&&!O&&(z=9),z}y.fromString=D})(e||(n.CompletionItemKinds=e={}));var h;(function(y){y[y.Automatic=0]="Automatic",y[y.Explicit=1]="Explicit"})(h||(n.InlineCompletionTriggerKind=h={}));class r{constructor(_,C,R,D){this.range=_,this.text=C,this.completionKind=R,this.isSnippetText=D}equals(_){return A.Range.lift(this.range).equalsRange(_.range)&&this.text===_.text&&this.completionKind===_.completionKind&&this.isSnippetText===_.isSnippetText}}n.SelectedSuggestionInfo=r;var s;(function(y){y[y.Automatic=0]="Automatic",y[y.PasteAs=1]="PasteAs"})(s||(n.DocumentPasteTriggerKind=s={}));var o;(function(y){y[y.Invoke=1]="Invoke",y[y.TriggerCharacter=2]="TriggerCharacter",y[y.ContentChange=3]="ContentChange"})(o||(n.SignatureHelpTriggerKind=o={}));var u;(function(y){y[y.Text=0]="Text",y[y.Read=1]="Read",y[y.Write=2]="Write"})(u||(n.DocumentHighlightKind=u={}));function S(y){return y&&x.URI.isUri(y.uri)&&A.Range.isIRange(y.range)&&(A.Range.isIRange(y.originSelectionRange)||A.Range.isIRange(y.targetSelectionRange))}n.symbolKindNames={17:(0,f.localize)(669,"array"),16:(0,f.localize)(670,"boolean"),4:(0,f.localize)(671,"class"),13:(0,f.localize)(672,"constant"),8:(0,f.localize)(673,"constructor"),9:(0,f.localize)(674,"enumeration"),21:(0,f.localize)(675,"enumeration member"),23:(0,f.localize)(676,"event"),7:(0,f.localize)(677,"field"),0:(0,f.localize)(678,"file"),11:(0,f.localize)(679,"function"),10:(0,f.localize)(680,"interface"),19:(0,f.localize)(681,"key"),5:(0,f.localize)(682,"method"),1:(0,f.localize)(683,"module"),2:(0,f.localize)(684,"namespace"),20:(0,f.localize)(685,"null"),15:(0,f.localize)(686,"number"),18:(0,f.localize)(687,"object"),24:(0,f.localize)(688,"operator"),3:(0,f.localize)(689,"package"),6:(0,f.localize)(690,"property"),14:(0,f.localize)(691,"string"),22:(0,f.localize)(692,"struct"),25:(0,f.localize)(693,"type parameter"),12:(0,f.localize)(694,"variable")};function L(y,_){return(0,f.localize)(695,"{0} ({1})",y,n.symbolKindNames[_])}var N;(function(y){const _=new Map;_.set(0,i.Codicon.symbolFile),_.set(1,i.Codicon.symbolModule),_.set(2,i.Codicon.symbolNamespace),_.set(3,i.Codicon.symbolPackage),_.set(4,i.Codicon.symbolClass),_.set(5,i.Codicon.symbolMethod),_.set(6,i.Codicon.symbolProperty),_.set(7,i.Codicon.symbolField),_.set(8,i.Codicon.symbolConstructor),_.set(9,i.Codicon.symbolEnum),_.set(10,i.Codicon.symbolInterface),_.set(11,i.Codicon.symbolFunction),_.set(12,i.Codicon.symbolVariable),_.set(13,i.Codicon.symbolConstant),_.set(14,i.Codicon.symbolString),_.set(15,i.Codicon.symbolNumber),_.set(16,i.Codicon.symbolBoolean),_.set(17,i.Codicon.symbolArray),_.set(18,i.Codicon.symbolObject),_.set(19,i.Codicon.symbolKey),_.set(20,i.Codicon.symbolNull),_.set(21,i.Codicon.symbolEnumMember),_.set(22,i.Codicon.symbolStruct),_.set(23,i.Codicon.symbolEvent),_.set(24,i.Codicon.symbolOperator),_.set(25,i.Codicon.symbolTypeParameter);function C(R){let D=_.get(R);return D||(console.info("No codicon found for SymbolKind "+R),D=i.Codicon.symbolProperty),D}y.toIcon=C})(N||(n.SymbolKinds=N={}));class P{}n.TextEdit=P;class E{static{this.Comment=new E("comment")}static{this.Imports=new E("imports")}static{this.Region=new E("region")}static fromValue(_){switch(_){case"comment":return E.Comment;case"imports":return E.Imports;case"region":return E.Region}return new E(_)}constructor(_){this.value=_}}n.FoldingRangeKind=E;var v;(function(y){y[y.AIGenerated=1]="AIGenerated"})(v||(n.NewSymbolNameTag=v={}));var l;(function(y){y[y.Invoke=0]="Invoke",y[y.Automatic=1]="Automatic"})(l||(n.NewSymbolNameTriggerKind=l={}));var b;(function(y){function _(C){return!C||typeof C!="object"?!1:typeof C.id=="string"&&typeof C.title=="string"}y.is=_})(b||(n.Command=b={}));var g;(function(y){y[y.Type=1]="Type",y[y.Parameter=2]="Parameter"})(g||(n.InlayHintKind=g={}));class w{constructor(_){this.createSupport=_,this._tokenizationSupport=null}dispose(){this._tokenizationSupport&&this._tokenizationSupport.then(_=>{_&&_.dispose()})}get tokenizationSupport(){return this._tokenizationSupport||(this._tokenizationSupport=this.createSupport()),this._tokenizationSupport}}n.LazyTokenizationSupport=w,n.TokenizationRegistry=new d.TokenizationRegistry,n.TreeSitterTokenizationRegistry=new d.TokenizationRegistry;var M;(function(y){y[y.Invoke=0]="Invoke",y[y.Automatic=1]="Automatic"})(M||(n.InlineEditTriggerKind=M={}))}),X(J[74],Z([0,1,23,9,42,14,4,2,48,73,69]),function(W,n,i,x,A,d,f,p,c,a,m){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.KeyMod=void 0,n.createMonacoBaseAPI=h;class e{static{this.CtrlCmd=2048}static{this.Shift=1024}static{this.Alt=512}static{this.WinCtrl=256}static chord(s,o){return(0,A.KeyChord)(s,o)}}n.KeyMod=e;function h(){return{editor:void 0,languages:void 0,CancellationTokenSource:i.CancellationTokenSource,Emitter:x.Emitter,KeyCode:m.KeyCode,KeyMod:e,Position:f.Position,Range:p.Range,Selection:c.Selection,SelectionDirection:m.SelectionDirection,MarkerSeverity:m.MarkerSeverity,MarkerTag:m.MarkerTag,Uri:d.URI,Token:a.Token}}}),X(J[75],Z([0,1,71,8,14,4,2,31,64]),function(W,n,i,x,A,d,f,p,c){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MirrorModel=n.WorkerTextModelSyncServer=n.WorkerTextModelSyncClient=n.STOP_SYNC_MODEL_DELTA_TIME_MS=void 0,n.STOP_SYNC_MODEL_DELTA_TIME_MS=60*1e3;class a extends x.Disposable{constructor(r,s,o=!1){if(super(),this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),this._proxy=r,this._modelService=s,!o){const u=new i.IntervalTimer;u.cancelAndSet(()=>this._checkStopModelSync(),Math.round(n.STOP_SYNC_MODEL_DELTA_TIME_MS/2)),this._register(u)}}dispose(){for(const r in this._syncedModels)(0,x.dispose)(this._syncedModels[r]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),super.dispose()}ensureSyncedResources(r,s=!1){for(const o of r){const u=o.toString();this._syncedModels[u]||this._beginModelSync(o,s),this._syncedModels[u]&&(this._syncedModelsLastUsedTime[u]=new Date().getTime())}}_checkStopModelSync(){const r=new Date().getTime(),s=[];for(const o in this._syncedModelsLastUsedTime)r-this._syncedModelsLastUsedTime[o]>n.STOP_SYNC_MODEL_DELTA_TIME_MS&&s.push(o);for(const o of s)this._stopModelSync(o)}_beginModelSync(r,s){const o=this._modelService.getModel(r);if(!o||!s&&o.isTooLargeForSyncing())return;const u=r.toString();this._proxy.$acceptNewModel({url:o.uri.toString(),lines:o.getLinesContent(),EOL:o.getEOL(),versionId:o.getVersionId()});const S=new x.DisposableStore;S.add(o.onDidChangeContent(L=>{this._proxy.$acceptModelChanged(u.toString(),L)})),S.add(o.onWillDispose(()=>{this._stopModelSync(u)})),S.add((0,x.toDisposable)(()=>{this._proxy.$acceptRemovedModel(u)})),this._syncedModels[u]=S}_stopModelSync(r){const s=this._syncedModels[r];delete this._syncedModels[r],delete this._syncedModelsLastUsedTime[r],(0,x.dispose)(s)}}n.WorkerTextModelSyncClient=a;class m{constructor(){this._models=Object.create(null)}getModel(r){return this._models[r]}getModels(){const r=[];return Object.keys(this._models).forEach(s=>r.push(this._models[s])),r}$acceptNewModel(r){this._models[r.url]=new e(A.URI.parse(r.url),r.lines,r.EOL,r.versionId)}$acceptModelChanged(r,s){if(!this._models[r])return;this._models[r].onEvents(s)}$acceptRemovedModel(r){this._models[r]&&delete this._models[r]}}n.WorkerTextModelSyncServer=m;class e extends c.MirrorTextModel{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(r){const s=[];for(let o=0;othis._lines.length)s=this._lines.length,o=this._lines[s-1].length+1,u=!0;else{const S=this._lines[s-1].length+1;o<1?(o=1,u=!0):o>S&&(o=S,u=!0)}return u?{lineNumber:s,column:o}:r}}n.MirrorModel=e}),X(J[77],Z([0,1,24,2,60,61,74,66,22,68,58,27,38,59,67,75]),function(W,n,i,x,A,d,f,p,c,a,m,e,h,r,s,o){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.EditorSimpleWorker=n.BaseEditorSimpleWorker=void 0,n.create=N;const u=!1;class S{constructor(){this._workerTextModelSyncServer=new o.WorkerTextModelSyncServer}dispose(){}_getModel(E){return this._workerTextModelSyncServer.getModel(E)}_getModels(){return this._workerTextModelSyncServer.getModels()}$acceptNewModel(E){this._workerTextModelSyncServer.$acceptNewModel(E)}$acceptModelChanged(E,v){this._workerTextModelSyncServer.$acceptModelChanged(E,v)}$acceptRemovedModel(E){this._workerTextModelSyncServer.$acceptRemovedModel(E)}async $computeUnicodeHighlights(E,v,l){const b=this._getModel(E);return b?a.UnicodeTextModelHighlighter.computeUnicodeHighlights(b,v,l):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}}async $findSectionHeaders(E,v){const l=this._getModel(E);return l?(0,s.findSectionHeaders)(l,v):[]}async $computeDiff(E,v,l,b){const g=this._getModel(E),w=this._getModel(v);return!g||!w?null:L.computeDiff(g,w,l,b)}static computeDiff(E,v,l,b){const g=b==="advanced"?m.linesDiffComputers.getDefault():m.linesDiffComputers.getLegacy(),w=E.getLinesContent(),M=v.getLinesContent(),y=g.computeDiff(w,M,l),_=y.changes.length>0?!1:this._modelsAreIdentical(E,v);function C(R){return R.map(D=>[D.original.startLineNumber,D.original.endLineNumberExclusive,D.modified.startLineNumber,D.modified.endLineNumberExclusive,D.innerChanges?.map(T=>[T.originalRange.startLineNumber,T.originalRange.startColumn,T.originalRange.endLineNumber,T.originalRange.endColumn,T.modifiedRange.startLineNumber,T.modifiedRange.startColumn,T.modifiedRange.endLineNumber,T.modifiedRange.endColumn])])}return{identical:_,quitEarly:y.hitTimeout,changes:C(y.changes),moves:y.moves.map(R=>[R.lineRangeMapping.original.startLineNumber,R.lineRangeMapping.original.endLineNumberExclusive,R.lineRangeMapping.modified.startLineNumber,R.lineRangeMapping.modified.endLineNumberExclusive,C(R.changes)])}}static _modelsAreIdentical(E,v){const l=E.getLineCount(),b=v.getLineCount();if(l!==b)return!1;for(let g=1;g<=l;g++){const w=E.getLineContent(g),M=v.getLineContent(g);if(w!==M)return!1}return!0}static{this._diffLimit=1e5}async $computeMoreMinimalEdits(E,v,l){const b=this._getModel(E);if(!b)return v;const g=[];let w;v=v.slice(0).sort((y,_)=>{if(y.range&&_.range)return x.Range.compareRangesUsingStarts(y.range,_.range);const C=y.range?0:1,R=_.range?0:1;return C-R});let M=0;for(let y=1;yL._diffLimit){g.push({range:y,text:_});continue}const D=(0,i.stringDiff)(R,_,l),T=b.offsetAt(x.Range.lift(y).getStartPosition());for(const O of D){const z=b.positionAt(T+O.originalStart),j=b.positionAt(T+O.originalStart+O.originalLength),F={text:_.substr(O.modifiedStart,O.modifiedLength),range:{startLineNumber:z.lineNumber,startColumn:z.column,endLineNumber:j.lineNumber,endColumn:j.column}};b.getValueInRange(F.range)!==F.text&&g.push(F)}}return typeof w=="number"&&g.push({eol:w,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),g}async $computeLinks(E){const v=this._getModel(E);return v?(0,A.computeLinks)(v):null}async $computeDefaultDocumentColors(E){const v=this._getModel(E);return v?(0,r.computeDefaultDocumentColors)(v):null}static{this._suggestionsLimit=1e4}async $textualSuggest(E,v,l,b){const g=new c.StopWatch,w=new RegExp(l,b),M=new Set;e:for(const y of E){const _=this._getModel(y);if(_){for(const C of _.words(w))if(!(C===v||!isNaN(Number(C)))&&(M.add(C),M.size>L._suggestionsLimit))break e}}return{words:Array.from(M),duration:g.elapsed()}}async $computeWordRanges(E,v,l,b){const g=this._getModel(E);if(!g)return Object.create(null);const w=new RegExp(l,b),M=Object.create(null);for(let y=v.startLineNumber;ythis._host.$fhr(M,y),w={host:(0,e.createProxyObject)(l,b),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(w,v),Promise.resolve((0,e.getAllMethodNames)(this._foreignModule))):new Promise((M,y)=>{const _=C=>{this._foreignModule=C.create(w,v),M((0,e.getAllMethodNames)(this._foreignModule))};if(!u)W([`${E}`],_,y);else{const C=h.FileAccess.asBrowserUri(`${E}.js`).toString(!0);new Promise((R,D)=>{W([`${C}`],R,D)}).then(_).catch(y)}})}$fmr(E,v){if(!this._foreignModule||typeof this._foreignModule[E]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+E));try{return Promise.resolve(this._foreignModule[E].apply(this._foreignModule,v))}catch(l){return Promise.reject(l)}}}n.EditorSimpleWorker=L;function N(P){return new L(p.EditorWorkerHost.getChannel(P),null)}typeof importScripts=="function"&&(globalThis.monaco=(0,f.createMonacoBaseAPI)())})}).call(this); + +//# sourceMappingURL=../../../../min-maps/vs/base/worker/workerMain.js.map \ No newline at end of file diff --git a/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/basic-languages/css/css.js b/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/basic-languages/css/css.js new file mode 100644 index 00000000000..99a530ddd33 --- /dev/null +++ b/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/basic-languages/css/css.js @@ -0,0 +1,12 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/css/css", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var r=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var s=Object.getOwnPropertyNames;var l=Object.prototype.hasOwnProperty;var m=(t,e)=>{for(var o in e)r(t,o,{get:e[o],enumerable:!0})},c=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of s(e))!l.call(t,n)&&n!==o&&r(t,n,{get:()=>e[n],enumerable:!(i=a(e,n))||i.enumerable});return t};var d=t=>c(r({},"__esModule",{value:!0}),t);var k={};m(k,{conf:()=>u,language:()=>p});var u={wordPattern:/(#?-?\d*\.\d\w*%?)|((::|[@#.!:])?[\w-?]+%?)|::|[@#.!:]/g,comments:{blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},p={defaultToken:"",tokenPostfix:".css",ws:`[ +\r\f]*`,identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.bracket"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@strings"},["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@selectorname"},["[\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.bracket",next:"@selectorbody"}]],selectorbody:[{include:"@comments"},["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],["}",{token:"delimiter.bracket",next:"@pop"}]],selectorname:[["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@functioninvocation"},{include:"@numbers"},{include:"@name"},{include:"@strings"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","delimiter"],[",","delimiter"]],rulevalue:[{include:"@comments"},{include:"@strings"},{include:"@term"},["!important","keyword"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],urldeclaration:[{include:"@strings"},[`[^)\r +]+`,"string"],["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[/[^*/]+/,"comment"],[/./,"comment"]],name:[["@identifier","attribute.value"]],numbers:[["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|fr|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],keyframedeclaration:[["@identifier","attribute.value"],["{",{token:"delimiter.bracket",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.bracket",next:"@selectorbody"}],["}",{token:"delimiter.bracket",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"attribute.value",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"attribute.value",next:"@pop"}]],strings:[['~?"',{token:"string",next:"@stringenddoublequote"}],["~?'",{token:"string",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string",next:"@pop"}],[/[^\\"]+/,"string"],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string",next:"@pop"}],[/[^\\']+/,"string"],[".","string"]]}};return d(k);})(); +return moduleExports; +}); diff --git a/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/basic-languages/java/java.js b/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/basic-languages/java/java.js new file mode 100644 index 00000000000..e1a65706e46 --- /dev/null +++ b/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/basic-languages/java/java.js @@ -0,0 +1,10 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/java/java", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var s=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var o in e)s(t,o,{get:e[o],enumerable:!0})},d=(t,e,o,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of r(e))!c.call(t,n)&&n!==o&&s(t,n,{get:()=>e[n],enumerable:!(i=a(e,n))||i.enumerable});return t};var g=t=>d(s({},"__esModule",{value:!0}),t);var f={};l(f,{conf:()=>m,language:()=>p});var m={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},p={defaultToken:"",tokenPostfix:".java",keywords:["abstract","continue","for","new","switch","assert","default","goto","package","synchronized","boolean","do","if","private","this","break","double","implements","protected","throw","byte","else","import","public","throws","case","enum","instanceof","return","transient","catch","extends","int","short","try","char","final","interface","static","void","class","finally","long","strictfp","volatile","const","float","native","super","while","true","false","yield","record","sealed","non-sealed","permits"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string","@multistring"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}};return g(f);})(); +return moduleExports; +}); diff --git a/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/editor/editor.main.css b/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/editor/editor.main.css new file mode 100644 index 00000000000..4dc94a2a9c1 --- /dev/null +++ b/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/editor/editor.main.css @@ -0,0 +1,8 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt + *-----------------------------------------------------------*/.monaco-action-bar{height:100%;white-space:nowrap}.monaco-action-bar .actions-container{align-items:center;display:flex;height:100%;margin:0 auto;padding:0;width:100%}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{align-items:center;cursor:pointer;display:block;justify-content:center;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .codicon,.monaco-action-bar .action-item .icon{display:block}.monaco-action-bar .action-item .codicon{align-items:center;display:flex;height:16px;width:16px}.monaco-action-bar .action-label{border-radius:5px;display:flex;font-size:11px;padding:3px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover{color:var(--vscode-disabledForeground)}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{border-bottom:1px solid #bbb;display:block;margin-left:.8em;margin-right:.8em;padding-top:1px}.monaco-action-bar .action-item .action-label.separator{background-color:#bbb;cursor:default;height:16px;margin:5px 4px!important;min-width:1px;padding:0;width:1px}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{align-items:center;display:flex;flex:1;justify-content:center;margin-right:10px;max-width:170px;min-width:60px;overflow:hidden}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator{align-items:center;cursor:default;display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator>div{width:1px}.monaco-aria-container{left:-999em;position:absolute}.monaco-text-button{align-items:center;border:1px solid var(--vscode-button-border,transparent);border-radius:2px;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;line-height:18px;padding:4px;text-align:center;width:100%}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled,.monaco-button.disabled:focus{cursor:default;opacity:.4!important}.monaco-text-button .codicon{color:inherit!important;margin:0 .2em}.monaco-text-button.monaco-text-button-with-short-label{flex-direction:row;flex-wrap:wrap;height:28px;overflow:hidden;padding:0 4px}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label{flex-basis:100%}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{flex-grow:1;overflow:hidden;width:0}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label,.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{align-items:center;display:flex;font-style:inherit;font-weight:400;justify-content:center;padding:4px 0}.monaco-button-dropdown{cursor:pointer;display:flex}.monaco-button-dropdown.disabled{cursor:default}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator,.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus{opacity:.4!important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{cursor:default;padding:4px 0}.monaco-button-dropdown .monaco-button-dropdown-separator>div{height:100%;width:1px}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{align-items:center;border:1px solid var(--vscode-button-border,transparent);border-left-width:0!important;border-radius:0 2px 2px 0;display:flex}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-radius:2px 0 0 2px}.monaco-description-button{align-items:center;display:flex;flex-direction:column;margin:4px 5px}.monaco-description-button .monaco-button-description{font-size:11px;font-style:italic;padding:4px 20px}.monaco-description-button .monaco-button-description,.monaco-description-button .monaco-button-label{align-items:center;display:flex;justify-content:center}.monaco-description-button .monaco-button-description>.codicon,.monaco-description-button .monaco-button-label>.codicon{color:inherit!important;margin:0 .2em}.monaco-button-dropdown.default-colors>.monaco-button,.monaco-button.default-colors{background-color:var(--vscode-button-background);color:var(--vscode-button-foreground)}.monaco-button-dropdown.default-colors>.monaco-button:hover,.monaco-button.default-colors:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary,.monaco-button.default-colors.secondary{background-color:var(--vscode-button-secondaryBackground);color:var(--vscode-button-secondaryForeground)}.monaco-button-dropdown.default-colors>.monaco-button.secondary:hover,.monaco-button.default-colors.secondary:hover{background-color:var(--vscode-button-secondaryHoverBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator{background-color:var(--vscode-button-background);border-bottom:1px solid var(--vscode-button-border);border-top:1px solid var(--vscode-button-border)}.monaco-button-dropdown.default-colors .monaco-button.secondary+.monaco-button-dropdown-separator{background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator>div{background-color:var(--vscode-button-separator)}@font-face{font-display:block;font-family:codicon;src:url(../base/browser/ui/codicons/codicon/codicon.ttf) format("truetype")}.codicon[class*=codicon-]{display:inline-block;font:normal normal normal 16px/1 codicon;text-align:center;text-decoration:none;text-rendering:auto;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}.codicon-wrench-subaction{opacity:.5}@keyframes codicon-spin{to{transform:rotate(1turn)}}.codicon-gear.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin,.codicon-sync.codicon-modifier-spin{animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.context-view{position:absolute}.context-view.fixed{all:initial;color:inherit;font-family:inherit;font-size:13px;position:fixed}.monaco-count-badge{border-radius:11px;box-sizing:border-box;display:inline-block;font-size:11px;font-weight:400;line-height:11px;min-height:18px;min-width:18px;padding:3px 6px;text-align:center}.monaco-count-badge.long{border-radius:2px;line-height:normal;min-height:auto;padding:2px 3px}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{align-items:center;cursor:pointer;display:flex;height:100%;justify-content:center}.monaco-dropdown>.dropdown-label>.action-label.disabled{cursor:default}.monaco-dropdown-with-primary{border-radius:5px;display:flex!important;flex-direction:row}.monaco-dropdown-with-primary>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;line-height:16px;margin-left:-3px;padding-left:0;padding-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{background-position:50%;background-repeat:no-repeat;background-size:16px;display:block}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;right:2px;top:3px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.hc-light .monaco-findInput.highlight-0 .controls,.monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 .1s linear 0s}.hc-light .monaco-findInput.highlight-1 .controls,.monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:rgba(253,255,0,.8)}to{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:rgba(253,255,0,.8)}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:hsla(0,0%,100%,.44)}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:hsla(0,0%,100%,.44)}99%{background:transparent}}.monaco-hover{animation:fadein .1s linear;box-sizing:border-box;cursor:default;line-height:1.5em;overflow:hidden;position:absolute;user-select:text;-webkit-user-select:text;white-space:var(--vscode-hover-whiteSpace,normal)}.monaco-hover.hidden{display:none}.monaco-hover a:hover:not(.disabled){cursor:pointer}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){max-width:var(--vscode-hover-maxWidth,500px);word-wrap:break-word}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover .code,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6,.monaco-hover p,.monaco-hover ul{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{border-left:0;border-right:0;box-sizing:border-box;height:1px;margin:4px -8px -4px}.monaco-hover .code:first-child,.monaco-hover p:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover .code:last-child,.monaco-hover p:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ol,.monaco-hover ul{padding-left:20px}.monaco-hover li>p{margin-bottom:0}.monaco-hover li>ul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:var(--vscode-hover-sourceWhiteSpace,pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px;width:100%}.monaco-hover .hover-row.status-bar .actions .action-container{cursor:pointer;margin-right:16px}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .hover-row.status-bar .actions .action-container a{color:var(--vscode-textLink-foreground);text-decoration:var(--text-link-decoration)}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link,.monaco-hover .hover-contents a.code-link:hover{color:inherit}.monaco-hover .hover-contents a.code-link:before{content:"("}.monaco-hover .hover-contents a.code-link:after{content:")"}.monaco-hover .hover-contents a.code-link>span{border-bottom:1px solid transparent;color:var(--vscode-textLink-foreground);text-decoration:underline;text-underline-position:under}.monaco-hover .hover-contents a.code-link>span:hover{color:var(--vscode-textLink-activeForeground)}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{display:inline-block;margin-bottom:4px}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span.codicon{margin-bottom:2px}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{cursor:default;opacity:.4;pointer-events:none}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-position:0;background-repeat:no-repeat;background-size:16px;display:inline-block;height:22px;line-height:inherit!important;padding-right:6px;width:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-shrink:0;vertical-align:top}.monaco-icon-label-iconpath{display:flex;height:16px;margin-top:2px;padding-left:2px;width:16px}.monaco-icon-label-container.disabled{color:var(--vscode-disabledForeground)}.monaco-icon-label>.monaco-icon-label-container{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-suffix-container>.label-suffix{opacity:.7;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-size:.9em;margin-left:.5em;opacity:.7;white-space:pre}.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{white-space:nowrap}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{font-style:italic}.monaco-icon-label.deprecated{opacity:.66;text-decoration:line-through}.monaco-icon-label.italic:after{font-style:italic}.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{text-decoration:line-through}.monaco-icon-label:after{font-size:90%;font-weight:600;margin:auto 16px 0 5px;opacity:.75;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:.8}.monaco-inputbox{border-radius:2px;box-sizing:border-box;display:block;font-size:inherit;padding:0;position:relative}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px 6px}.monaco-inputbox>.ibwrapper{height:100%;position:relative;width:100%}.monaco-inputbox>.ibwrapper>.input{border:none;box-sizing:border-box;color:inherit;display:inline-block;font-family:inherit;font-size:inherit;height:100%;line-height:inherit;resize:none;width:100%}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{display:block;outline:none;scrollbar-width:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.ibwrapper>.mirror{box-sizing:border-box;display:inline-block;left:0;position:absolute;top:0;visibility:hidden;white-space:pre-wrap;width:100%;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{box-sizing:border-box;display:inline-block;font-size:12px;line-height:17px;margin-top:-1px;overflow:hidden;padding:.4em;text-align:left;width:100%;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;height:16px;width:16px}.monaco-keybinding{align-items:center;display:flex;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{border-radius:3px;border-style:solid;border-width:1px;display:inline-block;font-size:11px;margin:0 2px;padding:3px 5px;vertical-align:middle}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-list{height:100%;position:relative;white-space:nowrap;width:100%}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{height:100%;position:relative;width:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{min-width:100%;width:auto}.monaco-list-row{box-sizing:border-box;overflow:hidden;position:absolute;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list .monaco-scrollable-element>.scrollbar.vertical,.monaco-pane-view>.monaco-split-view2.vertical>.monaco-scrollable-element>.scrollbar.vertical{z-index:14}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-multiple,.monaco-list.selection-single{outline:0!important}.monaco-drag-image{border-radius:10px;display:inline-block;font-size:12px;padding:1px 7px;position:absolute;z-index:1000}.monaco-list-type-filter-message{box-sizing:border-box;height:100%;left:0;opacity:.7;padding:40px 1em 1em;pointer-events:none;position:absolute;text-align:center;top:0;white-space:normal;width:100%}.monaco-list-type-filter-message:empty{display:none}.monaco-mouse-cursor-text{cursor:text}.monaco-progress-container{height:2px;overflow:hidden;width:100%}.monaco-progress-container .progress-bit{display:none;height:2px;left:0;position:absolute;width:2%}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-duration:4s;animation-iteration-count:infinite;animation-name:progress;animation-timing-function:linear;transform:translateZ(0)}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes progress{0%{transform:translateX(0) scaleX(1)}50%{transform:translateX(2500%) scaleX(3)}to{transform:translateX(4900%) scaleX(1)}}:root{--vscode-sash-size:4px;--vscode-sash-hover-size:4px}.monaco-sash{position:absolute;touch-action:none;z-index:35}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.vertical{cursor:ew-resize;height:100%;top:0;width:var(--vscode-sash-size)}.monaco-sash.horizontal{cursor:ns-resize;height:var(--vscode-sash-size);left:0;width:100%}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";cursor:all-scroll;display:block;height:calc(var(--vscode-sash-size)*2);position:absolute;width:calc(var(--vscode-sash-size)*2);z-index:100}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size)*-.5);top:calc(var(--vscode-sash-size)*-1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{bottom:calc(var(--vscode-sash-size)*-1);left:calc(var(--vscode-sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size)*-1);top:calc(var(--vscode-sash-size)*-.5)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{right:calc(var(--vscode-sash-size)*-1);top:calc(var(--vscode-sash-size)*-.5)}.monaco-sash:before{background:transparent;content:"";height:100%;pointer-events:none;position:absolute;width:100%}.monaco-workbench:not(.reduce-motion) .monaco-sash:before{transition:background-color .1s ease-out}.monaco-sash.active:before,.monaco-sash.hover:before{background:var(--vscode-sash-hoverBorder)}.monaco-sash.vertical:before{left:calc(50% - var(--vscode-sash-hover-size)/2);width:var(--vscode-sash-hover-size)}.monaco-sash.horizontal:before{height:var(--vscode-sash-hover-size);top:calc(50% - var(--vscode-sash-hover-size)/2)}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:cyan}.monaco-sash.debug.disabled{background:rgba(0,255,255,.2)}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{background:transparent;opacity:1;transition:opacity .1s linear;z-index:11}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{display:none;position:absolute}.monaco-scrollable-element>.shadow.top{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;display:block;height:3px;left:3px;top:0;width:100%}.monaco-scrollable-element>.shadow.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset;display:block;height:100%;left:0;top:3px;width:3px}.monaco-scrollable-element>.shadow.top-left-corner{display:block;height:3px;left:0;top:0;width:3px}.monaco-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.scrollbar>.slider{background:var(--vscode-scrollbarSlider-background)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-scrollable-element>.scrollbar>.slider.active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-select-box{border-radius:2px;cursor:pointer;width:100%}.monaco-select-box-dropdown-container{font-size:13px;font-weight:400;text-transform:none}.monaco-action-bar .action-item.select-container{cursor:default}.monaco-action-bar .action-item .monaco-select-box{cursor:pointer;min-height:18px;min-width:100px;padding:2px 23px 2px 8px}.mac .monaco-action-bar .action-item .monaco-select-box{border-radius:5px;font-size:11px}.monaco-select-box-dropdown-padding{--dropdown-padding-top:1px;--dropdown-padding-bottom:1px}.hc-black .monaco-select-box-dropdown-padding,.hc-light .monaco-select-box-dropdown-padding{--dropdown-padding-top:3px;--dropdown-padding-bottom:4px}.monaco-select-box-dropdown-container{box-sizing:border-box;display:none}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown *{margin:0}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown a:focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown code{font-family:var(--monaco-monospace-font);line-height:15px}.monaco-select-box-dropdown-container.visible{border-bottom-left-radius:3px;border-bottom-right-radius:3px;display:flex;flex-direction:column;overflow:hidden;text-align:left;width:1px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{align-self:flex-start;box-sizing:border-box;flex:0 0 auto;overflow:hidden;padding-bottom:var(--dropdown-padding-bottom);padding-left:1px;padding-right:1px;padding-top:var(--dropdown-padding-top);width:100%}.monaco-select-box-dropdown-container>.select-box-details-pane{padding:5px}.hc-black .monaco-select-box-dropdown-container>.select-box-dropdown-list-container{padding-bottom:var(--dropdown-padding-bottom);padding-top:var(--dropdown-padding-top)}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row{cursor:pointer}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-text{float:left;overflow:hidden;padding-left:3.5px;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-detail{float:left;opacity:.7;overflow:hidden;padding-left:3.5px;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-decorator-right{float:right;overflow:hidden;padding-right:10px;text-overflow:ellipsis;white-space:nowrap}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.visually-hidden{height:1px;left:-10000px;overflow:hidden;position:absolute;top:auto;width:1px}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control{align-self:flex-start;flex:1 1 auto;opacity:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div{max-height:0;overflow:hidden}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div>.option-text-width-control{padding-left:4px;padding-right:8px;white-space:nowrap}.monaco-split-view2{height:100%;position:relative;width:100%}.monaco-split-view2>.sash-container{height:100%;pointer-events:none;position:absolute;width:100%}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:auto}.monaco-split-view2>.monaco-scrollable-element{height:100%;width:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container{height:100%;position:relative;white-space:nowrap;width:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{position:absolute;white-space:normal}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{background-color:var(--separator-border);content:" ";left:0;pointer-events:none;position:absolute;top:0;z-index:5}.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative;white-space:nowrap;width:100%}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table>.monaco-list{flex:1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{font-weight:700;height:100%;overflow:hidden;text-overflow:ellipsis;width:100%}.monaco-table-td,.monaco-table-th{box-sizing:border-box;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{border-left:1px solid transparent;content:"";left:calc(var(--vscode-sash-size)/2);position:absolute;width:0}.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2,.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-custom-toggle{border:1px solid transparent;border-radius:3px;box-sizing:border-box;cursor:pointer;float:left;height:20px;margin-left:2px;overflow:hidden;padding:1px;user-select:none;-webkit-user-select:none;width:20px}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.hc-black .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle,.hc-light .monaco-custom-toggle:hover{background:none}.monaco-custom-toggle.monaco-checkbox{background-size:16px!important;border:1px solid transparent;border-radius:3px;height:18px;margin-left:0;margin-right:9px;opacity:1;padding:0;width:18px}.monaco-action-bar .checkbox-action-item{align-items:center;border-radius:2px;display:flex;padding-right:2px}.monaco-action-bar .checkbox-action-item:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-action-bar .checkbox-action-item>.monaco-custom-toggle.monaco-checkbox{margin-right:4px}.monaco-action-bar .checkbox-action-item>.checkbox-label{font-size:12px}.monaco-custom-toggle.monaco-checkbox:not(.checked):before{visibility:hidden}.monaco-toolbar{height:100%}.monaco-toolbar .toolbar-toggle-more{display:inline-block;padding:0}.monaco-tl-row{align-items:center;display:flex;height:100%;position:relative}.monaco-tl-row.disabled{cursor:default}.monaco-tl-indent{height:100%;left:16px;pointer-events:none;position:absolute;top:0}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{border-left:1px solid transparent;box-sizing:border-box;display:inline-block;height:100%}.monaco-workbench:not(.reduce-motion) .monaco-tl-indent>.indent-guide{transition:border-color .1s linear}.monaco-tl-contents,.monaco-tl-twistie{height:100%}.monaco-tl-twistie{align-items:center;display:flex!important;flex-shrink:0;font-size:10px;justify-content:center;padding-right:6px;text-align:right;transform:translateX(3px);width:16px}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:codicon-spin 1.25s steps(30) infinite}.monaco-tree-type-filter{border:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px;display:flex;margin:0 6px;max-width:200px;padding:3px;position:absolute;top:0;z-index:100}.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter{transition:top .3s}.monaco-tree-type-filter.disabled{top:-40px!important}.monaco-tree-type-filter-grab{align-items:center;cursor:grab;display:flex!important;justify-content:center;margin-right:2px}.monaco-tree-type-filter-grab.grabbing{cursor:grabbing}.monaco-tree-type-filter-input{flex:1}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror{padding:2px 4px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar{margin-left:4px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{background-color:var(--vscode-sideBar-background);height:0;left:0;position:absolute;top:0;width:100%;z-index:13}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{background-color:var(--vscode-sideBar-background);opacity:1!important;overflow:hidden;position:absolute;width:100%}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{background-color:var(--vscode-list-hoverBackground)!important;cursor:pointer}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty,.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty .monaco-tree-sticky-container-shadow{display:none}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow{bottom:-3px;height:0;left:0;position:absolute;width:100%}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container[tabindex="0"]:focus{outline:none}.monaco-editor .inputarea{background-color:transparent;border:none;color:transparent;margin:0;min-height:0;min-width:0;outline:none!important;overflow:hidden;padding:0;position:absolute;resize:none;z-index:-10}.monaco-editor .inputarea.ime-input{caret-color:var(--vscode-editorCursor-foreground);color:var(--vscode-editor-foreground);z-index:10}.monaco-workbench .workbench-hover{background:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;box-shadow:0 2px 8px var(--vscode-widget-shadow);color:var(--vscode-editorHoverWidget-foreground);font-size:13px;line-height:19px;max-width:700px;overflow:hidden;position:relative;z-index:40}.monaco-workbench .workbench-hover hr{border-bottom:none}.monaco-workbench .workbench-hover:not(.skip-fade-in){animation:fadein .1s linear}.monaco-workbench .workbench-hover.compact{font-size:12px}.monaco-workbench .workbench-hover.compact .hover-contents{padding:2px 8px}.monaco-workbench .workbench-hover-container.locked .workbench-hover{outline:1px solid var(--vscode-editorHoverWidget-border)}.monaco-workbench .workbench-hover-container.locked .workbench-hover:focus,.monaco-workbench .workbench-hover-lock:focus{outline:1px solid var(--vscode-focusBorder)}.monaco-workbench .workbench-hover-container.locked .workbench-hover-lock:hover{background:var(--vscode-toolbar-hoverBackground)}.monaco-workbench .workbench-hover-pointer{pointer-events:none;position:absolute;z-index:41}.monaco-workbench .workbench-hover-pointer:after{background-color:var(--vscode-editorHoverWidget-background);border-bottom:1px solid var(--vscode-editorHoverWidget-border);border-right:1px solid var(--vscode-editorHoverWidget-border);content:"";height:5px;position:absolute;width:5px}.monaco-workbench .locked .workbench-hover-pointer:after{border-bottom-width:2px;border-right-width:2px;height:4px;width:4px}.monaco-workbench .workbench-hover-pointer.left{left:-3px}.monaco-workbench .workbench-hover-pointer.right{right:3px}.monaco-workbench .workbench-hover-pointer.top{top:-3px}.monaco-workbench .workbench-hover-pointer.bottom{bottom:3px}.monaco-workbench .workbench-hover-pointer.left:after{transform:rotate(135deg)}.monaco-workbench .workbench-hover-pointer.right:after{transform:rotate(315deg)}.monaco-workbench .workbench-hover-pointer.top:after{transform:rotate(225deg)}.monaco-workbench .workbench-hover-pointer.bottom:after{transform:rotate(45deg)}.monaco-workbench .workbench-hover a{color:var(--vscode-textLink-foreground)}.monaco-workbench .workbench-hover a:focus{outline:1px solid;outline-color:var(--vscode-focusBorder);outline-offset:-1px;text-decoration:underline}.monaco-workbench .workbench-hover a:active,.monaco-workbench .workbench-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-workbench .workbench-hover code{background:var(--vscode-textCodeBlock-background)}.monaco-workbench .workbench-hover .hover-row .actions{background:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-workbench .workbench-hover.right-aligned{left:1px}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions{flex-direction:row-reverse}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions .action-container{margin-left:16px;margin-right:0}.monaco-editor .blockDecorations-container{pointer-events:none;position:absolute;top:0}.monaco-editor .blockDecorations-block{box-sizing:border-box;position:absolute}.monaco-editor .margin-view-overlays .current-line,.monaco-editor .view-overlays .current-line{box-sizing:border-box;display:block;height:100%;left:0;position:absolute;top:0}.monaco-editor + .margin-view-overlays + .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{height:100%;position:absolute}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .glyph-margin-widgets .cgmr{align-items:center;display:flex;justify-content:center;position:absolute}.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin:before{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.monaco-editor .lines-content .core-guide{box-sizing:border-box;height:100%;position:absolute}.monaco-editor .margin-view-overlays .line-numbers{bottom:0;box-sizing:border-box;cursor:default;display:inline-block;font-variant-numeric:tabular-nums;position:absolute;text-align:right;vertical-align:middle}.monaco-editor .relative-current-line-number{display:inline-block;text-align:left;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .line-numbers{color:var(--vscode-editorLineNumber-foreground)}.monaco-editor .line-numbers.active-line-number{color:var(--vscode-editorLineNumber-activeForeground)}.mtkcontrol{background:#960000!important;color:#fff!important}.mtkoverflow{background-color:var(--vscode-button-background,var(--vscode-editor-background));border-color:var(--vscode-contrastBorder);border-radius:2px;border-style:solid;border-width:1px;color:var(--vscode-button-foreground,var(--vscode-editor-foreground));cursor:pointer;padding:4px}.mtkoverflow:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none}.monaco-editor.mac .lines-content:hover,.monaco-editor.mac .view-line:hover,.monaco-editor.mac .view-lines:hover{user-select:text;-webkit-user-select:text;-ms-user-select:text}.monaco-editor.enable-user-select{user-select:auto;-webkit-user-select:initial}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .lines-content>.view-lines>.view-line>span{bottom:0;position:absolute;top:0}.monaco-editor .mtkw,.monaco-editor .mtkz{color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .mtkz{display:inline-block}.monaco-editor .lines-decorations{background:#fff;position:absolute;top:0}.monaco-editor .margin-view-overlays .cldr{height:100%;position:absolute}.monaco-editor .margin{background-color:var(--vscode-editorGutter-background)}.monaco-editor .margin-view-overlays .cmdr{height:100%;left:0;position:absolute;width:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover .minimap-slider.active,.monaco-editor .minimap.slider-mouseover:hover .minimap-slider{opacity:1}.monaco-editor .minimap-slider .minimap-slider-horizontal{background:var(--vscode-minimapSlider-background)}.monaco-editor .minimap-slider:hover .minimap-slider-horizontal{background:var(--vscode-minimapSlider-hoverBackground)}.monaco-editor .minimap-slider.active .minimap-slider-horizontal{background:var(--vscode-minimapSlider-activeBackground)}.monaco-editor .minimap-shadow-visible{box-shadow:var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{left:-6px;position:absolute;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{left:-1px;position:absolute;width:1px}.minimap.autohide{opacity:0;transition:opacity .5s}.minimap.autohide:hover{opacity:1}.monaco-editor .minimap{z-index:5}.monaco-editor .overlayWidgets{left:0;position:absolute;top:0}.monaco-editor .view-ruler{box-shadow:1px 0 0 0 var(--vscode-editorRuler-foreground) inset;position:absolute;top:0}.monaco-editor .scroll-decoration{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset;height:6px;left:0;position:absolute;top:0}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.monaco-editor .selected-text{background-color:var(--vscode-editor-inactiveSelectionBackground)}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{box-sizing:border-box;overflow:hidden;position:absolute}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{background:transparent!important;border-bottom-style:solid;border-bottom-width:2px}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{background:transparent!important;border-bottom-style:solid;border-bottom-width:1px}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-editor .mwh{color:var(--vscode-editorWhitespace-foreground)!important;position:absolute}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{overflow:visible;position:relative;-webkit-text-size-adjust:100%;color:var(--vscode-editor-foreground);overflow-wrap:normal}.monaco-editor,.monaco-editor-background{background-color:var(--vscode-editor-background)}.monaco-editor .rangeHighlight{background-color:var(--vscode-editor-rangeHighlightBackground);border:1px solid var(--vscode-editor-rangeHighlightBorder);box-sizing:border-box}.monaco-editor.hc-black .rangeHighlight,.monaco-editor.hc-light .rangeHighlight{border-style:dotted}.monaco-editor .symbolHighlight{background-color:var(--vscode-editor-symbolHighlightBackground);border:1px solid var(--vscode-editor-symbolHighlightBorder);box-sizing:border-box}.monaco-editor.hc-black .symbolHighlight,.monaco-editor.hc-light .symbolHighlight{border-style:dotted}.monaco-editor .overflow-guard{overflow:hidden;position:relative}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .margin-view-overlays>div,.monaco-editor .view-overlays>div{position:absolute;width:100%}.monaco-editor .squiggly-error{border-bottom:4px double var(--vscode-editorError-border)}.monaco-editor .squiggly-error:before{background:var(--vscode-editorError-background);content:"";display:block;height:100%;width:100%}.monaco-editor .squiggly-warning{border-bottom:4px double var(--vscode-editorWarning-border)}.monaco-editor .squiggly-warning:before{background:var(--vscode-editorWarning-background);content:"";display:block;height:100%;width:100%}.monaco-editor .squiggly-info{border-bottom:4px double var(--vscode-editorInfo-border)}.monaco-editor .squiggly-info:before{background:var(--vscode-editorInfo-background);content:"";display:block;height:100%;width:100%}.monaco-editor .squiggly-hint{border-bottom:2px dotted var(--vscode-editorHint-border)}.monaco-editor.showUnused .squiggly-unnecessary{border-bottom:2px dashed var(--vscode-editorUnnecessaryCode-border)}.monaco-editor.showDeprecated .squiggly-inline-deprecated{text-decoration:line-through;text-decoration-color:var(--vscode-editor-foreground,inherit)}.monaco-component.diff-review{user-select:none;-webkit-user-select:none;z-index:99}.monaco-diff-editor .diff-review{position:absolute}.monaco-component.diff-review .diff-review-line-number{color:var(--vscode-editorLineNumber-foreground);display:inline-block;text-align:right}.monaco-component.diff-review .diff-review-summary{padding-left:10px}.monaco-component.diff-review .diff-review-shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset;position:absolute}.monaco-component.diff-review .diff-review-row{white-space:pre}.monaco-component.diff-review .diff-review-table{display:table;min-width:100%}.monaco-component.diff-review .diff-review-row{display:table-row;width:100%}.monaco-component.diff-review .diff-review-spacer{display:inline-block;vertical-align:middle;width:10px}.monaco-component.diff-review .diff-review-spacer>.codicon{font-size:9px!important}.monaco-component.diff-review .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.monaco-component.diff-review .diff-review-actions .action-label{height:16px;margin:2px 0;width:16px}.monaco-component.diff-review .revertButton{cursor:pointer}.monaco-editor .diff-hidden-lines-widget{width:100%}.monaco-editor .diff-hidden-lines{font-size:13px;height:0;line-height:14px;transform:translateY(-10px)}.monaco-editor .diff-hidden-lines .bottom.dragging,.monaco-editor .diff-hidden-lines .top.dragging,.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover{background-color:var(--vscode-focusBorder)}.monaco-editor .diff-hidden-lines .bottom,.monaco-editor .diff-hidden-lines .top{background-clip:padding-box;background-color:transparent;border-bottom:2px solid transparent;border-top:4px solid transparent;height:4px;transition:background-color .1s ease-out}.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom),.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *{cursor:n-resize!important}.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom,.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *{cursor:s-resize!important}.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom,.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *{cursor:ns-resize!important}.monaco-editor .diff-hidden-lines .top{transform:translateY(4px)}.monaco-editor .diff-hidden-lines .bottom{transform:translateY(-6px)}.monaco-editor .diff-unchanged-lines{background:var(--vscode-diffEditor-unchangedCodeBackground)}.monaco-editor .noModificationsOverlay{align-items:center;background:var(--vscode-editor-background);display:flex;justify-content:center;z-index:1}.monaco-editor .diff-hidden-lines .center{background:var(--vscode-diffEditor-unchangedRegionBackground);box-shadow:inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow),inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow);color:var(--vscode-diffEditor-unchangedRegionForeground);display:block;height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .diff-hidden-lines .center span.codicon{vertical-align:middle}.monaco-editor .diff-hidden-lines .center a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important;cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item{cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover{color:var(--vscode-editorLink-activeForeground)}.monaco-editor .movedModified,.monaco-editor .movedOriginal{border:2px solid var(--vscode-diffEditor-move-border)}.monaco-editor .movedModified.currentMove,.monaco-editor .movedOriginal.currentMove{border:2px solid var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path.currentMove{stroke:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path{pointer-events:visiblestroke}.monaco-diff-editor .moved-blocks-lines .arrow{fill:var(--vscode-diffEditor-move-border)}.monaco-diff-editor .moved-blocks-lines .arrow.currentMove{fill:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines .arrow-rectangle{fill:var(--vscode-editor-background)}.monaco-diff-editor .moved-blocks-lines{pointer-events:none;position:absolute}.monaco-diff-editor .moved-blocks-lines path{fill:none;stroke:var(--vscode-diffEditor-move-border);stroke-width:2}.monaco-editor .char-delete.diff-range-empty{border-left:3px solid var(--vscode-diffEditor-removedTextBackground);margin-left:-1px}.monaco-editor .char-insert.diff-range-empty{border-left:3px solid var(--vscode-diffEditor-insertedTextBackground)}.monaco-editor .fold-unchanged{cursor:pointer}.monaco-diff-editor .diff-moved-code-block{display:flex;justify-content:flex-end;margin-top:-4px}.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon{font-size:12px;height:12px;width:12px}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:rgba(0,0,0,.03)}.monaco-diff-editor.vs-dark .diffOverview{background:hsla(0,0%,100%,.01)}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:transparent}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:hsla(0,0%,67%,.4)}.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active{background:none}.monaco-diff-editor .delete-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-editor .insert-sign{align-items:center;display:flex!important;font-size:11px!important;opacity:.7!important}.monaco-diff-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-diff-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-editor.hc-black .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-editor.hc-light .insert-sign{opacity:1}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .inline-deleted-margin-view-zone{text-align:right}.monaco-editor .arrow-revert-change{position:absolute;z-index:10}.monaco-editor .arrow-revert-change:hover{cursor:pointer}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-diff-editor .char-insert,.monaco-editor .char-insert{background-color:var(--vscode-diffEditor-insertedTextBackground)}.monaco-diff-editor .line-insert,.monaco-editor .line-insert{background-color:var(--vscode-diffEditor-insertedLineBackground,var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .char-insert,.monaco-editor .line-insert{border:1px solid var(--vscode-diffEditor-insertedTextBorder);box-sizing:border-box}.monaco-editor.hc-black .char-insert,.monaco-editor.hc-black .line-insert,.monaco-editor.hc-light .char-insert,.monaco-editor.hc-light .line-insert{border-style:dashed}.monaco-editor .char-delete,.monaco-editor .line-delete{border:1px solid var(--vscode-diffEditor-removedTextBorder);box-sizing:border-box}.monaco-editor.hc-black .char-delete,.monaco-editor.hc-black .line-delete,.monaco-editor.hc-light .char-delete,.monaco-editor.hc-light .line-delete{border-style:dashed}.monaco-diff-editor .gutter-insert,.monaco-editor .gutter-insert,.monaco-editor .inline-added-margin-view-zone{background-color:var(--vscode-diffEditorGutter-insertedLineBackground,var(--vscode-diffEditor-insertedLineBackground),var(--vscode-diffEditor-insertedTextBackground))}.monaco-diff-editor .char-delete,.monaco-editor .char-delete,.monaco-editor .inline-deleted-text{background-color:var(--vscode-diffEditor-removedTextBackground)}.monaco-editor .inline-deleted-text{text-decoration:line-through}.monaco-diff-editor .line-delete,.monaco-editor .line-delete{background-color:var(--vscode-diffEditor-removedLineBackground,var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor .gutter-delete,.monaco-editor .gutter-delete,.monaco-editor .inline-deleted-margin-view-zone{background-color:var(--vscode-diffEditorGutter-removedLineBackground,var(--vscode-diffEditor-removedLineBackground),var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor.side-by-side .editor.modified{border-left:1px solid var(--vscode-diffEditor-border);box-shadow:-6px 0 5px -5px var(--vscode-scrollbar-shadow)}.monaco-diff-editor.side-by-side .editor.original{border-right:1px solid var(--vscode-diffEditor-border);box-shadow:6px 0 5px -5px var(--vscode-scrollbar-shadow)}.monaco-diff-editor .diffViewport{background:var(--vscode-scrollbarSlider-background)}.monaco-diff-editor .diffViewport:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-diff-editor .diffViewport:active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .diagonal-fill{background-image:linear-gradient(-45deg,var(--vscode-diffEditor-diagonalFill) 12.5%,#0000 12.5%,#0000 50%,var(--vscode-diffEditor-diagonalFill) 50%,var(--vscode-diffEditor-diagonalFill) 62.5%,#0000 62.5%,#0000 100%);background-size:8px 8px}.monaco-diff-editor .gutter{flex-grow:0;flex-shrink:0;overflow:hidden;position:relative}.monaco-diff-editor .gutter>div{position:absolute}.monaco-diff-editor .gutter .gutterItem{opacity:0;transition:opacity .7s}.monaco-diff-editor .gutter .gutterItem.showAlways{opacity:1;transition:none}.monaco-diff-editor .gutter .gutterItem.noTransition{transition:none}.monaco-diff-editor .gutter:hover .gutterItem{opacity:1;transition:opacity .1s ease-in-out}.monaco-diff-editor .gutter .gutterItem .background{border-left:2px solid var(--vscode-menu-border);height:100%;left:50%;position:absolute;width:1px}.monaco-diff-editor .gutter .gutterItem .buttons{align-items:center;display:flex;justify-content:center;position:absolute;width:100%}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar{height:fit-content}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar{line-height:1}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar .actions-container{background:var(--vscode-editorGutter-commentRangeForeground);border-radius:4px;width:fit-content}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar .actions-container .action-item:hover{background:var(--vscode-toolbar-hoverBackground)}.monaco-diff-editor .gutter .gutterItem .buttons .monaco-toolbar .monaco-action-bar .actions-container .action-item .action-label{padding:1px 2px}.monaco-diff-editor .diff-hidden-lines-compact{display:flex;height:11px}.monaco-diff-editor .diff-hidden-lines-compact .line-left,.monaco-diff-editor .diff-hidden-lines-compact .line-right{border-top:1px solid;border-color:var(--vscode-editorCodeLens-foreground);height:1px;margin:auto;opacity:.5;width:100%}.monaco-diff-editor .diff-hidden-lines-compact .line-left{width:20px}.monaco-diff-editor .diff-hidden-lines-compact .text{color:var(--vscode-editorCodeLens-foreground);text-wrap:nowrap;font-size:11px;line-height:11px;margin:0 4px}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);border-radius:3px;border-style:solid;border-width:1px;box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);color:var(--vscode-keybindingLabel-foreground);padding:1px 3px;vertical-align:middle}.rendered-markdown li:has(input[type=checkbox]){list-style-type:none}.monaco-component.multiDiffEditor{background:var(--vscode-multiDiffEditor-background);height:100%;overflow-y:hidden;position:relative;width:100%}.monaco-component.multiDiffEditor>div{height:100%;left:0;position:absolute;top:0;width:100%}.monaco-component.multiDiffEditor>div.placeholder{display:grid;place-content:center;place-items:center;visibility:hidden}.monaco-component.multiDiffEditor>div.placeholder.visible{visibility:visible}.monaco-component.multiDiffEditor .active{--vscode-multiDiffEditor-border:var(--vscode-focusBorder)}.monaco-component.multiDiffEditor .multiDiffEntry{display:flex;flex:1;flex-direction:column;overflow:hidden}.monaco-component.multiDiffEditor .multiDiffEntry .collapse-button{cursor:pointer;margin:0 5px}.monaco-component.multiDiffEditor .multiDiffEntry .collapse-button a{display:block}.monaco-component.multiDiffEditor .multiDiffEntry .header{background:var(--vscode-editor-background);z-index:1000}.monaco-component.multiDiffEditor .multiDiffEntry .header:not(.collapsed) .header-content{border-bottom:1px solid var(--vscode-sideBarSectionHeader-border)}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content{align-items:center;background:var(--vscode-multiDiffEditor-headerBackground);border-top:1px solid var(--vscode-multiDiffEditor-border);color:var(--vscode-foreground);display:flex;margin:8px 0 0;padding:4px 5px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content.shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path{display:flex;flex:1;min-width:0}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .title{font-size:14px;line-height:22px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .title.original{flex:1;min-width:0;text-overflow:ellipsis}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .status{font-weight:600;line-height:22px;margin:0 10px;opacity:.75}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .actions{padding:0 8px}.monaco-component.multiDiffEditor .multiDiffEntry .editorParent{border-bottom:1px solid var(--vscode-multiDiffEditor-border);display:flex;flex:1;flex-direction:column;overflow:hidden}.monaco-component.multiDiffEditor .multiDiffEntry .editorContainer{flex:1}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{background-color:var(--vscode-editorBracketMatch-background);border:1px solid var(--vscode-editorBracketMatch-border);box-sizing:border-box}.monaco-editor .lightBulbWidget{align-items:center;display:flex;justify-content:center}.monaco-editor .lightBulbWidget:hover{cursor:pointer}.monaco-editor .lightBulbWidget.codicon-light-bulb,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix{color:var(--vscode-editorLightBulbAutoFix-foreground,var(--vscode-editorLightBulb-foreground))}.monaco-editor .lightBulbWidget.codicon-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground,var(--vscode-icon-foreground))}.monaco-editor .lightBulbWidget:before{position:relative;z-index:2}.monaco-editor .lightBulbWidget:after{content:"";display:block;height:100%;left:0;opacity:.3;position:absolute;top:0;width:100%;z-index:1}.monaco-editor .glyph-margin-widgets .cgmr[class*=codicon-gutter-lightbulb]{cursor:pointer;display:block}.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb,.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-aifix-auto-fix,.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-auto-fix{color:var(--vscode-editorLightBulbAutoFix-foreground,var(--vscode-editorLightBulb-foreground))}.monaco-editor .glyph-margin-widgets .cgmr.codicon-gutter-lightbulb-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground,var(--vscode-icon-foreground))}.monaco-editor .codelens-decoration{color:var(--vscode-editorCodeLens-foreground);display:inline-block;font-family:var(--vscode-editorCodeLens-fontFamily),var(--vscode-editorCodeLens-fontFamilyDefault);font-feature-settings:var(--vscode-editorCodeLens-fontFeatureSettings);font-size:var(--vscode-editorCodeLens-fontSize);line-height:var(--vscode-editorCodeLens-lineHeight);overflow:hidden;padding-right:calc(var(--vscode-editorCodeLens-fontSize)*.5);text-overflow:ellipsis;white-space:nowrap}.monaco-editor .codelens-decoration>a,.monaco-editor .codelens-decoration>span{user-select:none;-webkit-user-select:none;vertical-align:sub;white-space:nowrap}.monaco-editor .codelens-decoration>a{text-decoration:none}.monaco-editor .codelens-decoration>a:hover{cursor:pointer}.monaco-editor .codelens-decoration>a:hover,.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon{color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);font-size:var(--vscode-editorCodeLens-fontSize);line-height:var(--vscode-editorCodeLens-lineHeight);vertical-align:middle}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:fadein .1s linear}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:.1em solid #000;box-sizing:border-box;cursor:pointer;display:inline-block;height:.8em;line-height:.8em;margin:.1em .2em 0;width:.8em}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:.1em solid #eee}.colorpicker-header{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;display:flex;height:24px;image-rendering:pixelated;position:relative}.colorpicker-header .picked-color{align-items:center;color:#fff;cursor:pointer;display:flex;flex:1;justify-content:center;line-height:24px;overflow:hidden;white-space:nowrap;width:240px}.colorpicker-header .picked-color .picked-color-presentation{margin-left:5px;margin-right:5px;white-space:nowrap}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{cursor:pointer;width:74px;z-index:inherit}.standalone-colorpicker{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground)}.colorpicker-header.standalone-colorpicker{border-bottom:none}.colorpicker-header .close-button{background-color:var(--vscode-editorHoverWidget-background);border-left:1px solid var(--vscode-editorHoverWidget-border);cursor:pointer}.colorpicker-header .close-button-inner-div{height:100%;text-align:center;width:100%}.colorpicker-header .close-button-inner-div:hover{background-color:var(--vscode-toolbar-hoverBackground)}.colorpicker-header .close-icon{padding:3px}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{flex:1;height:150px;min-width:220px;overflow:hidden;position:relative}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{border:1px solid #fff;border-radius:100%;box-shadow:0 0 2px rgba(0,0,0,.8);height:9px;margin:-5px 0 0 -5px;position:absolute;width:9px}.colorpicker-body .strip{height:150px;width:25px}.colorpicker-body .standalone-strip{height:122px;width:25px}.colorpicker-body .hue-strip{background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);cursor:grab;margin-left:8px;position:relative}.colorpicker-body .opacity-strip{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;cursor:grab;image-rendering:pixelated;margin-left:8px;position:relative}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{border:1px solid hsla(0,0%,100%,.71);box-shadow:0 0 1px rgba(0,0,0,.85);box-sizing:border-box;height:4px;left:-2px;position:absolute;top:0;width:calc(100% + 4px)}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.colorpicker-body .standalone-strip .standalone-overlay{height:122px;pointer-events:none}.standalone-colorpicker-body{border:1px solid transparent;border-bottom:1px solid var(--vscode-editorHoverWidget-border);display:block;overflow:hidden}.colorpicker-body .insert-button{background:var(--vscode-button-background);border:none;border-radius:2px;bottom:8px;color:var(--vscode-button-foreground);cursor:pointer;height:20px;padding:0;position:absolute;right:8px;width:58px}.colorpicker-body .insert-button:hover{background:var(--vscode-button-hoverBackground)}.monaco-editor.hc-light .dnd-target,.monaco-editor.vs .dnd-target{border-right:2px dotted #000;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #aeafad;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines,.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines{cursor:default}.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines,.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines{cursor:copy}.post-edit-widget{background-color:var(--vscode-editorWidget-background);border:1px solid var(--vscode-widget-border,transparent);border-radius:4px;box-shadow:0 0 8px 2px var(--vscode-widget-shadow);overflow:hidden}.post-edit-widget .monaco-button{border:none;border-radius:0;padding:2px}.post-edit-widget .monaco-button:hover{background-color:var(--vscode-button-secondaryHoverBackground)!important}.post-edit-widget .monaco-button .codicon{margin:0}.monaco-editor .findOptionsWidget{border:2px solid var(--vscode-contrastBorder)}.monaco-editor .find-widget,.monaco-editor .findOptionsWidget{background-color:var(--vscode-editorWidget-background);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);color:var(--vscode-editorWidget-foreground)}.monaco-editor .find-widget{border-bottom:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-left:1px solid var(--vscode-widget-border);border-right:1px solid var(--vscode-widget-border);box-sizing:border-box;height:33px;line-height:19px;overflow:hidden;padding:0 4px;position:absolute;transform:translateY(calc(-100% - 10px));transition:transform .2s linear;z-index:35}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-color:var(--vscode-focusBorder);outline-offset:-1px}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{display:flex;font-size:12px;margin:3px 25px 0 17px}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-bottom:2px;padding-top:2px}.monaco-editor .find-widget>.find-part .find-actions,.monaco-editor .find-widget>.replace-part .replace-actions{align-items:center;display:flex;height:25px}.monaco-editor .find-widget .monaco-findInput{display:flex;flex:1;vertical-align:middle}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{box-sizing:border-box;display:flex;flex:initial;height:25px;line-height:23px;margin:0 0 0 3px;padding:2px 0 0 2px;text-align:center;vertical-align:middle}.monaco-editor .find-widget .button{align-items:center;background-position:50%;background-repeat:no-repeat;border-radius:5px;cursor:pointer;display:flex;flex:initial;height:16px;justify-content:center;margin-left:3px;padding:3px;width:16px}.monaco-editor .find-widget .codicon-find-selection{border-radius:5px;height:22px;padding:3px;width:22px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{padding:1px 6px;top:-1px;width:auto}.monaco-editor .find-widget .button.toggle{border-radius:0;box-sizing:border-box;height:100%;left:3px;position:absolute;top:0;width:18px}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{display:flex;flex:auto;flex-grow:0;flex-shrink:0;position:relative;vertical-align:middle}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;right:2px;top:3px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .find-widget.no-results .matchesCount{color:var(--vscode-errorForeground)}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important;background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor .currentFindMatch{background-color:var(--vscode-editor-findMatchBackground);border:2px solid var(--vscode-editor-findMatchBorder);box-sizing:border-box;padding:1px}.monaco-editor .findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor .find-widget .monaco-sash{background-color:var(--vscode-editorWidget-resizeBorder,var(--vscode-editorWidget-border));left:0!important}.monaco-editor.hc-black .find-widget .button:before{left:2px;position:relative;top:1px}.monaco-editor .find-widget .button:not(.disabled):hover,.monaco-editor .find-widget .codicon-find-selection:hover{background-color:var(--vscode-toolbar-hoverBackground)!important}.monaco-editor.findMatch{background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor.currentFindMatch{background-color:var(--vscode-editor-findMatchBackground)}.monaco-editor.findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor.findMatch{background-color:var(--vscode-editorWidget-background)}.monaco-editor .find-widget>.button.codicon-widget-close{position:absolute;right:4px;top:5px}.monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{align-items:center;cursor:pointer;display:flex;font-size:140%;justify-content:center;margin-left:2px;opacity:0;transition:opacity .5s}.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded{transition:initial}.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays:hover .codicon{opacity:1}.monaco-editor .inline-folded:after{color:var(--vscode-editor-foldPlaceholderForeground);content:"\22EF";cursor:pointer;display:inline;line-height:1em;margin:.1em .2em 0}.monaco-editor .folded-background{background-color:var(--vscode-editor-foldBackground)}.monaco-editor .cldr.codicon.codicon-folding-collapsed,.monaco-editor .cldr.codicon.codicon-folding-expanded,.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed,.monaco-editor .cldr.codicon.codicon-folding-manual-expanded{color:var(--vscode-editorGutter-foldingControlForeground)!important}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;margin-right:4px;vertical-align:text-top}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{font-style:italic;opacity:.6}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{padding:8px 12px 0 20px;position:absolute;user-select:text;-webkit-user-select:text;white-space:pre}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{color:inherit;opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:"("}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:")"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{border-bottom:1px solid transparent;color:var(--vscode-textLink-activeForeground);text-decoration:underline;text-underline-position:under}.monaco-editor .marker-widget .descriptioncontainer .filename{color:var(--vscode-textLink-activeForeground);cursor:pointer}.monaco-editor .goto-definition-link{color:var(--vscode-editorLink-activeForeground)!important;cursor:pointer;text-decoration:underline}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-bottom-width:1px;border-top-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;padding:3em 0;text-align:center;width:100%}.monaco-editor .reference-zone-widget .ref-tree{background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground);line-height:23px}.monaco-editor .reference-zone-widget .ref-tree .reference{overflow:hidden;text-overflow:ellipsis}.monaco-editor .reference-zone-widget .ref-tree .reference-file{color:var(--vscode-peekViewResult-fileForeground);display:inline-flex;height:100%;width:100%}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit!important}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-left:auto;margin-right:12px}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input,.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted var(--vscode-contrastActiveBorder,transparent);box-sizing:border-box}.monaco-editor .hoverHighlight{background-color:var(--vscode-editor-hoverHighlightBackground)}.monaco-editor .monaco-hover-content{box-sizing:border-box;padding-bottom:2px;padding-right:2px}.monaco-editor .monaco-hover{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground)}.monaco-editor .monaco-hover a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .monaco-hover .hover-row{display:flex}.monaco-editor .monaco-hover .hover-row .hover-row-contents{display:flex;flex-direction:column;min-width:0}.monaco-editor .monaco-hover .hover-row .verbosity-actions{border-right:1px solid var(--vscode-editorHoverWidget-border);display:flex;flex-direction:column;justify-content:end;padding-left:5px;padding-right:5px}.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon{cursor:pointer;font-size:11px}.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon.enabled{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover .hover-row .verbosity-actions .codicon.disabled{opacity:.6}.monaco-editor .monaco-hover .hover-row .actions{background-color:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-editor .monaco-hover code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor.vs .valueSetReplacement{outline:solid 2px var(--vscode-editorBracketMatch-border)}.monaco-editor .inlineSuggestionsHints.withBorder{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);z-index:39}.monaco-editor .inlineSuggestionsHints a,.monaco-editor .inlineSuggestionsHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineSuggestionsHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a{display:flex;justify-content:center;min-width:19px}.monaco-editor .inlineSuggestionStatusBarItemLabel{margin-right:2px}.monaco-editor .suggest-preview-additional-widget{white-space:nowrap}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:transparent;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{cursor:pointer;display:inline-block;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden{font-size:0;opacity:0}.monaco-editor .ghost-text-decoration,.monaco-editor .suggest-preview-text .ghost-text{font-style:italic}.monaco-editor .ghost-text-decoration,.monaco-editor .ghost-text-decoration-preview,.monaco-editor .suggest-preview-text .ghost-text{background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border);color:var(--vscode-editorGhostText-foreground)!important}.monaco-editor .inline-edit-remove{background-color:var(--vscode-editorGhostText-background);font-style:italic}.monaco-editor .inline-edit-hidden{font-size:0;opacity:0}.monaco-editor .inline-edit-decoration,.monaco-editor .suggest-preview-text .inline-edit{font-style:italic}.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .inline-edit-decoration,.monaco-editor .inline-edit-decoration-preview,.monaco-editor .suggest-preview-text .inline-edit{background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border);color:var(--vscode-editorGhostText-foreground)!important}.monaco-editor .inlineEditHints.withBorder{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);z-index:39}.monaco-editor .inlineEditHints a,.monaco-editor .inlineEditHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineEditHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineEditHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineEditStatusBarItemLabel{margin-right:2px}.monaco-editor .inlineEditSideBySide{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);white-space:pre;z-index:39}.monaco-editor div.inline-edits-widget{--widget-color:var(--vscode-notifications-background)}.monaco-editor div.inline-edits-widget .promptEditor .monaco-editor{--vscode-editor-placeholder-foreground:var(--vscode-editorGhostText-foreground)}.monaco-editor div.inline-edits-widget .promptEditor,.monaco-editor div.inline-edits-widget .toolbar{opacity:0;transition:opacity .2s ease-in-out}.monaco-editor div.inline-edits-widget.focused .promptEditor,.monaco-editor div.inline-edits-widget.focused .toolbar,.monaco-editor div.inline-edits-widget:hover .promptEditor,.monaco-editor div.inline-edits-widget:hover .toolbar{opacity:1}.monaco-editor div.inline-edits-widget .preview .monaco-editor{--vscode-editor-background:var(--widget-color)}.monaco-editor div.inline-edits-widget .preview .monaco-editor .mtk1{color:var(--vscode-editorGhostText-foreground)}.monaco-editor div.inline-edits-widget .preview .monaco-editor .current-line-margin,.monaco-editor div.inline-edits-widget .preview .monaco-editor .view-overlays .current-line-exact{border:none}.monaco-editor div.inline-edits-widget svg .gradient-start{stop-color:var(--vscode-editor-background)}.monaco-editor div.inline-edits-widget svg .gradient-stop{stop-color:var(--widget-color)}.inline-editor-progress-decoration{display:inline-block;height:1em;width:1em}.inline-progress-widget{align-items:center;display:flex!important;justify-content:center}.inline-progress-widget .icon{font-size:80%!important}.inline-progress-widget:hover .icon{animation:none;font-size:90%!important}.inline-progress-widget:hover .icon:before{content:var(--vscode-icon-x-content);font-family:var(--vscode-icon-x-font-family)}.monaco-editor .linked-editing-decoration{background-color:var(--vscode-editor-linkedEditingBackground);min-width:1px}.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{color:var(--vscode-editorLink-activeForeground)!important;cursor:pointer}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:fadeIn .15s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-inputValidation-infoBorder);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground);padding:2px 4px}.monaco-editor .monaco-editor-overlaymessage .message p{margin-block:0}.monaco-editor .monaco-editor-overlaymessage .message a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-editor-overlaymessage .message a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .monaco-editor-overlaymessage .message{border-width:2px}.monaco-editor .monaco-editor-overlaymessage .anchor{border:8px solid transparent;height:0!important;left:2px;position:absolute;width:0!important;z-index:1000}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage.below .anchor.below,.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top{display:none}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.monaco-editor .parameter-hints-widget{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);cursor:default;display:flex;flex-direction:column;line-height:1.5em;z-index:39}.hc-black .monaco-editor .parameter-hints-widget,.hc-light .monaco-editor .parameter-hints-widget{border-width:2px}.monaco-editor .parameter-hints-widget>.phwrapper{display:flex;flex-direction:row;max-width:440px}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.multiple .body:before{border-left:1px solid var(--vscode-editorHoverWidget-border);content:"";display:block;height:100%;opacity:.5;position:absolute}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .body,.monaco-editor .parameter-hints-widget .monaco-scrollable-element{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px;position:relative}.monaco-editor .parameter-hints-widget .signature.has-docs:after{border-bottom:1px solid var(--vscode-editorHoverWidget-border);content:"";display:block;left:0;opacity:.5;padding-top:4px;position:absolute;width:100%}.monaco-editor .parameter-hints-widget .code{font-family:var(--vscode-parameterHintsWidget-editorFontFamily),var(--vscode-parameterHintsWidget-editorFontFamilyDefault)}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs a{color:var(--vscode-textLink-foreground)}.monaco-editor .parameter-hints-widget .docs a:hover{color:var(--vscode-textLink-activeForeground);cursor:pointer}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:normal}.monaco-editor .parameter-hints-widget .docs code{background-color:var(--vscode-textCodeBlock-background);border-radius:3px;font-family:var(--monaco-monospace-font);padding:0 .4em}.monaco-editor .parameter-hints-widget .docs .code,.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .controls{align-items:center;display:none;flex-direction:column;justify-content:flex-end;min-width:22px}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{background-repeat:no-repeat;cursor:pointer;height:16px;width:16px}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{font-family:var(--monaco-monospace-font);height:12px;line-height:12px;text-align:center}.monaco-editor .parameter-hints-widget .signature .parameter.active{color:var(--vscode-editorHoverWidget-highlightForeground);font-weight:700}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;flex-wrap:nowrap;justify-content:space-between}.monaco-editor .peekview-widget .head .peekview-title{align-items:baseline;display:flex;font-size:13px;margin-left:20px;min-width:0;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title.clickable{cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .filename,.monaco-editor .peekview-widget .head .peekview-title .meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:"-";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;padding-right:2px;text-align:right}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container{height:100%}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{align-self:center;margin-right:4px}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon{color:inherit!important}.monaco-editor{--vscode-editor-placeholder-foreground:var(--vscode-editorGhostText-foreground)}.monaco-editor .editorPlaceholder{overflow:hidden;position:absolute;text-overflow:ellipsis;top:0;text-wrap:nowrap;color:var(--vscode-editor-placeholder-foreground);pointer-events:none}.monaco-editor .rename-box{border-radius:4px;color:inherit;z-index:100}.monaco-editor .rename-box.preview{padding:4px 4px 0}.monaco-editor .rename-box .rename-input-with-button{border-radius:2px;padding:3px;width:calc(100% - 8px)}.monaco-editor .rename-box .rename-input{padding:0;width:calc(100% - 8px)}.monaco-editor .rename-box .rename-input:focus{outline:none}.monaco-editor .rename-box .rename-suggestions-button{align-items:center;background-color:transparent;border:none;border-radius:5px;cursor:pointer;display:flex;padding:3px}.monaco-editor .rename-box .rename-suggestions-button:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-editor .rename-box .rename-candidate-list-container .monaco-list-row{border-radius:2px}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .snippet-placeholder{background-color:var(--vscode-editor-snippetTabstopHighlightBackground,transparent);min-width:2px;outline-color:var(--vscode-editor-snippetTabstopHighlightBorder,transparent);outline-style:solid;outline-width:1px}.monaco-editor .finish-snippet-placeholder{background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground,transparent);outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder,transparent);outline-style:solid;outline-width:1px}.monaco-editor .sticky-widget{overflow:hidden}.monaco-editor .sticky-widget-line-numbers{background-color:inherit;float:left}.monaco-editor .sticky-widget-lines-scrollable{background-color:inherit;display:inline-block;overflow:hidden;position:absolute;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-widget-lines{background-color:inherit;position:absolute}.monaco-editor .sticky-line-content,.monaco-editor .sticky-line-number{background-color:inherit;color:var(--vscode-editorLineNumber-foreground);display:inline-block;position:absolute;white-space:nowrap}.monaco-editor .sticky-line-number .codicon-folding-collapsed,.monaco-editor .sticky-line-number .codicon-folding-expanded{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{background-color:inherit;white-space:nowrap;width:var(--vscode-editorStickyScroll-scrollableWidth)}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor .sticky-widget{border-bottom:1px solid var(--vscode-editorStickyScroll-border)}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget{background-color:var(--vscode-editorStickyScroll-background);box-shadow:var(--vscode-editorStickyScroll-shadow) 0 4px 2px -2px;right:auto!important;width:100%;z-index:4}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}.monaco-editor .suggest-widget{border-radius:3px;display:flex;flex-direction:column;width:430px;z-index:40}.monaco-editor .suggest-widget.message{align-items:center;flex-direction:row}.monaco-editor .suggest-details,.monaco-editor .suggest-widget{background-color:var(--vscode-editorSuggestWidget-background);border-color:var(--vscode-editorSuggestWidget-border);border-style:solid;border-width:1px;flex:0 1 auto;width:100%}.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-light .suggest-details,.monaco-editor.hc-light .suggest-widget{border-width:2px}.monaco-editor .suggest-widget .suggest-status-bar{border-top:1px solid var(--vscode-editorSuggestWidget-border);box-sizing:border-box;display:none;flex-flow:row nowrap;font-size:80%;justify-content:space-between;overflow:hidden;padding:0 4px;width:100%}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{display:flex}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label{margin-right:0}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:", ";margin-right:.3em}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:100%}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget>.tree{height:100%;width:100%}.monaco-editor .suggest-widget .monaco-list{user-select:none;-webkit-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{background-position:2px 2px;background-repeat:no-repeat;-mox-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:flex;padding-right:10px;touch-action:none;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;justify-content:space-between;overflow:hidden;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{display:flex}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;cursor:pointer;font-size:14px;opacity:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;right:2px;top:6px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{opacity:.6;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{align-self:center;font-size:85%;line-height:normal;margin-left:12px;opacity:.4;overflow:hidden;text-overflow:ellipsis}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-grow:1;flex-shrink:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label{max-width:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{flex-shrink:4;max-width:70%;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;height:18px;position:absolute;right:10px;visibility:hidden;width:18px}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:inline-block}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{background-position:50%;background-repeat:no-repeat;background-size:80%;display:block;height:16px;margin-left:2px;width:16px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{align-items:center;display:flex;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{border:.1em solid #000;display:inline-block;height:.7em;margin:0 0 0 .3em;width:.7em}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{color:var(--vscode-editorSuggestWidget-foreground);cursor:default;display:flex;flex-direction:column}.monaco-editor .suggest-details.focused{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details a{color:var(--vscode-textLink-foreground)}.monaco-editor .suggest-details a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .suggest-details.no-docs{display:none}.monaco-editor .suggest-details>.monaco-scrollable-element{flex:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2;margin:0 24px 0 0;opacity:.7;overflow:hidden;padding:4px 0 12px 5px;text-overflow:ellipsis;white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{min-height:calc(1rem + 8px);padding:0;white-space:normal}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child{margin-top:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child{margin-bottom:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{white-space:pre-wrap;word-wrap:break-word}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty{display:none}.monaco-editor .suggest-details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details ol,.monaco-editor .suggest-details ul{padding-left:20px}.monaco-editor .suggest-details p code{font-family:var(--monaco-monospace-font)}.monaco-editor .codicon.codicon-symbol-array,.monaco-workbench .codicon.codicon-symbol-array{color:var(--vscode-symbolIcon-arrayForeground)}.monaco-editor .codicon.codicon-symbol-boolean,.monaco-workbench .codicon.codicon-symbol-boolean{color:var(--vscode-symbolIcon-booleanForeground)}.monaco-editor .codicon.codicon-symbol-class,.monaco-workbench .codicon.codicon-symbol-class{color:var(--vscode-symbolIcon-classForeground)}.monaco-editor .codicon.codicon-symbol-method,.monaco-workbench .codicon.codicon-symbol-method{color:var(--vscode-symbolIcon-methodForeground)}.monaco-editor .codicon.codicon-symbol-color,.monaco-workbench .codicon.codicon-symbol-color{color:var(--vscode-symbolIcon-colorForeground)}.monaco-editor .codicon.codicon-symbol-constant,.monaco-workbench .codicon.codicon-symbol-constant{color:var(--vscode-symbolIcon-constantForeground)}.monaco-editor .codicon.codicon-symbol-constructor,.monaco-workbench .codicon.codicon-symbol-constructor{color:var(--vscode-symbolIcon-constructorForeground)}.monaco-editor .codicon.codicon-symbol-enum,.monaco-editor .codicon.codicon-symbol-value,.monaco-workbench .codicon.codicon-symbol-enum,.monaco-workbench .codicon.codicon-symbol-value{color:var(--vscode-symbolIcon-enumeratorForeground)}.monaco-editor .codicon.codicon-symbol-enum-member,.monaco-workbench .codicon.codicon-symbol-enum-member{color:var(--vscode-symbolIcon-enumeratorMemberForeground)}.monaco-editor .codicon.codicon-symbol-event,.monaco-workbench .codicon.codicon-symbol-event{color:var(--vscode-symbolIcon-eventForeground)}.monaco-editor .codicon.codicon-symbol-field,.monaco-workbench .codicon.codicon-symbol-field{color:var(--vscode-symbolIcon-fieldForeground)}.monaco-editor .codicon.codicon-symbol-file,.monaco-workbench .codicon.codicon-symbol-file{color:var(--vscode-symbolIcon-fileForeground)}.monaco-editor .codicon.codicon-symbol-folder,.monaco-workbench .codicon.codicon-symbol-folder{color:var(--vscode-symbolIcon-folderForeground)}.monaco-editor .codicon.codicon-symbol-function,.monaco-workbench .codicon.codicon-symbol-function{color:var(--vscode-symbolIcon-functionForeground)}.monaco-editor .codicon.codicon-symbol-interface,.monaco-workbench .codicon.codicon-symbol-interface{color:var(--vscode-symbolIcon-interfaceForeground)}.monaco-editor .codicon.codicon-symbol-key,.monaco-workbench .codicon.codicon-symbol-key{color:var(--vscode-symbolIcon-keyForeground)}.monaco-editor .codicon.codicon-symbol-keyword,.monaco-workbench .codicon.codicon-symbol-keyword{color:var(--vscode-symbolIcon-keywordForeground)}.monaco-editor .codicon.codicon-symbol-module,.monaco-workbench .codicon.codicon-symbol-module{color:var(--vscode-symbolIcon-moduleForeground)}.monaco-editor .codicon.codicon-symbol-namespace,.monaco-workbench .codicon.codicon-symbol-namespace{color:var(--vscode-symbolIcon-namespaceForeground)}.monaco-editor .codicon.codicon-symbol-null,.monaco-workbench .codicon.codicon-symbol-null{color:var(--vscode-symbolIcon-nullForeground)}.monaco-editor .codicon.codicon-symbol-number,.monaco-workbench .codicon.codicon-symbol-number{color:var(--vscode-symbolIcon-numberForeground)}.monaco-editor .codicon.codicon-symbol-object,.monaco-workbench .codicon.codicon-symbol-object{color:var(--vscode-symbolIcon-objectForeground)}.monaco-editor .codicon.codicon-symbol-operator,.monaco-workbench .codicon.codicon-symbol-operator{color:var(--vscode-symbolIcon-operatorForeground)}.monaco-editor .codicon.codicon-symbol-package,.monaco-workbench .codicon.codicon-symbol-package{color:var(--vscode-symbolIcon-packageForeground)}.monaco-editor .codicon.codicon-symbol-property,.monaco-workbench .codicon.codicon-symbol-property{color:var(--vscode-symbolIcon-propertyForeground)}.monaco-editor .codicon.codicon-symbol-reference,.monaco-workbench .codicon.codicon-symbol-reference{color:var(--vscode-symbolIcon-referenceForeground)}.monaco-editor .codicon.codicon-symbol-snippet,.monaco-workbench .codicon.codicon-symbol-snippet{color:var(--vscode-symbolIcon-snippetForeground)}.monaco-editor .codicon.codicon-symbol-string,.monaco-workbench .codicon.codicon-symbol-string{color:var(--vscode-symbolIcon-stringForeground)}.monaco-editor .codicon.codicon-symbol-struct,.monaco-workbench .codicon.codicon-symbol-struct{color:var(--vscode-symbolIcon-structForeground)}.monaco-editor .codicon.codicon-symbol-text,.monaco-workbench .codicon.codicon-symbol-text{color:var(--vscode-symbolIcon-textForeground)}.monaco-editor .codicon.codicon-symbol-type-parameter,.monaco-workbench .codicon.codicon-symbol-type-parameter{color:var(--vscode-symbolIcon-typeParameterForeground)}.monaco-editor .codicon.codicon-symbol-unit,.monaco-workbench .codicon.codicon-symbol-unit{color:var(--vscode-symbolIcon-unitForeground)}.monaco-editor .codicon.codicon-symbol-variable,.monaco-workbench .codicon.codicon-symbol-variable{color:var(--vscode-symbolIcon-variableForeground)}.editor-banner{background:var(--vscode-banner-background);box-sizing:border-box;cursor:default;display:flex;font-size:12px;height:26px;overflow:visible;width:100%}.editor-banner .icon-container{align-items:center;display:flex;flex-shrink:0;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-position:50%;background-repeat:no-repeat;background-size:16px;margin:0 6px 0 10px;padding:0;width:16px}.editor-banner .message-container{align-items:center;display:flex;line-height:26px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-banner .message-container p{margin-block-end:0;margin-block-start:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{margin:2px 8px;padding:0 12px;width:inherit}.editor-banner .message-actions-container a{margin-left:12px;padding:3px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner{background-color:var(--vscode-banner-background)}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-editor .unicode-highlight{background-color:var(--vscode-editorUnicodeHighlight-background);border:1px solid var(--vscode-editorUnicodeHighlight-border);box-sizing:border-box}.monaco-editor .focused .selectionHighlight{background-color:var(--vscode-editor-selectionHighlightBackground);border:1px solid var(--vscode-editor-selectionHighlightBorder);box-sizing:border-box}.monaco-editor.hc-black .focused .selectionHighlight,.monaco-editor.hc-light .focused .selectionHighlight{border-style:dotted}.monaco-editor .wordHighlight{background-color:var(--vscode-editor-wordHighlightBackground);border:1px solid var(--vscode-editor-wordHighlightBorder);box-sizing:border-box}.monaco-editor.hc-black .wordHighlight,.monaco-editor.hc-light .wordHighlight{border-style:dotted}.monaco-editor .wordHighlightStrong{background-color:var(--vscode-editor-wordHighlightStrongBackground);border:1px solid var(--vscode-editor-wordHighlightStrongBorder);box-sizing:border-box}.monaco-editor.hc-black .wordHighlightStrong,.monaco-editor.hc-light .wordHighlightStrong{border-style:dotted}.monaco-editor .wordHighlightText{background-color:var(--vscode-editor-wordHighlightTextBackground);border:1px solid var(--vscode-editor-wordHighlightTextBorder);box-sizing:border-box}.monaco-editor.hc-black .wordHighlightText,.monaco-editor.hc-light .wordHighlightText{border-style:dotted}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-bottom-style:solid;border-bottom-width:0;border-top-style:solid;border-top-width:0;position:relative}.monaco-editor .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MyIgaGVpZ2h0PSIzNiIgZmlsbD0ibm9uZSI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsPSIjNDI0MjQyIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00OC4wMzYgNC4wMUg0LjAwOFYzMi4wM2g0NC4wMjh6TTQuMDA4LjAwOEE0LjAwMyA0LjAwMyAwIDAgMCAuMDA1IDQuMDFWMzIuMDNhNC4wMDMgNC4wMDMgMCAwIDAgNC4wMDMgNC4wMDJoNDQuMDI4YTQuMDAzIDQuMDAzIDAgMCAwIDQuMDAzLTQuMDAyVjQuMDFBNC4wMDMgNC4wMDMgMCAwIDAgNDguMDM2LjAwOHpNOC4wMSA4LjAxM2g0LjAwM3Y0LjAwM0g4LjAxem0xMi4wMDggMGgtNC4wMDJ2NC4wMDNoNC4wMDJ6bTQuMDAzIDBoNC4wMDJ2NC4wMDNoLTQuMDAyem0xMi4wMDggMGgtNC4wMDN2NC4wMDNoNC4wMDN6bTQuMDAyIDBoNC4wMDN2NC4wMDNINDAuMDN6bS0yNC4wMTUgOC4wMDVIOC4wMXY0LjAwM2g4LjAwNnptNC4wMDIgMGg0LjAwM3Y0LjAwM2gtNC4wMDN6bTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3ptMTIuMDA4IDB2NC4wMDNoLTguMDA1di00LjAwM3ptLTMyLjAyMSA4LjAwNUg4LjAxdjQuMDAzaDQuMDAzem00LjAwMyAwaDIwLjAxM3Y0LjAwM0gxNi4wMTZ6bTI4LjAxOCAwSDQwLjAzdjQuMDAzaDQuMDAzeiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGg1M3YzNkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==) 50% no-repeat;border:4px solid #f6f6f6;border-radius:4px;height:36px;margin:0;min-height:0;min-width:0;overflow:hidden;padding:0;position:absolute;resize:none;width:58px}.monaco-editor.vs-dark .iPadShowKeyboard{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MyIgaGVpZ2h0PSIzNiIgZmlsbD0ibm9uZSI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBmaWxsPSIjQzVDNUM1IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00OC4wMzYgNC4wMUg0LjAwOFYzMi4wM2g0NC4wMjh6TTQuMDA4LjAwOEE0LjAwMyA0LjAwMyAwIDAgMCAuMDA1IDQuMDFWMzIuMDNhNC4wMDMgNC4wMDMgMCAwIDAgNC4wMDMgNC4wMDJoNDQuMDI4YTQuMDAzIDQuMDAzIDAgMCAwIDQuMDAzLTQuMDAyVjQuMDFBNC4wMDMgNC4wMDMgMCAwIDAgNDguMDM2LjAwOHpNOC4wMSA4LjAxM2g0LjAwM3Y0LjAwM0g4LjAxem0xMi4wMDggMGgtNC4wMDJ2NC4wMDNoNC4wMDJ6bTQuMDAzIDBoNC4wMDJ2NC4wMDNoLTQuMDAyem0xMi4wMDggMGgtNC4wMDN2NC4wMDNoNC4wMDN6bTQuMDAyIDBoNC4wMDN2NC4wMDNINDAuMDN6bS0yNC4wMTUgOC4wMDVIOC4wMXY0LjAwM2g4LjAwNnptNC4wMDIgMGg0LjAwM3Y0LjAwM2gtNC4wMDN6bTEyLjAwOCAwaC00LjAwM3Y0LjAwM2g0LjAwM3ptMTIuMDA4IDB2NC4wMDNoLTguMDA1di00LjAwM3ptLTMyLjAyMSA4LjAwNUg4LjAxdjQuMDAzaDQuMDAzem00LjAwMyAwaDIwLjAxM3Y0LjAwM0gxNi4wMTZ6bTI4LjAxOCAwSDQwLjAzdjQuMDAzaDQuMDAzeiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGg1M3YzNkgweiIvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPg==) 50% no-repeat;border:4px solid #252526}.monaco-editor .tokens-inspect-widget{background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);color:var(--vscode-editorHoverWidget-foreground);padding:10px;user-select:text;-webkit-user-select:text;z-index:50}.monaco-editor.hc-black .tokens-inspect-widget,.monaco-editor.hc-light .tokens-inspect-widget{border-width:2px}.monaco-editor .tokens-inspect-widget .tokens-inspect-separator{background-color:var(--vscode-editorHoverWidget-border);border:0;height:1px}.monaco-editor .tokens-inspect-widget .tm-token{font-family:var(--monaco-monospace-font)}.monaco-editor .tokens-inspect-widget .tm-token-length{float:right;font-size:60%;font-weight:400}.monaco-editor .tokens-inspect-widget .tm-metadata-table{width:100%}.monaco-editor .tokens-inspect-widget .tm-metadata-value{font-family:var(--monaco-monospace-font);text-align:right}.monaco-editor .tokens-inspect-widget .tm-token-type{font-family:var(--monaco-monospace-font)}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,87%,.4);border:1px solid hsla(0,0%,80%,.4);border-bottom-color:hsla(0,0%,73%,.4);box-shadow:inset 0 -1px 0 hsla(0,0%,73%,.4);color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:1px solid #6fc3df;box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:1px solid #0f4a85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:hsla(0,0%,50%,.17);border:1px solid rgba(51,51,51,.6);border-bottom-color:rgba(68,68,68,.6);box-shadow:inset 0 -1px 0 rgba(68,68,68,.6);color:#ccc}.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;--monaco-monospace-font:"SF Mono",Monaco,Menlo,Consolas,"Ubuntu Mono","Liberation Mono","DejaVu Sans Mono","Courier New",monospace}.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;top:0;width:1px;clip:rect(1px,1px,1px,1px);clip-path:inset(50%)}.monaco-diff-editor .synthetic-focus,.monaco-diff-editor [tabindex="-1"]:focus,.monaco-diff-editor [tabindex="0"]:focus,.monaco-diff-editor button:focus,.monaco-diff-editor input[type=button]:focus,.monaco-diff-editor input[type=checkbox]:focus,.monaco-diff-editor input[type=search]:focus,.monaco-diff-editor input[type=text]:focus,.monaco-diff-editor select:focus,.monaco-diff-editor textarea:focus,.monaco-editor{opacity:1;outline-color:var(--vscode-focusBorder);outline-offset:-1px;outline-style:solid;outline-width:1px}.action-widget{background-color:var(--vscode-editorActionList-background);border:1px solid var(--vscode-editorWidget-border)!important;border-radius:0;border-radius:5px;box-shadow:0 2px 8px var(--vscode-widget-shadow);color:var(--vscode-editorActionList-foreground);display:block;font-size:13px;max-width:80vw;min-width:160px;padding:4px;width:100%;z-index:40}.context-view-block{z-index:-1}.context-view-block,.context-view-pointerBlock{cursor:auto;height:100%;left:0;position:fixed;top:0;width:100%}.context-view-pointerBlock{z-index:2}.action-widget .monaco-list{border:0!important;user-select:none;-webkit-user-select:none}.action-widget .monaco-list:focus:before{outline:0!important}.action-widget .monaco-list .monaco-scrollable-element{overflow:visible}.action-widget .monaco-list .monaco-list-row{border-radius:4px;cursor:pointer;padding:0 10px;touch-action:none;white-space:nowrap;width:100%}.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled){background-color:var(--vscode-editorActionList-focusBackground)!important;color:var(--vscode-editorActionList-focusForeground);outline:1px solid var(--vscode-menu-selectionBorder,transparent);outline-offset:-1px}.action-widget .monaco-list-row.group-header{color:var(--vscode-descriptionForeground)!important;font-size:12px;font-weight:600}.action-widget .monaco-list-row.group-header:not(:first-of-type){margin-top:2px}.action-widget .monaco-list .group-header,.action-widget .monaco-list .option-disabled,.action-widget .monaco-list .option-disabled .focused,.action-widget .monaco-list .option-disabled .focused:before,.action-widget .monaco-list .option-disabled:before{cursor:default!important;-webkit-touch-callout:none;background-color:transparent!important;outline:0 solid!important;-webkit-user-select:none;user-select:none}.action-widget .monaco-list-row.action{align-items:center;display:flex;gap:8px}.action-widget .monaco-list-row.action.option-disabled,.action-widget .monaco-list-row.action.option-disabled .codicon,.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled{color:var(--vscode-disabledForeground)}.action-widget .monaco-list-row.action:not(.option-disabled) .codicon{color:inherit}.action-widget .monaco-list-row.action .title{flex:1;overflow:hidden;text-overflow:ellipsis}.action-widget .monaco-list-row.action .monaco-keybinding>.monaco-keybinding-key{background-color:var(--vscode-keybindingLabel-background);border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);border-radius:3px;border-style:solid;border-width:1px;box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);color:var(--vscode-keybindingLabel-foreground)}.action-widget .action-widget-action-bar{background-color:var(--vscode-editorActionList-background);border-top:1px solid var(--vscode-editorHoverWidget-border);margin-top:2px}.action-widget .action-widget-action-bar:before{content:"";display:block;width:100%}.action-widget .action-widget-action-bar .actions-container{padding:3px 8px 0}.action-widget-action-bar .action-label{color:var(--vscode-textLink-activeForeground);font-size:12px;line-height:22px;padding:0;pointer-events:all}.action-widget-action-bar .action-item{margin-right:16px;pointer-events:none}.action-widget-action-bar .action-label:hover{background-color:transparent!important}.monaco-action-bar .actions-container.highlight-toggled .action-label.checked{background:var(--vscode-actionBar-toggledBackground)!important}.monaco-action-bar .action-item.menu-entry .action-label.icon{background-position:50%;background-repeat:no-repeat;background-size:16px;height:16px;width:16px}.monaco-action-bar .action-item.menu-entry.text-only .action-label{border-radius:2px;color:var(--vscode-descriptionForeground);overflow:hidden}.monaco-action-bar .action-item.menu-entry.text-only.use-comma:not(:last-of-type) .action-label:after{content:", "}.monaco-action-bar .action-item.menu-entry.text-only+.action-item:not(.text-only)>.monaco-dropdown .action-label{color:var(--vscode-descriptionForeground)}.monaco-dropdown-with-default{border-radius:5px;display:flex!important;flex-direction:row}.monaco-dropdown-with-default>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{background-position:50%;background-repeat:no-repeat;background-size:16px;height:16px;width:16px}.monaco-dropdown-with-default:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;line-height:16px;margin-left:-3px;padding-left:0;padding-right:0}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{background-position:50%;background-repeat:no-repeat;background-size:16px;display:block}.monaco-link{color:var(--vscode-textLink-foreground)}.monaco-link:hover{color:var(--vscode-textLink-activeForeground)}.quick-input-widget{left:50%;margin-left:-300px;position:absolute;width:600px;z-index:2550;-webkit-app-region:no-drag;border-radius:6px}.quick-input-titlebar{align-items:center;border-top-left-radius:5px;border-top-right-radius:5px;display:flex}.quick-input-left-action-bar{display:flex;flex:1;margin-left:4px}.quick-input-inline-action-bar{margin:2px 0 0 5px}.quick-input-title{overflow:hidden;padding:3px 0;text-align:center;text-overflow:ellipsis}.quick-input-right-action-bar{display:flex;flex:1;margin-right:4px}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:50%;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px 6px 6px 11px}.quick-input-header .quick-input-description{flex:1;margin:4px 2px}.quick-input-header{display:flex;padding:8px 6px 2px}.quick-input-widget.hidden-input .quick-input-header{margin-bottom:0;padding:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-filter{display:flex;flex-grow:1;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{left:-10000px;position:absolute}.quick-input-count{align-items:center;align-self:center;display:flex;position:absolute;right:4px}.quick-input-count .monaco-count-badge{border-radius:2px;line-height:normal;min-height:auto;padding:2px 4px;vertical-align:middle}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{align-items:center;display:flex;font-size:11px;height:25px;padding:0 6px}.quick-input-message{margin-top:-1px;overflow-wrap:break-word;padding:5px}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-message a{color:inherit}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{max-height:440px;overflow:hidden;padding-bottom:5px}.quick-input-list .monaco-scrollable-element{padding:0 5px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;display:flex;overflow:hidden;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-style:solid;border-top-width:1px}.quick-input-list .monaco-list-row{border-radius:3px}.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{display:flex;flex:1;height:100%;overflow:hidden}.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-list .quick-input-list-icon{align-items:center;background-position:0;background-repeat:no-repeat;background-size:16px;display:flex;height:22px;justify-content:center;padding-right:6px;width:16px}.quick-input-list .quick-input-list-rows{display:flex;flex:1;flex-direction:column;height:100%;margin-left:5px;overflow:hidden;text-overflow:ellipsis}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox{display:inline}.quick-input-list .quick-input-list-rows>.quick-input-list-row{align-items:center;display:flex}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-rows .monaco-highlighted-label>span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{line-height:normal;opacity:.7;overflow:hidden;text-overflow:ellipsis}.quick-input-list .monaco-list .monaco-list-row .monaco-highlighted-label .highlight{background-color:unset;color:var(--vscode-list-highlightForeground)!important;font-weight:700}.quick-input-list .monaco-list .monaco-list-row.focused .monaco-highlighted-label .highlight{color:var(--vscode-list-focusHighlightForeground)!important}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:4px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:2px}.quick-input-list .quick-input-list-entry-action-bar{margin-right:4px;margin-top:1px}.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.passive-focused .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry.focus-inside .quick-input-list-entry-action-bar .action-label,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label{display:flex}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.quick-input-list .quick-input-list-separator-as-item{font-size:12px;padding:4px 6px}.quick-input-list .quick-input-list-separator-as-item .label-name{font-weight:600}.quick-input-list .quick-input-list-separator-as-item .label-description{opacity:1!important}.quick-input-list .monaco-tree-sticky-row .quick-input-list-entry.quick-input-list-separator-as-item.quick-input-list-separator-border{border-top-style:none}.quick-input-list .monaco-tree-sticky-row{padding:0 5px}.quick-input-list .monaco-tl-twistie{display:none!important}.extension-editor .codicon.codicon-error,.extensions-viewlet>.extensions .codicon.codicon-error,.markers-panel .marker-icon .codicon.codicon-error,.markers-panel .marker-icon.error,.monaco-editor .zone-widget .codicon.codicon-error,.preferences-editor .codicon.codicon-error,.text-search-provider-messages .providerMessage .codicon.codicon-error{color:var(--vscode-problemsErrorIcon-foreground)}.extension-editor .codicon.codicon-warning,.extensions-viewlet>.extensions .codicon.codicon-warning,.markers-panel .marker-icon .codicon.codicon-warning,.markers-panel .marker-icon.warning,.monaco-editor .zone-widget .codicon.codicon-warning,.preferences-editor .codicon.codicon-warning,.text-search-provider-messages .providerMessage .codicon.codicon-warning{color:var(--vscode-problemsWarningIcon-foreground)}.extension-editor .codicon.codicon-info,.extensions-viewlet>.extensions .codicon.codicon-info,.markers-panel .marker-icon .codicon.codicon-info,.markers-panel .marker-icon.info,.monaco-editor .zone-widget .codicon.codicon-info,.preferences-editor .codicon.codicon-info,.text-search-provider-messages .providerMessage .codicon.codicon-info{color:var(--vscode-problemsInfoIcon-foreground)} \ No newline at end of file diff --git a/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/editor/editor.main.js b/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/editor/editor.main.js new file mode 100644 index 00000000000..cdff32f47f9 --- /dev/null +++ b/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/editor/editor.main.js @@ -0,0 +1,798 @@ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) + * Released under the MIT license + * https://github.com/microsoft/vscode/blob/main/LICENSE.txt */ /* This fix ensures that old nls-plugin configurations are still respected by the new localization solution. */ /* We should try to avoid this file and find a different solution. */ /* Warning: This file still has to work when replacing "\n" with " "! */ /** * @type {typeof define} */ const globalDefine = globalThis.define; globalDefine('vs/nls.messages-loader', [], function (...args) { return { load: (name, req, load, config) => { const requestedLanguage = config['vs/nls']?.availableLanguages?.['*']; if (!requestedLanguage || requestedLanguage === 'en') { load({}); } else { req([`vs/nls.messages.${requestedLanguage}`], () => { load({}); }); } } }; }); globalDefine( 'vs/nls.messages', ['require', 'exports', 'vs/nls.messages-loader!'], function (require, exports) { Object.assign(exports, { getNLSMessages: () => globalThis._VSCODE_NLS_MESSAGES, getNLSLanguage: () => globalThis._VSCODE_NLS_LANGUAGE }); } ); define = function (...args) { if (args.length > 0 && args[0] === 'vs/nls.messages') { return; } return globalDefine(...args); }; define.amd = true; /* + *-----------------------------------------------------------*/(function(){var ne=["exports","require","vs/base/common/lifecycle","vs/nls","vs/editor/common/core/range","vs/base/browser/dom","vs/base/common/event","vs/platform/instantiation/common/instantiation","vs/base/common/errors","vs/editor/common/core/position","vs/css!vs/editor/editor.main","vs/base/common/strings","vs/platform/contextkey/common/contextkey","vs/base/common/arrays","vs/base/common/async","vs/editor/browser/editorExtensions","vs/base/common/platform","vs/editor/common/services/languageFeatures","vs/base/common/cancellation","vs/base/common/types","vs/editor/common/editorContextKeys","vs/base/common/observable","vs/base/common/uri","vs/editor/common/core/selection","vs/platform/commands/common/commands","vs/platform/theme/common/themeService","vs/base/common/codicons","vs/editor/common/languages","vs/platform/configuration/common/configuration","vs/platform/actions/common/actions","vs/base/common/themables","vs/platform/keybinding/common/keybinding","vs/platform/theme/common/colorRegistry","vs/base/common/color","vs/editor/browser/services/codeEditorService","vs/editor/common/model/textModel","vs/editor/common/languages/languageConfigurationRegistry","vs/editor/common/config/editorOptions","vs/platform/registry/common/platform","vs/base/browser/fastDomNode","vs/editor/common/model","vs/base/common/actions","vs/base/common/network","vs/editor/common/languages/language","vs/base/browser/ui/hover/hoverDelegateFactory","vs/base/common/map","vs/base/browser/ui/aria/aria","vs/base/browser/keyboardEvent","vs/base/common/resources","vs/platform/instantiation/common/extensions","vs/platform/notification/common/notification","vs/editor/common/services/model","vs/base/browser/window","vs/base/common/iterator","vs/base/common/stopwatch","vs/editor/common/core/lineRange","vs/editor/browser/view/viewPart","vs/base/common/htmlContent","vs/platform/contextview/browser/contextView","vs/platform/opener/common/opener","vs/base/common/objects","vs/platform/accessibility/common/accessibility","vs/platform/log/common/log","vs/platform/telemetry/common/telemetry","vs/base/browser/browser","vs/base/common/observableInternal/derived","vs/platform/quickinput/common/quickInput","vs/base/common/arraysFind","vs/editor/common/core/offsetRange","vs/base/browser/touch","vs/editor/common/languages/modesRegistry","vs/platform/theme/common/iconRegistry","vs/base/common/keyCodes","vs/base/common/linkedList","vs/editor/browser/config/domFontInfo","vs/editor/common/core/editOperation","vs/editor/common/cursorCommon","vs/base/browser/mouseEvent","vs/editor/common/services/resolverService","vs/editor/common/services/languageFeatureDebounce","vs/editor/common/core/editorColorRegistry","vs/base/browser/ui/hover/hoverDelegate2","vs/base/common/filters","vs/editor/common/tokens/lineTokens","vs/editor/contrib/hover/browser/hoverTypes","vs/base/browser/ui/widget","vs/base/browser/ui/scrollbar/scrollableElement","vs/base/browser/ui/actionbar/actionbar","vs/editor/browser/widget/diffEditor/utils","vs/platform/theme/common/colorUtils","vs/base/common/assert","vs/base/common/hierarchicalKind","vs/base/common/observableInternal/base","vs/base/browser/event","vs/editor/common/core/cursorColumns","vs/editor/common/viewModel","vs/platform/progress/common/progress","vs/platform/theme/common/theme","vs/base/common/lazy","vs/base/common/path","vs/editor/common/services/editorWorker","vs/platform/storage/common/storage","vs/base/common/equals","vs/base/browser/trustedTypes","vs/editor/common/core/textEdit","vs/editor/common/diff/rangeMapping","vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length","vs/editor/common/standaloneStrings","vs/platform/markers/common/markers","vs/platform/configuration/common/configurationRegistry","vs/platform/theme/browser/defaultStyles","vs/base/common/severity","vs/editor/browser/observableCodeEditor","vs/editor/common/core/textLength","vs/base/browser/ui/iconLabel/iconLabels","vs/base/browser/ui/list/listWidget","vs/editor/common/core/stringBuilder","vs/platform/clipboard/common/clipboardService","vs/platform/hover/browser/hover","vs/platform/layout/browser/layoutService","vs/editor/browser/widget/markdownRenderer/browser/markdownRenderer","vs/platform/keybinding/common/keybindingsRegistry","vs/editor/contrib/editorState/browser/editorState","vs/platform/theme/common/colors/baseColors","vs/platform/actions/browser/menuEntryActionViewItem","vs/editor/browser/widget/codeEditor/embeddedCodeEditorWidget","vs/base/common/decorators","vs/base/common/functional","vs/base/common/mime","vs/base/common/hash","vs/editor/common/editorFeatures","vs/editor/common/languages/languageConfiguration","vs/editor/common/textModelEvents","vs/editor/browser/view/dynamicViewOverlay","vs/editor/contrib/codeAction/common/types","vs/editor/contrib/snippet/browser/snippetParser","vs/editor/common/viewLayout/viewLineRenderer","vs/platform/accessibilitySignal/browser/accessibilitySignalService","vs/platform/theme/common/colors/editorColors","vs/editor/browser/widget/diffEditor/registrations.contribution","vs/base/common/keybindings","vs/base/common/numbers","vs/base/common/iconLabels","vs/editor/browser/stableEditorScroll","vs/editor/common/core/characterClassifier","vs/editor/common/core/eolCounter","vs/editor/common/commands/replaceCommand","vs/editor/common/core/wordHelper","vs/editor/common/encodedTokenAttributes","vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet","vs/editor/common/viewLayout/lineDecorations","vs/base/browser/ui/actionbar/actionViewItems","vs/editor/browser/services/bulkEditService","vs/editor/standalone/common/standaloneTheme","vs/platform/instantiation/common/serviceCollection","vs/editor/contrib/suggest/browser/suggest","vs/platform/quickinput/common/quickAccess","vs/editor/contrib/codeAction/browser/codeAction","vs/editor/contrib/peekView/browser/peekView","vs/base/browser/ui/tree/tree","vs/base/common/buffer","vs/base/common/observableInternal/debugName","vs/base/common/observableInternal/logging","vs/base/common/scrollable","vs/editor/browser/view/renderingContext","vs/editor/common/config/editorZoom","vs/editor/common/core/wordCharacterClassifier","vs/editor/common/diff/defaultLinesDiffComputer/algorithms/diffAlgorithm","vs/editor/browser/editorBrowser","vs/editor/common/languages/supports","vs/editor/common/viewEventHandler","vs/base/common/hotReloadHelpers","vs/base/browser/globalPointerMoveMonitor","vs/base/browser/ui/sash/sash","vs/base/browser/ui/hover/hoverWidget","vs/base/browser/ui/toggle/toggle","vs/base/browser/ui/tree/abstractTree","vs/editor/common/languages/nullTokenize","vs/editor/contrib/gotoSymbol/browser/referencesModel","vs/platform/contextkey/common/contextkeys","vs/platform/dialogs/common/dialogs","vs/platform/label/common/label","vs/editor/contrib/documentSymbols/browser/outlineModel","vs/editor/common/commands/shiftCommand","vs/editor/contrib/message/browser/messageController","vs/editor/browser/editorDom","vs/platform/workspace/common/workspace","vs/base/common/idGenerator","vs/base/common/range","vs/base/common/observableInternal/utils","vs/base/common/diff/diff","vs/base/common/codiconsUtil","vs/base/common/uint","vs/base/common/uuid","vs/base/common/dataTransfer","vs/base/browser/ui/codicons/codiconStyles","vs/css!vs/editor/contrib/hover/browser/hover","vs/editor/common/core/textModelDefaults","vs/editor/common/editorCommon","vs/editor/common/cursor/cursorWordOperations","vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/beforeEditPositionMapper","vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/ast","vs/editor/common/model/textModelSearch","vs/editor/contrib/folding/browser/foldingRanges","vs/editor/contrib/inlineCompletions/browser/model/ghostText","vs/editor/contrib/inlineCompletions/browser/utils","vs/base/browser/ui/keybindingLabel/keybindingLabel","vs/base/browser/markdownRenderer","vs/editor/common/languages/supports/richEditBrackets","vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture","vs/editor/contrib/hover/browser/hoverUtils","vs/editor/common/services/textResourceConfiguration","vs/editor/browser/controller/textAreaInput","vs/editor/common/cursor/cursorTypeEditOperations","vs/editor/browser/coreCommands","vs/editor/browser/widget/diffEditor/diffProviderFactoryService","vs/platform/list/browser/listService","vs/editor/contrib/hover/browser/markdownHoverParticipant","vs/platform/actions/browser/toolbar","vs/editor/browser/widget/codeEditor/codeEditorWidget","vs/editor/contrib/find/browser/findModel","vs/editor/contrib/snippet/browser/snippetController2","vs/editor/standalone/browser/standaloneServices","vs/base/browser/ui/scrollbar/scrollbarState","vs/base/browser/dnd","vs/base/common/ternarySearchTree","vs/base/browser/ui/mouseCursor/mouseCursor","vs/css!vs/editor/contrib/colorPicker/browser/colorPicker","vs/css!vs/platform/quickinput/browser/media/quickInput","vs/editor/browser/config/tabFocus","vs/editor/common/core/indentation","vs/editor/common/diff/defaultLinesDiffComputer/utils","vs/editor/common/diff/linesDiffComputer","vs/editor/common/cursor/cursorMoveOperations","vs/editor/common/cursor/cursorDeleteOperations","vs/editor/common/cursor/cursorMoveCommands","vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/tokenizer","vs/editor/common/model/utils","vs/editor/common/standalone/standaloneEnums","vs/editor/common/textModelGuides","vs/editor/common/languages/supports/indentationLineProcessor","vs/editor/common/languages/autoIndent","vs/editor/browser/viewParts/glyphMargin/glyphMargin","vs/editor/common/viewEvents","vs/editor/common/viewModelEventDispatcher","vs/editor/contrib/inlineCompletions/browser/controller/commandIds","vs/editor/contrib/inlineCompletions/browser/model/singleTextEdit","vs/base/common/keybindingLabels","vs/base/browser/canIUse","vs/base/browser/ui/tree/indexTreeModel","vs/base/browser/ui/tree/objectTreeModel","vs/base/common/extpath","vs/base/common/marshalling","vs/base/browser/pixelRatio","vs/base/browser/ui/iconLabel/iconLabel","vs/base/browser/ui/resizable/resizable","vs/base/browser/ui/scrollbar/scrollbarArrow","vs/base/browser/ui/list/listView","vs/base/browser/ui/button/button","vs/base/browser/ui/inputbox/inputBox","vs/base/browser/ui/findinput/findInput","vs/editor/common/config/fontInfo","vs/editor/browser/view/viewLayer","vs/editor/common/model/tokens","vs/editor/contrib/hover/browser/hoverActionIds","vs/platform/instantiation/common/descriptors","vs/editor/common/services/markerDecorations","vs/editor/common/services/semanticTokensStyling","vs/editor/contrib/dropOrPasteInto/browser/edit","vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys","vs/editor/contrib/parameterHints/browser/provideSignatureHelp","vs/platform/environment/common/environment","vs/platform/quickinput/browser/quickInput","vs/platform/jsonschemas/common/jsonContributionRegistry","vs/editor/common/config/editorConfigurationSchema","vs/editor/common/languages/enterAction","vs/editor/common/cursor/cursorTypeOperations","vs/editor/contrib/gotoSymbol/browser/goToSymbol","vs/platform/theme/common/colors/miscColors","vs/platform/theme/common/colors/listColors","vs/editor/contrib/symbolIcons/browser/symbolIcons","vs/editor/browser/viewParts/lines/viewLine","vs/editor/common/services/semanticTokensProviderStyling","vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget","vs/platform/undoRedo/common/undoRedo","vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones","vs/editor/browser/widget/diffEditor/diffEditorWidget","vs/editor/contrib/codeAction/browser/codeActionController","vs/editor/contrib/colorPicker/browser/colorHoverParticipant","vs/editor/contrib/folding/browser/folding","vs/editor/contrib/inlineProgress/browser/inlineProgress","vs/editor/contrib/gotoSymbol/browser/goToCommands","vs/editor/contrib/hover/browser/contentHoverController2","vs/editor/contrib/dropOrPasteInto/browser/defaultProviders","vs/editor/contrib/suggest/browser/suggestController","vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController","vs/base/browser/performance","vs/base/common/cache","vs/base/common/collections","vs/base/common/observableInternal/autorun","vs/base/common/ime","vs/base/common/symbols","vs/css!vs/base/browser/ui/actionbar/actionbar","vs/css!vs/base/browser/ui/dropdown/dropdown","vs/css!vs/base/browser/ui/findinput/findInput","vs/css!vs/base/browser/ui/list/list","vs/css!vs/platform/actionWidget/browser/actionWidget","vs/editor/browser/viewParts/minimap/minimapCharSheet","vs/editor/common/config/diffEditor","vs/editor/browser/view/viewUserInputEvents","vs/editor/browser/controller/textAreaState","vs/editor/common/core/rgba","vs/editor/common/commands/surroundSelectionCommand","vs/editor/common/cursor/cursorAtomicMoveOperations","vs/editor/common/diff/defaultLinesDiffComputer/algorithms/myersDiffAlgorithm","vs/editor/common/diff/defaultLinesDiffComputer/heuristicSequenceOptimizations","vs/editor/common/diff/defaultLinesDiffComputer/linesSliceCharSequence","vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer","vs/editor/common/editorAction","vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/combineTextEditInfos","vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/parser","vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/brackets","vs/editor/common/model/prefixSumComputer","vs/editor/common/model/textModelPart","vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase","vs/editor/common/modelLineProjectionData","vs/editor/common/services/editorWorkerHost","vs/editor/common/services/treeViewsDnd","vs/editor/common/services/unicodeTextModelHighlighter","vs/editor/common/model/guidesTextModelPart","vs/editor/common/tokens/contiguousMultilineTokensBuilder","vs/editor/browser/viewParts/margin/margin","vs/editor/common/viewModel/overviewZoneManager","vs/editor/contrib/comment/browser/blockCommentCommand","vs/editor/contrib/folding/browser/foldingModel","vs/editor/contrib/folding/browser/indentRangeProvider","vs/editor/contrib/folding/browser/syntaxRangeProvider","vs/editor/contrib/format/browser/formattingEdit","vs/editor/contrib/indentation/common/indentUtils","vs/editor/contrib/semanticTokens/common/semanticTokensConfig","vs/editor/contrib/smartSelect/browser/bracketSelections","vs/editor/contrib/stickyScroll/browser/stickyScrollElement","vs/editor/contrib/suggest/browser/completionModel","vs/editor/contrib/suggest/browser/wordDistance","vs/editor/standalone/common/monarch/monarchCommon","vs/nls.messages","vs/base/common/errorMessage","vs/base/browser/fonts","vs/base/common/process","vs/base/common/hotReload","vs/base/common/glob","vs/base/browser/dompurify/dompurify","vs/base/browser/formattedTextRenderer","vs/base/browser/ui/contextview/contextview","vs/base/browser/ui/countBadge/countBadge","vs/base/browser/ui/highlightedlabel/highlightedLabel","vs/base/browser/ui/scrollbar/abstractScrollbar","vs/base/browser/ui/splitview/splitview","vs/base/browser/ui/findinput/findInputToggles","vs/base/browser/ui/dropdown/dropdownActionViewItem","vs/base/browser/ui/tree/objectTree","vs/base/common/worker/simpleWorker","vs/editor/browser/config/elementSizeObserver","vs/editor/browser/widget/diffEditor/components/diffEditorSash","vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature","vs/editor/browser/widget/multiDiffEditor/utils","vs/editor/browser/config/fontMeasurements","vs/editor/common/core/textChange","vs/editor/common/languageSelector","vs/editor/common/languages/textToHtmlTokenizer","vs/editor/common/model/editStack","vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer","vs/editor/common/services/editorBaseApi","vs/editor/common/services/textModelSync/textModelSync.impl","vs/editor/common/viewModel/minimapTokensColorTracker","vs/editor/common/viewModel/viewModelDecorations","vs/editor/contrib/hover/browser/hoverOperation","vs/editor/contrib/inlayHints/browser/inlayHints","vs/editor/contrib/inlineCompletions/browser/model/provideInlineCompletions","vs/editor/contrib/placeholderText/browser/placeholderTextContribution","vs/platform/accessibility/browser/accessibleViewRegistry","vs/platform/action/common/action","vs/platform/files/common/files","vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature","vs/editor/common/services/treeSitterParserService","vs/editor/contrib/colorPicker/browser/defaultDocumentColorProvider","vs/editor/contrib/codelens/browser/codelens","vs/editor/contrib/semanticTokens/common/getSemanticTokens","vs/editor/contrib/colorPicker/browser/color","vs/editor/standalone/common/monarch/monarchLexer","vs/editor/contrib/inlineEdits/browser/consts","vs/editor/contrib/hover/browser/contentHoverStatusBar","vs/platform/keybinding/common/keybindingResolver","vs/platform/keybinding/common/resolvedKeybindingItem","vs/editor/standalone/browser/standaloneLayoutService","vs/platform/contextview/browser/contextViewService","vs/editor/contrib/dropOrPasteInto/browser/postEditWidget","vs/platform/observable/common/platformObservableUtils","vs/platform/quickinput/browser/quickInputUtils","vs/platform/dnd/browser/dnd","vs/editor/browser/dnd","vs/editor/browser/services/editorWorkerService","vs/editor/contrib/suggest/browser/suggestWidgetDetails","vs/platform/configuration/common/configurationModels","vs/platform/history/browser/contextScopedHistoryWidget","vs/editor/contrib/suggest/browser/suggestMemory","vs/platform/actions/common/menuService","vs/editor/browser/widget/diffEditor/diffEditorViewModel","vs/editor/contrib/codeAction/browser/codeActionModel","vs/editor/contrib/format/browser/format","vs/editor/contrib/hover/browser/getHover","vs/editor/contrib/wordOperations/browser/wordOperations","vs/platform/theme/common/colors/inputColors","vs/platform/theme/common/colors/minimapColors","vs/editor/browser/controller/mouseTarget","vs/editor/browser/widget/diffEditor/features/overviewRulerFeature","vs/editor/browser/viewParts/lineNumbers/lineNumbers","vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess","vs/editor/standalone/browser/standaloneCodeEditorService","vs/editor/standalone/browser/standaloneThemeService","vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate","vs/editor/contrib/codeAction/browser/lightBulbWidget","vs/editor/contrib/colorPicker/browser/colorDetector","vs/editor/contrib/find/browser/findController","vs/editor/contrib/folding/browser/foldingDecorations","vs/editor/contrib/inlineEdit/browser/inlineEditController","vs/editor/contrib/wordHighlighter/browser/highlightDecorations","vs/editor/contrib/gotoError/browser/gotoError","vs/editor/contrib/gotoSymbol/browser/peek/referencesController","vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition","vs/editor/contrib/inlayHints/browser/inlayHintsLocations","vs/editor/contrib/inlayHints/browser/inlayHintsController","vs/editor/contrib/inlayHints/browser/inlayHintsHover","vs/editor/contrib/stickyScroll/browser/stickyScrollController","vs/editor/contrib/contextmenu/browser/contextmenu","vs/editor/contrib/dropOrPasteInto/browser/copyPasteController","vs/editor/contrib/snippet/browser/snippetSession","vs/editor/contrib/suggest/browser/suggestModel","vs/editor/contrib/inlineEdits/browser/inlineEditsWidget","vs/editor/contrib/inlineEdits/browser/inlineEditsController","vs/platform/workspace/common/workspaceTrust","vs/base/browser/iframe","vs/base/browser/ui/list/list","vs/base/browser/ui/list/splice","vs/base/common/diff/diffChange","vs/base/common/comparers","vs/base/common/linkedText","vs/base/common/marked/marked","vs/base/common/naturalLanguage/korean","vs/base/common/navigator","vs/base/common/history","vs/base/common/observableInternal/lazyObservableValue","vs/base/common/observableInternal/api","vs/base/common/observableInternal/promise","vs/base/browser/ui/list/rangeMap","vs/base/common/search","vs/base/common/tfIdf","vs/base/common/codiconsLibrary","vs/css!vs/base/browser/ui/aria/aria","vs/css!vs/base/browser/ui/button/button","vs/css!vs/base/browser/ui/codicons/codicon/codicon","vs/css!vs/base/browser/ui/codicons/codicon/codicon-modifiers","vs/css!vs/base/browser/ui/contextview/contextview","vs/css!vs/base/browser/ui/countBadge/countBadge","vs/css!vs/base/browser/ui/hover/hoverWidget","vs/css!vs/base/browser/ui/iconLabel/iconlabel","vs/css!vs/base/browser/ui/inputbox/inputBox","vs/css!vs/base/browser/ui/keybindingLabel/keybindingLabel","vs/css!vs/base/browser/ui/mouseCursor/mouseCursor","vs/css!vs/base/browser/ui/progressbar/progressbar","vs/css!vs/base/browser/ui/sash/sash","vs/css!vs/base/browser/ui/scrollbar/media/scrollbars","vs/css!vs/base/browser/ui/selectBox/selectBox","vs/css!vs/base/browser/ui/selectBox/selectBoxCustom","vs/css!vs/base/browser/ui/splitview/splitview","vs/css!vs/base/browser/ui/table/table","vs/css!vs/base/browser/ui/toggle/toggle","vs/css!vs/base/browser/ui/toolbar/toolbar","vs/css!vs/base/browser/ui/tree/media/tree","vs/css!vs/editor/browser/controller/textAreaHandler","vs/css!vs/editor/browser/services/hoverService/hover","vs/css!vs/editor/browser/viewParts/blockDecorations/blockDecorations","vs/css!vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight","vs/css!vs/editor/browser/viewParts/decorations/decorations","vs/css!vs/editor/browser/viewParts/glyphMargin/glyphMargin","vs/css!vs/editor/browser/viewParts/indentGuides/indentGuides","vs/css!vs/editor/browser/viewParts/lineNumbers/lineNumbers","vs/css!vs/editor/browser/viewParts/lines/viewLines","vs/css!vs/editor/browser/viewParts/linesDecorations/linesDecorations","vs/css!vs/editor/browser/viewParts/margin/margin","vs/css!vs/editor/browser/viewParts/marginDecorations/marginDecorations","vs/css!vs/editor/browser/viewParts/minimap/minimap","vs/css!vs/editor/browser/viewParts/overlayWidgets/overlayWidgets","vs/css!vs/editor/browser/viewParts/rulers/rulers","vs/css!vs/editor/browser/viewParts/scrollDecoration/scrollDecoration","vs/css!vs/editor/browser/viewParts/selections/selections","vs/css!vs/editor/browser/viewParts/viewCursors/viewCursors","vs/css!vs/editor/browser/viewParts/whitespace/whitespace","vs/css!vs/editor/browser/widget/codeEditor/editor","vs/css!vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer","vs/css!vs/editor/browser/widget/diffEditor/style","vs/css!vs/editor/browser/widget/markdownRenderer/browser/renderedMarkdown","vs/css!vs/editor/browser/widget/multiDiffEditor/style","vs/css!vs/editor/contrib/anchorSelect/browser/anchorSelect","vs/css!vs/editor/contrib/bracketMatching/browser/bracketMatching","vs/css!vs/editor/contrib/codeAction/browser/lightBulbWidget","vs/css!vs/editor/contrib/codelens/browser/codelensWidget","vs/css!vs/editor/contrib/dnd/browser/dnd","vs/css!vs/editor/contrib/dropOrPasteInto/browser/postEditWidget","vs/css!vs/editor/contrib/find/browser/findOptionsWidget","vs/css!vs/editor/contrib/find/browser/findWidget","vs/css!vs/editor/contrib/folding/browser/folding","vs/css!vs/editor/contrib/gotoError/browser/media/gotoErrorWidget","vs/css!vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition","vs/css!vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget","vs/css!vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace","vs/css!vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget","vs/css!vs/editor/contrib/inlineCompletions/browser/view/ghostTextView","vs/css!vs/editor/contrib/inlineEdit/browser/inlineEdit","vs/css!vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget","vs/css!vs/editor/contrib/inlineEdit/browser/inlineEditSideBySideWidget","vs/css!vs/editor/contrib/inlineEdits/browser/inlineEditsWidget","vs/css!vs/editor/contrib/inlineProgress/browser/inlineProgressWidget","vs/css!vs/editor/contrib/linkedEditing/browser/linkedEditing","vs/css!vs/editor/contrib/links/browser/links","vs/css!vs/editor/contrib/message/browser/messageController","vs/css!vs/editor/contrib/parameterHints/browser/parameterHints","vs/css!vs/editor/contrib/peekView/browser/media/peekViewWidget","vs/css!vs/editor/contrib/placeholderText/browser/placeholderText","vs/css!vs/editor/contrib/rename/browser/renameWidget","vs/css!vs/editor/contrib/snippet/browser/snippetSession","vs/css!vs/editor/contrib/stickyScroll/browser/stickyScroll","vs/css!vs/editor/contrib/suggest/browser/media/suggest","vs/css!vs/editor/contrib/symbolIcons/browser/symbolIcons","vs/css!vs/editor/contrib/unicodeHighlighter/browser/bannerController","vs/css!vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter","vs/css!vs/editor/contrib/wordHighlighter/browser/highlightDecorations","vs/css!vs/editor/contrib/zoneWidget/browser/zoneWidget","vs/css!vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard","vs/css!vs/editor/standalone/browser/inspectTokens/inspectTokens","vs/css!vs/editor/standalone/browser/quickInput/standaloneQuickInput","vs/css!vs/editor/standalone/browser/standalone-tokens","vs/css!vs/platform/actions/browser/menuEntryActionViewItem","vs/css!vs/platform/opener/browser/link","vs/css!vs/platform/severityIcon/browser/media/severityIcon","vs/editor/browser/config/charWidthReader","vs/editor/browser/config/migrateOptions","vs/editor/browser/viewParts/lines/domReadingContext","vs/editor/browser/viewParts/lines/rangeUtil","vs/editor/browser/viewParts/minimap/minimapCharRenderer","vs/editor/browser/viewParts/minimap/minimapPreBaked","vs/editor/browser/viewParts/minimap/minimapCharRendererFactory","vs/editor/browser/widget/diffEditor/delegatingEditorImpl","vs/editor/browser/widget/multiDiffEditor/objectPool","vs/editor/common/commands/trimTrailingWhitespaceCommand","vs/editor/common/core/positionToOffset","vs/editor/common/cursor/cursorContext","vs/editor/common/diff/defaultLinesDiffComputer/lineSequence","vs/editor/common/diff/defaultLinesDiffComputer/algorithms/dynamicProgrammingDiffing","vs/editor/common/diff/defaultLinesDiffComputer/computeMovedLines","vs/editor/common/diff/legacyLinesDiffComputer","vs/editor/common/diff/linesDiffComputers","vs/editor/common/editorTheme","vs/editor/common/languages/defaultDocumentColorsComputer","vs/editor/common/languages/linkComputer","vs/editor/common/cursor/cursorColumnSelection","vs/editor/common/cursor/oneCursor","vs/editor/common/cursor/cursorCollection","vs/editor/common/languages/supports/characterPair","vs/editor/common/languages/supports/indentRules","vs/editor/common/languages/supports/inplaceReplaceSupport","vs/editor/common/languages/supports/onEnter","vs/editor/common/languages/supports/tokenization","vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/nodeReader","vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/concat23Trees","vs/editor/common/model/bracketPairsTextModelPart/fixBrackets","vs/editor/common/model/fixedArray","vs/editor/common/model/indentationGuesser","vs/editor/common/model/intervalTree","vs/editor/common/model/pieceTreeTextBuffer/rbTreeBase","vs/editor/common/model/mirrorTextModel","vs/editor/common/model/textModelText","vs/editor/common/services/findSectionHeaders","vs/editor/common/textModelBracketPairs","vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/bracketPairsTree","vs/editor/common/tokenizationRegistry","vs/editor/common/tokens/contiguousMultilineTokens","vs/editor/common/tokens/contiguousTokensEditing","vs/editor/common/tokens/contiguousTokensStore","vs/editor/common/tokens/sparseMultilineTokens","vs/editor/common/tokens/sparseTokensStore","vs/editor/browser/viewParts/blockDecorations/blockDecorations","vs/editor/browser/viewParts/decorations/decorations","vs/editor/browser/viewParts/linesDecorations/linesDecorations","vs/editor/browser/viewParts/marginDecorations/marginDecorations","vs/editor/browser/viewParts/rulers/rulers","vs/editor/browser/viewParts/scrollDecoration/scrollDecoration","vs/editor/browser/viewParts/viewZones/viewZones","vs/editor/common/viewLayout/linePart","vs/editor/common/viewLayout/linesLayout","vs/editor/common/viewLayout/viewLinesViewportData","vs/editor/common/viewModel/glyphLanesModel","vs/editor/common/viewModel/modelLineProjection","vs/editor/common/viewModel/monospaceLineBreaksComputer","vs/editor/browser/viewParts/overviewRuler/overviewRuler","vs/editor/common/viewModel/viewContext","vs/editor/common/viewLayout/viewLayout","vs/editor/contrib/caretOperations/browser/moveCaretCommand","vs/editor/contrib/colorPicker/browser/colorPickerModel","vs/editor/contrib/comment/browser/lineCommentCommand","vs/editor/contrib/dnd/browser/dragAndDropCommand","vs/editor/contrib/find/browser/replaceAllCommand","vs/editor/contrib/find/browser/replacePattern","vs/editor/contrib/folding/browser/hiddenRangeModel","vs/editor/contrib/hover/browser/contentHoverTypes","vs/editor/contrib/hover/browser/hoverAccessibleViews","vs/editor/contrib/inPlaceReplace/browser/inPlaceReplaceCommand","vs/editor/contrib/inlineCompletions/browser/inlineCompletionsAccessibleView","vs/editor/contrib/inlineEdit/browser/commandIds","vs/editor/contrib/linesOperations/browser/copyLinesCommand","vs/editor/contrib/linesOperations/browser/sortLinesCommand","vs/editor/contrib/smartSelect/browser/wordSelections","vs/editor/contrib/suggest/browser/suggestCommitCharacters","vs/editor/contrib/suggest/browser/suggestOvertypingCapturer","vs/editor/standalone/browser/standaloneTreeSitterService","vs/editor/standalone/common/monarch/monarchCompile","vs/base/browser/ui/scrollbar/scrollbarVisibilityController","vs/base/browser/ui/tree/compressedObjectTreeModel","vs/base/common/fuzzyScorer","vs/base/common/labels","vs/base/browser/domObservable","vs/base/browser/ui/dropdown/dropdown","vs/base/browser/ui/list/rowCache","vs/base/browser/ui/progressbar/progressbar","vs/base/browser/ui/selectBox/selectBoxNative","vs/base/browser/ui/scrollbar/horizontalScrollbar","vs/base/browser/ui/scrollbar/verticalScrollbar","vs/base/browser/ui/list/listPaging","vs/base/browser/ui/table/tableWidget","vs/base/browser/ui/selectBox/selectBoxCustom","vs/base/browser/ui/selectBox/selectBox","vs/base/browser/ui/findinput/replaceInput","vs/base/browser/ui/menu/menu","vs/base/browser/ui/toolbar/toolbar","vs/base/browser/ui/tree/dataTree","vs/base/browser/ui/tree/asyncDataTree","vs/base/browser/defaultWorkerFactory","vs/base/parts/storage/common/storage","vs/editor/browser/services/hoverService/updatableHoverWidget","vs/editor/browser/viewParts/contentWidgets/contentWidgets","vs/editor/browser/viewParts/overlayWidgets/overlayWidgets","vs/editor/browser/widget/codeEditor/codeEditorContributions","vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin","vs/editor/browser/widget/diffEditor/features/revertButtonsFeature","vs/editor/browser/widget/diffEditor/utils/editorGutter","vs/editor/browser/viewParts/viewCursors/viewCursor","vs/editor/browser/view/domLineBreaksComputer","vs/editor/browser/view/viewOverlays","vs/editor/common/languageFeatureRegistry","vs/editor/common/languages/supports/electricCharacter","vs/editor/common/languages/supports/languageBracketsConfiguration","vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl","vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBufferBuilder","vs/editor/common/model/textModelTokens","vs/editor/common/model/treeSitterTokens","vs/editor/common/services/semanticTokensDto","vs/editor/common/services/editorSimpleWorker","vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/renderLines","vs/editor/contrib/hover/browser/contentHoverComputer","vs/editor/contrib/hover/browser/marginHoverComputer","vs/editor/contrib/hover/browser/resizableContentWidget","vs/platform/action/common/actionCommonCategories","vs/platform/contextkey/common/scanner","vs/platform/editor/common/editor","vs/platform/extensions/common/extensions","vs/platform/history/browser/historyWidgetKeybindingHint","vs/platform/instantiation/common/graph","vs/editor/common/services/languageFeaturesService","vs/editor/common/services/treeViewsDndService","vs/editor/contrib/inlineCompletions/browser/view/ghostTextView","vs/editor/contrib/wordHighlighter/browser/textualHighlightProvider","vs/editor/contrib/links/browser/getLinks","vs/editor/standalone/browser/colorizer","vs/editor/contrib/parameterHints/browser/parameterHintsModel","vs/editor/contrib/suggest/browser/suggestAlternatives","vs/editor/contrib/suggest/browser/wordContextKey","vs/editor/browser/config/editorConfiguration","vs/platform/contextkey/browser/contextKeyService","vs/platform/instantiation/common/instantiationService","vs/platform/keybinding/common/baseResolvedKeybinding","vs/editor/contrib/hover/browser/contentHoverWidget","vs/platform/keybinding/common/abstractKeybindingService","vs/platform/keybinding/common/usLayoutResolvedKeybinding","vs/platform/accessibility/browser/accessibilityService","vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution","vs/editor/contrib/documentSymbols/browser/documentSymbols","vs/platform/clipboard/browser/clipboardService","vs/platform/log/common/logService","vs/editor/contrib/gotoError/browser/markerNavigationService","vs/platform/markers/common/markerService","vs/platform/observable/common/wrapInReloadableClass","vs/editor/browser/services/openerService","vs/platform/opener/browser/link","vs/platform/quickinput/browser/pickerQuickAccess","vs/platform/quickinput/browser/quickInputBox","vs/editor/browser/services/hoverService/hoverWidget","vs/editor/common/cursor/cursor","vs/editor/common/model/tokenizationTextModelPart","vs/editor/common/services/getIconClasses","vs/editor/common/services/languagesAssociations","vs/editor/common/services/languagesRegistry","vs/editor/common/services/languageService","vs/editor/contrib/hover/browser/marginHoverWidget","vs/editor/contrib/hover/browser/marginHoverController","vs/editor/contrib/indentation/common/indentation","vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsSource","vs/editor/contrib/linesOperations/browser/moveLinesCommand","vs/platform/configuration/common/configurations","vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode","vs/platform/quickinput/browser/quickInputActions","vs/platform/quickinput/browser/helpQuickAccess","vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess","vs/platform/quickinput/browser/quickAccess","vs/platform/severityIcon/browser/severityIcon","vs/editor/contrib/codelens/browser/codeLensCache","vs/editor/browser/services/markerDecorations","vs/editor/browser/view/viewController","vs/editor/contrib/anchorSelect/browser/anchorSelect","vs/editor/contrib/caretOperations/browser/caretOperations","vs/editor/contrib/caretOperations/browser/transpose","vs/editor/contrib/comment/browser/comment","vs/editor/contrib/cursorUndo/browser/cursorUndo","vs/editor/contrib/editorState/browser/keybindingCancellation","vs/editor/contrib/codeAction/browser/codeActionKeybindingResolver","vs/editor/contrib/fontZoom/browser/fontZoom","vs/editor/contrib/format/browser/formatActions","vs/editor/contrib/gotoSymbol/browser/symbolNavigation","vs/editor/contrib/indentation/browser/indentation","vs/editor/contrib/lineSelection/browser/lineSelection","vs/editor/contrib/linesOperations/browser/linesOperations","vs/editor/contrib/longLinesHelper/browser/longLinesHelper","vs/editor/contrib/readOnlyMessage/browser/contribution","vs/editor/contrib/smartSelect/browser/smartSelect","vs/editor/contrib/tokenization/browser/tokenization","vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators","vs/editor/contrib/wordPartOperations/browser/wordPartOperations","vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard","vs/editor/standalone/browser/inspectTokens/inspectTokens","vs/platform/quickinput/browser/commandsQuickAccess","vs/editor/contrib/quickAccess/browser/commandsQuickAccess","vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess","vs/platform/theme/common/colors/menuColors","vs/platform/theme/common/colors/chartsColors","vs/platform/theme/common/colors/quickpickColors","vs/platform/theme/common/colors/searchColors","vs/editor/browser/viewParts/minimap/minimap","vs/editor/browser/widget/multiDiffEditor/colors","vs/editor/contrib/codeAction/browser/codeActionMenu","vs/editor/contrib/gotoSymbol/browser/peek/referencesTree","vs/platform/actionWidget/browser/actionList","vs/platform/actionWidget/browser/actionWidget","vs/platform/contextview/browser/contextMenuHandler","vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer","vs/editor/contrib/colorPicker/browser/colorPickerWidget","vs/editor/contrib/parameterHints/browser/parameterHintsWidget","vs/editor/contrib/parameterHints/browser/parameterHints","vs/editor/contrib/unicodeHighlighter/browser/bannerController","vs/platform/theme/browser/iconsStyleSheet","vs/editor/browser/controller/mouseHandler","vs/editor/browser/controller/pointerHandler","vs/editor/browser/viewParts/lines/viewLines","vs/editor/browser/services/abstractCodeEditorService","vs/editor/browser/services/hoverService/hoverService","vs/editor/browser/viewParts/editorScrollbar/editorScrollbar","vs/editor/browser/viewParts/selections/selections","vs/editor/browser/widget/diffEditor/components/diffEditorEditors","vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight","vs/editor/browser/viewParts/indentGuides/indentGuides","vs/editor/browser/controller/textAreaHandler","vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler","vs/editor/browser/viewParts/viewCursors/viewCursors","vs/editor/browser/viewParts/whitespace/whitespace","vs/editor/browser/view","vs/editor/common/model/bracketPairsTextModelPart/colorizedBracketPairsDecorationProvider","vs/editor/common/services/markerDecorationsService","vs/editor/common/services/semanticTokensStylingService","vs/editor/contrib/placeholderText/browser/placeholderText.contribution","vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess","vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess","vs/editor/contrib/rename/browser/renameWidget","vs/editor/contrib/rename/browser/rename","vs/editor/contrib/semanticTokens/browser/documentSemanticTokens","vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens","vs/editor/contrib/suggest/browser/suggestWidgetRenderer","vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess","vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess","vs/editor/standalone/common/themes","vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast","vs/editor/contrib/suggest/browser/suggestWidgetStatus","vs/editor/browser/widget/diffEditor/features/gutterFeature","vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget","vs/platform/contextview/browser/contextMenuService","vs/platform/quickinput/browser/quickInputTree","vs/platform/quickinput/browser/quickInputController","vs/platform/quickinput/browser/quickInputService","vs/editor/standalone/browser/quickInput/standaloneQuickInputService","vs/editor/browser/widget/diffEditor/components/diffEditorDecorations","vs/editor/browser/widget/diffEditor/diffEditorOptions","vs/editor/common/services/modelService","vs/editor/common/viewModel/viewModelLines","vs/editor/common/viewModel/viewModelImpl","vs/editor/browser/widget/diffEditor/commands","vs/editor/browser/widget/diffEditor/diffEditor.contribution","vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl","vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget","vs/editor/contrib/bracketMatching/browser/bracketMatching","vs/editor/contrib/codeAction/browser/codeActionCommands","vs/editor/contrib/codeAction/browser/codeActionContributions","vs/editor/contrib/codelens/browser/codelensWidget","vs/editor/contrib/codelens/browser/codelensController","vs/editor/contrib/colorPicker/browser/standaloneColorPickerWidget","vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions","vs/editor/contrib/dnd/browser/dnd","vs/editor/contrib/find/browser/findDecorations","vs/editor/contrib/find/browser/findOptionsWidget","vs/editor/contrib/find/browser/findState","vs/editor/contrib/find/browser/findWidget","vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace","vs/editor/contrib/inlineEdit/browser/ghostTextWidget","vs/editor/contrib/inlineEdit/browser/inlineEditSideBySideWidget","vs/editor/contrib/inlineEdit/browser/commands","vs/editor/contrib/inlineEdit/browser/inlineEdit.contribution","vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController","vs/editor/contrib/linkedEditing/browser/linkedEditing","vs/editor/contrib/links/browser/links","vs/editor/contrib/sectionHeaders/browser/sectionHeaders","vs/editor/contrib/stickyScroll/browser/stickyScrollModelProvider","vs/editor/contrib/stickyScroll/browser/stickyScrollProvider","vs/editor/contrib/stickyScroll/browser/stickyScrollWidget","vs/editor/contrib/suggest/browser/suggestWidget","vs/editor/contrib/multicursor/browser/multicursor","vs/editor/contrib/wordHighlighter/browser/wordHighlighter","vs/editor/contrib/zoneWidget/browser/zoneWidget","vs/editor/contrib/gotoError/browser/gotoErrorWidget","vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget","vs/editor/contrib/hover/browser/markerHoverParticipant","vs/editor/contrib/hover/browser/contentHoverRendered","vs/editor/contrib/hover/browser/contentHoverWidgetWrapper","vs/editor/contrib/colorPicker/browser/colorContributions","vs/editor/contrib/hover/browser/hoverActions","vs/editor/contrib/hover/browser/hoverContribution","vs/editor/contrib/inlayHints/browser/inlayHintsContribution","vs/editor/contrib/stickyScroll/browser/stickyScrollActions","vs/editor/contrib/stickyScroll/browser/stickyScrollContribution","vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch","vs/platform/undoRedo/common/undoRedoService","vs/editor/contrib/clipboard/browser/clipboard","vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution","vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution","vs/editor/contrib/snippet/browser/snippetVariables","vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel","vs/editor/contrib/inlineCompletions/browser/model/suggestWidgetAdaptor","vs/editor/contrib/inlineCompletions/browser/controller/commands","vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant","vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution","vs/editor/contrib/inlineEdits/browser/inlineEditsModel","vs/editor/contrib/inlineEdits/browser/commands","vs/editor/contrib/inlineEdits/browser/inlineEdits.contribution","vs/editor/contrib/suggest/browser/suggestInlineCompletions","vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter","vs/editor/editor.all","vs/editor/standalone/browser/standaloneCodeEditor","vs/editor/standalone/browser/standaloneLanguages","vs/editor/standalone/browser/standaloneWebWorker","vs/editor/standalone/browser/standaloneEditor","vs/editor/editor.api","vs/css","vs/editor/edcore.main"],se=function(oe){for(var e=[],d=0,k=oe.length;d{b({})},t=>{typeof b.error=="function"&&b.error("Could not find "+o+".")})}function k(m,_,b,p){if(I(m,_)){b();return}E(m,_,b,p)}function I(m,_){const b=window.document.getElementsByTagName("link");for(let p=0,n=b.length;p{_.removeEventListener("load",o),_.removeEventListener("error",t)},o=i=>{n(),b()},t=i=>{n(),p(i)};_.addEventListener("load",o),_.addEventListener("error",t)}});/*! @license DOMPurify 3.1.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.7/LICENSE */const{entries:Zt,setPrototypeOf:Xt,isFrozen:Ci,getPrototypeOf:vi,getOwnPropertyDescriptor:Si}=Object;let{freeze:St,seal:Et,create:Jt}=Object,{apply:Vt,construct:zt}=typeof Reflect<"u"&&Reflect;St||(St=function(e){return e}),Et||(Et=function(e){return e}),Vt||(Vt=function(e,d,k){return e.apply(d,k)}),zt||(zt=function(e,d){return new e(...d)});const Wt=yt(Array.prototype.forEach),ei=yt(Array.prototype.pop),At=yt(Array.prototype.push),Bt=yt(String.prototype.toLowerCase),Kt=yt(String.prototype.toString),ti=yt(String.prototype.match),Rt=yt(String.prototype.replace),_i=yt(String.prototype.indexOf),wi=yt(String.prototype.trim),It=yt(Object.prototype.hasOwnProperty),_t=yt(RegExp.prototype.test),Pt=yi(TypeError);function yt(oe){return function(e){for(var d=arguments.length,k=new Array(d>1?d-1:0),I=1;I2&&arguments[2]!==void 0?arguments[2]:Bt;Xt&&Xt(oe,null);let k=e.length;for(;k--;){let I=e[k];if(typeof I=="string"){const E=d(I);E!==I&&(Ci(e)||(e[k]=E),I=E)}oe[I]=!0}return oe}function Li(oe){for(let e=0;e/gm),Ti=Et(/\${[\w\W]*}/gm),Ni=Et(/^data-[\-\w.\u00B7-\uFFFF]/),Mi=Et(/^aria-[\-\w]+$/),ri=Et(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Ai=Et(/^(?:\w+script|data):/i),Ri=Et(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ai=Et(/^html$/i),Pi=Et(/^[a-z][.\w]*(-[.\w]+)+$/i);var li=Object.freeze({__proto__:null,MUSTACHE_EXPR:Di,ERB_EXPR:ki,TMPLIT_EXPR:Ti,DATA_ATTR:Ni,ARIA_ATTR:Mi,IS_ALLOWED_URI:ri,IS_SCRIPT_OR_DATA:Ai,ATTR_WHITESPACE:Ri,DOCTYPE_NAME:ai,CUSTOM_ELEMENT:Pi});const Ft={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Oi=function(){return typeof window>"u"?null:window},Fi=function(e,d){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let k=null;const I="data-tt-policy-suffix";d&&d.hasAttribute(I)&&(k=d.getAttribute(I));const E="dompurify"+(k?"#"+k:"");try{return e.createPolicy(E,{createHTML(y){return y},createScriptURL(y){return y}})}catch{return console.warn("TrustedTypes policy "+E+" could not be created."),null}};function di(){let oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Oi();const e=Re=>di(Re);if(e.version="3.1.7",e.removed=[],!oe||!oe.document||oe.document.nodeType!==Ft.document)return e.isSupported=!1,e;let{document:d}=oe;const k=d,I=k.currentScript,{DocumentFragment:E,HTMLTemplateElement:y,Node:m,Element:_,NodeFilter:b,NamedNodeMap:p=oe.NamedNodeMap||oe.MozNamedAttrMap,HTMLFormElement:n,DOMParser:o,trustedTypes:t}=oe,i=_.prototype,s=Ot(i,"cloneNode"),g=Ot(i,"remove"),c=Ot(i,"nextSibling"),l=Ot(i,"childNodes"),a=Ot(i,"parentNode");if(typeof y=="function"){const Re=d.createElement("template");Re.content&&Re.content.ownerDocument&&(d=Re.content.ownerDocument)}let r,u="";const{implementation:C,createNodeIterator:f,createDocumentFragment:h,getElementsByTagName:v}=d,{importNode:w}=k;let S={};e.isSupported=typeof Zt=="function"&&typeof a=="function"&&C&&C.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:L,ERB_EXPR:D,TMPLIT_EXPR:T,DATA_ATTR:M,ARIA_ATTR:A,IS_SCRIPT_OR_DATA:P,ATTR_WHITESPACE:N,CUSTOM_ELEMENT:O}=li;let{IS_ALLOWED_URI:F}=li,x=null;const W=lt({},[...ii,...qt,...Ut,...jt,...ni]);let V=null;const q=lt({},[...si,...$t,...oi,...Ht]);let H=Object.seal(Jt(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),z=null,U=null,j=!0,Y=!0,G=!1,K=!0,R=!1,J=!0,ie=!1,ue=!1,he=!1,pe=!1,ae=!1,ee=!1,de=!0,ge=!1;const X="user-content-";let B=!0,$=!1,Q={},Z=null;const te=lt({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let re=null;const le=lt({},["audio","video","img","source","image","track"]);let me=null;const Ce=lt({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ye="http://www.w3.org/1998/Math/MathML",Le="http://www.w3.org/2000/svg",Ee="http://www.w3.org/1999/xhtml";let Me=Ee,Ae=!1,Ne=null;const Ke=lt({},[ye,Le,Ee],Kt);let ze=null;const Ge=["application/xhtml+xml","text/html"],it="text/html";let Oe=null,Fe=null;const fe=d.createElement("form"),_e=function(Se){return Se instanceof RegExp||Se instanceof Function},xe=function(){let Se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Fe&&Fe===Se)){if((!Se||typeof Se!="object")&&(Se={}),Se=Nt(Se),ze=Ge.indexOf(Se.PARSER_MEDIA_TYPE)===-1?it:Se.PARSER_MEDIA_TYPE,Oe=ze==="application/xhtml+xml"?Kt:Bt,x=It(Se,"ALLOWED_TAGS")?lt({},Se.ALLOWED_TAGS,Oe):W,V=It(Se,"ALLOWED_ATTR")?lt({},Se.ALLOWED_ATTR,Oe):q,Ne=It(Se,"ALLOWED_NAMESPACES")?lt({},Se.ALLOWED_NAMESPACES,Kt):Ke,me=It(Se,"ADD_URI_SAFE_ATTR")?lt(Nt(Ce),Se.ADD_URI_SAFE_ATTR,Oe):Ce,re=It(Se,"ADD_DATA_URI_TAGS")?lt(Nt(le),Se.ADD_DATA_URI_TAGS,Oe):le,Z=It(Se,"FORBID_CONTENTS")?lt({},Se.FORBID_CONTENTS,Oe):te,z=It(Se,"FORBID_TAGS")?lt({},Se.FORBID_TAGS,Oe):{},U=It(Se,"FORBID_ATTR")?lt({},Se.FORBID_ATTR,Oe):{},Q=It(Se,"USE_PROFILES")?Se.USE_PROFILES:!1,j=Se.ALLOW_ARIA_ATTR!==!1,Y=Se.ALLOW_DATA_ATTR!==!1,G=Se.ALLOW_UNKNOWN_PROTOCOLS||!1,K=Se.ALLOW_SELF_CLOSE_IN_ATTR!==!1,R=Se.SAFE_FOR_TEMPLATES||!1,J=Se.SAFE_FOR_XML!==!1,ie=Se.WHOLE_DOCUMENT||!1,pe=Se.RETURN_DOM||!1,ae=Se.RETURN_DOM_FRAGMENT||!1,ee=Se.RETURN_TRUSTED_TYPE||!1,he=Se.FORCE_BODY||!1,de=Se.SANITIZE_DOM!==!1,ge=Se.SANITIZE_NAMED_PROPS||!1,B=Se.KEEP_CONTENT!==!1,$=Se.IN_PLACE||!1,F=Se.ALLOWED_URI_REGEXP||ri,Me=Se.NAMESPACE||Ee,H=Se.CUSTOM_ELEMENT_HANDLING||{},Se.CUSTOM_ELEMENT_HANDLING&&_e(Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(H.tagNameCheck=Se.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Se.CUSTOM_ELEMENT_HANDLING&&_e(Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(H.attributeNameCheck=Se.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Se.CUSTOM_ELEMENT_HANDLING&&typeof Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(H.allowCustomizedBuiltInElements=Se.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),R&&(Y=!1),ae&&(pe=!0),Q&&(x=lt({},ni),V=[],Q.html===!0&&(lt(x,ii),lt(V,si)),Q.svg===!0&&(lt(x,qt),lt(V,$t),lt(V,Ht)),Q.svgFilters===!0&&(lt(x,Ut),lt(V,$t),lt(V,Ht)),Q.mathMl===!0&&(lt(x,jt),lt(V,oi),lt(V,Ht))),Se.ADD_TAGS&&(x===W&&(x=Nt(x)),lt(x,Se.ADD_TAGS,Oe)),Se.ADD_ATTR&&(V===q&&(V=Nt(V)),lt(V,Se.ADD_ATTR,Oe)),Se.ADD_URI_SAFE_ATTR&<(me,Se.ADD_URI_SAFE_ATTR,Oe),Se.FORBID_CONTENTS&&(Z===te&&(Z=Nt(Z)),lt(Z,Se.FORBID_CONTENTS,Oe)),B&&(x["#text"]=!0),ie&<(x,["html","head","body"]),x.table&&(lt(x,["tbody"]),delete z.tbody),Se.TRUSTED_TYPES_POLICY){if(typeof Se.TRUSTED_TYPES_POLICY.createHTML!="function")throw Pt('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Se.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Pt('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');r=Se.TRUSTED_TYPES_POLICY,u=r.createHTML("")}else r===void 0&&(r=Fi(t,I)),r!==null&&typeof u=="string"&&(u=r.createHTML(""));St&&St(Se),Fe=Se}},be=lt({},["mi","mo","mn","ms","mtext"]),ve=lt({},["annotation-xml"]),we=lt({},["title","style","font","a","script"]),Te=lt({},[...qt,...Ut,...Ei]),Pe=lt({},[...jt,...Ii]),Be=function(Se){let We=a(Se);(!We||!We.tagName)&&(We={namespaceURI:Me,tagName:"template"});const qe=Bt(Se.tagName),Ue=Bt(We.tagName);return Ne[Se.namespaceURI]?Se.namespaceURI===Le?We.namespaceURI===Ee?qe==="svg":We.namespaceURI===ye?qe==="svg"&&(Ue==="annotation-xml"||be[Ue]):!!Te[qe]:Se.namespaceURI===ye?We.namespaceURI===Ee?qe==="math":We.namespaceURI===Le?qe==="math"&&ve[Ue]:!!Pe[qe]:Se.namespaceURI===Ee?We.namespaceURI===Le&&!ve[Ue]||We.namespaceURI===ye&&!be[Ue]?!1:!Pe[qe]&&(we[qe]||!Te[qe]):!!(ze==="application/xhtml+xml"&&Ne[Se.namespaceURI]):!1},He=function(Se){At(e.removed,{element:Se});try{a(Se).removeChild(Se)}catch{g(Se)}},$e=function(Se,We){try{At(e.removed,{attribute:We.getAttributeNode(Se),from:We})}catch{At(e.removed,{attribute:null,from:We})}if(We.removeAttribute(Se),Se==="is"&&!V[Se])if(pe||ae)try{He(We)}catch{}else try{We.setAttribute(Se,"")}catch{}},je=function(Se){let We=null,qe=null;if(he)Se=""+Se;else{const tt=ti(Se,/^[\r\n\t ]+/);qe=tt&&tt[0]}ze==="application/xhtml+xml"&&Me===Ee&&(Se=''+Se+"");const Ue=r?r.createHTML(Se):Se;if(Me===Ee)try{We=new o().parseFromString(Ue,ze)}catch{}if(!We||!We.documentElement){We=C.createDocument(Me,"template",null);try{We.documentElement.innerHTML=Ae?u:Ue}catch{}}const Je=We.body||We.documentElement;return Se&&qe&&Je.insertBefore(d.createTextNode(qe),Je.childNodes[0]||null),Me===Ee?v.call(We,ie?"html":"body")[0]:ie?We.documentElement:Je},Xe=function(Se){return f.call(Se.ownerDocument||Se,Se,b.SHOW_ELEMENT|b.SHOW_COMMENT|b.SHOW_TEXT|b.SHOW_PROCESSING_INSTRUCTION|b.SHOW_CDATA_SECTION,null)},et=function(Se){return Se instanceof n&&(typeof Se.nodeName!="string"||typeof Se.textContent!="string"||typeof Se.removeChild!="function"||!(Se.attributes instanceof p)||typeof Se.removeAttribute!="function"||typeof Se.setAttribute!="function"||typeof Se.namespaceURI!="string"||typeof Se.insertBefore!="function"||typeof Se.hasChildNodes!="function")},dt=function(Se){return typeof m=="function"&&Se instanceof m},at=function(Se,We,qe){S[Se]&&Wt(S[Se],Ue=>{Ue.call(e,We,qe,Fe)})},st=function(Se){let We=null;if(at("beforeSanitizeElements",Se,null),et(Se))return He(Se),!0;const qe=Oe(Se.nodeName);if(at("uponSanitizeElement",Se,{tagName:qe,allowedTags:x}),Se.hasChildNodes()&&!dt(Se.firstElementChild)&&_t(/<[/\w]/g,Se.innerHTML)&&_t(/<[/\w]/g,Se.textContent)||Se.nodeType===Ft.progressingInstruction||J&&Se.nodeType===Ft.comment&&_t(/<[/\w]/g,Se.data))return He(Se),!0;if(!x[qe]||z[qe]){if(!z[qe]&&bt(qe)&&(H.tagNameCheck instanceof RegExp&&_t(H.tagNameCheck,qe)||H.tagNameCheck instanceof Function&&H.tagNameCheck(qe)))return!1;if(B&&!Z[qe]){const Ue=a(Se)||Se.parentNode,Je=l(Se)||Se.childNodes;if(Je&&Ue){const tt=Je.length;for(let Qe=tt-1;Qe>=0;--Qe){const rt=s(Je[Qe],!0);rt.__removalCount=(Se.__removalCount||0)+1,Ue.insertBefore(rt,c(Se))}}}return He(Se),!0}return Se instanceof _&&!Be(Se)||(qe==="noscript"||qe==="noembed"||qe==="noframes")&&_t(/<\/no(script|embed|frames)/i,Se.innerHTML)?(He(Se),!0):(R&&Se.nodeType===Ft.text&&(We=Se.textContent,Wt([L,D,T],Ue=>{We=Rt(We,Ue," ")}),Se.textContent!==We&&(At(e.removed,{element:Se.cloneNode()}),Se.textContent=We)),at("afterSanitizeElements",Se,null),!1)},pt=function(Se,We,qe){if(de&&(We==="id"||We==="name")&&(qe in d||qe in fe))return!1;if(!(Y&&!U[We]&&_t(M,We))){if(!(j&&_t(A,We))){if(!V[We]||U[We]){if(!(bt(Se)&&(H.tagNameCheck instanceof RegExp&&_t(H.tagNameCheck,Se)||H.tagNameCheck instanceof Function&&H.tagNameCheck(Se))&&(H.attributeNameCheck instanceof RegExp&&_t(H.attributeNameCheck,We)||H.attributeNameCheck instanceof Function&&H.attributeNameCheck(We))||We==="is"&&H.allowCustomizedBuiltInElements&&(H.tagNameCheck instanceof RegExp&&_t(H.tagNameCheck,qe)||H.tagNameCheck instanceof Function&&H.tagNameCheck(qe))))return!1}else if(!me[We]){if(!_t(F,Rt(qe,N,""))){if(!((We==="src"||We==="xlink:href"||We==="href")&&Se!=="script"&&_i(qe,"data:")===0&&re[Se])){if(!(G&&!_t(P,Rt(qe,N,"")))){if(qe)return!1}}}}}}return!0},bt=function(Se){return Se!=="annotation-xml"&&ti(Se,O)},De=function(Se){at("beforeSanitizeAttributes",Se,null);const{attributes:We}=Se;if(!We)return;const qe={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:V};let Ue=We.length;for(;Ue--;){const Je=We[Ue],{name:tt,namespaceURI:Qe,value:rt}=Je,Ct=Oe(tt);let ut=tt==="value"?rt:wi(rt);if(qe.attrName=Ct,qe.attrValue=ut,qe.keepAttr=!0,qe.forceKeepAttr=void 0,at("uponSanitizeAttribute",Se,qe),ut=qe.attrValue,qe.forceKeepAttr||($e(tt,Se),!qe.keepAttr))continue;if(!K&&_t(/\/>/i,ut)){$e(tt,Se);continue}R&&Wt([L,D,T],Ve=>{ut=Rt(ut,Ve," ")});const ot=Oe(Se.nodeName);if(pt(ot,Ct,ut)){if(ge&&(Ct==="id"||Ct==="name")&&($e(tt,Se),ut=X+ut),J&&_t(/((--!?|])>)|<\/(style|title)/i,ut)){$e(tt,Se);continue}if(r&&typeof t=="object"&&typeof t.getAttributeType=="function"&&!Qe)switch(t.getAttributeType(ot,Ct)){case"TrustedHTML":{ut=r.createHTML(ut);break}case"TrustedScriptURL":{ut=r.createScriptURL(ut);break}}try{Qe?Se.setAttributeNS(Qe,tt,ut):Se.setAttribute(tt,ut),et(Se)?He(Se):ei(e.removed)}catch{}}}at("afterSanitizeAttributes",Se,null)},Ie=function Re(Se){let We=null;const qe=Xe(Se);for(at("beforeSanitizeShadowDOM",Se,null);We=qe.nextNode();)at("uponSanitizeShadowNode",We,null),!st(We)&&(We.content instanceof E&&Re(We.content),De(We));at("afterSanitizeShadowDOM",Se,null)};return e.sanitize=function(Re){let Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},We=null,qe=null,Ue=null,Je=null;if(Ae=!Re,Ae&&(Re=""),typeof Re!="string"&&!dt(Re))if(typeof Re.toString=="function"){if(Re=Re.toString(),typeof Re!="string")throw Pt("dirty is not a string, aborting")}else throw Pt("toString is not a function");if(!e.isSupported)return Re;if(ue||xe(Se),e.removed=[],typeof Re=="string"&&($=!1),$){if(Re.nodeName){const rt=Oe(Re.nodeName);if(!x[rt]||z[rt])throw Pt("root node is forbidden and cannot be sanitized in-place")}}else if(Re instanceof m)We=je(""),qe=We.ownerDocument.importNode(Re,!0),qe.nodeType===Ft.element&&qe.nodeName==="BODY"||qe.nodeName==="HTML"?We=qe:We.appendChild(qe);else{if(!pe&&!R&&!ie&&Re.indexOf("<")===-1)return r&&ee?r.createHTML(Re):Re;if(We=je(Re),!We)return pe?null:ee?u:""}We&&he&&He(We.firstChild);const tt=Xe($?Re:We);for(;Ue=tt.nextNode();)st(Ue)||(Ue.content instanceof E&&Ie(Ue.content),De(Ue));if($)return Re;if(pe){if(ae)for(Je=h.call(We.ownerDocument);We.firstChild;)Je.appendChild(We.firstChild);else Je=We;return(V.shadowroot||V.shadowrootmode)&&(Je=w.call(k,Je,!0)),Je}let Qe=ie?We.outerHTML:We.innerHTML;return ie&&x["!doctype"]&&We.ownerDocument&&We.ownerDocument.doctype&&We.ownerDocument.doctype.name&&_t(ai,We.ownerDocument.doctype.name)&&(Qe=" +`+Qe),R&&Wt([L,D,T],rt=>{Qe=Rt(Qe,rt," ")}),r&&ee?r.createHTML(Qe):Qe},e.setConfig=function(){let Re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};xe(Re),ue=!0},e.clearConfig=function(){Fe=null,ue=!1},e.isValidAttribute=function(Re,Se,We){Fe||xe({});const qe=Oe(Re),Ue=Oe(Se);return pt(qe,Ue,We)},e.addHook=function(Re,Se){typeof Se=="function"&&(S[Re]=S[Re]||[],At(S[Re],Se))},e.removeHook=function(Re){if(S[Re])return ei(S[Re])},e.removeHooks=function(Re){S[Re]&&(S[Re]=[])},e.removeAllHooks=function(){S={}},e}var xi=di();define("vs/base/browser/dompurify/dompurify",function(){return xi}),define(ne[39],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FastDomNode=void 0,e.createFastDomNode=I;class d{constructor(y){this.domNode=y,this._maxWidth="",this._width="",this._height="",this._top="",this._left="",this._bottom="",this._right="",this._paddingLeft="",this._fontFamily="",this._fontWeight="",this._fontSize="",this._fontStyle="",this._fontFeatureSettings="",this._fontVariationSettings="",this._textDecoration="",this._lineHeight="",this._letterSpacing="",this._className="",this._display="",this._position="",this._visibility="",this._color="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}setMaxWidth(y){const m=k(y);this._maxWidth!==m&&(this._maxWidth=m,this.domNode.style.maxWidth=this._maxWidth)}setWidth(y){const m=k(y);this._width!==m&&(this._width=m,this.domNode.style.width=this._width)}setHeight(y){const m=k(y);this._height!==m&&(this._height=m,this.domNode.style.height=this._height)}setTop(y){const m=k(y);this._top!==m&&(this._top=m,this.domNode.style.top=this._top)}setLeft(y){const m=k(y);this._left!==m&&(this._left=m,this.domNode.style.left=this._left)}setBottom(y){const m=k(y);this._bottom!==m&&(this._bottom=m,this.domNode.style.bottom=this._bottom)}setRight(y){const m=k(y);this._right!==m&&(this._right=m,this.domNode.style.right=this._right)}setPaddingLeft(y){const m=k(y);this._paddingLeft!==m&&(this._paddingLeft=m,this.domNode.style.paddingLeft=this._paddingLeft)}setFontFamily(y){this._fontFamily!==y&&(this._fontFamily=y,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(y){this._fontWeight!==y&&(this._fontWeight=y,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(y){const m=k(y);this._fontSize!==m&&(this._fontSize=m,this.domNode.style.fontSize=this._fontSize)}setFontStyle(y){this._fontStyle!==y&&(this._fontStyle=y,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(y){this._fontFeatureSettings!==y&&(this._fontFeatureSettings=y,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(y){this._fontVariationSettings!==y&&(this._fontVariationSettings=y,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(y){this._textDecoration!==y&&(this._textDecoration=y,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(y){const m=k(y);this._lineHeight!==m&&(this._lineHeight=m,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(y){const m=k(y);this._letterSpacing!==m&&(this._letterSpacing=m,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(y){this._className!==y&&(this._className=y,this.domNode.className=this._className)}toggleClassName(y,m){this.domNode.classList.toggle(y,m),this._className=this.domNode.className}setDisplay(y){this._display!==y&&(this._display=y,this.domNode.style.display=this._display)}setPosition(y){this._position!==y&&(this._position=y,this.domNode.style.position=this._position)}setVisibility(y){this._visibility!==y&&(this._visibility=y,this.domNode.style.visibility=this._visibility)}setColor(y){this._color!==y&&(this._color=y,this.domNode.style.color=this._color)}setBackgroundColor(y){this._backgroundColor!==y&&(this._backgroundColor=y,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(y){this._layerHint!==y&&(this._layerHint=y,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}setBoxShadow(y){this._boxShadow!==y&&(this._boxShadow=y,this.domNode.style.boxShadow=y)}setContain(y){this._contain!==y&&(this._contain=y,this.domNode.style.contain=this._contain)}setAttribute(y,m){this.domNode.setAttribute(y,m)}removeAttribute(y){this.domNode.removeAttribute(y)}appendChild(y){this.domNode.appendChild(y.domNode)}removeChild(y){this.domNode.removeChild(y.domNode)}}e.FastDomNode=d;function k(E){return typeof E=="number"?`${E}px`:E}function I(E){return new d(E)}}),define(ne[441],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IframeUtils=void 0;const d=new WeakMap;function k(E){if(!E.parent||E.parent===E)return null;try{const y=E.location,m=E.parent.location;if(y.origin!=="null"&&m.origin!=="null"&&y.origin!==m.origin)return null}catch{return null}return E.parent}class I{static getSameOriginWindowChain(y){let m=d.get(y);if(!m){m=[],d.set(y,m);let _=y,b;do b=k(_),b?m.push({window:new WeakRef(_),iframeElement:_.frameElement||null}):m.push({window:new WeakRef(_),iframeElement:null}),_=b;while(_)}return m.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(y,m){if(!m||y===m)return{top:0,left:0};let _=0,b=0;const p=this.getSameOriginWindowChain(y);for(const n of p){const o=n.window.deref();if(_+=o?.scrollY??0,b+=o?.scrollX??0,o===m||!n.iframeElement)break;const t=n.iframeElement.getBoundingClientRect();_+=t.top,b+=t.left}return{top:_,left:b}}}e.IframeUtils=I}),define(ne[296],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.inputLatency=void 0;var d;(function(k){const I={total:0,min:Number.MAX_VALUE,max:0},E={...I},y={...I},m={...I};let _=0;const b={keydown:0,input:0,render:0};function p(){r(),performance.mark("inputlatency/start"),performance.mark("keydown/start"),b.keydown=1,queueMicrotask(n)}k.onKeyDown=p;function n(){b.keydown===1&&(performance.mark("keydown/end"),b.keydown=2)}function o(){performance.mark("input/start"),b.input=1,a()}k.onBeforeInput=o;function t(){b.input===0&&o(),queueMicrotask(i)}k.onInput=t;function i(){b.input===1&&(performance.mark("input/end"),b.input=2)}function s(){r()}k.onKeyUp=s;function g(){r()}k.onSelectionChange=g;function c(){b.keydown===2&&b.input===2&&b.render===0&&(performance.mark("render/start"),b.render=1,queueMicrotask(l),a())}k.onRenderStart=c;function l(){b.render===1&&(performance.mark("render/end"),b.render=2)}function a(){setTimeout(r)}function r(){b.keydown===2&&b.input===2&&b.render===2&&(performance.mark("inputlatency/end"),performance.measure("keydown","keydown/start","keydown/end"),performance.measure("input","input/start","input/end"),performance.measure("render","render/start","render/end"),performance.measure("inputlatency","inputlatency/start","inputlatency/end"),u("keydown",I),u("input",E),u("render",y),u("inputlatency",m),_++,C())}function u(w,S){const L=performance.getEntriesByName(w)[0].duration;S.total+=L,S.min=Math.min(S.min,L),S.max=Math.max(S.max,L)}function C(){performance.clearMarks("keydown/start"),performance.clearMarks("keydown/end"),performance.clearMarks("input/start"),performance.clearMarks("input/end"),performance.clearMarks("render/start"),performance.clearMarks("render/end"),performance.clearMarks("inputlatency/start"),performance.clearMarks("inputlatency/end"),performance.clearMeasures("keydown"),performance.clearMeasures("input"),performance.clearMeasures("render"),performance.clearMeasures("inputlatency"),b.keydown=0,b.input=0,b.render=0}function f(){if(_===0)return;const w={keydown:h(I),input:h(E),render:h(y),total:h(m),sampleCount:_};return v(I),v(E),v(y),v(m),_=0,w}k.getAndClearMeasurements=f;function h(w){return{average:w.total/_,max:w.max,min:w.min}}function v(w){w.total=0,w.min=Number.MAX_VALUE,w.max=0}})(d||(e.inputLatency=d={}))}),define(ne[81],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setBaseLayerHoverDelegate=k,e.getBaseLayerHoverDelegate=I;let d={showHover:()=>{},hideHover:()=>{},showAndFocusLastHover:()=>{},setupManagedHover:()=>null,showManagedHover:()=>{}};function k(E){d=E}function I(){return d}}),define(ne[442],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ListError=void 0;class d extends Error{constructor(I,E){super(`ListError [${I}] ${E}`)}}e.ListError=d}),define(ne[443],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CombinedSpliceable=void 0;class d{constructor(I){this.spliceables=I}splice(I,E,y){this.spliceables.forEach(m=>m.splice(I,E,y))}}e.CombinedSpliceable=d}),define(ne[223],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ScrollbarState=void 0;const d=20;class k{constructor(E,y,m,_,b,p){this._scrollbarSize=Math.round(y),this._oppositeScrollbarSize=Math.round(m),this._arrowSize=Math.round(E),this._visibleSize=_,this._scrollSize=b,this._scrollPosition=p,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new k(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(E){const y=Math.round(E);return this._visibleSize!==y?(this._visibleSize=y,this._refreshComputedValues(),!0):!1}setScrollSize(E){const y=Math.round(E);return this._scrollSize!==y?(this._scrollSize=y,this._refreshComputedValues(),!0):!1}setScrollPosition(E){const y=Math.round(E);return this._scrollPosition!==y?(this._scrollPosition=y,this._refreshComputedValues(),!0):!1}setScrollbarSize(E){this._scrollbarSize=Math.round(E)}setOppositeScrollbarSize(E){this._oppositeScrollbarSize=Math.round(E)}static _computeValues(E,y,m,_,b){const p=Math.max(0,m-E),n=Math.max(0,p-2*y),o=_>0&&_>m;if(!o)return{computedAvailableSize:Math.round(p),computedIsNeeded:o,computedSliderSize:Math.round(n),computedSliderRatio:0,computedSliderPosition:0};const t=Math.round(Math.max(d,Math.floor(m*n/_))),i=(n-t)/(_-m),s=b*i;return{computedAvailableSize:Math.round(p),computedIsNeeded:o,computedSliderSize:Math.round(t),computedSliderRatio:i,computedSliderPosition:Math.round(s)}}_refreshComputedValues(){const E=k._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=E.computedAvailableSize,this._computedIsNeeded=E.computedIsNeeded,this._computedSliderSize=E.computedSliderSize,this._computedSliderRatio=E.computedSliderRatio,this._computedSliderPosition=E.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(E){if(!this._computedIsNeeded)return 0;const y=E-this._arrowSize-this._computedSliderSize/2;return Math.round(y/this._computedSliderRatio)}getDesiredScrollPositionFromOffsetPaged(E){if(!this._computedIsNeeded)return 0;const y=E-this._arrowSize;let m=this._scrollPosition;return yI})}e.mainWindow=window}),define(ne[64],se([1,0,52]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isAndroid=e.isElectron=e.isWebkitWebView=e.isSafari=e.isChrome=e.isWebKit=e.isFirefox=void 0,e.addMatchMediaChangeListener=I,e.getZoomFactor=E,e.isStandalone=_;class k{constructor(){this.mapWindowIdToZoomFactor=new Map}static{this.INSTANCE=new k}getZoomFactor(p){return this.mapWindowIdToZoomFactor.get(this.getWindowId(p))??1}getWindowId(p){return p.vscodeWindowId}}function I(b,p,n){typeof p=="string"&&(p=b.matchMedia(p)),p.addEventListener("change",n)}function E(b){return k.INSTANCE.getZoomFactor(b)}const y=navigator.userAgent;e.isFirefox=y.indexOf("Firefox")>=0,e.isWebKit=y.indexOf("AppleWebKit")>=0,e.isChrome=y.indexOf("Chrome")>=0,e.isSafari=!e.isChrome&&y.indexOf("Safari")>=0,e.isWebkitWebView=!e.isChrome&&!e.isSafari&&e.isWebKit,e.isElectron=y.indexOf("Electron/")>=0,e.isAndroid=y.indexOf("Android")>=0;let m=!1;if(typeof d.mainWindow.matchMedia=="function"){const b=d.mainWindow.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),p=d.mainWindow.matchMedia("(display-mode: fullscreen)");m=b.matches,I(d.mainWindow,b,({matches:n})=>{m&&p.matches||(m=n)})}function _(){return m}}),define(ne[13],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Permutation=e.CallbackIterable=e.ArrayQueue=e.booleanComparator=e.numberComparator=e.CompareResult=void 0,e.tail=d,e.tail2=k,e.equals=I,e.removeFastWithoutKeepingOrder=E,e.binarySearch=y,e.binarySearch2=m,e.quickSelect=_,e.groupBy=b,e.groupAdjacentBy=p,e.forEachAdjacent=n,e.forEachWithNeighbors=o,e.coalesce=t,e.coalesceInPlace=i,e.isFalsyOrEmpty=s,e.isNonEmptyArray=g,e.distinct=c,e.firstOrDefault=l,e.range=a,e.arrayInsert=r,e.pushToStart=u,e.pushToEnd=C,e.pushMany=f,e.asArray=h,e.insertInto=v,e.splice=w,e.compareBy=D,e.tieBreakComparators=T,e.reverseOrder=P;function d(x,W=0){return x[x.length-(1+W)]}function k(x){if(x.length===0)throw new Error("Invalid tail call");return[x.slice(0,x.length-1),x[x.length-1]]}function I(x,W,V=(q,H)=>q===H){if(x===W)return!0;if(!x||!W||x.length!==W.length)return!1;for(let q=0,H=x.length;qV(x[q],W))}function m(x,W){let V=0,q=x-1;for(;V<=q;){const H=(V+q)/2|0,z=W(H);if(z<0)V=H+1;else if(z>0)q=H-1;else return H}return-(V+1)}function _(x,W,V){if(x=x|0,x>=W.length)throw new TypeError("invalid index");const q=W[Math.floor(W.length*Math.random())],H=[],z=[],U=[];for(const j of W){const Y=V(j,q);Y<0?H.push(j):Y>0?z.push(j):U.push(j)}return x!!W)}function i(x){let W=0;for(let V=0;V0}function c(x,W=V=>V){const V=new Set;return x.filter(q=>{const H=W(q);return V.has(H)?!1:(V.add(H),!0)})}function l(x,W){return x.length>0?x[0]:W}function a(x,W){let V=typeof W=="number"?x:0;typeof W=="number"?V=x:(V=0,W=x);const q=[];if(V<=W)for(let H=V;HW;H--)q.push(H);return q}function r(x,W,V){const q=x.slice(0,W),H=x.slice(W);return q.concat(V,H)}function u(x,W){const V=x.indexOf(W);V>-1&&(x.splice(V,1),x.unshift(W))}function C(x,W){const V=x.indexOf(W);V>-1&&(x.splice(V,1),x.push(W))}function f(x,W){for(const V of W)x.push(V)}function h(x){return Array.isArray(x)?x:[x]}function v(x,W,V){const q=S(x,W),H=x.length,z=V.length;x.length=H+z;for(let U=H-1;U>=q;U--)x[U+z]=x[U];for(let U=0;U0}x.isGreaterThan=q;function H(z){return z===0}x.isNeitherLessOrGreaterThan=H,x.greaterThan=1,x.lessThan=-1,x.neitherLessOrGreaterThan=0})(L||(e.CompareResult=L={}));function D(x,W){return(V,q)=>W(x(V),x(q))}function T(...x){return(W,V)=>{for(const q of x){const H=q(W,V);if(!L.isNeitherLessOrGreaterThan(H))return H}return L.neitherLessOrGreaterThan}}const M=(x,W)=>x-W;e.numberComparator=M;const A=(x,W)=>(0,e.numberComparator)(x?1:0,W?1:0);e.booleanComparator=A;function P(x){return(W,V)=>-x(W,V)}class N{constructor(W){this.items=W,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(W){let V=this.firstIdx;for(;V=0&&W(this.items[V]);)V--;const q=V===this.lastIdx?null:this.items.slice(V+1,this.lastIdx+1);return this.lastIdx=V,q}peek(){if(this.length!==0)return this.items[this.firstIdx]}dequeue(){const W=this.items[this.firstIdx];return this.firstIdx++,W}takeCount(W){const V=this.items.slice(this.firstIdx,this.firstIdx+W);return this.firstIdx+=W,V}}e.ArrayQueue=N;class O{static{this.empty=new O(W=>{})}constructor(W){this.iterate=W}toArray(){const W=[];return this.iterate(V=>(W.push(V),!0)),W}filter(W){return new O(V=>this.iterate(q=>W(q)?V(q):!0))}map(W){return new O(V=>this.iterate(q=>V(W(q))))}findLast(W){let V;return this.iterate(q=>(W(q)&&(V=q),!0)),V}findLastMaxBy(W){let V,q=!0;return this.iterate(H=>((q||L.isGreaterThan(W(H,V)))&&(q=!1,V=H),!0)),V}}e.CallbackIterable=O;class F{constructor(W){this._indexMap=W}static createSortPermutation(W,V){const q=Array.from(W.keys()).sort((H,z)=>V(W[H],W[z]));return new F(q)}apply(W){return W.map((V,q)=>W[this._indexMap[q]])}inverse(){const W=this._indexMap.slice();for(let V=0;V=0;c--){const l=i[c];if(s(l))return c}return-1}function I(i,s){const g=E(i,s);return g===-1?void 0:i[g]}function E(i,s,g=0,c=i.length){let l=g,a=c;for(;l0&&(g=l)}return g}function p(i,s){if(i.length===0)return;let g=i[0];for(let c=1;c=0&&(g=l)}return g}function n(i,s){return b(i,(g,c)=>-s(g,c))}function o(i,s){if(i.length===0)return-1;let g=0;for(let c=1;c0&&(g=c)}return g}function t(i,s){for(const g of i){const c=s(g);if(c!==void 0)return c}}}),define(ne[297],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CachedFunction=e.LRUCachedFunction=void 0,e.identity=d;function d(E){return E}class k{constructor(y,m){this.lastCache=void 0,this.lastArgKey=void 0,typeof y=="function"?(this._fn=y,this._computeKey=d):(this._fn=m,this._computeKey=y.getCacheKey)}get(y){const m=this._computeKey(y);return this.lastArgKey!==m&&(this.lastArgKey=m,this.lastCache=this._fn(y)),this.lastCache}}e.LRUCachedFunction=k;class I{get cachedValues(){return this._map}constructor(y,m){this._map=new Map,this._map2=new Map,typeof y=="function"?(this._fn=y,this._computeKey=d):(this._fn=m,this._computeKey=y.getCacheKey)}get(y){const m=this._computeKey(y);if(this._map2.has(m))return this._map2.get(m);const _=this._fn(y);return this._map.set(y,_),this._map2.set(m,_),_}}e.CachedFunction=I}),define(ne[298],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.diffSets=d,e.intersection=k;function d(I,E){const y=[],m=[];for(const _ of I)E.has(_)||y.push(_);for(const _ of E)I.has(_)||m.push(_);return{removed:y,added:m}}function k(I,E){const y=new Set;for(const m of E)I.has(m)&&y.add(m);return y}}),define(ne[33],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Color=e.HSVA=e.HSLA=e.RGBA=void 0;function d(m,_){const b=Math.pow(10,_);return Math.round(m*b)/b}class k{constructor(_,b,p,n=1){this._rgbaBrand=void 0,this.r=Math.min(255,Math.max(0,_))|0,this.g=Math.min(255,Math.max(0,b))|0,this.b=Math.min(255,Math.max(0,p))|0,this.a=d(Math.max(Math.min(1,n),0),3)}static equals(_,b){return _.r===b.r&&_.g===b.g&&_.b===b.b&&_.a===b.a}}e.RGBA=k;class I{constructor(_,b,p,n){this._hslaBrand=void 0,this.h=Math.max(Math.min(360,_),0)|0,this.s=d(Math.max(Math.min(1,b),0),3),this.l=d(Math.max(Math.min(1,p),0),3),this.a=d(Math.max(Math.min(1,n),0),3)}static equals(_,b){return _.h===b.h&&_.s===b.s&&_.l===b.l&&_.a===b.a}static fromRGBA(_){const b=_.r/255,p=_.g/255,n=_.b/255,o=_.a,t=Math.max(b,p,n),i=Math.min(b,p,n);let s=0,g=0;const c=(i+t)/2,l=t-i;if(l>0){switch(g=Math.min(c<=.5?l/(2*c):l/(2-2*c),1),t){case b:s=(p-n)/l+(p1&&(p-=1),p<1/6?_+(b-_)*6*p:p<1/2?b:p<2/3?_+(b-_)*(2/3-p)*6:_}static toRGBA(_){const b=_.h/360,{s:p,l:n,a:o}=_;let t,i,s;if(p===0)t=i=s=n;else{const g=n<.5?n*(1+p):n+p-n*p,c=2*n-g;t=I._hue2rgb(c,g,b+1/3),i=I._hue2rgb(c,g,b),s=I._hue2rgb(c,g,b-1/3)}return new k(Math.round(t*255),Math.round(i*255),Math.round(s*255),o)}}e.HSLA=I;class E{constructor(_,b,p,n){this._hsvaBrand=void 0,this.h=Math.max(Math.min(360,_),0)|0,this.s=d(Math.max(Math.min(1,b),0),3),this.v=d(Math.max(Math.min(1,p),0),3),this.a=d(Math.max(Math.min(1,n),0),3)}static equals(_,b){return _.h===b.h&&_.s===b.s&&_.v===b.v&&_.a===b.a}static fromRGBA(_){const b=_.r/255,p=_.g/255,n=_.b/255,o=Math.max(b,p,n),t=Math.min(b,p,n),i=o-t,s=o===0?0:i/o;let g;return i===0?g=0:o===b?g=((p-n)/i%6+6)%6:o===p?g=(n-b)/i+2:g=(b-p)/i+4,new E(Math.round(g*60),s,o,_.a)}static toRGBA(_){const{h:b,s:p,v:n,a:o}=_,t=n*p,i=t*(1-Math.abs(b/60%2-1)),s=n-t;let[g,c,l]=[0,0,0];return b<60?(g=t,c=i):b<120?(g=i,c=t):b<180?(c=t,l=i):b<240?(c=i,l=t):b<300?(g=i,l=t):b<=360&&(g=t,l=i),g=Math.round((g+s)*255),c=Math.round((c+s)*255),l=Math.round((l+s)*255),new k(g,c,l,o)}}e.HSVA=E;class y{static fromHex(_){return y.Format.CSS.parseHex(_)||y.red}static equals(_,b){return!_&&!b?!0:!_||!b?!1:_.equals(b)}get hsla(){return this._hsla?this._hsla:I.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:E.fromRGBA(this.rgba)}constructor(_){if(_)if(_ instanceof k)this.rgba=_;else if(_ instanceof I)this._hsla=_,this.rgba=I.toRGBA(_);else if(_ instanceof E)this._hsva=_,this.rgba=E.toRGBA(_);else throw new Error("Invalid color ctor argument");else throw new Error("Color needs a value")}equals(_){return!!_&&k.equals(this.rgba,_.rgba)&&I.equals(this.hsla,_.hsla)&&E.equals(this.hsva,_.hsva)}getRelativeLuminance(){const _=y._relativeLuminanceForComponent(this.rgba.r),b=y._relativeLuminanceForComponent(this.rgba.g),p=y._relativeLuminanceForComponent(this.rgba.b),n=.2126*_+.7152*b+.0722*p;return d(n,4)}static _relativeLuminanceForComponent(_){const b=_/255;return b<=.03928?b/12.92:Math.pow((b+.055)/1.055,2.4)}isLighter(){return(this.rgba.r*299+this.rgba.g*587+this.rgba.b*114)/1e3>=128}isLighterThan(_){const b=this.getRelativeLuminance(),p=_.getRelativeLuminance();return b>p}isDarkerThan(_){const b=this.getRelativeLuminance(),p=_.getRelativeLuminance();return bb===p;e.strictEquals=k;function I(b=e.strictEquals){return(p,n)=>d.equals(p,n,b)}function E(){return(b,p)=>b.equals(p)}function y(b,p,n){if(n!==void 0){const o=b;return o==null||p===void 0||p===null?p===o:n(o,p)}else{const o=b;return(t,i)=>t==null||i===void 0||i===null?i===t:o(t,i)}}function m(b,p){if(b===p)return!0;if(Array.isArray(b)&&Array.isArray(p)){if(b.length!==p.length)return!1;for(let n=0;n{throw g.stack?t.isErrorNoTelemetry(g)?new t(g.message+` + +`+g.stack):new Error(g.message+` + +`+g.stack):g},0)}}emit(g){this.listeners.forEach(c=>{c(g)})}onUnexpectedError(g){this.unexpectedErrorHandler(g),this.emit(g)}onUnexpectedExternalError(g){this.unexpectedErrorHandler(g)}}e.ErrorHandler=d,e.errorHandler=new d;function k(s){m(s)||e.errorHandler.onUnexpectedError(s)}function I(s){m(s)||e.errorHandler.onUnexpectedExternalError(s)}function E(s){if(s instanceof Error){const{name:g,message:c}=s,l=s.stacktrace||s.stack;return{$isError:!0,name:g,message:c,stack:l,noTelemetry:t.isErrorNoTelemetry(s)}}return s}const y="Canceled";function m(s){return s instanceof _?!0:s instanceof Error&&s.name===y&&s.message===y}class _ extends Error{constructor(){super(y),this.name=this.message}}e.CancellationError=_;function b(){const s=new Error(y);return s.name=s.message,s}function p(s){return s?new Error(`Illegal argument: ${s}`):new Error("Illegal argument")}function n(s){return s?new Error(`Illegal state: ${s}`):new Error("Illegal state")}class o extends Error{constructor(g){super("NotSupported"),g&&(this.message=g)}}e.NotSupportedError=o;class t extends Error{constructor(g){super(g),this.name="CodeExpectedError"}static fromError(g){if(g instanceof t)return g;const c=new t;return c.message=g.message,c.stack=g.stack,c}static isErrorNoTelemetry(g){return g.name==="CodeExpectedError"}}e.ErrorNoTelemetry=t;class i extends Error{constructor(g){super(g||"An unexpected bug occurred."),Object.setPrototypeOf(this,i.prototype)}}e.BugIndicatingError=i}),define(ne[103],se([1,0,8]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createTrustedTypesPolicy=k;function k(I,E){const y=globalThis.MonacoEnvironment;if(y?.createTrustedTypesPolicy)try{return y.createTrustedTypesPolicy(I,E)}catch(m){(0,d.onUnexpectedError)(m);return}try{return globalThis.trustedTypes?.createPolicy(I,E)}catch(m){(0,d.onUnexpectedError)(m);return}}}),define(ne[90],se([1,0,8]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ok=k,e.assertNever=I,e.softAssert=E,e.assertFn=y,e.checkAdjacentItems=m;function k(_,b){if(!_)throw new Error(b?`Assertion failed (${b})`:"Assertion Failed")}function I(_,b="Unreachable"){throw new Error(b)}function E(_){_||(0,d.onUnexpectedError)(new d.BugIndicatingError("Soft Assertion Failed"))}function y(_){if(!_()){debugger;_(),(0,d.onUnexpectedError)(new d.BugIndicatingError("Assertion Failed"))}}function m(_,b){let p=0;for(;p<_.length-1;){const n=_[p],o=_[p+1];if(!b(n,o))return!1;p++}return!0}}),define(ne[127],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createSingleCallFunction=d;function d(k,I){const E=this;let y=!1,m;return function(){if(y)return m;if(y=!0,I)try{m=k.apply(E,arguments)}finally{I()}else m=k.apply(E,arguments);return m}}}),define(ne[91],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HierarchicalKind=void 0;class d{static{this.sep="."}static{this.None=new d("@@none@@")}static{this.Empty=new d("")}constructor(I){this.value=I}equals(I){return this.value===I.value}contains(I){return this.equals(I)||this.value===""||I.value.startsWith(this.value+d.sep)}intersects(I){return this.contains(I)||I.contains(this)}append(...I){return new d((this.value?[this.value,...I]:I).join(d.sep))}}e.HierarchicalKind=d}),define(ne[187],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.defaultGenerator=e.IdGenerator=void 0;class d{constructor(I){this._prefix=I,this._lastId=0}nextId(){return this._prefix+ ++this._lastId}}e.IdGenerator=d,e.defaultGenerator=new d("id#")}),define(ne[53],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Iterable=void 0;var d;(function(k){function I(f){return f&&typeof f=="object"&&typeof f[Symbol.iterator]=="function"}k.is=I;const E=Object.freeze([]);function y(){return E}k.empty=y;function*m(f){yield f}k.single=m;function _(f){return I(f)?f:m(f)}k.wrap=_;function b(f){return f||E}k.from=b;function*p(f){for(let h=f.length-1;h>=0;h--)yield f[h]}k.reverse=p;function n(f){return!f||f[Symbol.iterator]().next().done===!0}k.isEmpty=n;function o(f){return f[Symbol.iterator]().next().value}k.first=o;function t(f,h){let v=0;for(const w of f)if(h(w,v++))return!0;return!1}k.some=t;function i(f,h){for(const v of f)if(h(v))return v}k.find=i;function*s(f,h){for(const v of f)h(v)&&(yield v)}k.filter=s;function*g(f,h){let v=0;for(const w of f)yield h(w,v++)}k.map=g;function*c(f,h){let v=0;for(const w of f)yield*h(w,v++)}k.flatMap=c;function*l(...f){for(const h of f)yield*h}k.concat=l;function a(f,h,v){let w=v;for(const S of f)w=h(w,S);return w}k.reduce=a;function*r(f,h,v=f.length){for(h<0&&(h+=f.length),v<0?v+=f.length:v>f.length&&(v=f.length);h=98&&l<=113)return null;switch(l){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return k.keyCodeToStr(l)}n.toElectronAccelerator=c})(b||(e.KeyCodeUtils=b={}));function p(n,o){const t=(o&65535)<<16>>>0;return(n|t)>>>0}}),define(ne[140],se([1,0,8]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResolvedKeybinding=e.ResolvedChord=e.Keybinding=e.ScanCodeChord=e.KeyCodeChord=void 0,e.decodeKeybinding=k,e.createSimpleKeybinding=I;function k(p,n){if(typeof p=="number"){if(p===0)return null;const o=(p&65535)>>>0,t=(p&4294901760)>>>16;return t!==0?new m([I(o,n),I(t,n)]):new m([I(o,n)])}else{const o=[];for(let t=0;t({get delay(){return-1},dispose:()=>{},showHover:()=>{}});const E=new d.Lazy(()=>I("mouse",!1)),y=new d.Lazy(()=>I("element",!1));function m(p){I=p}function _(p){return p==="element"?y.value:E.value}function b(){return I("element",!0)}}),define(ne[160],se([1,0,98]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.VSBuffer=void 0,e.readUInt16LE=m,e.writeUInt16LE=_,e.readUInt32BE=b,e.writeUInt32BE=p,e.readUInt8=n,e.writeUInt8=o;const k=typeof Buffer<"u",I=new d.Lazy(()=>new Uint8Array(256));let E;class y{static wrap(i){return k&&!Buffer.isBuffer(i)&&(i=Buffer.from(i.buffer,i.byteOffset,i.byteLength)),new y(i)}constructor(i){this.buffer=i,this.byteLength=this.buffer.byteLength}toString(){return k?this.buffer.toString():(E||(E=new TextDecoder),E.decode(this.buffer))}}e.VSBuffer=y;function m(t,i){return t[i+0]<<0>>>0|t[i+1]<<8>>>0}function _(t,i,s){t[s+0]=i&255,i=i>>>8,t[s+1]=i&255}function b(t,i){return t[i]*2**24+t[i+1]*2**16+t[i+2]*2**8+t[i+3]}function p(t,i,s){t[s+3]=i,i=i>>>8,t[s+2]=i,i=i>>>8,t[s+1]=i,i=i>>>8,t[s]=i}function n(t,i){return t[i]}function o(t,i,s){t[s]=i}}),define(ne[445],se([1,0,98]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.compareFileNames=y,e.compareAnything=m,e.compareByPrefix=_;const k=new d.Lazy(()=>{const b=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});return{collator:b,collatorIsNumeric:b.resolvedOptions().numeric}}),I=new d.Lazy(()=>({collator:new Intl.Collator(void 0,{numeric:!0})})),E=new d.Lazy(()=>({collator:new Intl.Collator(void 0,{numeric:!0,sensitivity:"accent"})}));function y(b,p,n=!1){const o=b||"",t=p||"",i=k.value.collator.compare(o,t);return k.value.collatorIsNumeric&&i===0&&o!==t?ot.length)return 1}return 0}}),define(ne[2],se([1,0,127,53]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DisposableMap=e.ImmortalReference=e.RefCountedDisposable=e.MutableDisposable=e.Disposable=e.DisposableStore=void 0,e.setDisposableTracker=y,e.trackDisposable=m,e.markAsDisposed=_,e.markAsSingleton=n,e.isDisposable=o,e.dispose=t,e.combinedDisposable=i,e.toDisposable=s;const I=!1;let E=null;function y(C){E=C}if(I){const C="__is_disposable_tracked__";y(new class{trackDisposable(f){const h=new Error("Potentially leaked disposable").stack;setTimeout(()=>{f[C]||console.log(h)},3e3)}setParent(f,h){if(f&&f!==c.None)try{f[C]=!0}catch{}}markAsDisposed(f){if(f&&f!==c.None)try{f[C]=!0}catch{}}markAsSingleton(f){}})}function m(C){return E?.trackDisposable(C),C}function _(C){E?.markAsDisposed(C)}function b(C,f){E?.setParent(C,f)}function p(C,f){if(E)for(const h of C)E.setParent(h,f)}function n(C){return E?.markAsSingleton(C),C}function o(C){return typeof C=="object"&&C!==null&&typeof C.dispose=="function"&&C.dispose.length===0}function t(C){if(k.Iterable.is(C)){const f=[];for(const h of C)if(h)try{h.dispose()}catch(v){f.push(v)}if(f.length===1)throw f[0];if(f.length>1)throw new AggregateError(f,"Encountered errors while disposing of store");return Array.isArray(C)?[]:C}else if(C)return C.dispose(),C}function i(...C){const f=s(()=>t(C));return p(C,f),f}function s(C){const f=m({dispose:(0,d.createSingleCallFunction)(()=>{_(f),C()})});return f}class g{static{this.DISABLE_DISPOSED_WARNING=!1}constructor(){this._toDispose=new Set,this._isDisposed=!1,m(this)}dispose(){this._isDisposed||(_(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{t(this._toDispose)}finally{this._toDispose.clear()}}add(f){if(!f)return f;if(f===this)throw new Error("Cannot register a disposable on itself!");return b(f,this),this._isDisposed?g.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(f),f}deleteAndLeak(f){f&&this._toDispose.has(f)&&(this._toDispose.delete(f),b(f,null))}}e.DisposableStore=g;class c{static{this.None=Object.freeze({dispose(){}})}constructor(){this._store=new g,m(this),b(this._store,this)}dispose(){_(this),this._store.dispose()}_register(f){if(f===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(f)}}e.Disposable=c;class l{constructor(){this._isDisposed=!1,m(this)}get value(){return this._isDisposed?void 0:this._value}set value(f){this._isDisposed||f===this._value||(this._value?.dispose(),f&&b(f,this),this._value=f)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,_(this),this._value?.dispose(),this._value=void 0}}e.MutableDisposable=l;class a{constructor(f){this._disposable=f,this._counter=1}acquire(){return this._counter++,this}release(){return--this._counter===0&&this._disposable.dispose(),this}}e.RefCountedDisposable=a;class r{constructor(f){this.object=f}dispose(){}}e.ImmortalReference=r;class u{constructor(){this._store=new Map,this._isDisposed=!1,m(this)}dispose(){_(this),this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{t(this._store.values())}finally{this._store.clear()}}get(f){return this._store.get(f)}set(f,h,v=!1){this._isDisposed&&console.warn(new Error("Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!").stack),v||this._store.get(f)?.dispose(),this._store.set(f,h)}deleteAndDispose(f){this._store.get(f)?.dispose(),this._store.delete(f)}[Symbol.iterator](){return this._store[Symbol.iterator]()}}e.DisposableMap=u}),define(ne[73],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinkedList=void 0;class d{static{this.Undefined=new d(void 0)}constructor(E){this.element=E,this.next=d.Undefined,this.prev=d.Undefined}}class k{constructor(){this._first=d.Undefined,this._last=d.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===d.Undefined}clear(){let E=this._first;for(;E!==d.Undefined;){const y=E.next;E.prev=d.Undefined,E.next=d.Undefined,E=y}this._first=d.Undefined,this._last=d.Undefined,this._size=0}unshift(E){return this._insert(E,!1)}push(E){return this._insert(E,!0)}_insert(E,y){const m=new d(E);if(this._first===d.Undefined)this._first=m,this._last=m;else if(y){const b=this._last;this._last=m,m.prev=b,b.next=m}else{const b=this._first;this._first=m,m.next=b,b.prev=m}this._size+=1;let _=!1;return()=>{_||(_=!0,this._remove(m))}}shift(){if(this._first!==d.Undefined){const E=this._first.element;return this._remove(this._first),E}}pop(){if(this._last!==d.Undefined){const E=this._last.element;return this._remove(this._last),E}}_remove(E){if(E.prev!==d.Undefined&&E.next!==d.Undefined){const y=E.prev;y.next=E.next,E.next.prev=y}else E.prev===d.Undefined&&E.next===d.Undefined?(this._first=d.Undefined,this._last=d.Undefined):E.next===d.Undefined?(this._last=this._last.prev,this._last.next=d.Undefined):E.prev===d.Undefined&&(this._first=this._first.next,this._first.prev=d.Undefined);this._size-=1}*[Symbol.iterator](){let E=this._first;for(;E!==d.Undefined;)yield E.element,E=E.next}}e.LinkedList=k});var ke=this&&this.__decorate||function(oe,e,d,k){var I=arguments.length,E=I<3?e:k===null?k=Object.getOwnPropertyDescriptor(e,d):k,y;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")E=Reflect.decorate(oe,e,d,k);else for(var m=oe.length-1;m>=0;m--)(y=oe[m])&&(E=(I<3?y(E):I>3?y(e,d,E):y(e,d))||E);return I>3&&E&&Object.defineProperty(e,d,E),E};define(ne[446],se([1,0,126]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinkedText=void 0,e.parseLinkedText=E;class k{constructor(m){this.nodes=m}toString(){return this.nodes.map(m=>typeof m=="string"?m:m.label).join("")}}e.LinkedText=k,ke([d.memoize],k.prototype,"toString",null);const I=/\[([^\]]+)\]\(((?:https?:\/\/|command:|file:)[^\)\s]+)(?: (["'])(.+?)(\3))?\)/gi;function E(y){const m=[];let _=0,b;for(;b=I.exec(y);){b.index-_>0&&m.push(y.substring(_,b.index));const[,p,n,,o]=b;o?m.push({label:p,href:n,title:o}):m.push({label:p,href:n}),_=b.index+b[0].length}return _t.toString()}constructor(t,i){if(this[d]="ResourceMap",t instanceof y)this.map=new Map(t.map),this.toKey=i??y.defaultToKey;else if(E(t)){this.map=new Map,this.toKey=i??y.defaultToKey;for(const[s,g]of t)this.set(s,g)}else this.map=new Map,this.toKey=t??y.defaultToKey}set(t,i){return this.map.set(this.toKey(t),new I(t,i)),this}get(t){return this.map.get(this.toKey(t))?.value}has(t){return this.map.has(this.toKey(t))}get size(){return this.map.size}clear(){this.map.clear()}delete(t){return this.map.delete(this.toKey(t))}forEach(t,i){typeof i<"u"&&(t=t.bind(i));for(const[s,g]of this.map)t(g.value,g.uri,this)}*values(){for(const t of this.map.values())yield t.value}*keys(){for(const t of this.map.values())yield t.uri}*entries(){for(const t of this.map.values())yield[t.uri,t.value]}*[(d=Symbol.toStringTag,Symbol.iterator)](){for(const[,t]of this.map)yield[t.uri,t.value]}}e.ResourceMap=y;class m{constructor(){this[k]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){return this._head?.value}get last(){return this._tail?.value}has(t){return this._map.has(t)}get(t,i=0){const s=this._map.get(t);if(s)return i!==0&&this.touch(s,i),s.value}set(t,i,s=0){let g=this._map.get(t);if(g)g.value=i,s!==0&&this.touch(g,s);else{switch(g={key:t,value:i,next:void 0,previous:void 0},s){case 0:this.addItemLast(g);break;case 1:this.addItemFirst(g);break;case 2:this.addItemLast(g);break;default:this.addItemLast(g);break}this._map.set(t,g),this._size++}return this}delete(t){return!!this.remove(t)}remove(t){const i=this._map.get(t);if(i)return this._map.delete(t),this.removeItem(i),this._size--,i.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const t=this._head;return this._map.delete(t.key),this.removeItem(t),this._size--,t.value}forEach(t,i){const s=this._state;let g=this._head;for(;g;){if(i?t.bind(i)(g.value,g.key,this):t(g.value,g.key,this),this._state!==s)throw new Error("LinkedMap got modified during iteration.");g=g.next}}keys(){const t=this,i=this._state;let s=this._head;const g={[Symbol.iterator](){return g},next(){if(t._state!==i)throw new Error("LinkedMap got modified during iteration.");if(s){const c={value:s.key,done:!1};return s=s.next,c}else return{value:void 0,done:!0}}};return g}values(){const t=this,i=this._state;let s=this._head;const g={[Symbol.iterator](){return g},next(){if(t._state!==i)throw new Error("LinkedMap got modified during iteration.");if(s){const c={value:s.value,done:!1};return s=s.next,c}else return{value:void 0,done:!0}}};return g}entries(){const t=this,i=this._state;let s=this._head;const g={[Symbol.iterator](){return g},next(){if(t._state!==i)throw new Error("LinkedMap got modified during iteration.");if(s){const c={value:[s.key,s.value],done:!1};return s=s.next,c}else return{value:void 0,done:!0}}};return g}[(k=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(t){if(t>=this.size)return;if(t===0){this.clear();return}let i=this._head,s=this.size;for(;i&&s>t;)this._map.delete(i.key),i=i.next,s--;this._head=i,this._size=s,i&&(i.previous=void 0),this._state++}trimNew(t){if(t>=this.size)return;if(t===0){this.clear();return}let i=this._tail,s=this.size;for(;i&&s>t;)this._map.delete(i.key),i=i.previous,s--;this._tail=i,this._size=s,i&&(i.next=void 0),this._state++}addItemFirst(t){if(!this._head&&!this._tail)this._tail=t;else if(this._head)t.next=this._head,this._head.previous=t;else throw new Error("Invalid list");this._head=t,this._state++}addItemLast(t){if(!this._head&&!this._tail)this._head=t;else if(this._tail)t.previous=this._tail,this._tail.next=t;else throw new Error("Invalid list");this._tail=t,this._state++}removeItem(t){if(t===this._head&&t===this._tail)this._head=void 0,this._tail=void 0;else if(t===this._head){if(!t.next)throw new Error("Invalid list");t.next.previous=void 0,this._head=t.next}else if(t===this._tail){if(!t.previous)throw new Error("Invalid list");t.previous.next=void 0,this._tail=t.previous}else{const i=t.next,s=t.previous;if(!i||!s)throw new Error("Invalid list");i.previous=s,s.next=i}t.next=void 0,t.previous=void 0,this._state++}touch(t,i){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(i!==1&&i!==2)){if(i===1){if(t===this._head)return;const s=t.next,g=t.previous;t===this._tail?(g.next=void 0,this._tail=g):(s.previous=g,g.next=s),t.previous=void 0,t.next=this._head,this._head.previous=t,this._head=t,this._state++}else if(i===2){if(t===this._tail)return;const s=t.next,g=t.previous;t===this._head?(s.previous=void 0,this._head=s):(s.previous=g,g.next=s),t.next=void 0,t.previous=this._tail,this._tail.next=t,this._tail=t,this._state++}}}toJSON(){const t=[];return this.forEach((i,s)=>{t.push([s,i])}),t}fromJSON(t){this.clear();for(const[i,s]of t)this.set(i,s)}}e.LinkedMap=m;class _ extends m{constructor(t,i=1){super(),this._limit=t,this._ratio=Math.min(Math.max(0,i),1)}get limit(){return this._limit}set limit(t){this._limit=t,this.checkTrim()}get(t,i=2){return super.get(t,i)}peek(t){return super.get(t,0)}set(t,i){return super.set(t,i,2),this}checkTrim(){this.size>this._limit&&this.trim(Math.round(this._limit*this._ratio))}}class b extends _{constructor(t,i=1){super(t,i)}trim(t){this.trimOld(t)}set(t,i){return super.set(t,i),this.checkTrim(),this}}e.LRUCache=b;class p{constructor(t){if(this._m1=new Map,this._m2=new Map,t)for(const[i,s]of t)this.set(i,s)}clear(){this._m1.clear(),this._m2.clear()}set(t,i){this._m1.set(t,i),this._m2.set(i,t)}get(t){return this._m1.get(t)}getKey(t){return this._m2.get(t)}delete(t){const i=this._m1.get(t);return i===void 0?!1:(this._m1.delete(t),this._m2.delete(i),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}}e.BidirectionalMap=p;class n{constructor(){this.map=new Map}add(t,i){let s=this.map.get(t);s||(s=new Set,this.map.set(t,s)),s.add(i)}delete(t,i){const s=this.map.get(t);s&&(s.delete(i),s.size===0&&this.map.delete(t))}forEach(t,i){const s=this.map.get(t);s&&s.forEach(i)}get(t){const i=this.map.get(t);return i||new Set}}e.SetMap=n}),function(oe,e){typeof define=="function"&&define.amd?define(ne[447],se([0]),e):typeof exports=="object"&&typeof module<"u"?e(exports):(oe=typeof globalThis<"u"?globalThis:oe||self,e(oe.marked={}))}(this,function(oe){"use strict";function e(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}oe.defaults=e();function d(xe){oe.defaults=xe}const k=/[&<>"']/,I=new RegExp(k.source,"g"),E=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,y=new RegExp(E.source,"g"),m={"&":"&","<":"<",">":">",'"':""","'":"'"},_=xe=>m[xe];function b(xe,be){if(be){if(k.test(xe))return xe.replace(I,_)}else if(E.test(xe))return xe.replace(y,_);return xe}const p=/(^|[^\[])\^/g;function n(xe,be){let ve=typeof xe=="string"?xe:xe.source;be=be||"";const we={replace:(Te,Pe)=>{let Be=typeof Pe=="string"?Pe:Pe.source;return Be=Be.replace(p,"$1"),ve=ve.replace(Te,Be),we},getRegex:()=>new RegExp(ve,be)};return we}function o(xe){try{xe=encodeURI(xe).replace(/%25/g,"%")}catch{return null}return xe}const t={exec:()=>null};function i(xe,be){const ve=xe.replace(/\|/g,(Pe,Be,He)=>{let $e=!1,je=Be;for(;--je>=0&&He[je]==="\\";)$e=!$e;return $e?"|":" |"}),we=ve.split(/ \|/);let Te=0;if(we[0].trim()||we.shift(),we.length>0&&!we[we.length-1].trim()&&we.pop(),be)if(we.length>be)we.splice(be);else for(;we.length{const Pe=Te.match(/^\s+/);if(Pe===null)return Te;const[Be]=Pe;return Be.length>=we.length?Te.slice(we.length):Te}).join(` +`)}class a{options;rules;lexer;constructor(be){this.options=be||oe.defaults}space(be){const ve=this.rules.block.newline.exec(be);if(ve&&ve[0].length>0)return{type:"space",raw:ve[0]}}code(be){const ve=this.rules.block.code.exec(be);if(ve){const we=ve[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:ve[0],codeBlockStyle:"indented",text:this.options.pedantic?we:s(we,` +`)}}}fences(be){const ve=this.rules.block.fences.exec(be);if(ve){const we=ve[0],Te=l(we,ve[3]||"");return{type:"code",raw:we,lang:ve[2]?ve[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):ve[2],text:Te}}}heading(be){const ve=this.rules.block.heading.exec(be);if(ve){let we=ve[2].trim();if(/#$/.test(we)){const Te=s(we,"#");(this.options.pedantic||!Te||/ $/.test(Te))&&(we=Te.trim())}return{type:"heading",raw:ve[0],depth:ve[1].length,text:we,tokens:this.lexer.inline(we)}}}hr(be){const ve=this.rules.block.hr.exec(be);if(ve)return{type:"hr",raw:s(ve[0],` +`)}}blockquote(be){const ve=this.rules.block.blockquote.exec(be);if(ve){let we=s(ve[0],` +`).split(` +`),Te="",Pe="";const Be=[];for(;we.length>0;){let He=!1;const $e=[];let je;for(je=0;je/.test(we[je]))$e.push(we[je]),He=!0;else if(!He)$e.push(we[je]);else break;we=we.slice(je);const Xe=$e.join(` +`),et=Xe.replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,` + $1`).replace(/^ {0,3}>[ \t]?/gm,"");Te=Te?`${Te} +${Xe}`:Xe,Pe=Pe?`${Pe} +${et}`:et;const dt=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(et,Be,!0),this.lexer.state.top=dt,we.length===0)break;const at=Be[Be.length-1];if(at?.type==="code")break;if(at?.type==="blockquote"){const st=at,pt=st.raw+` +`+we.join(` +`),bt=this.blockquote(pt);Be[Be.length-1]=bt,Te=Te.substring(0,Te.length-st.raw.length)+bt.raw,Pe=Pe.substring(0,Pe.length-st.text.length)+bt.text;break}else if(at?.type==="list"){const st=at,pt=st.raw+` +`+we.join(` +`),bt=this.list(pt);Be[Be.length-1]=bt,Te=Te.substring(0,Te.length-at.raw.length)+bt.raw,Pe=Pe.substring(0,Pe.length-st.raw.length)+bt.raw,we=pt.substring(Be[Be.length-1].raw.length).split(` +`);continue}}return{type:"blockquote",raw:Te,tokens:Be,text:Pe}}}list(be){let ve=this.rules.block.list.exec(be);if(ve){let we=ve[1].trim();const Te=we.length>1,Pe={type:"list",raw:"",ordered:Te,start:Te?+we.slice(0,-1):"",loose:!1,items:[]};we=Te?`\\d{1,9}\\${we.slice(-1)}`:`\\${we}`,this.options.pedantic&&(we=Te?we:"[*+-]");const Be=new RegExp(`^( {0,3}${we})((?:[ ][^\\n]*)?(?:\\n|$))`);let He=!1;for(;be;){let $e=!1,je="",Xe="";if(!(ve=Be.exec(be))||this.rules.block.hr.test(be))break;je=ve[0],be=be.substring(je.length);let et=ve[2].split(` +`,1)[0].replace(/^\t+/,De=>" ".repeat(3*De.length)),dt=be.split(` +`,1)[0],at=!et.trim(),st=0;if(this.options.pedantic?(st=2,Xe=et.trimStart()):at?st=ve[1].length+1:(st=ve[2].search(/[^ ]/),st=st>4?1:st,Xe=et.slice(st),st+=ve[1].length),at&&/^ *$/.test(dt)&&(je+=dt+` +`,be=be.substring(dt.length+1),$e=!0),!$e){const De=new RegExp(`^ {0,${Math.min(3,st-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),Ie=new RegExp(`^ {0,${Math.min(3,st-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),Re=new RegExp(`^ {0,${Math.min(3,st-1)}}(?:\`\`\`|~~~)`),Se=new RegExp(`^ {0,${Math.min(3,st-1)}}#`);for(;be;){const We=be.split(` +`,1)[0];if(dt=We,this.options.pedantic&&(dt=dt.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),Re.test(dt)||Se.test(dt)||De.test(dt)||Ie.test(be))break;if(dt.search(/[^ ]/)>=st||!dt.trim())Xe+=` +`+dt.slice(st);else{if(at||et.search(/[^ ]/)>=4||Re.test(et)||Se.test(et)||Ie.test(et))break;Xe+=` +`+dt}!at&&!dt.trim()&&(at=!0),je+=We+` +`,be=be.substring(We.length+1),et=dt.slice(st)}}Pe.loose||(He?Pe.loose=!0:/\n *\n *$/.test(je)&&(He=!0));let pt=null,bt;this.options.gfm&&(pt=/^\[[ xX]\] /.exec(Xe),pt&&(bt=pt[0]!=="[ ] ",Xe=Xe.replace(/^\[[ xX]\] +/,""))),Pe.items.push({type:"list_item",raw:je,task:!!pt,checked:bt,loose:!1,text:Xe,tokens:[]}),Pe.raw+=je}Pe.items[Pe.items.length-1].raw=Pe.items[Pe.items.length-1].raw.trimEnd(),Pe.items[Pe.items.length-1].text=Pe.items[Pe.items.length-1].text.trimEnd(),Pe.raw=Pe.raw.trimEnd();for(let $e=0;$eet.type==="space"),Xe=je.length>0&&je.some(et=>/\n.*\n/.test(et.raw));Pe.loose=Xe}if(Pe.loose)for(let $e=0;$e$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",Pe=ve[3]?ve[3].substring(1,ve[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):ve[3];return{type:"def",tag:we,raw:ve[0],href:Te,title:Pe}}}table(be){const ve=this.rules.block.table.exec(be);if(!ve||!/[:|]/.test(ve[2]))return;const we=i(ve[1]),Te=ve[2].replace(/^\||\| *$/g,"").split("|"),Pe=ve[3]&&ve[3].trim()?ve[3].replace(/\n[ \t]*$/,"").split(` +`):[],Be={type:"table",raw:ve[0],header:[],align:[],rows:[]};if(we.length===Te.length){for(const He of Te)/^ *-+: *$/.test(He)?Be.align.push("right"):/^ *:-+: *$/.test(He)?Be.align.push("center"):/^ *:-+ *$/.test(He)?Be.align.push("left"):Be.align.push(null);for(let He=0;He({text:$e,tokens:this.lexer.inline($e),header:!1,align:Be.align[je]})));return Be}}lheading(be){const ve=this.rules.block.lheading.exec(be);if(ve)return{type:"heading",raw:ve[0],depth:ve[2].charAt(0)==="="?1:2,text:ve[1],tokens:this.lexer.inline(ve[1])}}paragraph(be){const ve=this.rules.block.paragraph.exec(be);if(ve){const we=ve[1].charAt(ve[1].length-1)===` +`?ve[1].slice(0,-1):ve[1];return{type:"paragraph",raw:ve[0],text:we,tokens:this.lexer.inline(we)}}}text(be){const ve=this.rules.block.text.exec(be);if(ve)return{type:"text",raw:ve[0],text:ve[0],tokens:this.lexer.inline(ve[0])}}escape(be){const ve=this.rules.inline.escape.exec(be);if(ve)return{type:"escape",raw:ve[0],text:b(ve[1])}}tag(be){const ve=this.rules.inline.tag.exec(be);if(ve)return!this.lexer.state.inLink&&/^
    /i.test(ve[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(ve[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(ve[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:ve[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:ve[0]}}link(be){const ve=this.rules.inline.link.exec(be);if(ve){const we=ve[2].trim();if(!this.options.pedantic&&/^$/.test(we))return;const Be=s(we.slice(0,-1),"\\");if((we.length-Be.length)%2===0)return}else{const Be=g(ve[2],"()");if(Be>-1){const $e=(ve[0].indexOf("!")===0?5:4)+ve[1].length+Be;ve[2]=ve[2].substring(0,Be),ve[0]=ve[0].substring(0,$e).trim(),ve[3]=""}}let Te=ve[2],Pe="";if(this.options.pedantic){const Be=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(Te);Be&&(Te=Be[1],Pe=Be[3])}else Pe=ve[3]?ve[3].slice(1,-1):"";return Te=Te.trim(),/^$/.test(we)?Te=Te.slice(1):Te=Te.slice(1,-1)),c(ve,{href:Te&&Te.replace(this.rules.inline.anyPunctuation,"$1"),title:Pe&&Pe.replace(this.rules.inline.anyPunctuation,"$1")},ve[0],this.lexer)}}reflink(be,ve){let we;if((we=this.rules.inline.reflink.exec(be))||(we=this.rules.inline.nolink.exec(be))){const Te=(we[2]||we[1]).replace(/\s+/g," "),Pe=ve[Te.toLowerCase()];if(!Pe){const Be=we[0].charAt(0);return{type:"text",raw:Be,text:Be}}return c(we,Pe,we[0],this.lexer)}}emStrong(be,ve,we=""){let Te=this.rules.inline.emStrongLDelim.exec(be);if(!Te||Te[3]&&we.match(/[\p{L}\p{N}]/u))return;if(!(Te[1]||Te[2]||"")||!we||this.rules.inline.punctuation.exec(we)){const Be=[...Te[0]].length-1;let He,$e,je=Be,Xe=0;const et=Te[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(et.lastIndex=0,ve=ve.slice(-1*be.length+Be);(Te=et.exec(ve))!=null;){if(He=Te[1]||Te[2]||Te[3]||Te[4]||Te[5]||Te[6],!He)continue;if($e=[...He].length,Te[3]||Te[4]){je+=$e;continue}else if((Te[5]||Te[6])&&Be%3&&!((Be+$e)%3)){Xe+=$e;continue}if(je-=$e,je>0)continue;$e=Math.min($e,$e+je+Xe);const dt=[...Te[0]][0].length,at=be.slice(0,Be+Te.index+dt+$e);if(Math.min(Be,$e)%2){const pt=at.slice(1,-1);return{type:"em",raw:at,text:pt,tokens:this.lexer.inlineTokens(pt)}}const st=at.slice(2,-2);return{type:"strong",raw:at,text:st,tokens:this.lexer.inlineTokens(st)}}}}codespan(be){const ve=this.rules.inline.code.exec(be);if(ve){let we=ve[2].replace(/\n/g," ");const Te=/[^ ]/.test(we),Pe=/^ /.test(we)&&/ $/.test(we);return Te&&Pe&&(we=we.substring(1,we.length-1)),we=b(we,!0),{type:"codespan",raw:ve[0],text:we}}}br(be){const ve=this.rules.inline.br.exec(be);if(ve)return{type:"br",raw:ve[0]}}del(be){const ve=this.rules.inline.del.exec(be);if(ve)return{type:"del",raw:ve[0],text:ve[2],tokens:this.lexer.inlineTokens(ve[2])}}autolink(be){const ve=this.rules.inline.autolink.exec(be);if(ve){let we,Te;return ve[2]==="@"?(we=b(ve[1]),Te="mailto:"+we):(we=b(ve[1]),Te=we),{type:"link",raw:ve[0],text:we,href:Te,tokens:[{type:"text",raw:we,text:we}]}}}url(be){let ve;if(ve=this.rules.inline.url.exec(be)){let we,Te;if(ve[2]==="@")we=b(ve[0]),Te="mailto:"+we;else{let Pe;do Pe=ve[0],ve[0]=this.rules.inline._backpedal.exec(ve[0])?.[0]??"";while(Pe!==ve[0]);we=b(ve[0]),ve[1]==="www."?Te="http://"+ve[0]:Te=ve[0]}return{type:"link",raw:ve[0],text:we,href:Te,tokens:[{type:"text",raw:we,text:we}]}}}inlineText(be){const ve=this.rules.inline.text.exec(be);if(ve){let we;return this.lexer.state.inRawBlock?we=ve[0]:we=b(ve[0]),{type:"text",raw:ve[0],text:we}}}}const r=/^(?: *(?:\n|$))+/,u=/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,C=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,f=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,h=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,v=/(?:[*+-]|\d{1,9}[.)])/,w=n(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,v).replace(/blockCode/g,/ {4}/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),S=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,L=/^[^\n]+/,D=/(?!\s*\])(?:\\.|[^\[\]\\])+/,T=n(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",D).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),M=n(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,v).getRegex(),A="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",P=/|$))/,N=n("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))","i").replace("comment",P).replace("tag",A).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),O=n(S).replace("hr",f).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",A).getRegex(),x={blockquote:n(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",O).getRegex(),code:u,def:T,fences:C,heading:h,hr:f,html:N,lheading:w,list:M,newline:r,paragraph:O,table:t,text:L},W=n("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",f).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",A).getRegex(),V={...x,table:W,paragraph:n(S).replace("hr",f).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",W).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",A).getRegex()},q={...x,html:n(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",P).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:t,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:n(S).replace("hr",f).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",w).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},H=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,z=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,U=/^( {2,}|\\)\n(?!\s*$)/,j=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,R=n(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,Y).getRegex(),J=n("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,Y).getRegex(),ie=n("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,Y).getRegex(),ue=n(/\\([punct])/,"gu").replace(/punct/g,Y).getRegex(),he=n(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),pe=n(P).replace("(?:-->|$)","-->").getRegex(),ae=n("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",pe).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),ee=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,de=n(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",ee).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),ge=n(/^!?\[(label)\]\[(ref)\]/).replace("label",ee).replace("ref",D).getRegex(),X=n(/^!?\[(ref)\](?:\[\])?/).replace("ref",D).getRegex(),B=n("reflink|nolink(?!\\()","g").replace("reflink",ge).replace("nolink",X).getRegex(),$={_backpedal:t,anyPunctuation:ue,autolink:he,blockSkip:K,br:U,code:z,del:t,emStrongLDelim:R,emStrongRDelimAst:J,emStrongRDelimUnd:ie,escape:H,link:de,nolink:X,punctuation:G,reflink:ge,reflinkSearch:B,tag:ae,text:j,url:t},Q={...$,link:n(/^!?\[(label)\]\((.*?)\)/).replace("label",ee).getRegex(),reflink:n(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",ee).getRegex()},Z={...$,escape:n(H).replace("])","~|])").getRegex(),url:n(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\$e+" ".repeat(je.length));let Te,Pe,Be;for(;be;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(He=>(Te=He.call({lexer:this},be,ve))?(be=be.substring(Te.raw.length),ve.push(Te),!0):!1))){if(Te=this.tokenizer.space(be)){be=be.substring(Te.raw.length),Te.raw.length===1&&ve.length>0?ve[ve.length-1].raw+=` +`:ve.push(Te);continue}if(Te=this.tokenizer.code(be)){be=be.substring(Te.raw.length),Pe=ve[ve.length-1],Pe&&(Pe.type==="paragraph"||Pe.type==="text")?(Pe.raw+=` +`+Te.raw,Pe.text+=` +`+Te.text,this.inlineQueue[this.inlineQueue.length-1].src=Pe.text):ve.push(Te);continue}if(Te=this.tokenizer.fences(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Te=this.tokenizer.heading(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Te=this.tokenizer.hr(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Te=this.tokenizer.blockquote(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Te=this.tokenizer.list(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Te=this.tokenizer.html(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Te=this.tokenizer.def(be)){be=be.substring(Te.raw.length),Pe=ve[ve.length-1],Pe&&(Pe.type==="paragraph"||Pe.type==="text")?(Pe.raw+=` +`+Te.raw,Pe.text+=` +`+Te.raw,this.inlineQueue[this.inlineQueue.length-1].src=Pe.text):this.tokens.links[Te.tag]||(this.tokens.links[Te.tag]={href:Te.href,title:Te.title});continue}if(Te=this.tokenizer.table(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Te=this.tokenizer.lheading(be)){be=be.substring(Te.raw.length),ve.push(Te);continue}if(Be=be,this.options.extensions&&this.options.extensions.startBlock){let He=1/0;const $e=be.slice(1);let je;this.options.extensions.startBlock.forEach(Xe=>{je=Xe.call({lexer:this},$e),typeof je=="number"&&je>=0&&(He=Math.min(He,je))}),He<1/0&&He>=0&&(Be=be.substring(0,He+1))}if(this.state.top&&(Te=this.tokenizer.paragraph(Be))){Pe=ve[ve.length-1],we&&Pe?.type==="paragraph"?(Pe.raw+=` +`+Te.raw,Pe.text+=` +`+Te.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=Pe.text):ve.push(Te),we=Be.length!==be.length,be=be.substring(Te.raw.length);continue}if(Te=this.tokenizer.text(be)){be=be.substring(Te.raw.length),Pe=ve[ve.length-1],Pe&&Pe.type==="text"?(Pe.raw+=` +`+Te.raw,Pe.text+=` +`+Te.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=Pe.text):ve.push(Te);continue}if(be){const He="Infinite loop on byte: "+be.charCodeAt(0);if(this.options.silent){console.error(He);break}else throw new Error(He)}}return this.state.top=!0,ve}inline(be,ve=[]){return this.inlineQueue.push({src:be,tokens:ve}),ve}inlineTokens(be,ve=[]){let we,Te,Pe,Be=be,He,$e,je;if(this.tokens.links){const Xe=Object.keys(this.tokens.links);if(Xe.length>0)for(;(He=this.tokenizer.rules.inline.reflinkSearch.exec(Be))!=null;)Xe.includes(He[0].slice(He[0].lastIndexOf("[")+1,-1))&&(Be=Be.slice(0,He.index)+"["+"a".repeat(He[0].length-2)+"]"+Be.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(He=this.tokenizer.rules.inline.blockSkip.exec(Be))!=null;)Be=Be.slice(0,He.index)+"["+"a".repeat(He[0].length-2)+"]"+Be.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(He=this.tokenizer.rules.inline.anyPunctuation.exec(Be))!=null;)Be=Be.slice(0,He.index)+"++"+Be.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;be;)if($e||(je=""),$e=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(Xe=>(we=Xe.call({lexer:this},be,ve))?(be=be.substring(we.raw.length),ve.push(we),!0):!1))){if(we=this.tokenizer.escape(be)){be=be.substring(we.raw.length),ve.push(we);continue}if(we=this.tokenizer.tag(be)){be=be.substring(we.raw.length),Te=ve[ve.length-1],Te&&we.type==="text"&&Te.type==="text"?(Te.raw+=we.raw,Te.text+=we.text):ve.push(we);continue}if(we=this.tokenizer.link(be)){be=be.substring(we.raw.length),ve.push(we);continue}if(we=this.tokenizer.reflink(be,this.tokens.links)){be=be.substring(we.raw.length),Te=ve[ve.length-1],Te&&we.type==="text"&&Te.type==="text"?(Te.raw+=we.raw,Te.text+=we.text):ve.push(we);continue}if(we=this.tokenizer.emStrong(be,Be,je)){be=be.substring(we.raw.length),ve.push(we);continue}if(we=this.tokenizer.codespan(be)){be=be.substring(we.raw.length),ve.push(we);continue}if(we=this.tokenizer.br(be)){be=be.substring(we.raw.length),ve.push(we);continue}if(we=this.tokenizer.del(be)){be=be.substring(we.raw.length),ve.push(we);continue}if(we=this.tokenizer.autolink(be)){be=be.substring(we.raw.length),ve.push(we);continue}if(!this.state.inLink&&(we=this.tokenizer.url(be))){be=be.substring(we.raw.length),ve.push(we);continue}if(Pe=be,this.options.extensions&&this.options.extensions.startInline){let Xe=1/0;const et=be.slice(1);let dt;this.options.extensions.startInline.forEach(at=>{dt=at.call({lexer:this},et),typeof dt=="number"&&dt>=0&&(Xe=Math.min(Xe,dt))}),Xe<1/0&&Xe>=0&&(Pe=be.substring(0,Xe+1))}if(we=this.tokenizer.inlineText(Pe)){be=be.substring(we.raw.length),we.raw.slice(-1)!=="_"&&(je=we.raw.slice(-1)),$e=!0,Te=ve[ve.length-1],Te&&Te.type==="text"?(Te.raw+=we.raw,Te.text+=we.text):ve.push(we);continue}if(be){const Xe="Infinite loop on byte: "+be.charCodeAt(0);if(this.options.silent){console.error(Xe);break}else throw new Error(Xe)}}return ve}}class Ce{options;parser;constructor(be){this.options=be||oe.defaults}space(be){return""}code({text:be,lang:ve,escaped:we}){const Te=(ve||"").match(/^\S*/)?.[0],Pe=be.replace(/\n$/,"")+` +`;return Te?'
    '+(we?Pe:b(Pe,!0))+`
    +`:"
    "+(we?Pe:b(Pe,!0))+`
    +`}blockquote({tokens:be}){return`
    +${this.parser.parse(be)}
    +`}html({text:be}){return be}heading({tokens:be,depth:ve}){return`${this.parser.parseInline(be)} +`}hr(be){return`
    +`}list(be){const ve=be.ordered,we=be.start;let Te="";for(let He=0;He +`+Te+" +`}listitem(be){let ve="";if(be.task){const we=this.checkbox({checked:!!be.checked});be.loose?be.tokens.length>0&&be.tokens[0].type==="paragraph"?(be.tokens[0].text=we+" "+be.tokens[0].text,be.tokens[0].tokens&&be.tokens[0].tokens.length>0&&be.tokens[0].tokens[0].type==="text"&&(be.tokens[0].tokens[0].text=we+" "+be.tokens[0].tokens[0].text)):be.tokens.unshift({type:"text",raw:we+" ",text:we+" "}):ve+=we+" "}return ve+=this.parser.parse(be.tokens,!!be.loose),`
  • ${ve}
  • +`}checkbox({checked:be}){return"'}paragraph({tokens:be}){return`

    ${this.parser.parseInline(be)}

    +`}table(be){let ve="",we="";for(let Pe=0;Pe${Te}`),` + +`+ve+` +`+Te+`
    +`}tablerow({text:be}){return` +${be} +`}tablecell(be){const ve=this.parser.parseInline(be.tokens),we=be.header?"th":"td";return(be.align?`<${we} align="${be.align}">`:`<${we}>`)+ve+` +`}strong({tokens:be}){return`${this.parser.parseInline(be)}`}em({tokens:be}){return`${this.parser.parseInline(be)}`}codespan({text:be}){return`${be}`}br(be){return"
    "}del({tokens:be}){return`${this.parser.parseInline(be)}`}link({href:be,title:ve,tokens:we}){const Te=this.parser.parseInline(we),Pe=o(be);if(Pe===null)return Te;be=Pe;let Be='
    ",Be}image({href:be,title:ve,text:we}){const Te=o(be);if(Te===null)return we;be=Te;let Pe=`${we}{const He=Pe[Be].flat(1/0);we=we.concat(this.walkTokens(He,ve))}):Pe.tokens&&(we=we.concat(this.walkTokens(Pe.tokens,ve)))}}return we}use(...be){const ve=this.defaults.extensions||{renderers:{},childTokens:{}};return be.forEach(we=>{const Te={...we};if(Te.async=this.defaults.async||Te.async||!1,we.extensions&&(we.extensions.forEach(Pe=>{if(!Pe.name)throw new Error("extension name required");if("renderer"in Pe){const Be=ve.renderers[Pe.name];Be?ve.renderers[Pe.name]=function(...He){let $e=Pe.renderer.apply(this,He);return $e===!1&&($e=Be.apply(this,He)),$e}:ve.renderers[Pe.name]=Pe.renderer}if("tokenizer"in Pe){if(!Pe.level||Pe.level!=="block"&&Pe.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const Be=ve[Pe.level];Be?Be.unshift(Pe.tokenizer):ve[Pe.level]=[Pe.tokenizer],Pe.start&&(Pe.level==="block"?ve.startBlock?ve.startBlock.push(Pe.start):ve.startBlock=[Pe.start]:Pe.level==="inline"&&(ve.startInline?ve.startInline.push(Pe.start):ve.startInline=[Pe.start]))}"childTokens"in Pe&&Pe.childTokens&&(ve.childTokens[Pe.name]=Pe.childTokens)}),Te.extensions=ve),we.renderer){const Pe=this.defaults.renderer||new Ce(this.defaults);for(const Be in we.renderer){if(!(Be in Pe))throw new Error(`renderer '${Be}' does not exist`);if(["options","parser"].includes(Be))continue;const He=Be,$e=we.renderer[He],je=Pe[He];Pe[He]=(...Xe)=>{let et=$e.apply(Pe,Xe);return et===!1&&(et=je.apply(Pe,Xe)),et||""}}Te.renderer=Pe}if(we.tokenizer){const Pe=this.defaults.tokenizer||new a(this.defaults);for(const Be in we.tokenizer){if(!(Be in Pe))throw new Error(`tokenizer '${Be}' does not exist`);if(["options","rules","lexer"].includes(Be))continue;const He=Be,$e=we.tokenizer[He],je=Pe[He];Pe[He]=(...Xe)=>{let et=$e.apply(Pe,Xe);return et===!1&&(et=je.apply(Pe,Xe)),et}}Te.tokenizer=Pe}if(we.hooks){const Pe=this.defaults.hooks||new Ee;for(const Be in we.hooks){if(!(Be in Pe))throw new Error(`hook '${Be}' does not exist`);if(Be==="options")continue;const He=Be,$e=we.hooks[He],je=Pe[He];Ee.passThroughHooks.has(Be)?Pe[He]=Xe=>{if(this.defaults.async)return Promise.resolve($e.call(Pe,Xe)).then(dt=>je.call(Pe,dt));const et=$e.call(Pe,Xe);return je.call(Pe,et)}:Pe[He]=(...Xe)=>{let et=$e.apply(Pe,Xe);return et===!1&&(et=je.apply(Pe,Xe)),et}}Te.hooks=Pe}if(we.walkTokens){const Pe=this.defaults.walkTokens,Be=we.walkTokens;Te.walkTokens=function(He){let $e=[];return $e.push(Be.call(this,He)),Pe&&($e=$e.concat(Pe.call(this,He))),$e}}this.defaults={...this.defaults,...Te}}),this}setOptions(be){return this.defaults={...this.defaults,...be},this}lexer(be,ve){return me.lex(be,ve??this.defaults)}parser(be,ve){return Le.parse(be,ve??this.defaults)}parseMarkdown(be,ve){return(Te,Pe)=>{const Be={...Pe},He={...this.defaults,...Be},$e=this.onError(!!He.silent,!!He.async);if(this.defaults.async===!0&&Be.async===!1)return $e(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof Te>"u"||Te===null)return $e(new Error("marked(): input parameter is undefined or null"));if(typeof Te!="string")return $e(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(Te)+", string expected"));if(He.hooks&&(He.hooks.options=He),He.async)return Promise.resolve(He.hooks?He.hooks.preprocess(Te):Te).then(je=>be(je,He)).then(je=>He.hooks?He.hooks.processAllTokens(je):je).then(je=>He.walkTokens?Promise.all(this.walkTokens(je,He.walkTokens)).then(()=>je):je).then(je=>ve(je,He)).then(je=>He.hooks?He.hooks.postprocess(je):je).catch($e);try{He.hooks&&(Te=He.hooks.preprocess(Te));let je=be(Te,He);He.hooks&&(je=He.hooks.processAllTokens(je)),He.walkTokens&&this.walkTokens(je,He.walkTokens);let Xe=ve(je,He);return He.hooks&&(Xe=He.hooks.postprocess(Xe)),Xe}catch(je){return $e(je)}}}onError(be,ve){return we=>{if(we.message+=` +Please report this to https://github.com/markedjs/marked.`,be){const Te="

    An error occurred:

    "+b(we.message+"",!0)+"
    ";return ve?Promise.resolve(Te):Te}if(ve)return Promise.reject(we);throw we}}}const Ae=new Me;function Ne(xe,be){return Ae.parse(xe,be)}Ne.options=Ne.setOptions=function(xe){return Ae.setOptions(xe),Ne.defaults=Ae.defaults,d(Ne.defaults),Ne},Ne.getDefaults=e,Ne.defaults=oe.defaults,Ne.use=function(...xe){return Ae.use(...xe),Ne.defaults=Ae.defaults,d(Ne.defaults),Ne},Ne.walkTokens=function(xe,be){return Ae.walkTokens(xe,be)},Ne.parseInline=Ae.parseInline,Ne.Parser=Le,Ne.parser=Le.parse,Ne.Renderer=Ce,Ne.TextRenderer=ye,Ne.Lexer=me,Ne.lexer=me.lex,Ne.Tokenizer=a,Ne.Hooks=Ee,Ne.parse=Ne;const Ke=Ne.options,ze=Ne.setOptions,Ge=Ne.use,it=Ne.walkTokens,Oe=Ne.parseInline,Fe=Ne,fe=Le.parse,_e=me.lex;oe.Hooks=Ee,oe.Lexer=me,oe.Marked=Me,oe.Parser=Le,oe.Renderer=Ce,oe.TextRenderer=ye,oe.Tokenizer=a,oe.getDefaults=e,oe.lexer=_e,oe.marked=Ne,oe.options=Ke,oe.parse=Fe,oe.parseInline=Oe,oe.parser=fe,oe.setOptions=ze,oe.use=Ge,oe.walkTokens=it}),define(ne[128],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Mimes=void 0,e.Mimes=Object.freeze({text:"text/plain",binary:"application/octet-stream",unknown:"application/unknown",markdown:"text/markdown",latex:"text/latex",uriList:"text/uri-list"})}),define(ne[224],se([1,0,128]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DataTransfers=void 0,e.DataTransfers={RESOURCES:"ResourceURLs",DOWNLOAD_URL:"DownloadURL",FILES:"Files",TEXT:d.Mimes.text,INTERNAL_URI_LIST:"application/vnd.code.uri-list"}}),define(ne[448],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getKoreanAltChars=d;function d(o){const t=E(o);if(t&&t.length>0)return new Uint32Array(t)}let k=0;const I=new Uint32Array(10);function E(o){if(k=0,y(o,_,4352),k>0||(y(o,b,4449),k>0)||(y(o,p,4520),k>0)||(y(o,n,12593),k))return I.subarray(0,k);if(o>=44032&&o<=55203){const t=o-44032,i=t%588,s=Math.floor(t/588),g=Math.floor(i/28),c=i%28-1;if(s<_.length?y(s,_,0):4352+s-12593=0&&(c0)return I.subarray(0,k)}}function y(o,t,i){o>=i&&o>8&&(I[k++]=o>>8&255),o>>16&&(I[k++]=o>>16&255))}const _=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),b=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),p=new Uint16Array([114,82,29810,115,30579,26483,101,102,29286,24934,29030,29798,30822,30310,26470,97,113,29809,116,84,100,119,99,122,120,118,103]),n=new Uint16Array([114,82,29810,115,30579,26483,101,69,102,29286,24934,29030,29798,30822,30310,26470,97,113,81,29809,116,84,100,119,87,99,122,120,118,103,107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108])}),define(ne[449],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ArrayNavigator=void 0;class d{constructor(I,E=0,y=I.length,m=E-1){this.items=I,this.start=E,this.end=y,this.index=m}current(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]}next(){return this.index=Math.min(this.index+1,this.end),this.current()}previous(){return this.index=Math.max(this.index-1,this.start-1),this.current()}first(){return this.index=this.start,this.current()}last(){return this.index=this.end-1,this.current()}}e.ArrayNavigator=d}),define(ne[450],se([1,0,449]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HistoryNavigator=void 0;class k{constructor(E=[],y=10){this._initialize(E),this._limit=y,this._onChange()}getHistory(){return this._elements}add(E){this._history.delete(E),this._history.add(E),this._onChange()}next(){return this._navigator.next()}previous(){return this._currentPosition()!==0?this._navigator.previous():null}current(){return this._navigator.current()}first(){return this._navigator.first()}last(){return this._navigator.last()}isLast(){return this._currentPosition()>=this._elements.length-1}isNowhere(){return this._navigator.current()===null}has(E){return this._history.has(E)}_onChange(){this._reduceToLimit();const E=this._elements;this._navigator=new d.ArrayNavigator(E,0,E.length,E.length)}_reduceToLimit(){const E=this._elements;E.length>this._limit&&this._initialize(E.slice(E.length-this._limit))}_currentPosition(){const E=this._navigator.current();return E?this._elements.indexOf(E):-1}_initialize(E){this._history=new Set;for(const y of E)this._history.add(y)}get _elements(){const E=[];return this._history.forEach(y=>E.push(y)),E}}e.HistoryNavigator=k}),define(ne[141],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SlidingWindowAverage=e.MovingAverage=void 0,e.clamp=d;function d(E,y,m){return Math.min(Math.max(E,y),m)}class k{constructor(){this._n=1,this._val=0}update(y){return this._val=this._val+(y-this._val)/this._n,this._n+=1,this._val}get value(){return this._val}}e.MovingAverage=k;class I{constructor(y){this._n=0,this._val=0,this._values=[],this._index=0,this._sum=0,this._values=new Array(y),this._values.fill(0,0,y)}update(y){const m=this._values[this._index];return this._values[this._index]=y,this._index=(this._index+1)%this._values.length,this._sum-=m,this._sum+=y,this._nc.debugName).join(", ")+")",{color:"gray"})}handleDerivedCreated(g){const c=g.handleChange;this.changedObservablesSets.set(g,new Set),g.handleChange=(l,a)=>(this.changedObservablesSets.get(g).add(l),c.apply(g,[l,a]))}handleDerivedRecomputed(g,c){const l=this.changedObservablesSets.get(g);console.log(...this.textToConsoleArgs([_("derived recomputed"),b(g.debugName,{color:"BlueViolet"}),...this.formatInfo(c),this.formatChanges(l),{data:[{fn:g._debugNameData.referenceFn??g._computeFn}]}])),l.clear()}handleFromEventObservableTriggered(g,c){console.log(...this.textToConsoleArgs([_("observable from event triggered"),b(g.debugName,{color:"BlueViolet"}),...this.formatInfo(c),{data:[{fn:g._getValue}]}]))}handleAutorunCreated(g){const c=g.handleChange;this.changedObservablesSets.set(g,new Set),g.handleChange=(l,a)=>(this.changedObservablesSets.get(g).add(l),c.apply(g,[l,a]))}handleAutorunTriggered(g){const c=this.changedObservablesSets.get(g);console.log(...this.textToConsoleArgs([_("autorun"),b(g.debugName,{color:"BlueViolet"}),this.formatChanges(c),{data:[{fn:g._debugNameData.referenceFn??g._runFn}]}])),c.clear(),this.indentation++}handleAutorunFinished(g){this.indentation--}handleBeginTransaction(g){let c=g.getDebugName();c===void 0&&(c=""),console.log(...this.textToConsoleArgs([_("transaction"),b(c,{color:"BlueViolet"}),{data:[{fn:g._fn}]}])),this.indentation++}handleEndTransaction(){this.indentation--}}e.ConsoleObservableLogger=E;function y(s){const g=new Array,c=[];let l="";function a(u){if("length"in u)for(const C of u)C&&a(C);else"text"in u?(l+=`%c${u.text}`,g.push(u.style),u.data&&c.push(...u.data)):"data"in u&&c.push(...u.data)}a(s);const r=[l,...g];return r.push(...c),r}function m(s){return b(s,{color:"black"})}function _(s){return b(i(`${s}: `,10),{color:"black",bold:!0})}function b(s,g={color:"black"}){function c(a){return Object.entries(a).reduce((r,[u,C])=>`${r}${u}:${C};`,"")}const l={color:g.color};return g.strikeThrough&&(l["text-decoration"]="line-through"),g.bold&&(l["font-weight"]="bold"),{text:s,style:c(l)}}function p(s,g){switch(typeof s){case"number":return""+s;case"string":return s.length+2<=g?`"${s}"`:`"${s.substr(0,g-7)}"+...`;case"boolean":return s?"true":"false";case"undefined":return"undefined";case"object":return s===null?"null":Array.isArray(s)?n(s,g):o(s,g);case"symbol":return s.toString();case"function":return`[[Function${s.name?" "+s.name:""}]]`;default:return""+s}}function n(s,g){let c="[ ",l=!0;for(const a of s){if(l||(c+=", "),c.length-5>g){c+="...";break}l=!1,c+=`${p(a,g-c.length)}`}return c+=" ]",c}function o(s,g){let c="{ ",l=!0;for(const[a,r]of Object.entries(s)){if(l||(c+=", "),c.length-5>g){c+="...";break}l=!1,c+=`${a}: ${p(r,g-c.length)}`}return c+=" }",c}function t(s,g){let c="";for(let l=1;l<=g;l++)c+=s;return c}function i(s,g){for(;s.length{i.clear(),t(g,c,i)});return(0,k.toDisposable)(()=>{s.dispose(),i.dispose()})}function p(o){const t=new k.DisposableStore,i=m({owner:void 0,debugName:void 0,debugReferenceFn:o},s=>{t.clear(),o(s,t)});return(0,k.toDisposable)(()=>{i.dispose(),t.dispose()})}class n{get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}constructor(t,i,s,g){this._debugNameData=t,this._runFn=i,this.createChangeSummary=s,this._handleChange=g,this.state=2,this.updateCount=0,this.disposed=!1,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=this.createChangeSummary?.(),(0,E.getLogger)()?.handleAutorunCreated(this),this._runIfNeeded(),(0,k.trackDisposable)(this)}dispose(){this.disposed=!0;for(const t of this.dependencies)t.removeObserver(this);this.dependencies.clear(),(0,k.markAsDisposed)(this)}_runIfNeeded(){if(this.state===3)return;const t=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=t,this.state=3;const i=this.disposed;try{if(!i){(0,E.getLogger)()?.handleAutorunTriggered(this);const s=this.changeSummary;this.changeSummary=this.createChangeSummary?.(),this._runFn(this,s)}}finally{i||(0,E.getLogger)()?.handleAutorunFinished(this);for(const s of this.dependenciesToBeRemoved)s.removeObserver(this);this.dependenciesToBeRemoved.clear()}}toString(){return`Autorun<${this.debugName}>`}beginUpdate(){this.state===3&&(this.state=1),this.updateCount++}endUpdate(){if(this.updateCount===1)do{if(this.state===1){this.state=3;for(const t of this.dependencies)if(t.reportChanges(),this.state===2)break}this._runIfNeeded()}while(this.state!==3);this.updateCount--,(0,d.assertFn)(()=>this.updateCount>=0)}handlePossibleChange(t){this.state===3&&this.dependencies.has(t)&&!this.dependenciesToBeRemoved.has(t)&&(this.state=1)}handleChange(t,i){this.dependencies.has(t)&&!this.dependenciesToBeRemoved.has(t)&&(!this._handleChange||this._handleChange({changedObservable:t,change:i,didChange:g=>g===t},this.changeSummary))&&(this.state=2)}readObservable(t){if(this.disposed)return t.get();t.addObserver(this);const i=t.get();return this.dependencies.add(t),this.dependenciesToBeRemoved.delete(t),i}}e.AutorunObserver=n,function(o){o.Observer=n}(y||(e.autorun=y={}))}),define(ne[92],se([1,0,102,161,162]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DisposableObservableValue=e.ObservableValue=e.TransactionImpl=e.BaseObservable=e.ConvenientObservable=void 0,e._setRecomputeInitiallyAndOnChange=y,e._setKeepObserved=_,e._setDerivedOpts=p,e.transaction=t,e.globalTransaction=s,e.asyncTransaction=g,e.subtransaction=c,e.observableValue=a,e.disposableObservableValue=u;let E;function y(f){E=f}let m;function _(f){m=f}let b;function p(f){b=f}class n{get TChange(){return null}reportChanges(){this.get()}read(h){return h?h.readObservable(this):this.get()}map(h,v){const w=v===void 0?void 0:h,S=v===void 0?h:v;return b({owner:w,debugName:()=>{const L=(0,k.getFunctionName)(S);if(L!==void 0)return L;const T=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(S.toString());if(T)return`${this.debugName}.${T[2]}`;if(!w)return`${this.debugName} (mapped)`},debugReferenceFn:S},L=>S(this.read(L),L))}flatten(){return b({owner:void 0,debugName:()=>`${this.debugName} (flattened)`},h=>this.read(h).read(h))}recomputeInitiallyAndOnChange(h,v){return h.add(E(this,v)),this}keepObserved(h){return h.add(m(this)),this}}e.ConvenientObservable=n;class o extends n{constructor(){super(...arguments),this.observers=new Set}addObserver(h){const v=this.observers.size;this.observers.add(h),v===0&&this.onFirstObserverAdded()}removeObserver(h){this.observers.delete(h)&&this.observers.size===0&&this.onLastObserverRemoved()}onFirstObserverAdded(){}onLastObserverRemoved(){}}e.BaseObservable=o;function t(f,h){const v=new l(f,h);try{f(v)}finally{v.finish()}}let i;function s(f){if(i)f(i);else{const h=new l(f,void 0);i=h;try{f(h)}finally{h.finish(),i=void 0}}}async function g(f,h){const v=new l(f,h);try{await f(v)}finally{v.finish()}}function c(f,h,v){f?h(f):t(h,v)}class l{constructor(h,v){this._fn=h,this._getDebugName=v,this.updatingObservers=[],(0,I.getLogger)()?.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():(0,k.getFunctionName)(this._fn)}updateObserver(h,v){this.updatingObservers.push({observer:h,observable:v}),h.beginUpdate(v)}finish(){const h=this.updatingObservers;for(let v=0;v{},()=>`Setting ${this.debugName}`));try{const L=this._value;this._setValue(h),(0,I.getLogger)()?.handleObservableChanged(this,{oldValue:L,newValue:h,change:w,didChange:!0,hadValue:!0});for(const D of this.observers)v.updateObserver(D,this),D.handleChange(this,w)}finally{S&&S.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(h){this._value=h}}e.ObservableValue=r;function u(f,h){let v;return typeof f=="string"?v=new k.DebugNameData(void 0,f,void 0):v=new k.DebugNameData(f,void 0,void 0),new C(v,h,d.strictEquals)}class C extends r{_setValue(h){this._value!==h&&(this._value&&this._value.dispose(),this._value=h)}dispose(){this._value?.dispose()}}e.DisposableObservableValue=C}),define(ne[65],se([1,0,90,102,2,92,161,162]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DerivedWithSetter=e.Derived=void 0,e.derived=_,e.derivedWithSetter=b,e.derivedOpts=p,e.derivedHandleChanges=n,e.derivedWithStore=o,e.derivedDisposable=t;function _(g,c){return c!==void 0?new i(new y.DebugNameData(g,void 0,c),c,void 0,void 0,void 0,k.strictEquals):new i(new y.DebugNameData(void 0,void 0,g),g,void 0,void 0,void 0,k.strictEquals)}function b(g,c,l){return new s(new y.DebugNameData(g,void 0,c),c,void 0,void 0,void 0,k.strictEquals,l)}function p(g,c){return new i(new y.DebugNameData(g.owner,g.debugName,g.debugReferenceFn),c,void 0,void 0,g.onLastObserverRemoved,g.equalsFn??k.strictEquals)}(0,E._setDerivedOpts)(p);function n(g,c){return new i(new y.DebugNameData(g.owner,g.debugName,void 0),c,g.createEmptyChangeSummary,g.handleChange,void 0,g.equalityComparer??k.strictEquals)}function o(g,c){let l,a;c===void 0?(l=g,a=void 0):(a=g,l=c);const r=new I.DisposableStore;return new i(new y.DebugNameData(a,void 0,l),u=>(r.clear(),l(u,r)),void 0,void 0,()=>r.dispose(),k.strictEquals)}function t(g,c){let l,a;c===void 0?(l=g,a=void 0):(a=g,l=c);let r;return new i(new y.DebugNameData(a,void 0,l),u=>{r?r.clear():r=new I.DisposableStore;const C=l(u);return C&&r.add(C),C},void 0,void 0,()=>{r&&(r.dispose(),r=void 0)},k.strictEquals)}class i extends E.BaseObservable{get debugName(){return this._debugNameData.getDebugName(this)??"(anonymous)"}constructor(c,l,a,r,u=void 0,C){super(),this._debugNameData=c,this._computeFn=l,this.createChangeSummary=a,this._handleChange=r,this._handleLastObserverRemoved=u,this._equalityComparator=C,this.state=0,this.value=void 0,this.updateCount=0,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=void 0,this.changeSummary=this.createChangeSummary?.(),(0,m.getLogger)()?.handleDerivedCreated(this)}onLastObserverRemoved(){this.state=0,this.value=void 0;for(const c of this.dependencies)c.removeObserver(this);this.dependencies.clear(),this._handleLastObserverRemoved?.()}get(){if(this.observers.size===0){const c=this._computeFn(this,this.createChangeSummary?.());return this.onLastObserverRemoved(),c}else{do{if(this.state===1){for(const c of this.dependencies)if(c.reportChanges(),this.state===2)break}this.state===1&&(this.state=3),this._recomputeIfNeeded()}while(this.state!==3);return this.value}}_recomputeIfNeeded(){if(this.state===3)return;const c=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=c;const l=this.state!==0,a=this.value;this.state=3;const r=this.changeSummary;this.changeSummary=this.createChangeSummary?.();try{this.value=this._computeFn(this,r)}finally{for(const C of this.dependenciesToBeRemoved)C.removeObserver(this);this.dependenciesToBeRemoved.clear()}const u=l&&!this._equalityComparator(a,this.value);if((0,m.getLogger)()?.handleDerivedRecomputed(this,{oldValue:a,newValue:this.value,change:void 0,didChange:u,hadValue:l}),u)for(const C of this.observers)C.handleChange(this,void 0)}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(c){this.updateCount++;const l=this.updateCount===1;if(this.state===3&&(this.state=1,!l))for(const a of this.observers)a.handlePossibleChange(this);if(l)for(const a of this.observers)a.beginUpdate(this)}endUpdate(c){if(this.updateCount--,this.updateCount===0){const l=[...this.observers];for(const a of l)a.endUpdate(this)}(0,d.assertFn)(()=>this.updateCount>=0)}handlePossibleChange(c){if(this.state===3&&this.dependencies.has(c)&&!this.dependenciesToBeRemoved.has(c)){this.state=1;for(const l of this.observers)l.handlePossibleChange(this)}}handleChange(c,l){if(this.dependencies.has(c)&&!this.dependenciesToBeRemoved.has(c)){const a=this._handleChange?this._handleChange({changedObservable:c,change:l,didChange:u=>u===c},this.changeSummary):!0,r=this.state===3;if(a&&(this.state===1||r)&&(this.state=2,r))for(const u of this.observers)u.handlePossibleChange(this)}}readObservable(c){c.addObserver(this);const l=c.get();return this.dependencies.add(c),this.dependenciesToBeRemoved.delete(c),l}addObserver(c){const l=!this.observers.has(c)&&this.updateCount>0;super.addObserver(c),l&&c.beginUpdate(this)}removeObserver(c){const l=this.observers.has(c)&&this.updateCount>0;super.removeObserver(c),l&&c.endUpdate(this)}}e.Derived=i;class s extends i{constructor(c,l,a,r,u=void 0,C,f){super(c,l,a,r,u,C),this.set=f}}e.DerivedWithSetter=s}),define(ne[451],se([1,0,92]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LazyObservableValue=void 0;class k extends d.BaseObservable{get debugName(){return this._debugNameData.getDebugName(this)??"LazyObservableValue"}constructor(E,y,m){super(),this._debugNameData=E,this._equalityComparator=m,this._isUpToDate=!0,this._deltas=[],this._updateCounter=0,this._value=y}get(){return this._update(),this._value}_update(){if(!this._isUpToDate)if(this._isUpToDate=!0,this._deltas.length>0){for(const E of this.observers)for(const y of this._deltas)E.handleChange(this,y);this._deltas.length=0}else for(const E of this.observers)E.handleChange(this,void 0)}_beginUpdate(){if(this._updateCounter++,this._updateCounter===1)for(const E of this.observers)E.beginUpdate(this)}_endUpdate(){if(this._updateCounter--,this._updateCounter===0){this._update();const E=[...this.observers];for(const y of E)y.endUpdate(this)}}addObserver(E){const y=!this.observers.has(E)&&this._updateCounter>0;super.addObserver(E),y&&E.beginUpdate(this)}removeObserver(E){const y=this.observers.has(E)&&this._updateCounter>0;super.removeObserver(E),y&&E.endUpdate(this)}set(E,y,m){if(m===void 0&&this._equalityComparator(this._value,E))return;let _;y||(y=_=new d.TransactionImpl(()=>{},()=>`Setting ${this.debugName}`));try{if(this._isUpToDate=!1,this._setValue(E),m!==void 0&&this._deltas.push(m),y.updateObserver({beginUpdate:()=>this._beginUpdate(),endUpdate:()=>this._endUpdate(),handleChange:(b,p)=>{},handlePossibleChange:b=>{}},this),this._updateCounter>1)for(const b of this.observers)b.handlePossibleChange(this)}finally{_&&_.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(E){this._value=E}}e.LazyObservableValue=k}),define(ne[452],se([1,0,102,92,161,451]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.observableValueOpts=y;function y(m,_){return m.lazy?new E.LazyObservableValue(new I.DebugNameData(m.owner,m.debugName,void 0),_,m.equalsFn??d.strictEquals):new k.ObservableValue(new I.DebugNameData(m.owner,m.debugName,void 0),_,m.equalsFn??d.strictEquals)}}),define(ne[453],se([1,0,299,92,8]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PromiseResult=e.ObservablePromise=void 0,e.waitForState=m;class E{static fromFn(b){return new E(b())}constructor(b){this._value=(0,k.observableValue)(this,void 0),this.promiseResult=this._value,this.promise=b.then(p=>((0,k.transaction)(n=>{this._value.set(new y(p,void 0),n)}),p),p=>{throw(0,k.transaction)(n=>{this._value.set(new y(void 0,p),n)}),p})}}e.ObservablePromise=E;class y{constructor(b,p){this.data=b,this.error=p}}e.PromiseResult=y;function m(_,b,p,n){return b||(b=o=>o!=null),new Promise((o,t)=>{let i=!0,s=!1;const g=_.map(l=>({isFinished:b(l),error:p?p(l):!1,state:l})),c=(0,d.autorun)(l=>{const{isFinished:a,error:r,state:u}=g.read(l);(a||r)&&(i?s=!0:c.dispose(),r?t(r===!0?u:r):o(u))});if(n){const l=n.onCancellationRequested(()=>{c.dispose(),l.dispose(),t(new I.CancellationError)});if(n.isCancellationRequested){c.dispose(),l.dispose(),t(new I.CancellationError);return}}i=!1,s&&c.dispose()})}}),define(ne[188],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Range=void 0;var d;(function(k){function I(_,b){if(_.start>=b.end||b.start>=_.end)return{start:0,end:0};const p=Math.max(_.start,b.start),n=Math.min(_.end,b.end);return n-p<=0?{start:0,end:0}:{start:p,end:n}}k.intersect=I;function E(_){return _.end-_.start<=0}k.isEmpty=E;function y(_,b){return!E(I(_,b))}k.intersects=y;function m(_,b){const p=[],n={start:_.start,end:Math.min(b.start,_.end)},o={start:Math.max(b.end,_.start),end:_.end};return E(n)||p.push(n),E(o)||p.push(o),p}k.relativeComplement=m})(d||(e.Range=d={}))}),define(ne[454],se([1,0,188]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RangeMap=void 0,e.groupIntersect=k,e.shift=I,e.consolidate=E;function k(_,b){const p=[];for(const n of b){if(_.start>=n.range.end)continue;if(_.endb.concat(p),[]))}class m{get paddingTop(){return this._paddingTop}set paddingTop(b){this._size=this._size+b-this._paddingTop,this._paddingTop=b}constructor(b){this.groups=[],this._size=0,this._paddingTop=0,this._paddingTop=b??0,this._size=this._paddingTop}splice(b,p,n=[]){const o=n.length-p,t=k({start:0,end:b},this.groups),i=k({start:b+p,end:Number.POSITIVE_INFINITY},this.groups).map(g=>({range:I(g.range,o),size:g.size})),s=n.map((g,c)=>({range:{start:b+c,end:b+c+1},size:g.size}));this.groups=y(t,s,i),this._size=this._paddingTop+this.groups.reduce((g,c)=>g+c.size*(c.range.end-c.range.start),0)}get count(){const b=this.groups.length;return b?this.groups[b-1].range.end:0}get size(){return this._size}indexAt(b){if(b<0)return-1;if(bI.Disposable.None;function M($){if(b){const{onDidAddListener:Q}=$,Z=i.create();let te=0;$.onDidAddListener=()=>{++te===2&&(console.warn("snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here"),Z.print()),Q?.()}}}function A($,Q){return U($,()=>{},0,void 0,!0,void 0,Q)}T.defer=A;function P($){return(Q,Z=null,te)=>{let re=!1,le;return le=$(me=>{if(!re)return le?le.dispose():re=!0,Q.call(Z,me)},null,te),re&&le.dispose(),le}}T.once=P;function N($,Q){return T.once(T.filter($,Q))}T.onceIf=N;function O($,Q,Z){return H((te,re=null,le)=>$(me=>te.call(re,Q(me)),null,le),Z)}T.map=O;function F($,Q,Z){return H((te,re=null,le)=>$(me=>{Q(me),te.call(re,me)},null,le),Z)}T.forEach=F;function x($,Q,Z){return H((te,re=null,le)=>$(me=>Q(me)&&te.call(re,me),null,le),Z)}T.filter=x;function W($){return $}T.signal=W;function V(...$){return(Q,Z=null,te)=>{const re=(0,I.combinedDisposable)(...$.map(le=>le(me=>Q.call(Z,me))));return z(re,te)}}T.any=V;function q($,Q,Z,te){let re=Z;return O($,le=>(re=Q(re,le),re),te)}T.reduce=q;function H($,Q){let Z;const te={onWillAddFirstListener(){Z=$(re.fire,re)},onDidRemoveLastListener(){Z?.dispose()}};Q||M(te);const re=new u(te);return Q?.add(re),re.event}function z($,Q){return Q instanceof Array?Q.push($):Q&&Q.add($),$}function U($,Q,Z=100,te=!1,re=!1,le,me){let Ce,ye,Le,Ee=0,Me;const Ae={leakWarningThreshold:le,onWillAddFirstListener(){Ce=$(Ke=>{Ee++,ye=Q(ye,Ke),te&&!Le&&(Ne.fire(ye),ye=void 0),Me=()=>{const ze=ye;ye=void 0,Le=void 0,(!te||Ee>1)&&Ne.fire(ze),Ee=0},typeof Z=="number"?(clearTimeout(Le),Le=setTimeout(Me,Z)):Le===void 0&&(Le=0,queueMicrotask(Me))})},onWillRemoveListener(){re&&Ee>0&&Me?.()},onDidRemoveLastListener(){Me=void 0,Ce.dispose()}};me||M(Ae);const Ne=new u(Ae);return me?.add(Ne),Ne.event}T.debounce=U;function j($,Q=0,Z){return T.debounce($,(te,re)=>te?(te.push(re),te):[re],Q,void 0,!0,void 0,Z)}T.accumulate=j;function Y($,Q=(te,re)=>te===re,Z){let te=!0,re;return x($,le=>{const me=te||!Q(le,re);return te=!1,re=le,me},Z)}T.latch=Y;function G($,Q,Z){return[T.filter($,Q,Z),T.filter($,te=>!Q(te),Z)]}T.split=G;function K($,Q=!1,Z=[],te){let re=Z.slice(),le=$(ye=>{re?re.push(ye):Ce.fire(ye)});te&&te.add(le);const me=()=>{re?.forEach(ye=>Ce.fire(ye)),re=null},Ce=new u({onWillAddFirstListener(){le||(le=$(ye=>Ce.fire(ye)),te&&te.add(le))},onDidAddFirstListener(){re&&(Q?setTimeout(me):me())},onDidRemoveLastListener(){le&&le.dispose(),le=null}});return te&&te.add(Ce),Ce.event}T.buffer=K;function R($,Q){return(te,re,le)=>{const me=Q(new ie);return $(function(Ce){const ye=me.evaluate(Ce);ye!==J&&te.call(re,ye)},void 0,le)}}T.chain=R;const J=Symbol("HaltChainable");class ie{constructor(){this.steps=[]}map(Q){return this.steps.push(Q),this}forEach(Q){return this.steps.push(Z=>(Q(Z),Z)),this}filter(Q){return this.steps.push(Z=>Q(Z)?Z:J),this}reduce(Q,Z){let te=Z;return this.steps.push(re=>(te=Q(te,re),te)),this}latch(Q=(Z,te)=>Z===te){let Z=!0,te;return this.steps.push(re=>{const le=Z||!Q(re,te);return Z=!1,te=re,le?re:J}),this}evaluate(Q){for(const Z of this.steps)if(Q=Z(Q),Q===J)break;return Q}}function ue($,Q,Z=te=>te){const te=(...Ce)=>me.fire(Z(...Ce)),re=()=>$.on(Q,te),le=()=>$.removeListener(Q,te),me=new u({onWillAddFirstListener:re,onDidRemoveLastListener:le});return me.event}T.fromNodeEventEmitter=ue;function he($,Q,Z=te=>te){const te=(...Ce)=>me.fire(Z(...Ce)),re=()=>$.addEventListener(Q,te),le=()=>$.removeEventListener(Q,te),me=new u({onWillAddFirstListener:re,onDidRemoveLastListener:le});return me.event}T.fromDOMEventEmitter=he;function pe($){return new Promise(Q=>P($)(Q))}T.toPromise=pe;function ae($){const Q=new u;return $.then(Z=>{Q.fire(Z)},()=>{Q.fire(void 0)}).finally(()=>{Q.dispose()}),Q.event}T.fromPromise=ae;function ee($,Q){return $(Z=>Q.fire(Z))}T.forward=ee;function de($,Q,Z){return Q(Z),$(te=>Q(te))}T.runAndSubscribe=de;class ge{constructor(Q,Z){this._observable=Q,this._counter=0,this._hasChanged=!1;const te={onWillAddFirstListener:()=>{Q.addObserver(this),this._observable.reportChanges()},onDidRemoveLastListener:()=>{Q.removeObserver(this)}};Z||M(te),this.emitter=new u(te),Z&&Z.add(this.emitter)}beginUpdate(Q){this._counter++}handlePossibleChange(Q){}handleChange(Q,Z){this._hasChanged=!0}endUpdate(Q){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function X($,Q){return new ge($,Q).emitter.event}T.fromObservable=X;function B($){return(Q,Z,te)=>{let re=0,le=!1;const me={beginUpdate(){re++},endUpdate(){re--,re===0&&($.reportChanges(),le&&(le=!1,Q.call(Z)))},handlePossibleChange(){},handleChange(){le=!0}};$.addObserver(me),$.reportChanges();const Ce={dispose(){$.removeObserver(me)}};return te instanceof I.DisposableStore?te.add(Ce):Array.isArray(te)&&te.push(Ce),Ce}}T.fromObservableLight=B})(p||(e.Event=p={}));class n{static{this.all=new Set}static{this._idPool=0}constructor(M){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${M}_${n._idPool++}`,n.all.add(this)}start(M){this._stopWatch=new y.StopWatch,this.listenerCount=M}stop(){if(this._stopWatch){const M=this._stopWatch.elapsed();this.durations.push(M),this.elapsedOverall+=M,this.invocationCount+=1,this._stopWatch=void 0}}}e.EventProfiling=n;let o=-1;class t{static{this._idPool=1}constructor(M,A,P=(t._idPool++).toString(16).padStart(3,"0")){this._errorHandler=M,this.threshold=A,this.name=P,this._warnCountdown=0}dispose(){this._stacks?.clear()}check(M,A){const P=this.threshold;if(P<=0||A{const O=this._stacks.get(M.value)||0;this._stacks.set(M.value,O-1)}}getMostFrequentStack(){if(!this._stacks)return;let M,A=0;for(const[P,N]of this._stacks)(!M||A{if(T instanceof c)M(T);else for(let A=0;A{T.length!==0&&(console.warn("[LEAKING LISTENERS] GC'ed these listeners that were NOT yet disposed:"),console.warn(T.join(` +`)),T.length=0)},3e3),r=new FinalizationRegistry(M=>{typeof M=="string"&&T.push(M)})}class u{constructor(M){this._size=0,this._options=M,this._leakageMon=o>0||this._options?.leakWarningThreshold?new t(M?.onListenerError??d.onUnexpectedError,this._options?.leakWarningThreshold??o):void 0,this._perfMon=this._options?._profName?new n(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(_){const M=this._listeners;queueMicrotask(()=>{a(M,A=>A.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??=(M,A,P)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){const W=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(W);const V=this._leakageMon.getMostFrequentStack()??["UNKNOWN stack",-1],q=new g(`${W}. HINT: Stack shows most frequent listener (${V[1]}-times)`,V[0]);return(this._options?.onListenerError||d.onUnexpectedError)(q),I.Disposable.None}if(this._disposed)return I.Disposable.None;A&&(M=M.bind(A));const N=new c(M);let O,F;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(N.stack=i.create(),O=this._leakageMon.check(N.stack,this._size+1)),_&&(N.stack=F??i.create()),this._listeners?this._listeners instanceof c?(this._deliveryQueue??=new f,this._listeners=[this._listeners,N]):this._listeners.push(N):(this._options?.onWillAddFirstListener?.(this),this._listeners=N,this._options?.onDidAddFirstListener?.(this)),this._size++;const x=(0,I.toDisposable)(()=>{r?.unregister(x),O?.(),this._removeListener(N)});if(P instanceof I.DisposableStore?P.add(x):Array.isArray(P)&&P.push(x),r){const W=new Error().stack.split(` +`).slice(2,3).join(` +`).trim(),V=/(file:|vscode-file:\/\/vscode-app)?(\/[^:]*:\d+:\d+)/.exec(W);r.register(x,V?.[2]??W,x)}return x},this._event}_removeListener(M){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}const A=this._listeners,P=A.indexOf(M);if(P===-1)throw console.log("disposed?",this._disposed),console.log("size?",this._size),console.log("arr?",JSON.stringify(this._listeners)),new Error("Attempted to dispose unknown listener");this._size--,A[P]=void 0;const N=this._deliveryQueue.current===this;if(this._size*l<=A.length){let O=0;for(let F=0;F0}}e.Emitter=u;const C=()=>new f;e.createEventDeliveryQueue=C;class f{constructor(){this.i=-1,this.end=0}enqueue(M,A,P){this.i=0,this.end=P,this.current=M,this.value=A}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class h extends u{constructor(M){super(M),this._isPaused=0,this._eventQueue=new E.LinkedList,this._mergeFn=M?.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){const M=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(M))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(M){this._size&&(this._isPaused!==0?this._eventQueue.push(M):super.fire(M))}}e.PauseableEmitter=h;class v extends h{constructor(M){super(M),this._delay=M.delay??100}fire(M){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(M)}}e.DebounceEmitter=v;class w extends u{constructor(M){super(M),this._queuedEvents=[],this._mergeFn=M?.merge}fire(M){this.hasListeners()&&(this._queuedEvents.push(M),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(A=>super.fire(A)),this._queuedEvents=[]}))}}e.MicrotaskEmitter=w;class S{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new u({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(M){const A={event:M,listener:null};this.events.push(A),this.hasListeners&&this.hook(A);const P=()=>{this.hasListeners&&this.unhook(A);const N=this.events.indexOf(A);this.events.splice(N,1)};return(0,I.toDisposable)((0,k.createSingleCallFunction)(P))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(M=>this.hook(M))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(M=>this.unhook(M))}hook(M){M.listener=M.event(A=>this.emitter.fire(A))}unhook(M){M.listener?.dispose(),M.listener=null}dispose(){this.emitter.dispose();for(const M of this.events)M.listener?.dispose();this.events=[]}}e.EventMultiplexer=S;class L{constructor(){this.data=[]}wrapEvent(M,A,P){return(N,O,F)=>M(x=>{const W=this.data[this.data.length-1];if(!A){W?W.buffers.push(()=>N.call(O,x)):N.call(O,x);return}const V=W;if(!V){N.call(O,A(P,x));return}V.items??=[],V.items.push(x),V.buffers.length===0&&W.buffers.push(()=>{V.reducedResult??=P?V.items.reduce(A,P):V.items.reduce(A),N.call(O,V.reducedResult)})},void 0,F)}bufferEvents(M){const A={buffers:new Array};this.data.push(A);const P=M();return this.data.pop(),A.buffers.forEach(N=>N()),P}}e.EventBufferer=L;class D{constructor(){this.listening=!1,this.inputEvent=p.None,this.inputEventListener=I.Disposable.None,this.emitter=new u({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(M){this.inputEvent=M,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=M(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}e.Relay=D}),define(ne[93],se([1,0,6]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DomEmitter=void 0;class k{get event(){return this.emitter.event}constructor(E,y,m){const _=b=>this.emitter.fire(b);this.emitter=new d.Emitter({onWillAddFirstListener:()=>E.addEventListener(y,_,m),onDidRemoveLastListener:()=>E.removeEventListener(y,_,m)})}dispose(){this.emitter.dispose()}}e.DomEmitter=k}),define(ne[18],se([1,0,6]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CancellationTokenSource=e.CancellationToken=void 0,e.cancelOnDispose=m;const k=Object.freeze(function(_,b){const p=setTimeout(_.bind(b),0);return{dispose(){clearTimeout(p)}}});var I;(function(_){function b(p){return p===_.None||p===_.Cancelled||p instanceof E?!0:!p||typeof p!="object"?!1:typeof p.isCancellationRequested=="boolean"&&typeof p.onCancellationRequested=="function"}_.isCancellationToken=b,_.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:d.Event.None}),_.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:k})})(I||(e.CancellationToken=I={}));class E{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?k:(this._emitter||(this._emitter=new d.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}class y{constructor(b){this._token=void 0,this._parentListener=void 0,this._parentListener=b&&b.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new E),this._token}cancel(){this._token?this._token instanceof E&&this._token.cancel():this._token=I.Cancelled}dispose(b=!1){b&&this.cancel(),this._parentListener?.dispose(),this._token?this._token instanceof E&&this._token.dispose():this._token=I.None}}e.CancellationTokenSource=y;function m(_){const b=new y;return _.add({dispose(){b.cancel()}}),b.token}}),define(ne[300],se([1,0,6]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IME=e.IMEImpl=void 0;class k{constructor(){this._onDidChange=new d.Emitter,this.onDidChange=this._onDidChange.event,this._enabled=!0}get enabled(){return this._enabled}enable(){this._enabled=!0,this._onDidChange.fire()}disable(){this._enabled=!1,this._onDidChange.fire()}}e.IMEImpl=k,e.IME=new k}),define(ne[189],se([1,0,6,2,92,161,65,162,102]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ValueWithChangeEventFromObservable=e.KeepAliveObserver=e.FromEventObservable=void 0,e.constObservable=b,e.observableFromEvent=n,e.observableFromEventOpts=o,e.observableSignalFromEvent=i,e.observableSignal=g,e.keepObserved=l,e.recomputeInitiallyAndOnChange=a,e.derivedObservableWithCache=u,e.derivedObservableWithWritableCache=C,e.mapObservableArrayCached=f,e.observableFromValueWithChangeEvent=w,e.derivedConstOnceDefined=S;function b(L){return new p(L)}class p extends I.ConvenientObservable{constructor(D){super(),this.value=D}get debugName(){return this.toString()}get(){return this.value}addObserver(D){}removeObserver(D){}toString(){return`Const: ${this.value}`}}function n(...L){let D,T,M;return L.length===3?[D,T,M]=L:[T,M]=L,new t(new E.DebugNameData(D,void 0,M),T,M,()=>t.globalTransaction,_.strictEquals)}function o(L,D,T){return new t(new E.DebugNameData(L.owner,L.debugName,L.debugReferenceFn??T),D,T,()=>t.globalTransaction,L.equalsFn??_.strictEquals)}class t extends I.BaseObservable{constructor(D,T,M,A,P){super(),this._debugNameData=D,this.event=T,this._getValue=M,this._getTransaction=A,this._equalityComparator=P,this.hasValue=!1,this.handleEvent=N=>{const O=this._getValue(N),F=this.value,x=!this.hasValue||!this._equalityComparator(F,O);let W=!1;x&&(this.value=O,this.hasValue&&(W=!0,(0,I.subtransaction)(this._getTransaction(),V=>{(0,m.getLogger)()?.handleFromEventObservableTriggered(this,{oldValue:F,newValue:O,change:void 0,didChange:x,hadValue:this.hasValue});for(const q of this.observers)V.updateObserver(q,this),q.handleChange(this,void 0)},()=>{const V=this.getDebugName();return"Event fired"+(V?`: ${V}`:"")})),this.hasValue=!0),W||(0,m.getLogger)()?.handleFromEventObservableTriggered(this,{oldValue:F,newValue:O,change:void 0,didChange:x,hadValue:this.hasValue})}}getDebugName(){return this._debugNameData.getDebugName(this)}get debugName(){const D=this.getDebugName();return"From Event"+(D?`: ${D}`:"")}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0,this.hasValue=!1,this.value=void 0}get(){return this.subscription?(this.hasValue||this.handleEvent(void 0),this.value):this._getValue(void 0)}}e.FromEventObservable=t,function(L){L.Observer=t;function D(T,M){let A=!1;t.globalTransaction===void 0&&(t.globalTransaction=T,A=!0);try{M()}finally{A&&(t.globalTransaction=void 0)}}L.batchEventsGlobally=D}(n||(e.observableFromEvent=n={}));function i(L,D){return new s(L,D)}class s extends I.BaseObservable{constructor(D,T){super(),this.debugName=D,this.event=T,this.handleEvent=()=>{(0,I.transaction)(M=>{for(const A of this.observers)M.updateObserver(A,this),A.handleChange(this,void 0)},()=>this.debugName)}}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0}get(){}}function g(L){return typeof L=="string"?new c(L):new c(void 0,L)}class c extends I.BaseObservable{get debugName(){return new E.DebugNameData(this._owner,this._debugName,void 0).getDebugName(this)??"Observable Signal"}toString(){return this.debugName}constructor(D,T){super(),this._debugName=D,this._owner=T}trigger(D,T){if(!D){(0,I.transaction)(M=>{this.trigger(M,T)},()=>`Trigger signal ${this.debugName}`);return}for(const M of this.observers)D.updateObserver(M,this),M.handleChange(this,T)}get(){}}function l(L){const D=new r(!1,void 0);return L.addObserver(D),(0,k.toDisposable)(()=>{L.removeObserver(D)})}(0,I._setKeepObserved)(l);function a(L,D){const T=new r(!0,D);return L.addObserver(T),D?D(L.get()):L.reportChanges(),(0,k.toDisposable)(()=>{L.removeObserver(T)})}(0,I._setRecomputeInitiallyAndOnChange)(a);class r{constructor(D,T){this._forceRecompute=D,this._handleValue=T,this._counter=0}beginUpdate(D){this._counter++}endUpdate(D){this._counter--,this._counter===0&&this._forceRecompute&&(this._handleValue?this._handleValue(D.get()):D.reportChanges())}handlePossibleChange(D){}handleChange(D,T){}}e.KeepAliveObserver=r;function u(L,D){let T;return(0,y.derivedOpts)({owner:L,debugReferenceFn:D},A=>(T=D(A,T),T))}function C(L,D){let T;const M=g("derivedObservableWithWritableCache"),A=(0,y.derived)(L,P=>(M.read(P),T=D(P,T),T));return Object.assign(A,{clearCache:P=>{T=void 0,M.trigger(P)},setCache:(P,N)=>{T=P,M.trigger(N)}})}function f(L,D,T,M){let A=new h(T,M);return(0,y.derivedOpts)({debugReferenceFn:T,owner:L,onLastObserverRemoved:()=>{A.dispose(),A=new h(T)}},N=>(A.setItems(D.read(N)),A.getItems()))}class h{constructor(D,T){this._map=D,this._keySelector=T,this._cache=new Map,this._items=[]}dispose(){this._cache.forEach(D=>D.store.dispose()),this._cache.clear()}setItems(D){const T=[],M=new Set(this._cache.keys());for(const A of D){const P=this._keySelector?this._keySelector(A):A;let N=this._cache.get(P);if(N)M.delete(P);else{const O=new k.DisposableStore;N={out:this._map(A,O),store:O},this._cache.set(P,N)}T.push(N.out)}for(const A of M)this._cache.get(A).store.dispose(),this._cache.delete(A);this._items=T}getItems(){return this._items}}class v{constructor(D){this.observable=D}get onDidChange(){return d.Event.fromObservableLight(this.observable)}get value(){return this.observable.get()}}e.ValueWithChangeEventFromObservable=v;function w(L,D){return D instanceof v?D.observable:n(L,D.onDidChange,()=>D.value)}function S(L,D){return u(L,(T,M)=>M??D(T))}}),define(ne[21],se([1,0,92,65,299,189,453,452,162]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.observableValueOpts=e.waitForState=e.PromiseResult=e.ObservablePromise=e.observableSignalFromEvent=e.observableSignal=e.observableFromEvent=e.recomputeInitiallyAndOnChange=e.keepObserved=e.derivedObservableWithWritableCache=e.derivedObservableWithCache=e.constObservable=e.autorunWithStoreHandleChanges=e.autorunOpts=e.autorunWithStore=e.autorunHandleChanges=e.autorun=e.derivedWithStore=e.derivedHandleChanges=e.derivedOpts=e.derived=e.subtransaction=e.transaction=e.disposableObservableValue=e.observableValue=void 0,Object.defineProperty(e,"observableValue",{enumerable:!0,get:function(){return d.observableValue}}),Object.defineProperty(e,"disposableObservableValue",{enumerable:!0,get:function(){return d.disposableObservableValue}}),Object.defineProperty(e,"transaction",{enumerable:!0,get:function(){return d.transaction}}),Object.defineProperty(e,"subtransaction",{enumerable:!0,get:function(){return d.subtransaction}}),Object.defineProperty(e,"derived",{enumerable:!0,get:function(){return k.derived}}),Object.defineProperty(e,"derivedOpts",{enumerable:!0,get:function(){return k.derivedOpts}}),Object.defineProperty(e,"derivedHandleChanges",{enumerable:!0,get:function(){return k.derivedHandleChanges}}),Object.defineProperty(e,"derivedWithStore",{enumerable:!0,get:function(){return k.derivedWithStore}}),Object.defineProperty(e,"autorun",{enumerable:!0,get:function(){return I.autorun}}),Object.defineProperty(e,"autorunHandleChanges",{enumerable:!0,get:function(){return I.autorunHandleChanges}}),Object.defineProperty(e,"autorunWithStore",{enumerable:!0,get:function(){return I.autorunWithStore}}),Object.defineProperty(e,"autorunOpts",{enumerable:!0,get:function(){return I.autorunOpts}}),Object.defineProperty(e,"autorunWithStoreHandleChanges",{enumerable:!0,get:function(){return I.autorunWithStoreHandleChanges}}),Object.defineProperty(e,"constObservable",{enumerable:!0,get:function(){return E.constObservable}}),Object.defineProperty(e,"derivedObservableWithCache",{enumerable:!0,get:function(){return E.derivedObservableWithCache}}),Object.defineProperty(e,"derivedObservableWithWritableCache",{enumerable:!0,get:function(){return E.derivedObservableWithWritableCache}}),Object.defineProperty(e,"keepObserved",{enumerable:!0,get:function(){return E.keepObserved}}),Object.defineProperty(e,"recomputeInitiallyAndOnChange",{enumerable:!0,get:function(){return E.recomputeInitiallyAndOnChange}}),Object.defineProperty(e,"observableFromEvent",{enumerable:!0,get:function(){return E.observableFromEvent}}),Object.defineProperty(e,"observableSignal",{enumerable:!0,get:function(){return E.observableSignal}}),Object.defineProperty(e,"observableSignalFromEvent",{enumerable:!0,get:function(){return E.observableSignalFromEvent}}),Object.defineProperty(e,"ObservablePromise",{enumerable:!0,get:function(){return y.ObservablePromise}}),Object.defineProperty(e,"PromiseResult",{enumerable:!0,get:function(){return y.PromiseResult}}),Object.defineProperty(e,"waitForState",{enumerable:!0,get:function(){return y.waitForState}}),Object.defineProperty(e,"observableValueOpts",{enumerable:!0,get:function(){return m.observableValueOpts}}),!1&&(0,_.setLogger)(new _.ConsoleObservableLogger)}),define(ne[163],se([1,0,6,2]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SmoothScrollingOperation=e.SmoothScrollingUpdate=e.Scrollable=e.ScrollState=void 0;class I{constructor(t,i,s,g,c,l,a){this._forceIntegerValues=t,this._scrollStateBrand=void 0,this._forceIntegerValues&&(i=i|0,s=s|0,g=g|0,c=c|0,l=l|0,a=a|0),this.rawScrollLeft=g,this.rawScrollTop=a,i<0&&(i=0),g+i>s&&(g=s-i),g<0&&(g=0),c<0&&(c=0),a+c>l&&(a=l-c),a<0&&(a=0),this.width=i,this.scrollWidth=s,this.scrollLeft=g,this.height=c,this.scrollHeight=l,this.scrollTop=a}equals(t){return this.rawScrollLeft===t.rawScrollLeft&&this.rawScrollTop===t.rawScrollTop&&this.width===t.width&&this.scrollWidth===t.scrollWidth&&this.scrollLeft===t.scrollLeft&&this.height===t.height&&this.scrollHeight===t.scrollHeight&&this.scrollTop===t.scrollTop}withScrollDimensions(t,i){return new I(this._forceIntegerValues,typeof t.width<"u"?t.width:this.width,typeof t.scrollWidth<"u"?t.scrollWidth:this.scrollWidth,i?this.rawScrollLeft:this.scrollLeft,typeof t.height<"u"?t.height:this.height,typeof t.scrollHeight<"u"?t.scrollHeight:this.scrollHeight,i?this.rawScrollTop:this.scrollTop)}withScrollPosition(t){return new I(this._forceIntegerValues,this.width,this.scrollWidth,typeof t.scrollLeft<"u"?t.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,typeof t.scrollTop<"u"?t.scrollTop:this.rawScrollTop)}createScrollEvent(t,i){const s=this.width!==t.width,g=this.scrollWidth!==t.scrollWidth,c=this.scrollLeft!==t.scrollLeft,l=this.height!==t.height,a=this.scrollHeight!==t.scrollHeight,r=this.scrollTop!==t.scrollTop;return{inSmoothScrolling:i,oldWidth:t.width,oldScrollWidth:t.scrollWidth,oldScrollLeft:t.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:t.height,oldScrollHeight:t.scrollHeight,oldScrollTop:t.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:s,scrollWidthChanged:g,scrollLeftChanged:c,heightChanged:l,scrollHeightChanged:a,scrollTopChanged:r}}}e.ScrollState=I;class E extends k.Disposable{constructor(t){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new d.Emitter),this.onScroll=this._onScroll.event,this._smoothScrollDuration=t.smoothScrollDuration,this._scheduleAtNextAnimationFrame=t.scheduleAtNextAnimationFrame,this._state=new I(t.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),super.dispose()}setSmoothScrollDuration(t){this._smoothScrollDuration=t}validateScrollPosition(t){return this._state.withScrollPosition(t)}getScrollDimensions(){return this._state}setScrollDimensions(t,i){const s=this._state.withScrollDimensions(t,i);this._setState(s,!!this._smoothScrolling),this._smoothScrolling?.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(t){const i=this._state.withScrollPosition(t);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(i,!1)}setScrollPositionSmooth(t,i){if(this._smoothScrollDuration===0)return this.setScrollPositionNow(t);if(this._smoothScrolling){t={scrollLeft:typeof t.scrollLeft>"u"?this._smoothScrolling.to.scrollLeft:t.scrollLeft,scrollTop:typeof t.scrollTop>"u"?this._smoothScrolling.to.scrollTop:t.scrollTop};const s=this._state.withScrollPosition(t);if(this._smoothScrolling.to.scrollLeft===s.scrollLeft&&this._smoothScrolling.to.scrollTop===s.scrollTop)return;let g;i?g=new b(this._smoothScrolling.from,s,this._smoothScrolling.startTime,this._smoothScrolling.duration):g=this._smoothScrolling.combine(this._state,s,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=g}else{const s=this._state.withScrollPosition(t);this._smoothScrolling=b.start(this._state,s,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}hasPendingScrollAnimation(){return!!this._smoothScrolling}_performSmoothScrolling(){if(!this._smoothScrolling)return;const t=this._smoothScrolling.tick(),i=this._state.withScrollPosition(t);if(this._setState(i,!0),!!this._smoothScrolling){if(t.isDone){this._smoothScrolling.dispose(),this._smoothScrolling=null;return}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}}_setState(t,i){const s=this._state;s.equals(t)||(this._state=t,this._onScroll.fire(this._state.createScrollEvent(s,i)))}}e.Scrollable=E;class y{constructor(t,i,s){this.scrollLeft=t,this.scrollTop=i,this.isDone=s}}e.SmoothScrollingUpdate=y;function m(o,t){const i=t-o;return function(s){return o+i*n(s)}}function _(o,t,i){return function(s){return s2.5*s){let c,l;return t=te.length?re:te[me]})}function m(Z){return Z.replace(/[<>"'&]/g,te=>{switch(te){case"<":return"<";case">":return">";case'"':return""";case"'":return"'";case"&":return"&"}return te})}function _(Z){return Z.replace(/[<>&]/g,function(te){switch(te){case"<":return"<";case">":return">";case"&":return"&";default:return te}})}function b(Z){return Z.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function p(Z,te=" "){const re=n(Z,te);return o(re,te)}function n(Z,te){if(!Z||!te)return Z;const re=te.length;if(re===0||Z.length===0)return Z;let le=0;for(;Z.indexOf(te,le)===le;)le=le+re;return Z.substring(le)}function o(Z,te){if(!Z||!te)return Z;const re=te.length,le=Z.length;if(re===0||le===0)return Z;let me=le,Ce=-1;for(;Ce=Z.lastIndexOf(te,me-1),!(Ce===-1||Ce+re!==me);){if(Ce===0)return"";me=Ce}return Z.substring(0,me)}function t(Z){return Z.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function i(Z){return Z.replace(/\*/g,"")}function s(Z,te,re={}){if(!Z)throw new Error("Cannot create regex from empty string");te||(Z=b(Z)),re.wholeWord&&(/\B/.test(Z.charAt(0))||(Z="\\b"+Z),/\B/.test(Z.charAt(Z.length-1))||(Z=Z+"\\b"));let le="";return re.global&&(le+="g"),re.matchCase||(le+="i"),re.multiline&&(le+="m"),re.unicode&&(le+="u"),new RegExp(Z,le)}function g(Z){return Z.source==="^"||Z.source==="^$"||Z.source==="$"||Z.source==="^\\s*$"?!1:!!(Z.exec("")&&Z.lastIndex===0)}function c(Z){return Z.split(/\r\n|\r|\n/)}function l(Z){const te=[],re=Z.split(/(\r\n|\r|\n)/);for(let le=0;le=0;re--){const le=Z.charCodeAt(re);if(le!==32&&le!==9)return re}return-1}function C(Z,te){return Zte?1:0}function f(Z,te,re=0,le=Z.length,me=0,Ce=te.length){for(;reMe)return 1}const ye=le-re,Le=Ce-me;return yeLe?1:0}function h(Z,te){return v(Z,te,0,Z.length,0,te.length)}function v(Z,te,re=0,le=Z.length,me=0,Ce=te.length){for(;re=128||Me>=128)return f(Z.toLowerCase(),te.toLowerCase(),re,le,me,Ce);S(Ee)&&(Ee-=32),S(Me)&&(Me-=32);const Ae=Ee-Me;if(Ae!==0)return Ae}const ye=le-re,Le=Ce-me;return yeLe?1:0}function w(Z){return Z>=48&&Z<=57}function S(Z){return Z>=97&&Z<=122}function L(Z){return Z>=65&&Z<=90}function D(Z,te){return Z.length===te.length&&v(Z,te)===0}function T(Z,te){const re=te.length;return te.length>Z.length?!1:v(Z,te,0,re)===0}function M(Z,te){const re=Math.min(Z.length,te.length);let le;for(le=0;le1){const le=Z.charCodeAt(te-2);if(P(le))return O(le,re)}return re}class W{get offset(){return this._offset}constructor(te,re=0){this._str=te,this._len=te.length,this._offset=re}setOffset(te){this._offset=te}prevCodePoint(){const te=x(this._str,this._offset);return this._offset-=te>=65536?2:1,te}nextCodePoint(){const te=F(this._str,this._len,this._offset);return this._offset+=te>=65536?2:1,te}eol(){return this._offset>=this._len}}e.CodePointIterator=W;class V{get offset(){return this._iterator.offset}constructor(te,re=0){this._iterator=new W(te,re)}nextGraphemeLength(){const te=ee.getInstance(),re=this._iterator,le=re.offset;let me=te.getGraphemeBreakType(re.nextCodePoint());for(;!re.eol();){const Ce=re.offset,ye=te.getGraphemeBreakType(re.nextCodePoint());if(ae(me,ye)){re.setOffset(Ce);break}me=ye}return re.offset-le}prevGraphemeLength(){const te=ee.getInstance(),re=this._iterator,le=re.offset;let me=te.getGraphemeBreakType(re.prevCodePoint());for(;re.offset>0;){const Ce=re.offset,ye=te.getGraphemeBreakType(re.prevCodePoint());if(ae(ye,me)){re.setOffset(Ce);break}me=ye}return le-re.offset}eol(){return this._iterator.eol()}}e.GraphemeIterator=V;function q(Z,te){return new V(Z,te).nextGraphemeLength()}function H(Z,te){return new V(Z,te).prevGraphemeLength()}function z(Z,te){te>0&&N(Z.charCodeAt(te))&&te--;const re=te+q(Z,te);return[re-H(Z,re),re]}let U;function j(){return/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/}function Y(Z){return U||(U=j()),U.test(Z)}const G=/^[\t\n\r\x20-\x7E]*$/;function K(Z){return G.test(Z)}e.UNUSUAL_LINE_TERMINATORS=/[\u2028\u2029]/;function R(Z){return e.UNUSUAL_LINE_TERMINATORS.test(Z)}function J(Z){return Z>=11904&&Z<=55215||Z>=63744&&Z<=64255||Z>=65281&&Z<=65374}function ie(Z){return Z>=127462&&Z<=127487||Z===8986||Z===8987||Z===9200||Z===9203||Z>=9728&&Z<=10175||Z===11088||Z===11093||Z>=127744&&Z<=128591||Z>=128640&&Z<=128764||Z>=128992&&Z<=129008||Z>=129280&&Z<=129535||Z>=129648&&Z<=129782}e.UTF8_BOM_CHARACTER="\uFEFF";function ue(Z){return!!(Z&&Z.length>0&&Z.charCodeAt(0)===65279)}function he(Z,te=!1){return Z?(te&&(Z=Z.replace(/\\./g,"")),Z.toLowerCase()!==Z):!1}function pe(Z){return Z=Z%(2*26),Z<26?String.fromCharCode(97+Z):String.fromCharCode(65+Z-26)}function ae(Z,te){return Z===0?te!==5&&te!==7:Z===2&&te===3?!1:Z===4||Z===2||Z===3||te===4||te===2||te===3?!0:!(Z===8&&(te===8||te===9||te===11||te===12)||(Z===11||Z===9)&&(te===9||te===10)||(Z===12||Z===10)&&te===10||te===5||te===13||te===7||Z===1||Z===13&&te===14||Z===6&&te===6)}class ee{static{this._INSTANCE=null}static getInstance(){return ee._INSTANCE||(ee._INSTANCE=new ee),ee._INSTANCE}constructor(){this._data=de()}getGraphemeBreakType(te){if(te<32)return te===10?3:te===13?2:4;if(te<127)return 0;const re=this._data,le=re.length/3;let me=1;for(;me<=le;)if(tere[3*me+1])me=2*me+1;else return re[3*me+2];return 0}}function de(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}function ge(Z,te){if(Z===0)return 0;const re=X(Z,te);if(re!==void 0)return re;const le=new W(te,Z);return le.prevCodePoint(),le.offset}function X(Z,te){const re=new W(te,Z);let le=re.prevCodePoint();for(;B(le)||le===65039||le===8419;){if(re.offset===0)return;le=re.prevCodePoint()}if(!ie(le))return;let me=re.offset;return me>0&&re.prevCodePoint()===8205&&(me=re.offset),me}function B(Z){return 127995<=Z&&Z<=127999}e.noBreakWhitespace="\xA0";class ${static{this.ambiguousCharacterData=new k.Lazy(()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}'))}static{this.cache=new d.LRUCachedFunction({getCacheKey:JSON.stringify},te=>{function re(Ae){const Ne=new Map;for(let Ke=0;Ke!Ae.startsWith("_")&&Ae in Ce);ye.length===0&&(ye=["_default"]);let Le;for(const Ae of ye){const Ne=re(Ce[Ae]);Le=me(Le,Ne)}const Ee=re(Ce._common),Me=le(Ee,Le);return new $(Me)})}static getInstance(te){return $.cache.get(Array.from(te))}static{this._locales=new k.Lazy(()=>Object.keys($.ambiguousCharacterData.value).filter(te=>!te.startsWith("_")))}static getLocales(){return $._locales.value}constructor(te){this.confusableDictionary=te}isAmbiguous(te){return this.confusableDictionary.has(te)}getPrimaryConfusable(te){return this.confusableDictionary.get(te)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}}e.AmbiguousCharacters=$;class Q{static getRawData(){return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]")}static{this._data=void 0}static getData(){return this._data||(this._data=new Set(Q.getRawData())),this._data}static isInvisibleCharacter(te){return Q.getData().has(te)}static get codePoints(){return Q.getData()}}e.InvisibleCharacters=Q}),define(ne[82],se([1,0,45,448,11]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FuzzyScoreOptions=e.FuzzyScore=e.matchesPrefix=e.matchesStrictPrefix=void 0,e.or=E,e.matchesContiguousSubString=m,e.matchesSubString=_,e.isUpper=n,e.matchesCamelCase=S,e.matchesWords=L,e.matchesFuzzy=N,e.matchesFuzzy2=O,e.anyScore=F,e.createMatches=x,e.isPatternInWord=he,e.fuzzyScore=ee,e.fuzzyScoreGracefulAggressive=X;function E(...Q){return function(Z,te){for(let re=0,le=Q.length;re0?[{start:0,end:Z.length}]:[]:null}function m(Q,Z){const te=Z.toLowerCase().indexOf(Q.toLowerCase());return te===-1?null:[{start:te,end:te+Q.length}]}function _(Q,Z){return b(Q.toLowerCase(),Z.toLowerCase(),0,0)}function b(Q,Z,te,re){if(te===Q.length)return[];if(re===Z.length)return null;if(Q[te]===Z[re]){let le=null;return(le=b(Q,Z,te+1,re+1))?r({start:re,end:re+1},le):null}return b(Q,Z,te,re+1)}function p(Q){return 97<=Q&&Q<=122}function n(Q){return 65<=Q&&Q<=90}function o(Q){return 48<=Q&&Q<=57}function t(Q){return Q===32||Q===9||Q===10||Q===13}const i=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach(Q=>i.add(Q.charCodeAt(0)));function s(Q){return t(Q)||i.has(Q)}function g(Q,Z){return Q===Z||s(Q)&&s(Z)}const c=new Map;function l(Q){if(c.has(Q))return c.get(Q);let Z;const te=(0,k.getKoreanAltChars)(Q);return te&&(Z=te),c.set(Q,Z),Z}function a(Q){return p(Q)||n(Q)||o(Q)}function r(Q,Z){return Z.length===0?Z=[Q]:Q.end===Z[0].start?Z[0].start=Q.start:Z.unshift(Q),Z}function u(Q,Z){for(let te=Z;te0&&!a(Q.charCodeAt(te-1)))return te}return Q.length}function C(Q,Z,te,re){if(te===Q.length)return[];if(re===Z.length)return null;if(Q[te]!==Z[re].toLowerCase())return null;{let le=null,me=re+1;for(le=C(Q,Z,te+1,re+1);!le&&(me=u(Z,me)).6}function v(Q){const{upperPercent:Z,lowerPercent:te,alphaPercent:re,numericPercent:le}=Q;return te>.2&&Z<.8&&re>.6&&le<.2}function w(Q){let Z=0,te=0,re=0,le=0;for(let me=0;me60&&(Z=Z.substring(0,60));const te=f(Z);if(!v(te)){if(!h(te))return null;Z=Z.toLowerCase()}let re=null,le=0;for(Q=Q.toLowerCase();le0&&s(Q.charCodeAt(te-1)))return te;return Q.length}const M=E(e.matchesPrefix,S,m),A=E(e.matchesPrefix,S,_),P=new d.LRUCache(1e4);function N(Q,Z,te=!1){if(typeof Q!="string"||typeof Z!="string")return null;let re=P.get(Q);re||(re=new RegExp(I.convertSimple2RegExpPattern(Q),"i"),P.set(Q,re));const le=re.exec(Z);return le?[{start:le.index,end:le.index+le[0].length}]:te?A(Q,Z):M(Q,Z)}function O(Q,Z){const te=ee(Q,Q.toLowerCase(),0,Z,Z.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return te?x(te):null}function F(Q,Z,te,re,le,me){const Ce=Math.min(13,Q.length);for(;te"u")return[];const Z=[],te=Q[1];for(let re=Q.length-1;re>1;re--){const le=Q[re]+te,me=Z[Z.length-1];me&&me.end===le?me.end=le+1:Z.push({start:le,end:le+1})}return Z}const W=128;function V(){const Q=[],Z=[];for(let te=0;te<=W;te++)Z[te]=0;for(let te=0;te<=W;te++)Q.push(Z.slice(0));return Q}function q(Q){const Z=[];for(let te=0;te<=Q;te++)Z[te]=0;return Z}const H=q(2*W),z=q(2*W),U=V(),j=V(),Y=V(),G=!1;function K(Q,Z,te,re,le){function me(ye,Le,Ee=" "){for(;ye.lengthme(ye,3)).join("|")} +`;for(let ye=0;ye<=te;ye++)ye===0?Ce+=" |":Ce+=`${Z[ye-1]}|`,Ce+=Q[ye].slice(0,le+1).map(Le=>me(Le.toString(),3)).join("|")+` +`;return Ce}function R(Q,Z,te,re){Q=Q.substr(Z),te=te.substr(re),console.log(K(j,Q,Q.length,te,te.length)),console.log(K(Y,Q,Q.length,te,te.length)),console.log(K(U,Q,Q.length,te,te.length))}function J(Q,Z){if(Z<0||Z>=Q.length)return!1;const te=Q.codePointAt(Z);switch(te){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:case 60:case 62:case 40:case 41:case 91:case 93:case 123:case 125:return!0;case void 0:return!1;default:return!!I.isEmojiImprecise(te)}}function ie(Q,Z){if(Z<0||Z>=Q.length)return!1;switch(Q.charCodeAt(Z)){case 32:case 9:return!0;default:return!1}}function ue(Q,Z,te){return Z[Q]!==te[Q]}function he(Q,Z,te,re,le,me,Ce=!1){for(;ZW?W:Q.length,Le=re.length>W?W:re.length;if(te>=ye||me>=Le||ye-te>Le-me||!he(Z,te,ye,le,me,Le,!0))return;de(ye,Le,te,me,Z,le);let Ee=1,Me=1,Ae=te,Ne=me;const Ke=[!1];for(Ee=1,Ae=te;AeFe,Te=we?j[Ee][Me-1]+(U[Ee][Me-1]>0?-5:0):0,Pe=Ne>Fe+1&&U[Ee][Me-1]>0,Be=Pe?j[Ee][Me-2]+(U[Ee][Me-2]>0?-5:0):0;if(Pe&&(!we||Be>=Te)&&(!be||Be>=ve))j[Ee][Me]=Be,Y[Ee][Me]=3,U[Ee][Me]=0;else if(we&&(!be||Te>=ve))j[Ee][Me]=Te,Y[Ee][Me]=2,U[Ee][Me]=0;else if(be)j[Ee][Me]=ve,Y[Ee][Me]=1,U[Ee][Me]=U[Ee-1][Me-1]+1;else throw new Error("not possible")}}if(G&&R(Q,te,re,me),!Ke[0]&&!Ce.firstMatchCanBeWeak)return;Ee--,Me--;const ze=[j[Ee][Me],me];let Ge=0,it=0;for(;Ee>=1;){let Fe=Me;do{const fe=Y[Ee][Fe];if(fe===3)Fe=Fe-2;else if(fe===2)Fe=Fe-1;else break}while(Fe>=1);Ge>1&&Z[te+Ee-1]===le[me+Me-1]&&!ue(Fe+me-1,re,le)&&Ge+1>U[Ee][Fe]&&(Fe=Me),Fe===Me?Ge++:Ge=1,it||(it=Fe),Ee--,Me=Fe-1,ze.push(Me)}Le-me===ye&&Ce.boostFullMatch&&(ze[0]+=2);const Oe=it-ye;return ze[0]-=Oe,ze}function de(Q,Z,te,re,le,me){let Ce=Q-1,ye=Z-1;for(;Ce>=te&&ye>=re;)le[Ce]===me[ye]&&(z[Ce]=ye,Ce--),ye--}function ge(Q,Z,te,re,le,me,Ce,ye,Le,Ee,Me){if(Z[te]!==me[Ce])return Number.MIN_SAFE_INTEGER;let Ae=1,Ne=!1;return Ce===te-re?Ae=Q[te]===le[Ce]?7:5:ue(Ce,le,me)&&(Ce===0||!ue(Ce-1,le,me))?(Ae=Q[te]===le[Ce]?7:5,Ne=!0):J(me,Ce)&&(Ce===0||!J(me,Ce-1))?Ae=5:(J(me,Ce-1)||ie(me,Ce-1))&&(Ae=5,Ne=!0),Ae>1&&te===re&&(Me[0]=!0),Ne||(Ne=ue(Ce,le,me)||J(me,Ce-1)||ie(me,Ce-1)),te===re?Ce>Le&&(Ae-=Ne?3:5):Ee?Ae+=Ne?2:0:Ae+=Ne?0:1,Ce+1===ye&&(Ae-=Ne?3:5),Ae}function X(Q,Z,te,re,le,me,Ce){return B(Q,Z,te,re,le,me,!0,Ce)}function B(Q,Z,te,re,le,me,Ce,ye){let Le=ee(Q,Z,te,re,le,me,ye);if(Le&&!Ce)return Le;if(Q.length>=3){const Ee=Math.min(7,Q.length-1);for(let Me=te+1;MeLe[0])&&(Le=Ne))}}}return Le}function $(Q,Z){if(Z+1>=Q.length)return;const te=Q[Z],re=Q[Z+1];if(te!==re)return Q.slice(0,Z)+re+te+Q.slice(Z+2)}}),define(ne[129],se([1,0,11]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StringSHA1=void 0,e.hash=k,e.doHash=I,e.numberHash=E,e.stringHash=m,e.toHexString=t;function k(s){return I(s,0)}function I(s,g){switch(typeof s){case"object":return s===null?E(349,g):Array.isArray(s)?_(s,g):b(s,g);case"string":return m(s,g);case"boolean":return y(s,g);case"number":return E(s,g);case"undefined":return E(937,g);default:return E(617,g)}}function E(s,g){return(g<<5)-g+s|0}function y(s,g){return E(s?433:863,g)}function m(s,g){g=E(149417,g);for(let c=0,l=s.length;cI(l,c),g)}function b(s,g){return g=E(181387,g),Object.keys(s).sort().reduce((c,l)=>(c=m(l,c),I(s[l],c)),g)}function p(s,g,c=32){const l=c-g,a=~((1<>>l)>>>0}function n(s,g=0,c=s.byteLength,l=0){for(let a=0;ac.toString(16).padStart(2,"0")).join(""):o((s>>>0).toString(16),g/4)}class i{static{this._bigBlock32=new DataView(new ArrayBuffer(320))}constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(g){const c=g.length;if(c===0)return;const l=this._buff;let a=this._buffLen,r=this._leftoverHighSurrogate,u,C;for(r!==0?(u=r,C=-1,r=0):(u=g.charCodeAt(0),C=0);;){let f=u;if(d.isHighSurrogate(u))if(C+1>>6,g[c++]=128|(l&63)>>>0):l<65536?(g[c++]=224|(l&61440)>>>12,g[c++]=128|(l&4032)>>>6,g[c++]=128|(l&63)>>>0):(g[c++]=240|(l&1835008)>>>18,g[c++]=128|(l&258048)>>>12,g[c++]=128|(l&4032)>>>6,g[c++]=128|(l&63)>>>0),c>=64&&(this._step(),c-=64,this._totalLen+=64,g[0]=g[64],g[1]=g[65],g[2]=g[66]),c}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),t(this._h0)+t(this._h1)+t(this._h2)+t(this._h3)+t(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,n(this._buff,this._buffLen),this._buffLen>56&&(this._step(),n(this._buff));const g=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(g/4294967296),!1),this._buffDV.setUint32(60,g%4294967296,!1),this._step()}_step(){const g=i._bigBlock32,c=this._buffDV;for(let w=0;w<64;w+=4)g.setUint32(w,c.getUint32(w,!1),!1);for(let w=64;w<320;w+=4)g.setUint32(w,p(g.getUint32(w-12,!1)^g.getUint32(w-32,!1)^g.getUint32(w-56,!1)^g.getUint32(w-64,!1),1),!1);let l=this._h0,a=this._h1,r=this._h2,u=this._h3,C=this._h4,f,h,v;for(let w=0;w<80;w++)w<20?(f=a&r|~a&u,h=1518500249):w<40?(f=a^r^u,h=1859775393):w<60?(f=a&r|a&u|r&u,h=2400959708):(f=a^r^u,h=3395469782),v=p(l,5)+f+C+h+g.getUint32(w*4,!1)&4294967295,C=u,u=r,r=p(a,30),a=l,l=v;this._h0=this._h0+l&4294967295,this._h1=this._h1+a&4294967295,this._h2=this._h2+r&4294967295,this._h3=this._h3+u&4294967295,this._h4=this._h4+C&4294967295}}e.StringSHA1=i}),define(ne[190],se([1,0,444,129]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LcsDiff=e.StringDiffSequence=void 0,e.stringDiff=E;class I{constructor(n){this.source=n}getElements(){const n=this.source,o=new Int32Array(n.length);for(let t=0,i=n.length;t0||this.m_modifiedCount>0)&&this.m_changes.push(new d.DiffChange(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(n,o){this.m_originalStart=Math.min(this.m_originalStart,n),this.m_modifiedStart=Math.min(this.m_modifiedStart,o),this.m_originalCount++}AddModifiedElement(n,o){this.m_originalStart=Math.min(this.m_originalStart,n),this.m_modifiedStart=Math.min(this.m_modifiedStart,o),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class b{constructor(n,o,t=null){this.ContinueProcessingPredicate=t,this._originalSequence=n,this._modifiedSequence=o;const[i,s,g]=b._getElements(n),[c,l,a]=b._getElements(o);this._hasStrings=g&&a,this._originalStringElements=i,this._originalElementsOrHash=s,this._modifiedStringElements=c,this._modifiedElementsOrHash=l,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(n){return n.length>0&&typeof n[0]=="string"}static _getElements(n){const o=n.getElements();if(b._isStringArray(o)){const t=new Int32Array(o.length);for(let i=0,s=o.length;i=n&&i>=t&&this.ElementsAreEqual(o,i);)o--,i--;if(n>o||t>i){let u;return t<=i?(y.Assert(n===o+1,"originalStart should only be one more than originalEnd"),u=[new d.DiffChange(n,0,t,i-t+1)]):n<=o?(y.Assert(t===i+1,"modifiedStart should only be one more than modifiedEnd"),u=[new d.DiffChange(n,o-n+1,t,0)]):(y.Assert(n===o+1,"originalStart should only be one more than originalEnd"),y.Assert(t===i+1,"modifiedStart should only be one more than modifiedEnd"),u=[]),u}const g=[0],c=[0],l=this.ComputeRecursionPoint(n,o,t,i,g,c,s),a=g[0],r=c[0];if(l!==null)return l;if(!s[0]){const u=this.ComputeDiffRecursive(n,a,t,r,s);let C=[];return s[0]?C=[new d.DiffChange(a+1,o-(a+1)+1,r+1,i-(r+1)+1)]:C=this.ComputeDiffRecursive(a+1,o,r+1,i,s),this.ConcatenateChanges(u,C)}return[new d.DiffChange(n,o-n+1,t,i-t+1)]}WALKTRACE(n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L){let D=null,T=null,M=new _,A=o,P=t,N=f[0]-w[0]-i,O=-1073741824,F=this.m_forwardHistory.length-1;do{const x=N+n;x===A||x=0&&(a=this.m_forwardHistory[F],n=a[0],A=1,P=a.length-1)}while(--F>=-1);if(D=M.getReverseChanges(),L[0]){let x=f[0]+1,W=w[0]+1;if(D!==null&&D.length>0){const V=D[D.length-1];x=Math.max(x,V.getOriginalEnd()),W=Math.max(W,V.getModifiedEnd())}T=[new d.DiffChange(x,C-x+1,W,v-W+1)]}else{M=new _,A=g,P=c,N=f[0]-w[0]-l,O=1073741824,F=S?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const x=N+s;x===A||x=r[x+1]?(u=r[x+1]-1,h=u-N-l,u>O&&M.MarkNextChange(),O=u+1,M.AddOriginalElement(u+1,h+1),N=x+1-s):(u=r[x-1],h=u-N-l,u>O&&M.MarkNextChange(),O=u,M.AddModifiedElement(u+1,h+1),N=x-1-s),F>=0&&(r=this.m_reverseHistory[F],s=r[0],A=1,P=r.length-1)}while(--F>=-1);T=M.getChanges()}return this.ConcatenateChanges(D,T)}ComputeRecursionPoint(n,o,t,i,s,g,c){let l=0,a=0,r=0,u=0,C=0,f=0;n--,t--,s[0]=0,g[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const h=o-n+(i-t),v=h+1,w=new Int32Array(v),S=new Int32Array(v),L=i-t,D=o-n,T=n-t,M=o-i,P=(D-L)%2===0;w[L]=n,S[D]=o,c[0]=!1;for(let N=1;N<=h/2+1;N++){let O=0,F=0;r=this.ClipDiagonalBound(L-N,N,L,v),u=this.ClipDiagonalBound(L+N,N,L,v);for(let W=r;W<=u;W+=2){W===r||WO+F&&(O=l,F=a),!P&&Math.abs(W-D)<=N-1&&l>=S[W])return s[0]=l,g[0]=a,V<=S[W]&&N<=1448?this.WALKTRACE(L,r,u,T,D,C,f,M,w,S,l,o,s,a,i,g,P,c):null}const x=(O-n+(F-t)-N)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(O,x))return c[0]=!0,s[0]=O,g[0]=F,x>0&&N<=1448?this.WALKTRACE(L,r,u,T,D,C,f,M,w,S,l,o,s,a,i,g,P,c):(n++,t++,[new d.DiffChange(n,o-n+1,t,i-t+1)]);C=this.ClipDiagonalBound(D-N,N,D,v),f=this.ClipDiagonalBound(D+N,N,D,v);for(let W=C;W<=f;W+=2){W===C||W=S[W+1]?l=S[W+1]-1:l=S[W-1],a=l-(W-D)-M;const V=l;for(;l>n&&a>t&&this.ElementsAreEqual(l,a);)l--,a--;if(S[W]=l,P&&Math.abs(W-L)<=N&&l<=w[W])return s[0]=l,g[0]=a,V>=w[W]&&N<=1448?this.WALKTRACE(L,r,u,T,D,C,f,M,w,S,l,o,s,a,i,g,P,c):null}if(N<=1447){let W=new Int32Array(u-r+2);W[0]=L-r+1,m.Copy2(w,r,W,1,u-r+1),this.m_forwardHistory.push(W),W=new Int32Array(f-C+2),W[0]=D-C+1,m.Copy2(S,C,W,1,f-C+1),this.m_reverseHistory.push(W)}}return this.WALKTRACE(L,r,u,T,D,C,f,M,w,S,l,o,s,a,i,g,P,c)}PrettifyChanges(n){for(let o=0;o0,c=t.modifiedLength>0;for(;t.originalStart+t.originalLength=0;o--){const t=n[o];let i=0,s=0;if(o>0){const u=n[o-1];i=u.originalStart+u.originalLength,s=u.modifiedStart+u.modifiedLength}const g=t.originalLength>0,c=t.modifiedLength>0;let l=0,a=this._boundaryScore(t.originalStart,t.originalLength,t.modifiedStart,t.modifiedLength);for(let u=1;;u++){const C=t.originalStart-u,f=t.modifiedStart-u;if(Ca&&(a=v,l=u)}t.originalStart-=l,t.modifiedStart-=l;const r=[null];if(o>0&&this.ChangesOverlap(n[o-1],n[o],r)){n[o-1]=r[0],n.splice(o,1),o++;continue}}if(this._hasStrings)for(let o=1,t=n.length;o0&&f>l&&(l=f,a=u,r=C)}return l>0?[a,r]:null}_contiguousSequenceScore(n,o,t){let i=0;for(let s=0;s=this._originalElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._originalStringElements[n])}_OriginalRegionIsBoundary(n,o){if(this._OriginalIsBoundary(n)||this._OriginalIsBoundary(n-1))return!0;if(o>0){const t=n+o;if(this._OriginalIsBoundary(t-1)||this._OriginalIsBoundary(t))return!0}return!1}_ModifiedIsBoundary(n){return n<=0||n>=this._modifiedElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[n])}_ModifiedRegionIsBoundary(n,o){if(this._ModifiedIsBoundary(n)||this._ModifiedIsBoundary(n-1))return!0;if(o>0){const t=n+o;if(this._ModifiedIsBoundary(t-1)||this._ModifiedIsBoundary(t))return!0}return!1}_boundaryScore(n,o,t,i){const s=this._OriginalRegionIsBoundary(n,o)?1:0,g=this._ModifiedRegionIsBoundary(t,i)?1:0;return s+g}ConcatenateChanges(n,o){const t=[];if(n.length===0||o.length===0)return o.length>0?o:n;if(this.ChangesOverlap(n[n.length-1],o[0],t)){const i=new Array(n.length+o.length-1);return m.Copy(n,0,i,0,n.length-1),i[n.length-1]=t[0],m.Copy(o,1,i,n.length,o.length-1),i}else{const i=new Array(n.length+o.length);return m.Copy(n,0,i,0,n.length),m.Copy(o,0,i,n.length,o.length),i}}ChangesOverlap(n,o,t){if(y.Assert(n.originalStart<=o.originalStart,"Left change is not less than or equal to right change"),y.Assert(n.modifiedStart<=o.modifiedStart,"Left change is not less than or equal to right change"),n.originalStart+n.originalLength>=o.originalStart||n.modifiedStart+n.modifiedLength>=o.modifiedStart){const i=n.originalStart;let s=n.originalLength;const g=n.modifiedStart;let c=n.modifiedLength;return n.originalStart+n.originalLength>=o.originalStart&&(s=o.originalStart+o.originalLength-n.originalStart),n.modifiedStart+n.modifiedLength>=o.modifiedStart&&(c=o.modifiedStart+o.modifiedLength-n.modifiedStart),t[0]=new d.DiffChange(i,s,g,c),!0}else return t[0]=null,!1}ClipDiagonalBound(n,o,t,i){if(n>=0&&n0?m[0].toUpperCase()+m.substr(1):y[0][0].toUpperCase()!==y[0][0]&&m.length>0?m[0].toLowerCase()+m.substr(1):m}else return m}function I(y,m,_){return y[0].indexOf(_)!==-1&&m.indexOf(_)!==-1&&y[0].split(_).length===m.split(_).length}function E(y,m,_){const b=m.split(_),p=y[0].split(_);let n="";return b.forEach((o,t)=>{n+=k([p[t]],o)+_}),n.slice(0,-1)}}),define(ne[111],se([1,0,11]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var k;(function(I){I[I.Ignore=0]="Ignore",I[I.Info=1]="Info",I[I.Warning=2]="Warning",I[I.Error=3]="Error"})(k||(k={})),function(I){const E="error",y="warning",m="warn",_="info",b="ignore";function p(o){return o?d.equalsIgnoreCase(E,o)?I.Error:d.equalsIgnoreCase(y,o)||d.equalsIgnoreCase(m,o)?I.Warning:d.equalsIgnoreCase(_,o)?I.Info:I.Ignore:I.Ignore}I.fromValue=p;function n(o){switch(o){case I.Error:return E;case I.Warning:return y;case I.Info:return _;default:return b}}I.toString=n}(k||(k={})),e.default=k}),define(ne[301],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MicrotaskDelay=void 0,e.MicrotaskDelay=Symbol("MicrotaskDelay")}),define(ne[225],se([1,0,11]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TernarySearchTree=e.UriIterator=e.PathIterator=e.ConfigKeysIterator=e.StringIterator=void 0;class k{constructor(){this._value="",this._pos=0}reset(p){return this._value=p,this._pos=0,this}next(){return this._pos+=1,this}hasNext(){return this._pos=0;n--,this._valueLen--){const o=this._value.charCodeAt(n);if(!(o===47||this._splitOnBackslash&&o===92))break}return this.next()}hasNext(){return this._to!1,n=()=>!1){return new _(new y(p,n))}static forStrings(){return new _(new k)}static forConfigKeys(){return new _(new I)}constructor(p){this._iter=p}clear(){this._root=void 0}set(p,n){const o=this._iter.reset(p);let t;this._root||(this._root=new m,this._root.segment=o.value());const i=[];for(t=this._root;;){const g=o.cmp(t.segment);if(g>0)t.left||(t.left=new m,t.left.segment=o.value()),i.push([-1,t]),t=t.left;else if(g<0)t.right||(t.right=new m,t.right.segment=o.value()),i.push([1,t]),t=t.right;else if(o.hasNext())o.next(),t.mid||(t.mid=new m,t.mid.segment=o.value()),i.push([0,t]),t=t.mid;else break}const s=t.value;t.value=n,t.key=p;for(let g=i.length-1;g>=0;g--){const c=i[g][1];c.updateHeight();const l=c.balanceFactor();if(l<-1||l>1){const a=i[g][0],r=i[g+1][0];if(a===1&&r===1)i[g][1]=c.rotateLeft();else if(a===-1&&r===-1)i[g][1]=c.rotateRight();else if(a===1&&r===-1)c.right=i[g+1][1]=i[g+1][1].rotateRight(),i[g][1]=c.rotateLeft();else if(a===-1&&r===1)c.left=i[g+1][1]=i[g+1][1].rotateLeft(),i[g][1]=c.rotateRight();else throw new Error;if(g>0)switch(i[g-1][0]){case-1:i[g-1][1].left=i[g][1];break;case 1:i[g-1][1].right=i[g][1];break;case 0:i[g-1][1].mid=i[g][1];break}else this._root=i[0][1]}}return s}get(p){return this._getNode(p)?.value}_getNode(p){const n=this._iter.reset(p);let o=this._root;for(;o;){const t=n.cmp(o.segment);if(t>0)o=o.left;else if(t<0)o=o.right;else if(n.hasNext())n.next(),o=o.mid;else break}return o}has(p){const n=this._getNode(p);return!(n?.value===void 0&&n?.mid===void 0)}delete(p){return this._delete(p,!1)}deleteSuperstr(p){return this._delete(p,!0)}_delete(p,n){const o=this._iter.reset(p),t=[];let i=this._root;for(;i;){const s=o.cmp(i.segment);if(s>0)t.push([-1,i]),i=i.left;else if(s<0)t.push([1,i]),i=i.right;else if(o.hasNext())o.next(),t.push([0,i]),i=i.mid;else break}if(i){if(n?(i.left=void 0,i.mid=void 0,i.right=void 0,i.height=1):(i.key=void 0,i.value=void 0),!i.mid&&!i.value)if(i.left&&i.right){const s=this._min(i.right);if(s.key){const{key:g,value:c,segment:l}=s;this._delete(s.key,!1),i.key=g,i.value=c,i.segment=l}}else{const s=i.left??i.right;if(t.length>0){const[g,c]=t[t.length-1];switch(g){case-1:c.left=s;break;case 0:c.mid=s;break;case 1:c.right=s;break}}else this._root=s}for(let s=t.length-1;s>=0;s--){const g=t[s][1];g.updateHeight();const c=g.balanceFactor();if(c>1?(g.right.balanceFactor()>=0||(g.right=g.right.rotateRight()),t[s][1]=g.rotateLeft()):c<-1&&(g.left.balanceFactor()<=0||(g.left=g.left.rotateLeft()),t[s][1]=g.rotateRight()),s>0)switch(t[s-1][0]){case-1:t[s-1][1].left=t[s][1];break;case 1:t[s-1][1].right=t[s][1];break;case 0:t[s-1][1].mid=t[s][1];break}else this._root=t[0][1]}}}_min(p){for(;p.left;)p=p.left;return p}findSubstr(p){const n=this._iter.reset(p);let o=this._root,t;for(;o;){const i=n.cmp(o.segment);if(i>0)o=o.left;else if(i<0)o=o.right;else if(n.hasNext())n.next(),t=o.value||t,o=o.mid;else break}return o&&o.value||t}findSuperstr(p){return this._findSuperstrOrElement(p,!1)}_findSuperstrOrElement(p,n){const o=this._iter.reset(p);let t=this._root;for(;t;){const i=o.cmp(t.segment);if(i>0)t=t.left;else if(i<0)t=t.right;else if(o.hasNext())o.next(),t=t.mid;else return t.mid?this._entries(t.mid):n?t.value:void 0}}forEach(p){for(const[n,o]of this)p(o,n)}*[Symbol.iterator](){yield*this._entries(this._root)}_entries(p){const n=[];return this._dfsEntries(p,n),n[Symbol.iterator]()}_dfsEntries(p,n){p&&(p.left&&this._dfsEntries(p.left,n),p.value&&n.push([p.key,p.value]),p.mid&&this._dfsEntries(p.mid,n),p.right&&this._dfsEntries(p.right,n))}}e.TernarySearchTree=_}),define(ne[456],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TfIdfCalculator=void 0,e.normalizeTfIdfScores=I;function d(E){const y=new Map;for(const m of E)y.set(m,(y.get(m)??0)+1);return y}class k{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(y,m){const _=this.computeEmbedding(y),b=new Map,p=[];for(const[n,o]of this.documents){if(m.isCancellationRequested)return[];for(const t of o.chunks){const i=this.computeSimilarityScore(t,_,b);i>0&&p.push({key:n,score:i})}}return p}static termFrequencies(y){return d(k.splitTerms(y))}static*splitTerms(y){const m=_=>_.toLowerCase();for(const[_]of y.matchAll(/\b\p{Letter}[\p{Letter}\d]{2,}\b/gu)){yield m(_);const b=_.replace(/([a-z])([A-Z])/g,"$1 $2").split(/\s+/g);if(b.length>1)for(const p of b)p.length>2&&/\p{Letter}{3,}/gu.test(p)&&(yield m(p))}}updateDocuments(y){for(const{key:m}of y)this.deleteDocument(m);for(const m of y){const _=[];for(const b of m.textChunks){const p=k.termFrequencies(b);for(const n of p.keys())this.chunkOccurrences.set(n,(this.chunkOccurrences.get(n)??0)+1);_.push({text:b,tf:p})}this.chunkCount+=_.length,this.documents.set(m.key,{chunks:_})}return this}deleteDocument(y){const m=this.documents.get(y);if(m){this.documents.delete(y),this.chunkCount-=m.chunks.length;for(const _ of m.chunks)for(const b of _.tf.keys()){const p=this.chunkOccurrences.get(b);if(typeof p=="number"){const n=p-1;n<=0?this.chunkOccurrences.delete(b):this.chunkOccurrences.set(b,n)}}}}computeSimilarityScore(y,m,_){let b=0;for(const[p,n]of Object.entries(m)){const o=y.tf.get(p);if(!o)continue;let t=_.get(p);typeof t!="number"&&(t=this.computeIdf(p),_.set(p,t));const i=o*t;b+=i*n}return b}computeEmbedding(y){const m=k.termFrequencies(y);return this.computeTfidf(m)}computeIdf(y){const m=this.chunkOccurrences.get(y)??0;return m>0?Math.log((this.chunkCount+1)/m):0}computeTfidf(y){const m=Object.create(null);for(const[_,b]of y){const p=this.computeIdf(_);p>0&&(m[_]=b*p)}return m}}e.TfIdfCalculator=k;function I(E){const y=E.slice(0);y.sort((_,b)=>b.score-_.score);const m=y[0]?.score??0;if(m>0)for(const _ of y)_.score/=m;return y}}),define(ne[19],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isString=d,e.isObject=k,e.isTypedArray=I,e.isNumber=E,e.isIterable=y,e.isBoolean=m,e.isUndefined=_,e.isDefined=b,e.isUndefinedOrNull=p,e.assertType=n,e.assertIsDefined=o,e.isFunction=t,e.validateConstraints=i,e.validateConstraint=s;function d(g){return typeof g=="string"}function k(g){return typeof g=="object"&&g!==null&&!Array.isArray(g)&&!(g instanceof RegExp)&&!(g instanceof Date)}function I(g){const c=Object.getPrototypeOf(Uint8Array);return typeof g=="object"&&g instanceof c}function E(g){return typeof g=="number"&&!isNaN(g)}function y(g){return!!g&&typeof g[Symbol.iterator]=="function"}function m(g){return g===!0||g===!1}function _(g){return typeof g>"u"}function b(g){return!p(g)}function p(g){return _(g)||g===null}function n(g,c){if(!g)throw new Error(c?`Unexpected type, expected '${c}'`:"Unexpected type")}function o(g){if(p(g))throw new Error("Assertion Failed: argument is undefined or null");return g}function t(g){return typeof g=="function"}function i(g,c){const l=Math.min(g.length,c.length);for(let a=0;a{i[s]=g&&typeof g=="object"?k(g):g}),i}function I(t){if(!t||typeof t!="object")return t;const i=[t];for(;i.length>0;){const s=i.shift();Object.freeze(s);for(const g in s)if(E.call(s,g)){const c=s[g];typeof c=="object"&&!Object.isFrozen(c)&&!(0,d.isTypedArray)(c)&&i.push(c)}}return t}const E=Object.prototype.hasOwnProperty;function y(t,i){return m(t,i,new Set)}function m(t,i,s){if((0,d.isUndefinedOrNull)(t))return t;const g=i(t);if(typeof g<"u")return g;if(Array.isArray(t)){const c=[];for(const l of t)c.push(m(l,i,s));return c}if((0,d.isObject)(t)){if(s.has(t))throw new Error("Cannot clone recursive data-structure");s.add(t);const c={};for(const l in t)E.call(t,l)&&(c[l]=m(t[l],i,s));return s.delete(t),c}return t}function _(t,i,s=!0){return(0,d.isObject)(t)?((0,d.isObject)(i)&&Object.keys(i).forEach(g=>{g in t?s&&((0,d.isObject)(t[g])&&(0,d.isObject)(i[g])?_(t[g],i[g],s):t[g]=i[g]):t[g]=i[g]}),t):i}function b(t,i){if(t===i)return!0;if(t==null||i===null||i===void 0||typeof t!=typeof i||typeof t!="object"||Array.isArray(t)!==Array.isArray(i))return!1;let s,g;if(Array.isArray(t)){if(t.length!==i.length)return!1;for(s=0;sfunction(){const l=Array.prototype.slice.call(arguments,0);return i(c,l)},g={};for(const c of t)g[c]=s(c);return g}}),define(ne[30],se([1,0,26]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ThemeIcon=e.ThemeColor=void 0;var k;(function(E){function y(m){return m&&typeof m=="object"&&typeof m.id=="string"}E.isThemeColor=y})(k||(e.ThemeColor=k={}));var I;(function(E){E.iconNameSegment="[A-Za-z0-9]+",E.iconNameExpression="[A-Za-z0-9-]+",E.iconModifierExpression="~[A-Za-z]+",E.iconNameCharacter="[A-Za-z0-9~-]";const y=new RegExp(`^(${E.iconNameExpression})(${E.iconModifierExpression})?$`);function m(c){const l=y.exec(c.id);if(!l)return m(d.Codicon.error);const[,a,r]=l,u=["codicon","codicon-"+a];return r&&u.push("codicon-modifier-"+r.substring(1)),u}E.asClassNameArray=m;function _(c){return m(c).join(" ")}E.asClassName=_;function b(c){return"."+m(c).join(".")}E.asCSSSelector=b;function p(c){return c&&typeof c=="object"&&typeof c.id=="string"&&(typeof c.color>"u"||k.isThemeColor(c.color))}E.isThemeIcon=p;const n=new RegExp(`^\\$\\((${E.iconNameExpression}(?:${E.iconModifierExpression})?)\\)$`);function o(c){const l=n.exec(c);if(!l)return;const[,a]=l;return{id:a}}E.fromString=o;function t(c){return{id:c}}E.fromId=t;function i(c,l){let a=c.id;const r=a.lastIndexOf("~");return r!==-1&&(a=a.substring(0,r)),l&&(a=`${a}~${l}`),{id:a}}E.modify=i;function s(c){const l=c.id.lastIndexOf("~");if(l!==-1)return c.id.substring(l+1)}E.getModifier=s;function g(c,l){return c.id===l.id&&c.color?.id===l.color?.id}E.isEqual=g})(I||(e.ThemeIcon=I={}))}),define(ne[142],se([1,0,82,11,30]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.escapeIcons=_,e.markdownEscapeEscapedIcons=p,e.stripIcons=o,e.getCodiconAriaLabel=t,e.parseLabelWithIcons=s,e.matchesFuzzyIconAware=g;const E="$(",y=new RegExp(`\\$\\(${I.ThemeIcon.iconNameExpression}(?:${I.ThemeIcon.iconModifierExpression})?\\)`,"g"),m=new RegExp(`(\\\\)?${y.source}`,"g");function _(c){return c.replace(m,(l,a)=>a?l:`\\${l}`)}const b=new RegExp(`\\\\${y.source}`,"g");function p(c){return c.replace(b,l=>`\\${l}`)}const n=new RegExp(`(\\s)?(\\\\)?${y.source}(\\s)?`,"g");function o(c){return c.indexOf(E)===-1?c:c.replace(n,(l,a,r,u)=>r?l:a||u||"")}function t(c){return c?c.replace(/\$\((.*?)\)/g,(l,a)=>` ${a} `).trim():""}const i=new RegExp(`\\$\\(${I.ThemeIcon.iconNameCharacter}+\\)`,"g");function s(c){i.lastIndex=0;let l="";const a=[];let r=0;for(;;){const u=i.lastIndex,C=i.exec(c),f=c.substring(u,C?.index);if(f.length>0){l+=f;for(let h=0;h255?255:I|0}function k(I){return I<0?0:I>4294967295?4294967295:I|0}}),define(ne[193],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.generateUuid=void 0,e.generateUuid=function(){if(typeof crypto=="object"&&typeof crypto.randomUUID=="function")return crypto.randomUUID.bind(crypto);let d;typeof crypto=="object"&&typeof crypto.getRandomValues=="function"?d=crypto.getRandomValues.bind(crypto):d=function(E){for(let y=0;yn,asFile:()=>{},value:typeof n=="string"?n:void 0}}function y(n,o,t){const i={id:(0,I.generateUuid)(),name:n,uri:o,data:t};return{asString:async()=>"",asFile:()=>i,value:void 0}}class m{constructor(){this._entries=new Map}get size(){let o=0;for(const t of this._entries)o++;return o}has(o){return this._entries.has(this.toKey(o))}matches(o){const t=[...this._entries.keys()];return k.Iterable.some(this,([i,s])=>s.asFile())&&t.push("files"),p(_(o),t)}get(o){return this._entries.get(this.toKey(o))?.[0]}append(o,t){const i=this._entries.get(o);i?i.push(t):this._entries.set(this.toKey(o),[t])}replace(o,t){this._entries.set(this.toKey(o),[t])}delete(o){this._entries.delete(this.toKey(o))}*[Symbol.iterator](){for(const[o,t]of this._entries)for(const i of t)yield[o,i]}toKey(o){return _(o)}}e.VSDataTransfer=m;function _(n){return n.toLowerCase()}function b(n,o){return p(_(n),o.map(_))}function p(n,o){if(n==="*/*")return o.length>0;if(o.includes(n))return!0;const t=n.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!t)return!1;const[i,s,g]=t;return g==="*"?o.some(c=>c.startsWith(s+"/")):!1}e.UriList=Object.freeze({create:n=>(0,d.distinct)(n.map(o=>o.toString())).join(`\r +`),split:n=>n.split(`\r +`),parse:n=>e.UriList.split(n).filter(o=>!o.startsWith("#"))})}),define(ne[302],se([10]),{}),define(ne[458],se([10]),{}),define(ne[459],se([10]),{}),define(ne[460],se([10]),{}),define(ne[461],se([10]),{}),define(ne[195],se([1,0,460,461]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0})}),define(ne[462],se([10]),{}),define(ne[463],se([10]),{}),define(ne[303],se([10]),{}),define(ne[304],se([10]),{}),define(ne[464],se([10]),{}),define(ne[465],se([10]),{}),define(ne[466],se([10]),{}),define(ne[467],se([10]),{}),define(ne[305],se([10]),{}),define(ne[468],se([10]),{}),define(ne[226],se([1,0,468]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME=void 0,e.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME="monaco-mouse-cursor-text"}),define(ne[469],se([10]),{}),define(ne[470],se([10]),{}),define(ne[471],se([10]),{}),define(ne[472],se([10]),{}),define(ne[473],se([10]),{}),define(ne[474],se([10]),{}),define(ne[475],se([10]),{}),define(ne[476],se([10]),{}),define(ne[477],se([10]),{}),define(ne[478],se([10]),{}),define(ne[479],se([10]),{}),define(ne[480],se([10]),{}),define(ne[481],se([10]),{}),define(ne[482],se([10]),{}),define(ne[483],se([10]),{}),define(ne[484],se([10]),{}),define(ne[485],se([10]),{}),define(ne[486],se([10]),{}),define(ne[487],se([10]),{}),define(ne[488],se([10]),{}),define(ne[489],se([10]),{}),define(ne[490],se([10]),{}),define(ne[491],se([10]),{}),define(ne[492],se([10]),{}),define(ne[493],se([10]),{}),define(ne[494],se([10]),{}),define(ne[495],se([10]),{}),define(ne[496],se([10]),{}),define(ne[497],se([10]),{}),define(ne[498],se([10]),{}),define(ne[499],se([10]),{}),define(ne[500],se([10]),{}),define(ne[501],se([10]),{}),define(ne[502],se([10]),{}),define(ne[503],se([10]),{}),define(ne[504],se([10]),{}),define(ne[505],se([10]),{}),define(ne[506],se([10]),{}),define(ne[227],se([10]),{}),define(ne[507],se([10]),{}),define(ne[508],se([10]),{}),define(ne[509],se([10]),{}),define(ne[510],se([10]),{}),define(ne[511],se([10]),{}),define(ne[512],se([10]),{}),define(ne[513],se([10]),{}),define(ne[514],se([10]),{}),define(ne[196],se([10]),{}),define(ne[515],se([10]),{}),define(ne[516],se([10]),{}),define(ne[517],se([10]),{}),define(ne[518],se([10]),{}),define(ne[519],se([10]),{}),define(ne[520],se([10]),{}),define(ne[521],se([10]),{}),define(ne[522],se([10]),{}),define(ne[523],se([10]),{}),define(ne[524],se([10]),{}),define(ne[525],se([10]),{}),define(ne[526],se([10]),{}),define(ne[527],se([10]),{}),define(ne[528],se([10]),{}),define(ne[529],se([10]),{}),define(ne[530],se([10]),{}),define(ne[531],se([10]),{}),define(ne[532],se([10]),{}),define(ne[533],se([10]),{}),define(ne[534],se([10]),{}),define(ne[535],se([10]),{}),define(ne[536],se([10]),{}),define(ne[537],se([10]),{}),define(ne[538],se([10]),{}),define(ne[539],se([10]),{}),define(ne[540],se([10]),{}),define(ne[541],se([10]),{}),define(ne[306],se([10]),{}),define(ne[542],se([10]),{}),define(ne[543],se([10]),{}),define(ne[228],se([10]),{}),define(ne[544],se([10]),{}),define(ne[74],se([1,0,39]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.applyFontInfo=k;function k(I,E){I instanceof d.FastDomNode?(I.setFontFamily(E.getMassagedFontFamily()),I.setFontWeight(E.fontWeight),I.setFontSize(E.fontSize),I.setFontFeatureSettings(E.fontFeatureSettings),I.setFontVariationSettings(E.fontVariationSettings),I.setLineHeight(E.lineHeight),I.setLetterSpacing(E.letterSpacing)):(I.style.fontFamily=E.getMassagedFontFamily(),I.style.fontWeight=E.fontWeight,I.style.fontSize=E.fontSize+"px",I.style.fontFeatureSettings=E.fontFeatureSettings,I.style.fontVariationSettings=E.fontVariationSettings,I.style.lineHeight=E.lineHeight+"px",I.style.letterSpacing=E.letterSpacing+"px")}}),define(ne[545],se([1,0,74]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CharWidthRequest=void 0,e.readCharWidths=E;class k{constructor(m,_){this.chr=m,this.type=_,this.width=0}fulfill(m){this.width=m}}e.CharWidthRequest=k;class I{constructor(m,_){this._bareFontInfo=m,this._requests=_,this._container=null,this._testElements=null}read(m){this._createDomElements(),m.document.body.appendChild(this._container),this._readFromDomElements(),this._container?.remove(),this._container=null,this._testElements=null}_createDomElements(){const m=document.createElement("div");m.style.position="absolute",m.style.top="-50000px",m.style.width="50000px";const _=document.createElement("div");(0,d.applyFontInfo)(_,this._bareFontInfo),m.appendChild(_);const b=document.createElement("div");(0,d.applyFontInfo)(b,this._bareFontInfo),b.style.fontWeight="bold",m.appendChild(b);const p=document.createElement("div");(0,d.applyFontInfo)(p,this._bareFontInfo),p.style.fontStyle="italic",m.appendChild(p);const n=[];for(const o of this._requests){let t;o.type===0&&(t=_),o.type===2&&(t=b),o.type===1&&(t=p),t.appendChild(document.createElement("br"));const i=document.createElement("span");I._render(i,o),t.appendChild(i),n.push(i)}this._container=m,this._testElements=n}static _render(m,_){if(_.chr===" "){let b="\xA0";for(let p=0;p<8;p++)b+=b;m.innerText=b}else{let b=_.chr;for(let p=0;p<8;p++)b+=b;m.textContent=b}}_readFromDomElements(){for(let m=0,_=this._requests.length;m<_;m++){const b=this._requests[m],p=this._testElements[m];b.fulfill(p.offsetWidth/256)}}}function E(y,m,_){new I(m,_).read(y)}}),define(ne[546],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorSettingMigration=void 0,e.migrateOptions=E;class d{static{this.items=[]}constructor(_,b){this.key=_,this.migrate=b}apply(_){const b=d._read(_,this.key),p=o=>d._read(_,o),n=(o,t)=>d._write(_,o,t);this.migrate(b,p,n)}static _read(_,b){if(typeof _>"u")return;const p=b.indexOf(".");if(p>=0){const n=b.substring(0,p);return this._read(_[n],b.substring(p+1))}return _[b]}static _write(_,b,p){const n=b.indexOf(".");if(n>=0){const o=b.substring(0,n);_[o]=_[o]||{},this._write(_[o],b.substring(n+1),p);return}_[b]=p}}e.EditorSettingMigration=d;function k(m,_){d.items.push(new d(m,_))}function I(m,_){k(m,(b,p,n)=>{if(typeof b<"u"){for(const[o,t]of _)if(b===o){n(m,t);return}}})}function E(m){d.items.forEach(_=>_.apply(m))}I("wordWrap",[[!0,"on"],[!1,"off"]]),I("lineNumbers",[[!0,"on"],[!1,"off"]]),I("cursorBlinking",[["visible","solid"]]),I("renderWhitespace",[[!0,"boundary"],[!1,"none"]]),I("renderLineHighlight",[[!0,"line"],[!1,"none"]]),I("acceptSuggestionOnEnter",[[!0,"on"],[!1,"off"]]),I("tabCompletion",[[!1,"off"],[!0,"onlySnippets"]]),I("hover",[[!0,{enabled:!0}],[!1,{enabled:!1}]]),I("parameterHints",[[!0,{enabled:!0}],[!1,{enabled:!1}]]),I("autoIndent",[[!1,"advanced"],[!0,"full"]]),I("matchBrackets",[[!0,"always"],[!1,"never"]]),I("renderFinalNewline",[[!0,"on"],[!1,"off"]]),I("cursorSmoothCaretAnimation",[[!0,"on"],[!1,"off"]]),I("occurrencesHighlight",[[!0,"singleFile"],[!1,"off"]]),I("wordBasedSuggestions",[[!0,"matchingDocuments"],[!1,"off"]]),k("autoClosingBrackets",(m,_,b)=>{m===!1&&(b("autoClosingBrackets","never"),typeof _("autoClosingQuotes")>"u"&&b("autoClosingQuotes","never"),typeof _("autoSurround")>"u"&&b("autoSurround","never"))}),k("renderIndentGuides",(m,_,b)=>{typeof m<"u"&&(b("renderIndentGuides",void 0),typeof _("guides.indentation")>"u"&&b("guides.indentation",!!m))}),k("highlightActiveIndentGuide",(m,_,b)=>{typeof m<"u"&&(b("highlightActiveIndentGuide",void 0),typeof _("guides.highlightActiveIndentation")>"u"&&b("guides.highlightActiveIndentation",!!m))});const y={method:"showMethods",function:"showFunctions",constructor:"showConstructors",deprecated:"showDeprecated",field:"showFields",variable:"showVariables",class:"showClasses",struct:"showStructs",interface:"showInterfaces",module:"showModules",property:"showProperties",event:"showEvents",operator:"showOperators",unit:"showUnits",value:"showValues",constant:"showConstants",enum:"showEnums",enumMember:"showEnumMembers",keyword:"showKeywords",text:"showWords",color:"showColors",file:"showFiles",reference:"showReferences",folder:"showFolders",typeParameter:"showTypeParameters",snippet:"showSnippets"};k("suggest.filteredTypes",(m,_,b)=>{if(m&&typeof m=="object"){for(const p of Object.entries(y))m[p[0]]===!1&&typeof _(`suggest.${p[1]}`)>"u"&&b(`suggest.${p[1]}`,!1);b("suggest.filteredTypes",void 0)}}),k("quickSuggestions",(m,_,b)=>{if(typeof m=="boolean"){const p=m?"on":"off";b("quickSuggestions",{comments:p,strings:p,other:p})}}),k("experimental.stickyScroll.enabled",(m,_,b)=>{typeof m=="boolean"&&(b("experimental.stickyScroll.enabled",void 0),typeof _("stickyScroll.enabled")>"u"&&b("stickyScroll.enabled",m))}),k("experimental.stickyScroll.maxLineCount",(m,_,b)=>{typeof m=="number"&&(b("experimental.stickyScroll.maxLineCount",void 0),typeof _("stickyScroll.maxLineCount")>"u"&&b("stickyScroll.maxLineCount",m))}),k("codeActionsOnSave",(m,_,b)=>{if(m&&typeof m=="object"){let p=!1;const n={};for(const o of Object.entries(m))typeof o[1]=="boolean"?(p=!0,n[o[0]]=o[1]?"explicit":"never"):n[o[0]]=o[1];p&&b("codeActionsOnSave",n)}}),k("codeActionWidget.includeNearbyQuickfixes",(m,_,b)=>{typeof m=="boolean"&&(b("codeActionWidget.includeNearbyQuickfixes",void 0),typeof _("codeActionWidget.includeNearbyQuickFixes")>"u"&&b("codeActionWidget.includeNearbyQuickFixes",m))}),k("lightbulb.enabled",(m,_,b)=>{typeof m=="boolean"&&b("lightbulb.enabled",m?void 0:"off")})}),define(ne[229],se([1,0,6]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TabFocus=void 0;class k{constructor(){this._tabFocus=!1,this._onDidChangeTabFocus=new d.Emitter,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}getTabFocusMode(){return this._tabFocus}setTabFocusMode(E){this._tabFocus=E,this._onDidChangeTabFocus.fire(this._tabFocus)}}e.TabFocus=new k}),define(ne[143],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StableEditorScrollState=void 0;class d{static capture(I){if(I.getScrollTop()===0||I.hasPendingScrollAnimation())return new d(I.getScrollTop(),I.getContentHeight(),null,0,null);let E=null,y=0;const m=I.getVisibleRanges();if(m.length>0){E=m[0].getStartPosition();const _=I.getTopForPosition(E.lineNumber,E.column);y=I.getScrollTop()-_}return new d(I.getScrollTop(),I.getContentHeight(),E,y,I.getPosition())}constructor(I,E,y,m,_){this._initialScrollTop=I,this._initialContentHeight=E,this._visiblePosition=y,this._visiblePositionScrollDelta=m,this._cursorPosition=_}restore(I){if(!(this._initialContentHeight===I.getContentHeight()&&this._initialScrollTop===I.getScrollTop())&&this._visiblePosition){const E=I.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);I.setScrollTop(E+this._visiblePositionScrollDelta)}}restoreRelativeVerticalPositionOfCursor(I){if(this._initialContentHeight===I.getContentHeight()&&this._initialScrollTop===I.getScrollTop())return;const E=I.getPosition();if(!this._cursorPosition||!E)return;const y=I.getTopForLineNumber(E.lineNumber)-I.getTopForLineNumber(this._cursorPosition.lineNumber);I.setScrollTop(I.getScrollTop()+y,1)}}e.StableEditorScrollState=d}),define(ne[164],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.VisibleRanges=e.HorizontalPosition=e.FloatHorizontalRange=e.HorizontalRange=e.LineVisibleRanges=e.RenderingContext=e.RestrictedRenderingContext=void 0;class d{constructor(p,n){this._restrictedRenderingContextBrand=void 0,this._viewLayout=p,this.viewportData=n,this.scrollWidth=this._viewLayout.getScrollWidth(),this.scrollHeight=this._viewLayout.getScrollHeight(),this.visibleRange=this.viewportData.visibleRange,this.bigNumbersDelta=this.viewportData.bigNumbersDelta;const o=this._viewLayout.getCurrentViewport();this.scrollTop=o.top,this.scrollLeft=o.left,this.viewportWidth=o.width,this.viewportHeight=o.height}getScrolledTopFromAbsoluteTop(p){return p-this.scrollTop}getVerticalOffsetForLineNumber(p,n){return this._viewLayout.getVerticalOffsetForLineNumber(p,n)}getVerticalOffsetAfterLineNumber(p,n){return this._viewLayout.getVerticalOffsetAfterLineNumber(p,n)}getDecorationsInViewport(){return this.viewportData.getDecorationsInViewport()}}e.RestrictedRenderingContext=d;class k extends d{constructor(p,n,o){super(p,n),this._renderingContextBrand=void 0,this._viewLines=o}linesVisibleRangesForRange(p,n){return this._viewLines.linesVisibleRangesForRange(p,n)}visibleRangeForPosition(p){return this._viewLines.visibleRangeForPosition(p)}}e.RenderingContext=k;class I{constructor(p,n,o,t){this.outsideRenderedLine=p,this.lineNumber=n,this.ranges=o,this.continuesOnNextLine=t}}e.LineVisibleRanges=I;class E{static from(p){const n=new Array(p.length);for(let o=0,t=p.length;o=n.left?_.width=Math.max(_.width,n.left+n.width-_.left):(y[m++]=_,_=n)}return y[m++]=_,y}static _createHorizontalRangesFromClientRects(E,y,m){if(!E||E.length===0)return null;const _=[];for(let b=0,p=E.length;bo)return null;if(y=Math.min(o,Math.max(0,y)),_=Math.min(o,Math.max(0,_)),y===_&&m===b&&m===0&&!E.children[y].firstChild){const g=E.children[y].getClientRects();return p.markDidDomLayout(),this._createHorizontalRangesFromClientRects(g,p.clientRectDeltaLeft,p.clientRectScale)}y!==_&&_>0&&b===0&&(_--,b=1073741824);let t=E.children[y].firstChild,i=E.children[_].firstChild;if((!t||!i)&&(!t&&m===0&&y>0&&(t=E.children[y-1].firstChild,m=1073741824),!i&&b===0&&_>0&&(i=E.children[_-1].firstChild,b=1073741824)),!t||!i)return null;m=Math.min(t.textContent.length,Math.max(0,m)),b=Math.min(i.textContent.length,Math.max(0,b));const s=this._readClientRects(t,m,i,b,p.endNode);return p.markDidDomLayout(),this._createHorizontalRangesFromClientRects(s,p.clientRectDeltaLeft,p.clientRectScale)}}e.RangeUtil=k}),define(ne[307],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getCharIndex=e.allCharCodes=void 0,e.allCharCodes=(()=>{const k=[];for(let I=32;I<=126;I++)k.push(I);return k.push(65533),k})();const d=(k,I)=>(k-=32,k<0||k>96?I<=2?(k+96)%96:95:k);e.getCharIndex=d}),define(ne[549],se([1,0,307,192]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MinimapCharRenderer=void 0;class I{constructor(y,m){this.scale=m,this._minimapCharRendererBrand=void 0,this.charDataNormal=I.soften(y,12/15),this.charDataLight=I.soften(y,50/60)}static soften(y,m){const _=new Uint8ClampedArray(y.length);for(let b=0,p=y.length;by.width||_+a>y.height){console.warn("bad render request outside image data");return}const r=s?this.charDataLight:this.charDataNormal,u=(0,d.getCharIndex)(b,i),C=y.width*4,f=o.r,h=o.g,v=o.b,w=p.r-f,S=p.g-h,L=p.b-v,D=Math.max(n,t),T=y.data;let M=u*c*l,A=_*C+m*4;for(let P=0;Py.width||_+g>y.height){console.warn("bad render request outside image data");return}const c=y.width*4,l=.5*(p/255),a=n.r,r=n.g,u=n.b,C=b.r-a,f=b.g-r,h=b.b-u,v=a+C*l,w=r+f*l,S=u+h*l,L=Math.max(p,o),D=y.data;let T=_*c+m*4;for(let M=0;M{const y=new Uint8ClampedArray(E.length/2);for(let m=0;m>1]=k[E[m]]<<4|k[E[m+1]]&15;return y};e.prebakedMiniMaps={1:(0,d.createSingleCallFunction)(()=>I("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792")),2:(0,d.createSingleCallFunction)(()=>I("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126"))}}),define(ne[551],se([1,0,549,307,550,192]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MinimapCharRendererFactory=void 0;class y{static create(_,b){if(this.lastCreated&&_===this.lastCreated.scale&&b===this.lastFontFamily)return this.lastCreated;let p;return I.prebakedMiniMaps[_]?p=new d.MinimapCharRenderer(I.prebakedMiniMaps[_](),_):p=y.createFromSampleData(y.createSampleData(b).data,_),this.lastFontFamily=b,this.lastCreated=p,p}static createSampleData(_){const b=document.createElement("canvas"),p=b.getContext("2d");b.style.height="16px",b.height=16,b.width=96*10,b.style.width=96*10+"px",p.fillStyle="#ffffff",p.font=`bold 16px ${_}`,p.textBaseline="middle";let n=0;for(const o of k.allCharCodes)p.fillText(String.fromCharCode(o),n,16/2),n+=10;return p.getImageData(0,0,96*10,16)}static createFromSampleData(_,b){if(_.length!==61440)throw new Error("Unexpected source in MinimapCharRenderer");const n=y._downsample(_,b);return new d.MinimapCharRenderer(n,b)}static _downsampleChar(_,b,p,n,o){const t=1*o,i=2*o;let s=n,g=0;for(let c=0;c0){const g=255/s;for(let c=0;cthis._itemData.get(m).getId()===I.getId())??y[0],this._unused.delete(E),this._itemData.set(E,I),E.setData(I)}return this._used.add(E),{object:E,dispose:()=>{this._used.delete(E),this._unused.size>5?E.dispose():this._unused.add(E)}}}dispose(){for(const I of this._used)I.dispose();for(const I of this._unused)I.dispose();this._used.clear(),this._unused.clear()}}e.ObjectPool=d}),define(ne[308],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.diffEditorDefaultOptions=void 0,e.diffEditorDefaultOptions={enableSplitViewResizing:!0,splitViewDefaultRatio:.5,renderSideBySide:!0,renderMarginRevertIcon:!0,renderGutterMenu:!0,maxComputationTime:5e3,maxFileSize:50,ignoreTrimWhitespace:!0,renderIndicators:!0,originalEditable:!1,diffCodeLens:!1,renderOverviewRuler:!0,diffWordWrap:"inherit",diffAlgorithm:"advanced",accessibilityVerbose:!1,experimental:{showMoves:!1,showEmptyDecorations:!0,useTrueInlineView:!1},hideUnchangedRegions:{enabled:!1,contextLineCount:3,minimumLineCount:3,revealLineCount:20},isInEmbeddedEditor:!1,onlyShowAccessibleDiffViewer:!1,renderSideBySideInlineBreakpoint:900,useInlineViewWhenSpaceIsLimited:!0,compactMode:!1}}),define(ne[165],se([1,0,6]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorZoom=void 0,e.EditorZoom=new class{constructor(){this._zoomLevel=0,this._onDidChangeZoomLevel=new d.Emitter,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}getZoomLevel(){return this._zoomLevel}setZoomLevel(k){k=Math.min(Math.max(-5,k),20),this._zoomLevel!==k&&(this._zoomLevel=k,this._onDidChangeZoomLevel.fire(this._zoomLevel))}}}),define(ne[144],se([1,0,192]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CharacterSet=e.CharacterClassifier=void 0;class k{constructor(y){const m=(0,d.toUint8)(y);this._defaultValue=m,this._asciiMap=k._createAsciiMap(m),this._map=new Map}static _createAsciiMap(y){const m=new Uint8Array(256);return m.fill(y),m}set(y,m){const _=(0,d.toUint8)(m);y>=0&&y<256?this._asciiMap[y]=_:this._map.set(y,_)}get(y){return y>=0&&y<256?this._asciiMap[y]:this._map.get(y)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}}e.CharacterClassifier=k;class I{constructor(){this._actual=new k(0)}add(y){this._actual.set(y,1)}has(y){return this._actual.get(y)===1}clear(){return this._actual.clear()}}e.CharacterSet=I}),define(ne[94],se([1,0,11]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CursorColumns=void 0;class k{static _nextVisibleColumn(E,y,m){return E===9?k.nextRenderTabStop(y,m):d.isFullWidthCharacter(E)||d.isEmojiImprecise(E)?y+2:y+1}static visibleColumnFromColumn(E,y,m){const _=Math.min(y-1,E.length),b=E.substring(0,_),p=new d.GraphemeIterator(b);let n=0;for(;!p.eol();){const o=d.getNextCodePoint(b,_,p.offset);p.nextGraphemeLength(),n=this._nextVisibleColumn(o,n,m)}return n}static columnFromVisibleColumn(E,y,m){if(y<=0)return 1;const _=E.length,b=new d.GraphemeIterator(E);let p=0,n=1;for(;!b.eol();){const o=d.getNextCodePoint(E,_,b.offset);b.nextGraphemeLength();const t=this._nextVisibleColumn(o,p,m),i=b.offset+1;if(t>=y){const s=y-p;return t-ym))return new k(y,m)}static ofLength(y){return new k(0,y)}static ofStartAndLength(y,m){return new k(y,y+m)}constructor(y,m){if(this.start=y,this.endExclusive=m,y>m)throw new d.BugIndicatingError(`Invalid range: ${this.toString()}`)}get isEmpty(){return this.start===this.endExclusive}delta(y){return new k(this.start+y,this.endExclusive+y)}deltaStart(y){return new k(this.start+y,this.endExclusive)}deltaEnd(y){return new k(this.start,this.endExclusive+y)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}contains(y){return this.start<=y&&y=y.endExclusive}slice(y){return y.slice(this.start,this.endExclusive)}substring(y){return y.substring(this.start,this.endExclusive)}clip(y){if(this.isEmpty)throw new d.BugIndicatingError(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,y))}clipCyclic(y){if(this.isEmpty)throw new d.BugIndicatingError(`Invalid clipping range: ${this.toString()}`);return y=this.endExclusive?this.start+(y-this.start)%this.length:y}forEach(y){for(let m=this.start;my.toString()).join(", ")}intersectsStrict(y){let m=0;for(;my+m.length,0)}}e.OffsetRangeSet=I}),define(ne[9],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Position=void 0;class d{constructor(I,E){this.lineNumber=I,this.column=E}with(I=this.lineNumber,E=this.column){return I===this.lineNumber&&E===this.column?this:new d(I,E)}delta(I=0,E=0){return this.with(this.lineNumber+I,this.column+E)}equals(I){return d.equals(this,I)}static equals(I,E){return!I&&!E?!0:!!I&&!!E&&I.lineNumber===E.lineNumber&&I.column===E.column}isBefore(I){return d.isBefore(this,I)}static isBefore(I,E){return I.lineNumberm||E===m&&y>_?(this.startLineNumber=m,this.startColumn=_,this.endLineNumber=E,this.endColumn=y):(this.startLineNumber=E,this.startColumn=y,this.endLineNumber=m,this.endColumn=_)}isEmpty(){return k.isEmpty(this)}static isEmpty(E){return E.startLineNumber===E.endLineNumber&&E.startColumn===E.endColumn}containsPosition(E){return k.containsPosition(this,E)}static containsPosition(E,y){return!(y.lineNumberE.endLineNumber||y.lineNumber===E.startLineNumber&&y.columnE.endColumn)}static strictContainsPosition(E,y){return!(y.lineNumberE.endLineNumber||y.lineNumber===E.startLineNumber&&y.column<=E.startColumn||y.lineNumber===E.endLineNumber&&y.column>=E.endColumn)}containsRange(E){return k.containsRange(this,E)}static containsRange(E,y){return!(y.startLineNumberE.endLineNumber||y.endLineNumber>E.endLineNumber||y.startLineNumber===E.startLineNumber&&y.startColumnE.endColumn)}strictContainsRange(E){return k.strictContainsRange(this,E)}static strictContainsRange(E,y){return!(y.startLineNumberE.endLineNumber||y.endLineNumber>E.endLineNumber||y.startLineNumber===E.startLineNumber&&y.startColumn<=E.startColumn||y.endLineNumber===E.endLineNumber&&y.endColumn>=E.endColumn)}plusRange(E){return k.plusRange(this,E)}static plusRange(E,y){let m,_,b,p;return y.startLineNumberE.endLineNumber?(b=y.endLineNumber,p=y.endColumn):y.endLineNumber===E.endLineNumber?(b=y.endLineNumber,p=Math.max(y.endColumn,E.endColumn)):(b=E.endLineNumber,p=E.endColumn),new k(m,_,b,p)}intersectRanges(E){return k.intersectRanges(this,E)}static intersectRanges(E,y){let m=E.startLineNumber,_=E.startColumn,b=E.endLineNumber,p=E.endColumn;const n=y.startLineNumber,o=y.startColumn,t=y.endLineNumber,i=y.endColumn;return mt?(b=t,p=i):b===t&&(p=Math.min(p,i)),m>b||m===b&&_>p?null:new k(m,_,b,p)}equalsRange(E){return k.equalsRange(this,E)}static equalsRange(E,y){return!E&&!y?!0:!!E&&!!y&&E.startLineNumber===y.startLineNumber&&E.startColumn===y.startColumn&&E.endLineNumber===y.endLineNumber&&E.endColumn===y.endColumn}getEndPosition(){return k.getEndPosition(this)}static getEndPosition(E){return new d.Position(E.endLineNumber,E.endColumn)}getStartPosition(){return k.getStartPosition(this)}static getStartPosition(E){return new d.Position(E.startLineNumber,E.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(E,y){return new k(this.startLineNumber,this.startColumn,E,y)}setStartPosition(E,y){return new k(E,y,this.endLineNumber,this.endColumn)}collapseToStart(){return k.collapseToStart(this)}static collapseToStart(E){return new k(E.startLineNumber,E.startColumn,E.startLineNumber,E.startColumn)}collapseToEnd(){return k.collapseToEnd(this)}static collapseToEnd(E){return new k(E.endLineNumber,E.endColumn,E.endLineNumber,E.endColumn)}delta(E){return new k(this.startLineNumber+E,this.startColumn,this.endLineNumber+E,this.endColumn)}static fromPositions(E,y=E){return new k(E.lineNumber,E.column,y.lineNumber,y.column)}static lift(E){return E?new k(E.startLineNumber,E.startColumn,E.endLineNumber,E.endColumn):null}static isIRange(E){return E&&typeof E.startLineNumber=="number"&&typeof E.startColumn=="number"&&typeof E.endLineNumber=="number"&&typeof E.endColumn=="number"}static areIntersectingOrTouching(E,y){return!(E.endLineNumberE.startLineNumber}toJSON(){return this}}e.Range=k}),define(ne[310],se([1,0,11,4]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PagedScreenReaderStrategy=e.TextAreaState=e._debugComposition=void 0,e._debugComposition=!1;class I{static{this.EMPTY=new I("",0,0,null,void 0)}constructor(m,_,b,p,n){this.value=m,this.selectionStart=_,this.selectionEnd=b,this.selection=p,this.newlineCountBeforeSelection=n}toString(){return`[ <${this.value}>, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`}static readFromTextArea(m,_){const b=m.getValue(),p=m.getSelectionStart(),n=m.getSelectionEnd();let o;if(_){const t=b.substring(0,p),i=_.value.substring(0,_.selectionStart);t===i&&(o=_.newlineCountBeforeSelection)}return new I(b,p,n,null,o)}collapseSelection(){return this.selectionStart===this.value.length?this:new I(this.value,this.value.length,this.value.length,null,void 0)}writeToTextArea(m,_,b){e._debugComposition&&console.log(`writeToTextArea ${m}: ${this.toString()}`),_.setValue(m,this.value),b&&_.setSelectionRange(m,this.selectionStart,this.selectionEnd)}deduceEditorPosition(m){if(m<=this.selectionStart){const p=this.value.substring(m,this.selectionStart);return this._finishDeduceEditorPosition(this.selection?.getStartPosition()??null,p,-1)}if(m>=this.selectionEnd){const p=this.value.substring(this.selectionEnd,m);return this._finishDeduceEditorPosition(this.selection?.getEndPosition()??null,p,1)}const _=this.value.substring(this.selectionStart,m);if(_.indexOf("\u2026")===-1)return this._finishDeduceEditorPosition(this.selection?.getStartPosition()??null,_,1);const b=this.value.substring(m,this.selectionEnd);return this._finishDeduceEditorPosition(this.selection?.getEndPosition()??null,b,-1)}_finishDeduceEditorPosition(m,_,b){let p=0,n=-1;for(;(n=_.indexOf(` +`,n+1))!==-1;)p++;return[m,b*_.length,p]}static deduceInput(m,_,b){if(!m)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};e._debugComposition&&(console.log("------------------------deduceInput"),console.log(`PREVIOUS STATE: ${m.toString()}`),console.log(`CURRENT STATE: ${_.toString()}`));const p=Math.min(d.commonPrefixLength(m.value,_.value),m.selectionStart,_.selectionStart),n=Math.min(d.commonSuffixLength(m.value,_.value),m.value.length-m.selectionEnd,_.value.length-_.selectionEnd),o=m.value.substring(p,m.value.length-n),t=_.value.substring(p,_.value.length-n),i=m.selectionStart-p,s=m.selectionEnd-p,g=_.selectionStart-p,c=_.selectionEnd-p;if(e._debugComposition&&(console.log(`AFTER DIFFING PREVIOUS STATE: <${o}>, selectionStart: ${i}, selectionEnd: ${s}`),console.log(`AFTER DIFFING CURRENT STATE: <${t}>, selectionStart: ${g}, selectionEnd: ${c}`)),g===c){const a=m.selectionStart-p;return e._debugComposition&&console.log(`REMOVE PREVIOUS: ${a} chars`),{text:t,replacePrevCharCnt:a,replaceNextCharCnt:0,positionDelta:0}}const l=s-i;return{text:t,replacePrevCharCnt:l,replaceNextCharCnt:0,positionDelta:0}}static deduceAndroidCompositionInput(m,_){if(!m)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};if(e._debugComposition&&(console.log("------------------------deduceAndroidCompositionInput"),console.log(`PREVIOUS STATE: ${m.toString()}`),console.log(`CURRENT STATE: ${_.toString()}`)),m.value===_.value)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:_.selectionEnd-m.selectionEnd};const b=Math.min(d.commonPrefixLength(m.value,_.value),m.selectionEnd),p=Math.min(d.commonSuffixLength(m.value,_.value),m.value.length-m.selectionEnd),n=m.value.substring(b,m.value.length-p),o=_.value.substring(b,_.value.length-p),t=m.selectionStart-b,i=m.selectionEnd-b,s=_.selectionStart-b,g=_.selectionEnd-b;return e._debugComposition&&(console.log(`AFTER DIFFING PREVIOUS STATE: <${n}>, selectionStart: ${t}, selectionEnd: ${i}`),console.log(`AFTER DIFFING CURRENT STATE: <${o}>, selectionStart: ${s}, selectionEnd: ${g}`)),{text:o,replacePrevCharCnt:i,replaceNextCharCnt:n.length-i,positionDelta:g-o.length}}}e.TextAreaState=I;class E{static _getPageOfLine(m,_){return Math.floor((m-1)/_)}static _getRangeForPage(m,_){const b=m*_,p=b+1,n=b+_;return new k.Range(p,1,n+1,1)}static fromEditorSelection(m,_,b,p){const o=E._getPageOfLine(_.startLineNumber,b),t=E._getRangeForPage(o,b),i=E._getPageOfLine(_.endLineNumber,b),s=E._getRangeForPage(i,b);let g=t.intersectRanges(new k.Range(1,1,_.startLineNumber,_.startColumn));if(p&&m.getValueLengthInRange(g,1)>500){const f=m.modifyPosition(g.getEndPosition(),-500);g=k.Range.fromPositions(f,g.getEndPosition())}const c=m.getValueInRange(g,1),l=m.getLineCount(),a=m.getLineMaxColumn(l);let r=s.intersectRanges(new k.Range(_.endLineNumber,_.endColumn,l,a));if(p&&m.getValueLengthInRange(r,1)>500){const f=m.modifyPosition(r.getStartPosition(),500);r=k.Range.fromPositions(r.getStartPosition(),f)}const u=m.getValueInRange(r,1);let C;if(o===i||o+1===i)C=m.getValueInRange(_,1);else{const f=t.intersectRanges(_),h=s.intersectRanges(_);C=m.getValueInRange(f,1)+"\u2026"+m.getValueInRange(h,1)}return p&&C.length>2*500&&(C=C.substring(0,500)+"\u2026"+C.substring(C.length-500,C.length)),new I(c+C+u,c.length,c.length+C.length,_,g.endLineNumber-g.startLineNumber)}}e.PagedScreenReaderStrategy=E}),define(ne[75],se([1,0,4]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditOperation=void 0;class k{static insert(E,y){return{range:new d.Range(E.lineNumber,E.column,E.lineNumber,E.column),text:y,forceMoveMarkers:!0}}static delete(E){return{range:E,text:null}}static replace(E,y){return{range:E,text:y}}static replaceMove(E,y){return{range:E,text:y,forceMoveMarkers:!0}}}e.EditOperation=k}),define(ne[554],se([1,0,11,75,4]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TrimTrailingWhitespaceCommand=void 0,e.trimTrailingWhitespace=y;class E{constructor(_,b,p){this._selection=_,this._cursors=b,this._selectionId=null,this._trimInRegexesAndStrings=p}getEditOperations(_,b){const p=y(_,this._cursors,this._trimInRegexesAndStrings);for(let n=0,o=p.length;ni.lineNumber===s.lineNumber?i.column-s.column:i.lineNumber-s.lineNumber);for(let i=_.length-2;i>=0;i--)_[i].lineNumber===_[i+1].lineNumber&&_.splice(i,1);const p=[];let n=0,o=0;const t=_.length;for(let i=1,s=m.getLineCount();i<=s;i++){const g=m.getLineContent(i),c=g.length+1;let l=0;if(op)throw new d.BugIndicatingError(`startLineNumber ${b} cannot be after endLineNumberExclusive ${p}`);this.startLineNumber=b,this.endLineNumberExclusive=p}contains(b){return this.startLineNumber<=b&&bo.endLineNumberExclusive>=b.startLineNumber),n=(0,E.findLastIdxMonotonous)(this._normalizedRanges,o=>o.startLineNumber<=b.endLineNumberExclusive)+1;if(p===n)this._normalizedRanges.splice(p,0,b);else if(p===n-1){const o=this._normalizedRanges[p];this._normalizedRanges[p]=o.join(b)}else{const o=this._normalizedRanges[p].join(this._normalizedRanges[n-1]).join(b);this._normalizedRanges.splice(p,n-p,o)}}contains(b){const p=(0,E.findLastMonotonous)(this._normalizedRanges,n=>n.startLineNumber<=b);return!!p&&p.endLineNumberExclusive>b}intersects(b){const p=(0,E.findLastMonotonous)(this._normalizedRanges,n=>n.startLineNumberb.startLineNumber}getUnion(b){if(this._normalizedRanges.length===0)return b;if(b._normalizedRanges.length===0)return this;const p=[];let n=0,o=0,t=null;for(;n=i.startLineNumber?t=new y(t.startLineNumber,Math.max(t.endLineNumberExclusive,i.endLineNumberExclusive)):(p.push(t),t=i)}return t!==null&&p.push(t),new m(p)}subtractFrom(b){const p=(0,E.findFirstIdxMonotonousOrArrLen)(this._normalizedRanges,i=>i.endLineNumberExclusive>=b.startLineNumber),n=(0,E.findLastIdxMonotonous)(this._normalizedRanges,i=>i.startLineNumber<=b.endLineNumberExclusive)+1;if(p===n)return new m([b]);const o=[];let t=b.startLineNumber;for(let i=p;it&&o.push(new y(t,s.startLineNumber)),t=s.endLineNumberExclusive}return tb.toString()).join(", ")}getIntersection(b){const p=[];let n=0,o=0;for(;np.delta(b)))}}e.LineRangeSet=m}),define(ne[311],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RGBA8=void 0;class d{static{this.Empty=new d(0,0,0,0)}constructor(I,E,y,m){this._rgba8Brand=void 0,this.r=d._clamp(I),this.g=d._clamp(E),this.b=d._clamp(y),this.a=d._clamp(m)}equals(I){return this.r===I.r&&this.g===I.g&&this.b===I.b&&this.a===I.a}static _clamp(I){return I<0?0:I>255?255:I|0}}e.RGBA8=d}),define(ne[23],se([1,0,9,4]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Selection=void 0;class I extends k.Range{constructor(y,m,_,b){super(y,m,_,b),this.selectionStartLineNumber=y,this.selectionStartColumn=m,this.positionLineNumber=_,this.positionColumn=b}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(y){return I.selectionsEqual(this,y)}static selectionsEqual(y,m){return y.selectionStartLineNumber===m.selectionStartLineNumber&&y.selectionStartColumn===m.selectionStartColumn&&y.positionLineNumber===m.positionLineNumber&&y.positionColumn===m.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(y,m){return this.getDirection()===0?new I(this.startLineNumber,this.startColumn,y,m):new I(y,m,this.startLineNumber,this.startColumn)}getPosition(){return new d.Position(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new d.Position(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(y,m){return this.getDirection()===0?new I(y,m,this.endLineNumber,this.endColumn):new I(this.endLineNumber,this.endColumn,y,m)}static fromPositions(y,m=y){return new I(y.lineNumber,y.column,m.lineNumber,m.column)}static fromRange(y,m){return m===0?new I(y.startLineNumber,y.startColumn,y.endLineNumber,y.endColumn):new I(y.endLineNumber,y.endColumn,y.startLineNumber,y.startColumn)}static liftSelection(y){return new I(y.selectionStartLineNumber,y.selectionStartColumn,y.positionLineNumber,y.positionColumn)}static selectionsArrEqual(y,m){if(y&&!m||!y&&m)return!1;if(!y&&!m)return!0;if(y.length!==m.length)return!1;for(let _=0,b=y.length;_{const g=b._map.get(t);g&&(b._map.delete(t),g.dispose(),s.dispose())})}return i}_beginUpdate(){this._updateCounter++,this._updateCounter===1&&(this._currentTransaction=new E.TransactionImpl(()=>{}))}_endUpdate(){if(this._updateCounter--,this._updateCounter===0){const t=this._currentTransaction;this._currentTransaction=void 0,t.finish()}}constructor(t){super(),this.editor=t,this._updateCounter=0,this._currentTransaction=void 0,this._model=(0,I.observableValue)(this,this.editor.getModel()),this.model=this._model,this.isReadonly=(0,I.observableFromEvent)(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(92)),this._versionId=(0,I.observableValueOpts)({owner:this,lazy:!0},this.editor.getModel()?.getVersionId()??null),this.versionId=this._versionId,this._selections=(0,I.observableValueOpts)({owner:this,equalsFn:(0,d.equalsIfDefined)((0,d.itemsEquals)(m.Selection.selectionsEqual)),lazy:!0},this.editor.getSelections()??null),this.selections=this._selections,this.isFocused=(0,I.observableFromEvent)(this,i=>{const s=this.editor.onDidFocusEditorWidget(i),g=this.editor.onDidBlurEditorWidget(i);return{dispose(){s.dispose(),g.dispose()}}},()=>this.editor.hasWidgetFocus()),this.value=(0,y.derivedWithSetter)(this,i=>(this.versionId.read(i),this.model.read(i)?.getValue()??""),(i,s)=>{const g=this.model.get();g!==null&&i!==g.getValue()&&g.setValue(i)}),this.valueIsEmpty=(0,I.derived)(this,i=>(this.versionId.read(i),this.editor.getModel()?.getValueLength()===0)),this.cursorSelection=(0,I.derivedOpts)({owner:this,equalsFn:(0,d.equalsIfDefined)(m.Selection.selectionsEqual)},i=>this.selections.read(i)?.[0]??null),this.onDidType=(0,I.observableSignal)(this),this.scrollTop=(0,I.observableFromEvent)(this.editor.onDidScrollChange,()=>this.editor.getScrollTop()),this.scrollLeft=(0,I.observableFromEvent)(this.editor.onDidScrollChange,()=>this.editor.getScrollLeft()),this.layoutInfo=(0,I.observableFromEvent)(this.editor.onDidLayoutChange,()=>this.editor.getLayoutInfo()),this.layoutInfoContentLeft=this.layoutInfo.map(i=>i.contentLeft),this.layoutInfoDecorationsLeft=this.layoutInfo.map(i=>i.decorationsLeft),this.contentWidth=(0,I.observableFromEvent)(this.editor.onDidContentSizeChange,()=>this.editor.getContentWidth()),this._overlayWidgetCounter=0,this._register(this.editor.onBeginUpdate(()=>this._beginUpdate())),this._register(this.editor.onEndUpdate(()=>this._endUpdate())),this._register(this.editor.onDidChangeModel(()=>{this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidType(i=>{this._beginUpdate();try{this._forceUpdate(),this.onDidType.trigger(this._currentTransaction,i)}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeModelContent(i=>{this._beginUpdate();try{this._versionId.set(this.editor.getModel()?.getVersionId()??null,this._currentTransaction,i),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeCursorSelection(i=>{this._beginUpdate();try{this._selections.set(this.editor.getSelections(),this._currentTransaction,i),this._forceUpdate()}finally{this._endUpdate()}}))}forceUpdate(t){this._beginUpdate();try{return this._forceUpdate(),t?t(this._currentTransaction):void 0}finally{this._endUpdate()}}_forceUpdate(){this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._versionId.set(this.editor.getModel()?.getVersionId()??null,this._currentTransaction,void 0),this._selections.set(this.editor.getSelections(),this._currentTransaction,void 0)}finally{this._endUpdate()}}getOption(t){return(0,I.observableFromEvent)(this,i=>this.editor.onDidChangeConfiguration(s=>{s.hasChanged(t)&&i(void 0)}),()=>this.editor.getOption(t))}setDecorations(t){const i=new k.DisposableStore,s=this.editor.createDecorationsCollection();return i.add((0,I.autorunOpts)({owner:this,debugName:()=>`Apply decorations from ${t.debugName}`},g=>{const c=t.read(g);s.set(c)})),i.add({dispose:()=>{s.clear()}}),i}createOverlayWidget(t){const i="observableOverlayWidget"+this._overlayWidgetCounter++,s={getDomNode:()=>t.domNode,getPosition:()=>t.position.get(),getId:()=>i,allowEditorOverflow:t.allowEditorOverflow,getMinContentWidthInPx:()=>t.minContentWidthInPx.get()};this.editor.addOverlayWidget(s);const g=(0,I.autorun)(c=>{t.position.read(c),t.minContentWidthInPx.read(c),this.editor.layoutOverlayWidget(s)});return(0,k.toDisposable)(()=>{g.dispose(),this.editor.removeOverlayWidget(s)})}}e.ObservableCodeEditor=b;function p(o,t){return(0,I.autorunWithStoreHandleChanges)({createEmptyChangeSummary:()=>({deltas:[],didChange:!1}),handleChange:(i,s)=>{if(i.didChange(o)){const g=i.change;g!==void 0&&s.deltas.push(g),s.didChange=!0}return!0}},(i,s)=>{const g=o.read(i);s.didChange&&t(g,s.deltas)})}function n(o,t){const i=new k.DisposableStore,s=p(o,(g,c)=>{i.clear(),t(g,c,i)});return{dispose(){s.dispose(),i.dispose()}}}}),define(ne[146],se([1,0,23]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReplaceCommandThatPreservesSelection=e.ReplaceCommandWithOffsetCursorState=e.ReplaceCommandWithoutChangingPosition=e.ReplaceCommandThatSelectsText=e.ReplaceCommand=void 0;class k{constructor(b,p,n=!1){this._range=b,this._text=p,this.insertsAutoWhitespace=n}getEditOperations(b,p){p.addTrackedEditOperation(this._range,this._text)}computeCursorState(b,p){const o=p.getInverseEditOperations()[0].range;return d.Selection.fromPositions(o.getEndPosition())}}e.ReplaceCommand=k;class I{constructor(b,p){this._range=b,this._text=p}getEditOperations(b,p){p.addTrackedEditOperation(this._range,this._text)}computeCursorState(b,p){const o=p.getInverseEditOperations()[0].range;return d.Selection.fromRange(o,0)}}e.ReplaceCommandThatSelectsText=I;class E{constructor(b,p,n=!1){this._range=b,this._text=p,this.insertsAutoWhitespace=n}getEditOperations(b,p){p.addTrackedEditOperation(this._range,this._text)}computeCursorState(b,p){const o=p.getInverseEditOperations()[0].range;return d.Selection.fromPositions(o.getStartPosition())}}e.ReplaceCommandWithoutChangingPosition=E;class y{constructor(b,p,n,o,t=!1){this._range=b,this._text=p,this._columnDeltaOffset=o,this._lineNumberDeltaOffset=n,this.insertsAutoWhitespace=t}getEditOperations(b,p){p.addTrackedEditOperation(this._range,this._text)}computeCursorState(b,p){const o=p.getInverseEditOperations()[0].range;return d.Selection.fromPositions(o.getEndPosition().delta(this._lineNumberDeltaOffset,this._columnDeltaOffset))}}e.ReplaceCommandWithOffsetCursorState=y;class m{constructor(b,p,n,o=!1){this._range=b,this._text=p,this._initialSelection=n,this._forceMoveMarkers=o,this._selectionId=null}getEditOperations(b,p){p.addTrackedEditOperation(this._range,this._text,this._forceMoveMarkers),this._selectionId=p.trackSelection(this._initialSelection)}computeCursorState(b,p){return p.getTrackedSelection(this._selectionId)}}e.ReplaceCommandThatPreservesSelection=m}),define(ne[312],se([1,0,4,23]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CompositionSurroundSelectionCommand=e.SurroundSelectionCommand=void 0;class I{constructor(m,_,b){this._range=m,this._charBeforeSelection=_,this._charAfterSelection=b}getEditOperations(m,_){_.addTrackedEditOperation(new d.Range(this._range.startLineNumber,this._range.startColumn,this._range.startLineNumber,this._range.startColumn),this._charBeforeSelection),_.addTrackedEditOperation(new d.Range(this._range.endLineNumber,this._range.endColumn,this._range.endLineNumber,this._range.endColumn),this._charAfterSelection)}computeCursorState(m,_){const b=_.getInverseEditOperations(),p=b[0].range,n=b[1].range;return new k.Selection(p.endLineNumber,p.endColumn,n.endLineNumber,n.endColumn-this._charAfterSelection.length)}}e.SurroundSelectionCommand=I;class E{constructor(m,_,b){this._position=m,this._text=_,this._charAfter=b}getEditOperations(m,_){_.addTrackedEditOperation(new d.Range(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column),this._text+this._charAfter)}computeCursorState(m,_){const p=_.getInverseEditOperations()[0].range;return new k.Selection(p.endLineNumber,p.startColumn,p.endLineNumber,p.endColumn-this._charAfter.length)}}e.CompositionSurroundSelectionCommand=E}),define(ne[113],se([1,0,9,4]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextLength=void 0;class I{static{this.zero=new I(0,0)}static betweenPositions(y,m){return y.lineNumber===m.lineNumber?new I(0,m.column-y.column):new I(m.lineNumber-y.lineNumber,m.column-1)}static ofRange(y){return I.betweenPositions(y.getStartPosition(),y.getEndPosition())}static ofText(y){let m=0,_=0;for(const b of y)b===` +`?(m++,_=0):_++;return new I(m,_)}constructor(y,m){this.lineCount=y,this.columnCount=m}isGreaterThanOrEqualTo(y){return this.lineCount!==y.lineCount?this.lineCount>y.lineCount:this.columnCount>=y.columnCount}createRange(y){return this.lineCount===0?new k.Range(y.lineNumber,y.column,y.lineNumber,y.column+this.columnCount):new k.Range(y.lineNumber,y.column,y.lineNumber+this.lineCount,this.columnCount+1)}addToPosition(y){return this.lineCount===0?new d.Position(y.lineNumber,y.column+this.columnCount):new d.Position(y.lineNumber+this.lineCount,this.columnCount+1)}toString(){return`${this.lineCount},${this.columnCount}`}}e.TextLength=I}),define(ne[555],se([1,0,68,113]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PositionOffsetTransformer=void 0;class I{constructor(y){this.text=y,this.lineStartOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let m=0;m(0,d.checkAdjacentItems)(i,(s,g)=>s.range.getEndPosition().isBeforeOrEqual(g.range.getStartPosition())))}apply(i){let s="",g=new I.Position(1,1);for(const l of this.edits){const a=l.range,r=a.getStartPosition(),u=a.getEndPosition(),C=p(g,r);C.isEmpty()||(s+=i.getValueOfRange(C)),s+=l.text,g=u}const c=p(g,i.endPositionExclusive);return c.isEmpty()||(s+=i.getValueOfRange(c)),s}applyToString(i){const s=new o(i);return this.apply(s)}getNewRanges(){const i=[];let s=0,g=0,c=0;for(const l of this.edits){const a=m.TextLength.ofText(l.text),r=I.Position.lift({lineNumber:l.range.startLineNumber+g,column:l.range.startColumn+(l.range.startLineNumber===s?c:0)}),u=a.createRange(r);i.push(u),g=u.endLineNumber-l.range.endLineNumber,c=u.endColumn-l.range.endColumn,s=l.range.endLineNumber}return i}}e.TextEdit=_;class b{constructor(i,s){this.range=i,this.text=s}toSingleEditOperation(){return{range:this.range,text:this.text}}}e.SingleTextEdit=b;function p(t,i){if(t.lineNumber===i.lineNumber&&t.column===Number.MAX_SAFE_INTEGER)return y.Range.fromPositions(i,i);if(!t.isBeforeOrEqual(i))throw new k.BugIndicatingError("start must be before end");return new y.Range(t.lineNumber,t.column,i.lineNumber,i.column)}class n{get endPositionExclusive(){return this.length.addToPosition(new I.Position(1,1))}}e.AbstractText=n;class o extends n{constructor(i){super(),this.value=i,this._t=new E.PositionOffsetTransformer(this.value)}getValueOfRange(i){return this._t.getOffsetRange(i).substring(this.value)}get length(){return this._t.textLength}}e.StringText=o}),define(ne[197],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EDITOR_MODEL_DEFAULTS=void 0,e.EDITOR_MODEL_DEFAULTS={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}}}),define(ne[166],se([1,0,45,144]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WordCharacterClassifier=void 0,e.getMapForWordSeparators=y;class I extends k.CharacterClassifier{constructor(_,b){super(0),this._segmenter=null,this._cachedLine=null,this._cachedSegments=[],this.intlSegmenterLocales=b,this.intlSegmenterLocales.length>0?this._segmenter=new Intl.Segmenter(this.intlSegmenterLocales,{granularity:"word"}):this._segmenter=null;for(let p=0,n=_.length;pb)break;p=n}return p}findNextIntlWordAtOrAfterOffset(_,b){for(const p of this._getIntlSegmenterWordsOnLine(_))if(!(p.index/?";function I(b=""){let p="(-?\\d*\\.\\d\\w*)|([^";for(const n of e.USUAL_WORD_SEPARATORS)b.indexOf(n)>=0||(p+="\\"+n);return p+="\\s]+)",new RegExp(p,"g")}e.DEFAULT_WORD_REGEXP=I();function E(b){let p=e.DEFAULT_WORD_REGEXP;if(b&&b instanceof RegExp)if(b.global)p=b;else{let n="g";b.ignoreCase&&(n+="i"),b.multiline&&(n+="m"),b.unicode&&(n+="u"),p=new RegExp(b.source,n)}return p.lastIndex=0,p}const y=new k.LinkedList;y.unshift({maxLen:1e3,windowSize:15,timeBudget:150});function m(b,p,n,o,t){if(p=E(p),t||(t=d.Iterable.first(y)),n.length>t.maxLen){let l=b-t.maxLen/2;return l<0?l=0:o+=l,n=n.substring(l,b+t.maxLen/2),m(b,p,n,o,t)}const i=Date.now(),s=b-1-o;let g=-1,c=null;for(let l=1;!(Date.now()-i>=t.timeBudget);l++){const a=s-t.windowSize*l;p.lastIndex=Math.max(0,a);const r=_(p,n,s,g);if(!r&&c||(c=r,a<=0))break;g=a}if(c){const l={word:c[0],startColumn:o+1+c.index,endColumn:o+1+c.index+c[0].length};return p.lastIndex=0,l}return null}function _(b,p,n,o){let t;for(;t=b.exec(p);){const i=t.index||0;if(i<=n&&b.lastIndex>=n)return t;if(o>0&&i>o)return null}return null}}),define(ne[313],se([1,0,94]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AtomicTabMoveOperations=void 0;class k{static whitespaceVisibleColumn(E,y,m){const _=E.length;let b=0,p=-1,n=-1;for(let o=0;o<_;o++){if(o===y)return[p,n,b];switch(b%m===0&&(p=o,n=b),E.charCodeAt(o)){case 32:b+=1;break;case 9:b=d.CursorColumns.nextRenderTabStop(b,m);break;default:return[-1,-1,-1]}}return y===_?[p,n,b]:[-1,-1,-1]}static atomicPosition(E,y,m,_){const b=E.length,[p,n,o]=k.whitespaceVisibleColumn(E,y,m);if(o===-1)return-1;let t;switch(_){case 0:t=!0;break;case 1:t=!1;break;case 2:if(o%m===0)return y;t=o%m<=m/2;break}if(t){if(p===-1)return-1;let g=n;for(let c=p;c{t.push(y.fromOffsetPairs(i?i.getEndExclusives():m.zero,s?s.getStarts():new m(o,(i?i.seq2Range.endExclusive-i.seq1Range.endExclusive:0)+o)))}),t}static fromOffsetPairs(n,o){return new y(new I.OffsetRange(n.offset1,o.offset1),new I.OffsetRange(n.offset2,o.offset2))}static assertSorted(n){let o;for(const t of n){if(o&&!(o.seq1Range.endExclusive<=t.seq1Range.start&&o.seq2Range.endExclusive<=t.seq2Range.start))throw new k.BugIndicatingError("Sequence diffs must be sorted");o=t}}constructor(n,o){this.seq1Range=n,this.seq2Range=o}swap(){return new y(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(n){return new y(this.seq1Range.join(n.seq1Range),this.seq2Range.join(n.seq2Range))}delta(n){return n===0?this:new y(this.seq1Range.delta(n),this.seq2Range.delta(n))}deltaStart(n){return n===0?this:new y(this.seq1Range.deltaStart(n),this.seq2Range.deltaStart(n))}deltaEnd(n){return n===0?this:new y(this.seq1Range.deltaEnd(n),this.seq2Range.deltaEnd(n))}intersect(n){const o=this.seq1Range.intersect(n.seq1Range),t=this.seq2Range.intersect(n.seq2Range);if(!(!o||!t))return new y(o,t)}getStarts(){return new m(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new m(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}}e.SequenceDiff=y;class m{static{this.zero=new m(0,0)}static{this.max=new m(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER)}constructor(n,o){this.offset1=n,this.offset2=o}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(n){return n===0?this:new m(this.offset1+n,this.offset2+n)}equals(n){return this.offset1===n.offset1&&this.offset2===n.offset2}}e.OffsetPair=m;class _{static{this.instance=new _}isValid(){return!0}}e.InfiniteTimeout=_;class b{constructor(n){if(this.timeout=n,this.startTime=Date.now(),this.valid=!0,n<=0)throw new k.BugIndicatingError("timeout must be positive")}isValid(){if(!(Date.now()-this.startTimeo.length||D>t.length)continue;const T=i(L,D);g.set(l,T);const M=L===w?c.get(l+1):c.get(l-1);if(c.set(l,T!==L?new E(M,L,D,T-L):M),g.get(l)===o.length&&g.get(l)-l===t.length)break e}}let a=c.get(l);const r=[];let u=o.length,C=t.length;for(;;){const f=a?a.x+a.length:0,h=a?a.y+a.length:0;if((f!==u||h!==C)&&r.push(new k.SequenceDiff(new d.OffsetRange(f,u),new d.OffsetRange(h,C))),!a)break;u=a.x,C=a.y,a=a.prev}return r.reverse(),new k.DiffAlgorithmResult(r,!1)}}e.MyersDiffAlgorithm=I;class E{constructor(b,p,n,o){this.prev=b,this.x=p,this.y=n,this.length=o}}class y{constructor(){this.positiveArr=new Int32Array(10),this.negativeArr=new Int32Array(10)}get(b){return b<0?(b=-b-1,this.negativeArr[b]):this.positiveArr[b]}set(b,p){if(b<0){if(b=-b-1,b>=this.negativeArr.length){const n=this.negativeArr;this.negativeArr=new Int32Array(n.length*2),this.negativeArr.set(n)}this.negativeArr[b]=p}else{if(b>=this.positiveArr.length){const n=this.positiveArr;this.positiveArr=new Int32Array(n.length*2),this.positiveArr.set(n)}this.positiveArr[b]=p}}}class m{constructor(){this.positiveArr=[],this.negativeArr=[]}get(b){return b<0?(b=-b-1,this.negativeArr[b]):this.positiveArr[b]}set(b,p){b<0?(b=-b-1,this.negativeArr[b]=p):this.positiveArr[b]=p}}}),define(ne[315],se([1,0,13,68,167]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.optimizeSequenceDiffs=E,e.removeShortMatches=b,e.extendDiffsToEntireWordIfAppropriate=p,e.removeVeryShortMatchingLinesBetweenDiffs=o,e.removeVeryShortMatchingTextBetweenLongDiffs=t;function E(i,s,g){let c=g;return c=y(i,s,c),c=y(i,s,c),c=m(i,s,c),c}function y(i,s,g){if(g.length===0)return g;const c=[];c.push(g[0]);for(let a=1;a0&&(u=u.delta(f))}l.push(u)}return c.length>0&&l.push(c[c.length-1]),l}function m(i,s,g){if(!i.getBoundaryScore||!s.getBoundaryScore)return g;for(let c=0;c0?g[c-1]:void 0,a=g[c],r=c+1=c.start&&i.seq2Range.start-r>=l.start&&g.isStronglyEqual(i.seq2Range.start-r,i.seq2Range.endExclusive-r)&&r<100;)r++;r--;let u=0;for(;i.seq1Range.start+uf&&(f=L,C=h)}return i.delta(C)}function b(i,s,g){const c=[];for(const l of g){const a=c[c.length-1];if(!a){c.push(l);continue}l.seq1Range.start-a.seq1Range.endExclusive<=2||l.seq2Range.start-a.seq2Range.endExclusive<=2?c[c.length-1]=new I.SequenceDiff(a.seq1Range.join(l.seq1Range),a.seq2Range.join(l.seq2Range)):c.push(l)}return c}function p(i,s,g){const c=I.SequenceDiff.invert(g,i.length),l=[];let a=new I.OffsetPair(0,0);function r(C,f){if(C.offset10;){const T=c[0];if(!(T.seq1Range.intersects(w.seq1Range)||T.seq2Range.intersects(w.seq2Range)))break;const A=i.findWordContaining(T.seq1Range.start),P=s.findWordContaining(T.seq2Range.start),N=new I.SequenceDiff(A,P),O=N.intersect(T);if(L+=O.seq1Range.length,D+=O.seq2Range.length,w=w.join(N),w.seq1Range.endExclusive>=T.seq1Range.endExclusive)c.shift();else break}L+D<(w.seq1Range.length+w.seq2Range.length)*2/3&&l.push(w),a=w.getEndExclusives()}for(;c.length>0;){const C=c.shift();C.seq1Range.isEmpty||(r(C.getStarts(),C),r(C.getEndExclusives().delta(-1),C))}return n(g,l)}function n(i,s){const g=[];for(;i.length>0||s.length>0;){const c=i[0],l=s[0];let a;c&&(!l||c.seq1Range.start0&&g[g.length-1].seq1Range.endExclusive>=a.seq1Range.start?g[g.length-1]=g[g.length-1].join(a):g.push(a)}return g}function o(i,s,g){let c=g;if(c.length===0)return c;let l=0,a;do{a=!1;const r=[c[0]];for(let u=1;u5||S.seq1Range.length+S.seq2Range.length>5)};const C=c[u],f=r[r.length-1];h(f,C)?(a=!0,r[r.length-1]=r[r.length-1].join(C)):r.push(C)}c=r}while(l++<10&&a);return c}function t(i,s,g){let c=g;if(c.length===0)return c;let l=0,a;do{a=!1;const u=[c[0]];for(let C=1;C5||D.length>500)return!1;const M=i.getText(D).trim();if(M.length>20||M.split(/\r\n|\r|\n/).length>1)return!1;const A=i.countLinesIn(S.seq1Range),P=S.seq1Range.length,N=s.countLinesIn(S.seq2Range),O=S.seq2Range.length,F=i.countLinesIn(L.seq1Range),x=L.seq1Range.length,W=s.countLinesIn(L.seq2Range),V=L.seq2Range.length,q=2*40+50;function H(z){return Math.min(z,q)}return Math.pow(Math.pow(H(A*40+P),1.5)+Math.pow(H(N*40+O),1.5),1.5)+Math.pow(Math.pow(H(F*40+x),1.5)+Math.pow(H(W*40+V),1.5),1.5)>(q**1.5)**1.5*1.3};const f=c[C],h=u[u.length-1];v(h,f)?(a=!0,u[u.length-1]=u[u.length-1].join(f)):u.push(f)}c=u}while(l++<10&&a);const r=[];return(0,d.forEachWithNeighbors)(c,(u,C,f)=>{let h=C;function v(M){return M.length>0&&M.trim().length<=3&&C.seq1Range.length+C.seq2Range.length>100}const w=i.extendToFullLines(C.seq1Range),S=i.getText(new k.OffsetRange(w.start,C.seq1Range.start));v(S)&&(h=h.deltaStart(-S.length));const L=i.getText(new k.OffsetRange(C.seq1Range.endExclusive,w.endExclusive));v(L)&&(h=h.deltaEnd(L.length));const D=I.SequenceDiff.fromOffsetPairs(u?u.getEndExclusives():I.OffsetPair.zero,f?f.getStarts():I.OffsetPair.max),T=h.intersect(D);r.length>0&&T.getStarts().equals(r[r.length-1].getEndExclusives())?r[r.length-1]=r[r.length-1].join(T):r.push(T)}),r}}),define(ne[557],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LineSequence=void 0;class d{constructor(E,y){this.trimmedHash=E,this.lines=y}getElement(E){return this.trimmedHash[E]}get length(){return this.trimmedHash.length}getBoundaryScore(E){const y=E===0?0:k(this.lines[E-1]),m=E===this.lines.length?0:k(this.lines[E]);return 1e3-(y+m)}getText(E){return this.lines.slice(E.start,E.endExclusive).join(` +`)}isStronglyEqual(E,y){return this.lines[E]===this.lines[y]}}e.LineSequence=d;function k(I){let E=0;for(;E0&&u>0&&o.get(r-1,u-1)===3&&(h+=t.get(r-1,u-1)),h+=p?p(r,u):1):h=-1;const v=Math.max(C,f,h);if(v===h){const w=r>0&&u>0?t.get(r-1,u-1):0;t.set(r,u,w+1),o.set(r,u,3)}else v===C?(t.set(r,u,0),o.set(r,u,1)):v===f&&(t.set(r,u,0),o.set(r,u,2));n.set(r,u,v)}const i=[];let s=m.length,g=_.length;function c(r,u){(r+1!==s||u+1!==g)&&i.push(new k.SequenceDiff(new d.OffsetRange(r+1,s),new d.OffsetRange(u+1,g))),s=r,g=u}let l=m.length-1,a=_.length-1;for(;l>=0&&a>=0;)o.get(l,a)===3?(c(l,a),l--,a--):o.get(l,a)===1?l--:a--;return c(-1,-1),i.reverse(),new k.DiffAlgorithmResult(i,!1)}}e.DynamicProgrammingDiffing=E}),define(ne[316],se([1,0,67,68,9,4,231]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinesSliceCharSequence=void 0;class m{constructor(t,i,s){this.lines=t,this.range=i,this.considerWhitespaceChanges=s,this.elements=[],this.firstElementOffsetByLineIdx=[],this.lineStartOffsets=[],this.trimmedWsLengthsByLineIdx=[],this.firstElementOffsetByLineIdx.push(0);for(let g=this.range.startLineNumber;g<=this.range.endLineNumber;g++){let c=t[g-1],l=0;g===this.range.startLineNumber&&this.range.startColumn>1&&(l=this.range.startColumn-1,c=c.substring(l)),this.lineStartOffsets.push(l);let a=0;if(!s){const u=c.trimStart();a=c.length-u.length,c=u.trimEnd()}this.trimmedWsLengthsByLineIdx.push(a);const r=g===this.range.endLineNumber?Math.min(this.range.endColumn-1-l-a,c.length):c.length;for(let u=0;uString.fromCharCode(i)).join("")}getElement(t){return this.elements[t]}get length(){return this.elements.length}getBoundaryScore(t){const i=n(t>0?this.elements[t-1]:-1),s=n(tc<=t),g=t-this.firstElementOffsetByLineIdx[s];return new I.Position(this.range.startLineNumber+s,1+this.lineStartOffsets[s]+g+(g===0&&i==="left"?0:this.trimmedWsLengthsByLineIdx[s]))}translateRange(t){const i=this.translateOffset(t.start,"right"),s=this.translateOffset(t.endExclusive,"left");return s.isBefore(i)?E.Range.fromPositions(s,s):E.Range.fromPositions(i,s)}findWordContaining(t){if(t<0||t>=this.elements.length||!_(this.elements[t]))return;let i=t;for(;i>0&&_(this.elements[i-1]);)i--;let s=t;for(;sg<=t.start)??0,s=(0,d.findFirstMonotonous)(this.firstElementOffsetByLineIdx,g=>t.endExclusive<=g)??this.elements.length;return new k.OffsetRange(i,s)}}e.LinesSliceCharSequence=m;function _(o){return o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57}const b={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function p(o){return b[o]}function n(o){return o===10?8:o===13?7:(0,y.isSpace)(o)?6:o>=97&&o<=122?0:o>=65&&o<=90?1:o>=48&&o<=57?2:o===-1?3:o===44||o===59?5:4}}),define(ne[232],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MovedText=e.LinesDiff=void 0;class d{constructor(E,y,m){this.changes=E,this.moves=y,this.hitTimeout=m}}e.LinesDiff=d;class k{constructor(E,y){this.lineRangeMapping=E,this.changes=y}}e.MovedText=k}),define(ne[105],se([1,0,8,55,9,4,104]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RangeMapping=e.DetailedLineRangeMapping=e.LineRangeMapping=void 0;class m{static inverse(t,i,s){const g=[];let c=1,l=1;for(const r of t){const u=new m(new k.LineRange(c,r.original.startLineNumber),new k.LineRange(l,r.modified.startLineNumber));u.modified.isEmpty||g.push(u),c=r.original.endLineNumberExclusive,l=r.modified.endLineNumberExclusive}const a=new m(new k.LineRange(c,i+1),new k.LineRange(l,s+1));return a.modified.isEmpty||g.push(a),g}static clip(t,i,s){const g=[];for(const c of t){const l=c.original.intersect(i),a=c.modified.intersect(s);l&&!l.isEmpty&&a&&!a.isEmpty&&g.push(new m(l,a))}return g}constructor(t,i){this.original=t,this.modified=i}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new m(this.modified,this.original)}join(t){return new m(this.original.join(t.original),this.modified.join(t.modified))}toRangeMapping(){const t=this.original.toInclusiveRange(),i=this.modified.toInclusiveRange();if(t&&i)return new n(t,i);if(this.original.startLineNumber===1||this.modified.startLineNumber===1){if(!(this.modified.startLineNumber===1&&this.original.startLineNumber===1))throw new d.BugIndicatingError("not a valid diff");return new n(new E.Range(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new E.Range(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1))}else return new n(new E.Range(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),new E.Range(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER))}toRangeMapping2(t,i){if(b(this.original.endLineNumberExclusive,t)&&b(this.modified.endLineNumberExclusive,i))return new n(new E.Range(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new E.Range(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1));if(!this.original.isEmpty&&!this.modified.isEmpty)return new n(E.Range.fromPositions(new I.Position(this.original.startLineNumber,1),_(new I.Position(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),t)),E.Range.fromPositions(new I.Position(this.modified.startLineNumber,1),_(new I.Position(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),i)));if(this.original.startLineNumber>1&&this.modified.startLineNumber>1)return new n(E.Range.fromPositions(_(new I.Position(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER),t),_(new I.Position(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),t)),E.Range.fromPositions(_(new I.Position(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER),i),_(new I.Position(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),i)));throw new d.BugIndicatingError}}e.LineRangeMapping=m;function _(o,t){if(o.lineNumber<1)return new I.Position(1,1);if(o.lineNumber>t.length)return new I.Position(t.length,t[t.length-1].length+1);const i=t[o.lineNumber-1];return o.column>i.length+1?new I.Position(o.lineNumber,i.length+1):o}function b(o,t){return o>=1&&o<=t.length}class p extends m{static fromRangeMappings(t){const i=k.LineRange.join(t.map(g=>k.LineRange.fromRangeInclusive(g.originalRange))),s=k.LineRange.join(t.map(g=>k.LineRange.fromRangeInclusive(g.modifiedRange)));return new p(i,s,t)}constructor(t,i,s){super(t,i),this.innerChanges=s}flip(){return new p(this.modified,this.original,this.innerChanges?.map(t=>t.flip()))}withInnerChangesFromLineRanges(){return new p(this.original,this.modified,[this.toRangeMapping()])}}e.DetailedLineRangeMapping=p;class n{static assertSorted(t){for(let i=1;i${this.modifiedRange.toString()}}`}flip(){return new n(this.modifiedRange,this.originalRange)}toTextEdit(t){const i=t.getValueOfRange(this.modifiedRange);return new y.SingleTextEdit(this.originalRange,i)}}e.RangeMapping=n}),define(ne[559],se([1,0,167,105,13,67,45,55,316,231,314,4]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.computeMovedLines=o;function o(a,r,u,C,f,h){let{moves:v,excludedChanges:w}=i(a,r,u,h);if(!h.isValid())return[];const S=a.filter(D=>!w.has(D)),L=s(S,C,f,r,u,h);return(0,I.pushMany)(v,L),v=c(v),v=v.filter(D=>{const T=D.original.toOffsetRange().slice(r).map(A=>A.trim());return T.join(` +`).length>=15&&t(T,A=>A.length>=2)>=2}),v=l(a,v),v}function t(a,r){let u=0;for(const C of a)r(C)&&u++;return u}function i(a,r,u,C){const f=[],h=a.filter(S=>S.modified.isEmpty&&S.original.length>=3).map(S=>new b.LineRangeFragment(S.original,r,S)),v=new Set(a.filter(S=>S.original.isEmpty&&S.modified.length>=3).map(S=>new b.LineRangeFragment(S.modified,u,S))),w=new Set;for(const S of h){let L=-1,D;for(const T of v){const M=S.computeSimilarity(T);M>L&&(L=M,D=T)}if(L>.9&&D&&(v.delete(D),f.push(new k.LineRangeMapping(S.range,D.range)),w.add(S.source),w.add(D.source)),!C.isValid())return{moves:f,excludedChanges:w}}return{moves:f,excludedChanges:w}}function s(a,r,u,C,f,h){const v=[],w=new y.SetMap;for(const M of a)for(let A=M.original.startLineNumber;AM.modified.startLineNumber,I.numberComparator));for(const M of a){let A=[];for(let P=M.modified.startLineNumber;P{for(const V of A)if(V.originalLineRange.endLineNumberExclusive+1===x.endLineNumberExclusive&&V.modifiedLineRange.endLineNumberExclusive+1===O.endLineNumberExclusive){V.originalLineRange=new m.LineRange(V.originalLineRange.startLineNumber,x.endLineNumberExclusive),V.modifiedLineRange=new m.LineRange(V.modifiedLineRange.startLineNumber,O.endLineNumberExclusive),F.push(V);return}const W={modifiedLineRange:O,originalLineRange:x};S.push(W),F.push(W)}),A=F}if(!h.isValid())return[]}S.sort((0,I.reverseOrder)((0,I.compareBy)(M=>M.modifiedLineRange.length,I.numberComparator)));const L=new m.LineRangeSet,D=new m.LineRangeSet;for(const M of S){const A=M.modifiedLineRange.startLineNumber-M.originalLineRange.startLineNumber,P=L.subtractFrom(M.modifiedLineRange),N=D.subtractFrom(M.originalLineRange).getWithDelta(A),O=P.getIntersection(N);for(const F of O.ranges){if(F.length<3)continue;const x=F,W=F.delta(-A);v.push(new k.LineRangeMapping(W,x)),L.addRange(x),D.addRange(W)}}v.sort((0,I.compareBy)(M=>M.original.startLineNumber,I.numberComparator));const T=new E.MonotonousArray(a);for(let M=0;MH.original.startLineNumber<=A.original.startLineNumber),N=(0,E.findLastMonotonous)(a,H=>H.modified.startLineNumber<=A.modified.startLineNumber),O=Math.max(A.original.startLineNumber-P.original.startLineNumber,A.modified.startLineNumber-N.modified.startLineNumber),F=T.findLastMonotonous(H=>H.original.startLineNumberH.modified.startLineNumberC.length||z>f.length||L.contains(z)||D.contains(H)||!g(C[H-1],f[z-1],h))break}V>0&&(D.addRange(new m.LineRange(A.original.startLineNumber-V,A.original.startLineNumber)),L.addRange(new m.LineRange(A.modified.startLineNumber-V,A.modified.startLineNumber)));let q;for(q=0;qC.length||z>f.length||L.contains(z)||D.contains(H)||!g(C[H-1],f[z-1],h))break}q>0&&(D.addRange(new m.LineRange(A.original.endLineNumberExclusive,A.original.endLineNumberExclusive+q)),L.addRange(new m.LineRange(A.modified.endLineNumberExclusive,A.modified.endLineNumberExclusive+q))),(V>0||q>0)&&(v[M]=new k.LineRangeMapping(new m.LineRange(A.original.startLineNumber-V,A.original.endLineNumberExclusive+q),new m.LineRange(A.modified.startLineNumber-V,A.modified.endLineNumberExclusive+q)))}return v}function g(a,r,u){if(a.trim()===r.trim())return!0;if(a.length>300&&r.length>300)return!1;const f=new p.MyersDiffAlgorithm().compute(new _.LinesSliceCharSequence([a],new n.Range(1,1,1,a.length),!1),new _.LinesSliceCharSequence([r],new n.Range(1,1,1,r.length),!1),u);let h=0;const v=d.SequenceDiff.invert(f.diffs,a.length);for(const D of v)D.seq1Range.forEach(T=>{(0,b.isSpace)(a.charCodeAt(T))||h++});function w(D){let T=0;for(let M=0;Mr.length?a:r);return h/S>.6&&S>10}function c(a){if(a.length===0)return a;a.sort((0,I.compareBy)(u=>u.original.startLineNumber,I.numberComparator));const r=[a[0]];for(let u=1;u=0&&v>=0&&h+v<=2){r[r.length-1]=C.join(f);continue}r.push(f)}return r}function l(a,r){const u=new E.MonotonousArray(a);return r=r.filter(C=>{const f=u.findLastMonotonous(w=>w.original.startLineNumberw.modified.startLineNumberH===z))return new i.LinesDiff([],[],!1);if(u.length===1&&u[0].length===0||C.length===1&&C[0].length===0)return new i.LinesDiff([new s.DetailedLineRangeMapping(new I.LineRange(1,u.length+1),new I.LineRange(1,C.length+1),[new s.RangeMapping(new y.Range(1,1,u.length,u[u.length-1].length+1),new y.Range(1,1,C.length,C[C.length-1].length+1))])],[],!1);const h=f.maxComputationTimeMs===0?m.InfiniteTimeout.instance:new m.DateTimeout(f.maxComputationTimeMs),v=!f.ignoreTrimWhitespace,w=new Map;function S(H){let z=w.get(H);return z===void 0&&(z=w.size,w.set(H,z)),z}const L=u.map(H=>S(H.trim())),D=C.map(H=>S(H.trim())),T=new o.LineSequence(L,u),M=new o.LineSequence(D,C),A=T.length+M.length<1700?this.dynamicProgrammingDiffing.compute(T,M,h,(H,z)=>u[H]===C[z]?C[z].length===0?.1:1+Math.log(1+C[z].length):.99):this.myersDiffingAlgorithm.compute(T,M,h);let P=A.diffs,N=A.hitTimeout;P=(0,n.optimizeSequenceDiffs)(T,M,P),P=(0,n.removeVeryShortMatchingLinesBetweenDiffs)(T,M,P);const O=[],F=H=>{if(v)for(let z=0;zH.seq1Range.start-x===H.seq2Range.start-W);const z=H.seq1Range.start-x;F(z),x=H.seq1Range.endExclusive,W=H.seq2Range.endExclusive;const U=this.refineDiff(u,C,H,h,v);U.hitTimeout&&(N=!0);for(const j of U.mappings)O.push(j)}F(u.length-x);const V=c(O,u,C);let q=[];return f.computeMoves&&(q=this.computeMoves(V,u,C,L,D,h,v)),(0,k.assertFn)(()=>{function H(U,j){if(U.lineNumber<1||U.lineNumber>j.length)return!1;const Y=j[U.lineNumber-1];return!(U.column<1||U.column>Y.length+1)}function z(U,j){return!(U.startLineNumber<1||U.startLineNumber>j.length+1||U.endLineNumberExclusive<1||U.endLineNumberExclusive>j.length+1)}for(const U of V){if(!U.innerChanges)return!1;for(const j of U.innerChanges)if(!(H(j.modifiedRange.getStartPosition(),C)&&H(j.modifiedRange.getEndPosition(),C)&&H(j.originalRange.getStartPosition(),u)&&H(j.originalRange.getEndPosition(),u)))return!1;if(!z(U.modified,C)||!z(U.original,u))return!1}return!0}),new i.LinesDiff(V,q,N)}computeMoves(u,C,f,h,v,w,S){return(0,p.computeMovedLines)(u,C,f,h,v,w).map(T=>{const M=this.refineDiff(C,f,new m.SequenceDiff(T.original.toOffsetRange(),T.modified.toOffsetRange()),w,S),A=c(M.mappings,C,f,!0);return new i.MovedText(T,A)})}refineDiff(u,C,f,h,v){const S=a(f).toRangeMapping2(u,C),L=new t.LinesSliceCharSequence(u,S.originalRange,v),D=new t.LinesSliceCharSequence(C,S.modifiedRange,v),T=L.length+D.length<500?this.dynamicProgrammingDiffing.compute(L,D,h):this.myersDiffingAlgorithm.compute(L,D,h),M=!1;let A=T.diffs;M&&m.SequenceDiff.assertSorted(A),A=(0,n.optimizeSequenceDiffs)(L,D,A),M&&m.SequenceDiff.assertSorted(A),A=(0,n.extendDiffsToEntireWordIfAppropriate)(L,D,A),M&&m.SequenceDiff.assertSorted(A),A=(0,n.removeShortMatches)(L,D,A),M&&m.SequenceDiff.assertSorted(A),A=(0,n.removeVeryShortMatchingTextBetweenLongDiffs)(L,D,A),M&&m.SequenceDiff.assertSorted(A);const P=A.map(N=>new s.RangeMapping(L.translateRange(N.seq1Range),D.translateRange(N.seq2Range)));return M&&s.RangeMapping.assertSorted(P),{mappings:P,hitTimeout:T.hitTimeout}}}e.DefaultLinesDiffComputer=g;function c(r,u,C,f=!1){const h=[];for(const v of(0,d.groupAdjacentBy)(r.map(w=>l(w,u,C)),(w,S)=>w.original.overlapOrTouch(S.original)||w.modified.overlapOrTouch(S.modified))){const w=v[0],S=v[v.length-1];h.push(new s.DetailedLineRangeMapping(w.original.join(S.original),w.modified.join(S.modified),v.map(L=>L.innerChanges[0])))}return(0,k.assertFn)(()=>!f&&h.length>0&&(h[0].modified.startLineNumber!==h[0].original.startLineNumber||C.length-h[h.length-1].modified.endLineNumberExclusive!==u.length-h[h.length-1].original.endLineNumberExclusive)?!1:(0,k.checkAdjacentItems)(h,(v,w)=>w.original.startLineNumber-v.original.endLineNumberExclusive===w.modified.startLineNumber-v.modified.endLineNumberExclusive&&v.original.endLineNumberExclusive=C[r.modifiedRange.startLineNumber-1].length&&r.originalRange.startColumn-1>=u[r.originalRange.startLineNumber-1].length&&r.originalRange.startLineNumber<=r.originalRange.endLineNumber+h&&r.modifiedRange.startLineNumber<=r.modifiedRange.endLineNumber+h&&(f=1);const v=new I.LineRange(r.originalRange.startLineNumber+f,r.originalRange.endLineNumber+1+h),w=new I.LineRange(r.modifiedRange.startLineNumber+f,r.modifiedRange.endLineNumber+1+h);return new s.DetailedLineRangeMapping(v,w,[r])}function a(r){return new s.LineRangeMapping(new I.LineRange(r.seq1Range.start+1,r.seq1Range.endExclusive+1),new I.LineRange(r.seq2Range.start+1,r.seq2Range.endExclusive+1))}}),define(ne[560],se([1,0,190,232,105,11,4,90,55]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffComputer=e.LegacyLinesDiffComputer=void 0;const b=3;class p{computeDiff(C,f,h){const w=new c(C,f,{maxComputationTime:h.maxComputationTimeMs,shouldIgnoreTrimWhitespace:h.ignoreTrimWhitespace,shouldComputeCharChanges:!0,shouldMakePrettyDiff:!0,shouldPostProcessCharChanges:!0}).computeDiff(),S=[];let L=null;for(const D of w.changes){let T;D.originalEndLineNumber===0?T=new _.LineRange(D.originalStartLineNumber+1,D.originalStartLineNumber+1):T=new _.LineRange(D.originalStartLineNumber,D.originalEndLineNumber+1);let M;D.modifiedEndLineNumber===0?M=new _.LineRange(D.modifiedStartLineNumber+1,D.modifiedStartLineNumber+1):M=new _.LineRange(D.modifiedStartLineNumber,D.modifiedEndLineNumber+1);let A=new I.DetailedLineRangeMapping(T,M,D.charChanges?.map(P=>new I.RangeMapping(new y.Range(P.originalStartLineNumber,P.originalStartColumn,P.originalEndLineNumber,P.originalEndColumn),new y.Range(P.modifiedStartLineNumber,P.modifiedStartColumn,P.modifiedEndLineNumber,P.modifiedEndColumn))));L&&(L.modified.endLineNumberExclusive===A.modified.startLineNumber||L.original.endLineNumberExclusive===A.original.startLineNumber)&&(A=new I.DetailedLineRangeMapping(L.original.join(A.original),L.modified.join(A.modified),L.innerChanges&&A.innerChanges?L.innerChanges.concat(A.innerChanges):void 0),S.pop()),S.push(A),L=A}return(0,m.assertFn)(()=>(0,m.checkAdjacentItems)(S,(D,T)=>T.original.startLineNumber-D.original.endLineNumberExclusive===T.modified.startLineNumber-D.modified.endLineNumberExclusive&&D.original.endLineNumberExclusive(C===10?"\\n":String.fromCharCode(C))+`-(${this._lineNumbers[f]},${this._columns[f]})`).join(", ")+"]"}_assertIndex(C,f){if(C<0||C>=f.length)throw new Error("Illegal index")}getElements(){return this._charCodes}getStartLineNumber(C){return C>0&&C===this._lineNumbers.length?this.getEndLineNumber(C-1):(this._assertIndex(C,this._lineNumbers),this._lineNumbers[C])}getEndLineNumber(C){return C===-1?this.getStartLineNumber(C+1):(this._assertIndex(C,this._lineNumbers),this._charCodes[C]===10?this._lineNumbers[C]+1:this._lineNumbers[C])}getStartColumn(C){return C>0&&C===this._columns.length?this.getEndColumn(C-1):(this._assertIndex(C,this._columns),this._columns[C])}getEndColumn(C){return C===-1?this.getStartColumn(C+1):(this._assertIndex(C,this._columns),this._charCodes[C]===10?1:this._columns[C]+1)}}class i{constructor(C,f,h,v,w,S,L,D){this.originalStartLineNumber=C,this.originalStartColumn=f,this.originalEndLineNumber=h,this.originalEndColumn=v,this.modifiedStartLineNumber=w,this.modifiedStartColumn=S,this.modifiedEndLineNumber=L,this.modifiedEndColumn=D}static createFromDiffChange(C,f,h){const v=f.getStartLineNumber(C.originalStart),w=f.getStartColumn(C.originalStart),S=f.getEndLineNumber(C.originalStart+C.originalLength-1),L=f.getEndColumn(C.originalStart+C.originalLength-1),D=h.getStartLineNumber(C.modifiedStart),T=h.getStartColumn(C.modifiedStart),M=h.getEndLineNumber(C.modifiedStart+C.modifiedLength-1),A=h.getEndColumn(C.modifiedStart+C.modifiedLength-1);return new i(v,w,S,L,D,T,M,A)}}function s(u){if(u.length<=1)return u;const C=[u[0]];let f=C[0];for(let h=1,v=u.length;h0&&f.originalLength<20&&f.modifiedLength>0&&f.modifiedLength<20&&w()){const N=h.createCharSequence(C,f.originalStart,f.originalStart+f.originalLength-1),O=v.createCharSequence(C,f.modifiedStart,f.modifiedStart+f.modifiedLength-1);if(N.getElements().length>0&&O.getElements().length>0){let F=n(N,O,w,!0).changes;L&&(F=s(F)),P=[];for(let x=0,W=F.length;x1&&F>1;){const x=P.charCodeAt(O-2),W=N.charCodeAt(F-2);if(x!==W)break;O--,F--}(O>1||F>1)&&this._pushTrimWhitespaceCharChange(v,w+1,1,O,S+1,1,F)}{let O=a(P,1),F=a(N,1);const x=P.length+1,W=N.length+1;for(;O!0;const C=Date.now();return()=>Date.now()-Cnew d.LegacyLinesDiffComputer,getDefault:()=>new k.DefaultLinesDiffComputer}}),define(ne[318],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InternalEditorAction=void 0;class d{constructor(I,E,y,m,_,b,p){this.id=I,this.label=E,this.alias=y,this.metadata=m,this._precondition=_,this._run=b,this._contextKeyService=p}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(I){return this.isSupported()?this._run(I):Promise.resolve(void 0)}}e.InternalEditorAction=d}),define(ne[198],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorType=void 0,e.EditorType={ICodeEditor:"vs.editor.ICodeEditor",IDiffEditor:"vs.editor.IDiffEditor"}}),define(ne[168],se([1,0,198]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isCodeEditor=k,e.isDiffEditor=I,e.isCompositeEditor=E,e.getCodeEditor=y;function k(m){return m&&typeof m.getEditorType=="function"?m.getEditorType()===d.EditorType.ICodeEditor:!1}function I(m){return m&&typeof m.getEditorType=="function"?m.getEditorType()===d.EditorType.IDiffEditor:!1}function E(m){return!!m&&typeof m=="object"&&typeof m.onDidChangeActiveEditor=="function"}function y(m){return k(m)?m:I(m)?m.getModifiedEditor():E(m)&&k(m.activeCodeEditor)?m.activeCodeEditor:null}}),define(ne[130],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.registerEditorFeature=k,e.getEditorFeatures=I;const d=[];function k(E){d.push(E)}function I(){return d.slice(0)}}),define(ne[562],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorTheme=void 0;class d{get type(){return this._theme.type}get value(){return this._theme}constructor(I){this._theme=I}update(I){this._theme=I}getColor(I){return this._theme.getColor(I)}}e.EditorTheme=d}),define(ne[148],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenMetadata=void 0;class d{static getLanguageId(I){return(I&255)>>>0}static getTokenType(I){return(I&768)>>>8}static containsBalancedBrackets(I){return(I&1024)!==0}static getFontStyle(I){return(I&30720)>>>11}static getForeground(I){return(I&16744448)>>>15}static getBackground(I){return(I&4278190080)>>>24}static getClassNameFromMetadata(I){let y="mtk"+this.getForeground(I);const m=this.getFontStyle(I);return m&1&&(y+=" mtki"),m&2&&(y+=" mtkb"),m&4&&(y+=" mtku"),m&8&&(y+=" mtks"),y}static getInlineStyleFromMetadata(I,E){const y=this.getForeground(I),m=this.getFontStyle(I);let _=`color: ${E[y]};`;m&1&&(_+="font-style: italic;"),m&2&&(_+="font-weight: bold;");let b="";return m&4&&(b+=" underline"),m&8&&(b+=" line-through"),b&&(_+=`text-decoration:${b};`),_}static getPresentationFromMetadata(I){const E=this.getForeground(I),y=this.getFontStyle(I);return{foreground:E,italic:!!(y&1),bold:!!(y&2),underline:!!(y&4),strikethrough:!!(y&8)}}}e.TokenMetadata=d}),define(ne[563],se([1,0,33]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.computeDefaultDocumentColors=n;function k(o){const t=[];for(const i of o){const s=Number(i);(s||s===0&&i.replace(/\s/g,"")!=="")&&t.push(s)}return t}function I(o,t,i,s){return{red:o/255,blue:i/255,green:t/255,alpha:s}}function E(o,t){const i=t.index,s=t[0].length;if(!i)return;const g=o.positionAt(i);return{startLineNumber:g.lineNumber,startColumn:g.column,endLineNumber:g.lineNumber,endColumn:g.column+s}}function y(o,t){if(!o)return;const i=d.Color.Format.CSS.parseHex(t);if(i)return{range:o,color:I(i.rgba.r,i.rgba.g,i.rgba.b,i.rgba.a)}}function m(o,t,i){if(!o||t.length!==1)return;const g=t[0].values(),c=k(g);return{range:o,color:I(c[0],c[1],c[2],i?c[3]:1)}}function _(o,t,i){if(!o||t.length!==1)return;const g=t[0].values(),c=k(g),l=new d.Color(new d.HSLA(c[0],c[1]/100,c[2]/100,i?c[3]:1));return{range:o,color:I(l.rgba.r,l.rgba.g,l.rgba.b,l.rgba.a)}}function b(o,t){return typeof o=="string"?[...o.matchAll(t)]:o.findMatches(t)}function p(o){const t=[],s=b(o,/\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%]*\))|(#)([A-Fa-f0-9]{3})\b|(#)([A-Fa-f0-9]{4})\b|(#)([A-Fa-f0-9]{6})\b|(#)([A-Fa-f0-9]{8})\b/gm);if(s.length>0)for(const g of s){const c=g.filter(u=>u!==void 0),l=c[1],a=c[2];if(!a)continue;let r;if(l==="rgb"){const u=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;r=m(E(o,g),b(a,u),!1)}else if(l==="rgba"){const u=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;r=m(E(o,g),b(a,u),!0)}else if(l==="hsl"){const u=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;r=_(E(o,g),b(a,u),!1)}else if(l==="hsla"){const u=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;r=_(E(o,g),b(a,u),!0)}else l==="#"&&(r=y(E(o,g),l+a));r&&t.push(r)}return t}function n(o){return!o||typeof o.getValue!="function"||typeof o.positionAt!="function"?[]:p(o)}}),define(ne[131],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AutoClosingPairs=e.StandardAutoClosingPairConditional=e.IndentAction=void 0;var d;(function(y){y[y.None=0]="None",y[y.Indent=1]="Indent",y[y.IndentOutdent=2]="IndentOutdent",y[y.Outdent=3]="Outdent"})(d||(e.IndentAction=d={}));class k{constructor(m){if(this._neutralCharacter=null,this._neutralCharacterSearched=!1,this.open=m.open,this.close=m.close,this._inString=!0,this._inComment=!0,this._inRegEx=!0,Array.isArray(m.notIn))for(let _=0,b=m.notIn.length;_t&&(t=a),l>i&&(i=l),r>i&&(i=r)}t++,i++;const s=new k(i,t,0);for(let g=0,c=o.length;g=this._maxCharCode?0:this._states.get(o,t)}}e.StateMachine=I;let E=null;function y(){return E===null&&(E=new I([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),E}let m=null;function _(){if(m===null){m=new d.CharacterClassifier(0);const n=` <>'"\u3001\u3002\uFF61\uFF64\uFF0C\uFF0E\uFF1A\uFF1B\u2018\u3008\u300C\u300E\u3014\uFF08\uFF3B\uFF5B\uFF62\uFF63\uFF5D\uFF3D\uFF09\u3015\u300F\u300D\u3009\u2019\uFF40\uFF5E\u2026`;for(let t=0;ts);if(s>0){const l=t.charCodeAt(s-1),a=t.charCodeAt(c);(l===40&&a===41||l===91&&a===93||l===123&&a===125)&&c--}return{range:{startLineNumber:i,startColumn:s+1,endLineNumber:i,endColumn:c+2},url:t.substring(s,c+1)}}static computeLinks(o,t=y()){const i=_(),s=[];for(let g=1,c=o.getLineCount();g<=c;g++){const l=o.getLineContent(g),a=l.length;let r=0,u=0,C=0,f=1,h=!1,v=!1,w=!1,S=!1;for(;r0&&E.getLanguageId(n-1)===b;)n--;return new k(E,b,n,p+1,E.getStartOffset(n),E.getEndOffset(p))}class k{constructor(y,m,_,b,p,n){this._scopedLineTokensBrand=void 0,this._actual=y,this.languageId=m,this._firstTokenIndex=_,this._lastTokenIndex=b,this.firstCharOffset=p,this._lastCharOffset=n,this.languageIdCodec=y.languageIdCodec}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getLineLength(){return this._lastCharOffset-this.firstCharOffset}getActualLineContentBefore(y){return this._actual.getLineContent().substring(0,this.firstCharOffset+y)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(y){return this._actual.findTokenIndexAtOffset(y+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(y){return this._actual.getStandardTokenType(y+this._firstTokenIndex)}toIViewLineTokens(){return this._actual.sliceAndInflate(this.firstCharOffset,this._lastCharOffset,0)}}e.ScopedLineTokens=k;function I(E){return(E&3)!==0}}),define(ne[76],se([1,0,9,4,23,169,94,230]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditOperationResult=e.SingleCursorState=e.PartialViewCursorState=e.PartialModelCursorState=e.CursorState=e.CursorConfiguration=void 0,e.isQuote=c;const _=()=>!0,b=()=>!1,p=l=>l===" "||l===" ";class n{static shouldRecreate(a){return a.hasChanged(146)||a.hasChanged(132)||a.hasChanged(37)||a.hasChanged(77)||a.hasChanged(79)||a.hasChanged(80)||a.hasChanged(6)||a.hasChanged(7)||a.hasChanged(11)||a.hasChanged(9)||a.hasChanged(10)||a.hasChanged(14)||a.hasChanged(129)||a.hasChanged(50)||a.hasChanged(92)||a.hasChanged(131)}constructor(a,r,u,C){this.languageConfigurationService=C,this._cursorMoveConfigurationBrand=void 0,this._languageId=a;const f=u.options,h=f.get(146),v=f.get(50);this.readOnly=f.get(92),this.tabSize=r.tabSize,this.indentSize=r.indentSize,this.insertSpaces=r.insertSpaces,this.stickyTabStops=f.get(117),this.lineHeight=v.lineHeight,this.typicalHalfwidthCharacterWidth=v.typicalHalfwidthCharacterWidth,this.pageSize=Math.max(1,Math.floor(h.height/this.lineHeight)-2),this.useTabStops=f.get(129),this.wordSeparators=f.get(132),this.emptySelectionClipboard=f.get(37),this.copyWithSyntaxHighlighting=f.get(25),this.multiCursorMergeOverlapping=f.get(77),this.multiCursorPaste=f.get(79),this.multiCursorLimit=f.get(80),this.autoClosingBrackets=f.get(6),this.autoClosingComments=f.get(7),this.autoClosingQuotes=f.get(11),this.autoClosingDelete=f.get(9),this.autoClosingOvertype=f.get(10),this.autoSurround=f.get(14),this.autoIndent=f.get(12),this.wordSegmenterLocales=f.get(131),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(a,this.autoClosingQuotes,!0),comment:this._getShouldAutoClose(a,this.autoClosingComments,!1),bracket:this._getShouldAutoClose(a,this.autoClosingBrackets,!1)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(a).getAutoClosingPairs();const w=this.languageConfigurationService.getLanguageConfiguration(a).getSurroundingPairs();if(w)for(const L of w)this.surroundingPairs[L.open]=L.close;const S=this.languageConfigurationService.getLanguageConfiguration(a).comments;this.blockCommentStartToken=S?.blockCommentStartToken??null}get electricChars(){if(!this._electricChars){this._electricChars={};const a=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter?.getElectricCharacters();if(a)for(const r of a)this._electricChars[r]=!0}return this._electricChars}onElectricCharacter(a,r,u){const C=(0,E.createScopedLineTokens)(r,u-1),f=this.languageConfigurationService.getLanguageConfiguration(C.languageId).electricCharacter;return f?f.onElectricCharacter(a,C,u-C.firstCharOffset):null}normalizeIndentation(a){return(0,m.normalizeIndentation)(a,this.indentSize,this.insertSpaces)}_getShouldAutoClose(a,r,u){switch(r){case"beforeWhitespace":return p;case"languageDefined":return this._getLanguageDefinedShouldAutoClose(a,u);case"always":return _;case"never":return b}}_getLanguageDefinedShouldAutoClose(a,r){const u=this.languageConfigurationService.getLanguageConfiguration(a).getAutoCloseBeforeSet(r);return C=>u.indexOf(C)!==-1}visibleColumnFromColumn(a,r){return y.CursorColumns.visibleColumnFromColumn(a.getLineContent(r.lineNumber),r.column,this.tabSize)}columnFromVisibleColumn(a,r,u){const C=y.CursorColumns.columnFromVisibleColumn(a.getLineContent(r),u,this.tabSize),f=a.getLineMinColumn(r);if(Ch?h:C}}e.CursorConfiguration=n;class o{static fromModelState(a){return new t(a)}static fromViewState(a){return new i(a)}static fromModelSelection(a){const r=I.Selection.liftSelection(a),u=new s(k.Range.fromPositions(r.getSelectionStart()),0,0,r.getPosition(),0);return o.fromModelState(u)}static fromModelSelections(a){const r=[];for(let u=0,C=a.length;un,s=p>o,g=po||fp||C0&&p--,E.columnSelect(m,_,b.fromViewLineNumber,b.fromViewVisualColumn,b.toViewLineNumber,p)}static columnSelectRight(m,_,b){let p=0;const n=Math.min(b.fromViewLineNumber,b.toViewLineNumber),o=Math.max(b.fromViewLineNumber,b.toViewLineNumber);for(let i=n;i<=o;i++){const s=_.getLineMaxColumn(i),g=m.visibleColumnFromColumn(_,new k.Position(i,s));p=Math.max(p,g)}let t=b.toViewVisualColumn;return tn.getLineMinColumn(o.lineNumber))return o.delta(void 0,-d.prevCharLength(n.getLineContent(o.lineNumber),o.column-1));if(o.lineNumber>1){const t=o.lineNumber-1;return new I.Position(t,n.getLineMaxColumn(t))}else return o}static leftPositionAtomicSoftTabs(n,o,t){if(o.column<=n.getLineIndentColumn(o.lineNumber)){const i=n.getLineMinColumn(o.lineNumber),s=n.getLineContent(o.lineNumber),g=y.AtomicTabMoveOperations.atomicPosition(s,o.column-1,t,0);if(g!==-1&&g+1>=i)return new I.Position(o.lineNumber,g+1)}return this.leftPosition(n,o)}static left(n,o,t){const i=n.stickyTabStops?b.leftPositionAtomicSoftTabs(o,t,n.tabSize):b.leftPosition(o,t);return new _(i.lineNumber,i.column,0)}static moveLeft(n,o,t,i,s){let g,c;if(t.hasSelection()&&!i)g=t.selection.startLineNumber,c=t.selection.startColumn;else{const l=t.position.delta(void 0,-(s-1)),a=o.normalizePosition(b.clipPositionColumn(l,o),0),r=b.left(n,o,a);g=r.lineNumber,c=r.column}return t.move(i,g,c,0)}static clipPositionColumn(n,o){return new I.Position(n.lineNumber,b.clipRange(n.column,o.getLineMinColumn(n.lineNumber),o.getLineMaxColumn(n.lineNumber)))}static clipRange(n,o,t){return nt?t:n}static rightPosition(n,o,t){return tr?(t=r,c?i=o.getLineMaxColumn(t):i=Math.min(o.getLineMaxColumn(t),i)):i=n.columnFromVisibleColumn(o,t,a),f?s=0:s=a-k.CursorColumns.visibleColumnFromColumn(o.getLineContent(t),i,n.tabSize),l!==void 0){const h=new I.Position(t,i),v=o.normalizePosition(h,l);s=s+(i-v.column),t=v.lineNumber,i=v.column}return new _(t,i,s)}static down(n,o,t,i,s,g,c){return this.vertical(n,o,t,i,s,t+g,c,4)}static moveDown(n,o,t,i,s){let g,c;t.hasSelection()&&!i?(g=t.selection.endLineNumber,c=t.selection.endColumn):(g=t.position.lineNumber,c=t.position.column);let l=0,a;do if(a=b.down(n,o,g+l,c,t.leftoverVisibleColumns,s,!0),o.normalizePosition(new I.Position(a.lineNumber,a.column),2).lineNumber>g)break;while(l++<10&&g+l1&&this._isBlankLine(o,s);)s--;for(;s>1&&!this._isBlankLine(o,s);)s--;return t.move(i,s,o.getLineMinColumn(s),0)}static moveToNextBlankLine(n,o,t,i){const s=o.getLineCount();let g=t.position.lineNumber;for(;g=C.length+1)return!1;const f=C.charAt(u.column-2),h=i.get(f);if(!h)return!1;if((0,I.isQuote)(f)){if(t==="never")return!1}else if(o==="never")return!1;const v=C.charAt(u.column-1);let w=!1;for(const S of h)S.open===f&&S.close===v&&(w=!0);if(!w)return!1;if(n==="auto"){let S=!1;for(let L=0,D=c.length;L1){const s=o.getLineContent(i.lineNumber),g=d.firstNonWhitespaceIndex(s),c=g===-1?s.length+1:g+1;if(i.column<=c){const l=t.visibleColumnFromColumn(o,i),a=E.CursorColumns.prevIndentTabStop(l,t.indentSize),r=t.columnFromVisibleColumn(o,i.lineNumber,a);return new m.Range(i.lineNumber,r,i.lineNumber,i.column)}}return m.Range.fromPositions(b.getPositionAfterDeleteLeft(i,o),i)}static getPositionAfterDeleteLeft(n,o){if(n.column>1){const t=d.getLeftDeleteOffset(n.column-1,o.getLineContent(n.lineNumber));return n.with(void 0,t+1)}else if(n.lineNumber>1){const t=n.lineNumber-1;return new _.Position(t,o.getLineMaxColumn(t))}else return n}static cut(n,o,t){const i=[];let s=null;t.sort((g,c)=>_.Position.compare(g.getStartPosition(),c.getEndPosition()));for(let g=0,c=t.length;g1&&s?.endLineNumber!==a.lineNumber?(r=a.lineNumber-1,u=o.getLineMaxColumn(a.lineNumber-1),C=a.lineNumber,f=o.getLineMaxColumn(a.lineNumber)):(r=a.lineNumber,u=1,C=a.lineNumber,f=o.getLineMaxColumn(a.lineNumber));const h=new m.Range(r,u,C,f);s=h,h.isEmpty()?i[g]=null:i[g]=new k.ReplaceCommand(h,"")}else i[g]=null;else i[g]=new k.ReplaceCommand(l,"")}return new I.EditOperationResult(0,i,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}e.DeleteOperations=b}),define(ne[199],se([1,0,11,76,234,166,9,4]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WordPartOperations=e.WordOperations=void 0;class _{static _createWord(o,t,i,s,g){return{start:s,end:g,wordType:t,nextCharClass:i}}static _createIntlWord(o,t){return{start:o.index,end:o.index+o.segment.length,wordType:1,nextCharClass:t}}static _findPreviousWordOnLine(o,t,i){const s=t.getLineContent(i.lineNumber);return this._doFindPreviousWordOnLine(s,o,i)}static _doFindPreviousWordOnLine(o,t,i){let s=0;const g=t.findPrevIntlWordBeforeOrAtOffset(o,i.column-2);for(let c=i.column-2;c>=0;c--){const l=o.charCodeAt(c),a=t.get(l);if(g&&c===g.index)return this._createIntlWord(g,a);if(a===0){if(s===2)return this._createWord(o,s,a,c+1,this._findEndOfWord(o,t,s,c+1));s=1}else if(a===2){if(s===1)return this._createWord(o,s,a,c+1,this._findEndOfWord(o,t,s,c+1));s=2}else if(a===1&&s!==0)return this._createWord(o,s,a,c+1,this._findEndOfWord(o,t,s,c+1))}return s!==0?this._createWord(o,s,1,0,this._findEndOfWord(o,t,s,0)):null}static _findEndOfWord(o,t,i,s){const g=t.findNextIntlWordAtOrAfterOffset(o,s),c=o.length;for(let l=s;l=0;c--){const l=o.charCodeAt(c),a=t.get(l);if(g&&c===g.index)return c;if(a===1||i===1&&a===2||i===2&&a===0)return c+1}return 0}static moveWordLeft(o,t,i,s,g){let c=i.lineNumber,l=i.column;l===1&&c>1&&(c=c-1,l=t.getLineMaxColumn(c));let a=_._findPreviousWordOnLine(o,t,new y.Position(c,l));if(s===0)return new y.Position(c,a?a.start+1:1);if(s===1)return!g&&a&&a.wordType===2&&a.end-a.start===1&&a.nextCharClass===0&&(a=_._findPreviousWordOnLine(o,t,new y.Position(c,a.start+1))),new y.Position(c,a?a.start+1:1);if(s===3){for(;a&&a.wordType===2;)a=_._findPreviousWordOnLine(o,t,new y.Position(c,a.start+1));return new y.Position(c,a?a.start+1:1)}return a&&l<=a.end+1&&(a=_._findPreviousWordOnLine(o,t,new y.Position(c,a.start+1))),new y.Position(c,a?a.end+1:1)}static _moveWordPartLeft(o,t){const i=t.lineNumber,s=o.getLineMaxColumn(i);if(t.column===1)return i>1?new y.Position(i-1,o.getLineMaxColumn(i-1)):t;const g=o.getLineContent(i);for(let c=t.column-1;c>1;c--){const l=g.charCodeAt(c-2),a=g.charCodeAt(c-1);if(l===95&&a!==95)return new y.Position(i,c);if(l===45&&a!==45)return new y.Position(i,c);if((d.isLowerAsciiLetter(l)||d.isAsciiDigit(l))&&d.isUpperAsciiLetter(a))return new y.Position(i,c);if(d.isUpperAsciiLetter(l)&&d.isUpperAsciiLetter(a)&&c+1=a.start+1&&(a=_._findNextWordOnLine(o,t,new y.Position(g,a.end+1))),a?c=a.start+1:c=t.getLineMaxColumn(g);return new y.Position(g,c)}static _moveWordPartRight(o,t){const i=t.lineNumber,s=o.getLineMaxColumn(i);if(t.column===s)return i1?r=1:(a--,r=s.getLineMaxColumn(a)):(u&&r<=u.end+1&&(u=_._findPreviousWordOnLine(i,s,new y.Position(a,u.start+1))),u?r=u.end+1:r>1?r=1:(a--,r=s.getLineMaxColumn(a))),new m.Range(a,r,l.lineNumber,l.column)}static deleteInsideWord(o,t,i){if(!i.isEmpty())return i;const s=new y.Position(i.positionLineNumber,i.positionColumn),g=this._deleteInsideWordWhitespace(t,s);return g||this._deleteInsideWordDetermineDeleteRange(o,t,s)}static _charAtIsWhitespace(o,t){const i=o.charCodeAt(t);return i===32||i===9}static _deleteInsideWordWhitespace(o,t){const i=o.getLineContent(t.lineNumber),s=i.length;if(s===0)return null;let g=Math.max(t.column-2,0);if(!this._charAtIsWhitespace(i,g))return null;let c=Math.min(t.column-1,s-1);if(!this._charAtIsWhitespace(i,c))return null;for(;g>0&&this._charAtIsWhitespace(i,g-1);)g--;for(;c+11?new m.Range(i.lineNumber-1,t.getLineMaxColumn(i.lineNumber-1),i.lineNumber,1):i.lineNumberC.start+1<=i.column&&i.column<=C.end+1,l=(C,f)=>(C=Math.min(C,i.column),f=Math.max(f,i.column),new m.Range(i.lineNumber,C,i.lineNumber,f)),a=C=>{let f=C.start+1,h=C.end+1,v=!1;for(;h-11&&this._charAtIsWhitespace(s,f-2);)f--;return l(f,h)},r=_._findPreviousWordOnLine(o,t,i);if(r&&c(r))return a(r);const u=_._findNextWordOnLine(o,t,i);return u&&c(u)?a(u):r&&u?l(r.end+1,u.start+1):r?l(r.start+1,r.end+1):u?l(u.start+1,u.end+1):l(1,g+1)}static _deleteWordPartLeft(o,t){if(!t.isEmpty())return t;const i=t.getPosition(),s=_._moveWordPartLeft(o,i);return new m.Range(i.lineNumber,i.column,s.lineNumber,s.column)}static _findFirstNonWhitespaceChar(o,t){const i=o.length;for(let s=t;s=f.start+1&&(f=_._findNextWordOnLine(i,s,new y.Position(a,f.end+1))),f?r=f.start+1:r!!o)}}),define(ne[235],se([1,0,19,76,233,199,9,4]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CursorMove=e.CursorMoveCommands=void 0;class _{static addCursorDown(n,o,t){const i=[];let s=0;for(let g=0,c=o.length;ga&&(r=a,u=n.model.getLineMaxColumn(r)),k.CursorState.fromModelState(new k.SingleCursorState(new m.Range(g.lineNumber,1,r,u),2,0,new y.Position(r,u),0))}const l=o.modelState.selectionStart.getStartPosition().lineNumber;if(g.lineNumberl){const a=n.getLineCount();let r=c.lineNumber+1,u=1;return r>a&&(r=a,u=n.getLineMaxColumn(r)),k.CursorState.fromViewState(o.viewState.move(!0,r,u,0))}else{const a=o.modelState.selectionStart.getEndPosition();return k.CursorState.fromModelState(o.modelState.move(!0,a.lineNumber,a.column,0))}}static word(n,o,t,i){const s=n.model.validatePosition(i);return k.CursorState.fromModelState(E.WordOperations.word(n.cursorConfig,n.model,o.modelState,t,s))}static cancelSelection(n,o){if(!o.modelState.hasSelection())return new k.CursorState(o.modelState,o.viewState);const t=o.viewState.position.lineNumber,i=o.viewState.position.column;return k.CursorState.fromViewState(new k.SingleCursorState(new m.Range(t,i,t,i),0,0,new y.Position(t,i),0))}static moveTo(n,o,t,i,s){if(t){if(o.modelState.selectionStartKind===1)return this.word(n,o,t,i);if(o.modelState.selectionStartKind===2)return this.line(n,o,t,i,s)}const g=n.model.validatePosition(i),c=s?n.coordinatesConverter.validateViewPosition(new y.Position(s.lineNumber,s.column),g):n.coordinatesConverter.convertModelPositionToViewPosition(g);return k.CursorState.fromViewState(o.viewState.move(t,c.lineNumber,c.column,0))}static simpleMove(n,o,t,i,s,g){switch(t){case 0:return g===4?this._moveHalfLineLeft(n,o,i):this._moveLeft(n,o,i,s);case 1:return g===4?this._moveHalfLineRight(n,o,i):this._moveRight(n,o,i,s);case 2:return g===2?this._moveUpByViewLines(n,o,i,s):this._moveUpByModelLines(n,o,i,s);case 3:return g===2?this._moveDownByViewLines(n,o,i,s):this._moveDownByModelLines(n,o,i,s);case 4:return g===2?o.map(c=>k.CursorState.fromViewState(I.MoveOperations.moveToPrevBlankLine(n.cursorConfig,n,c.viewState,i))):o.map(c=>k.CursorState.fromModelState(I.MoveOperations.moveToPrevBlankLine(n.cursorConfig,n.model,c.modelState,i)));case 5:return g===2?o.map(c=>k.CursorState.fromViewState(I.MoveOperations.moveToNextBlankLine(n.cursorConfig,n,c.viewState,i))):o.map(c=>k.CursorState.fromModelState(I.MoveOperations.moveToNextBlankLine(n.cursorConfig,n.model,c.modelState,i)));case 6:return this._moveToViewMinColumn(n,o,i);case 7:return this._moveToViewFirstNonWhitespaceColumn(n,o,i);case 8:return this._moveToViewCenterColumn(n,o,i);case 9:return this._moveToViewMaxColumn(n,o,i);case 10:return this._moveToViewLastNonWhitespaceColumn(n,o,i);default:return null}}static viewportMove(n,o,t,i,s){const g=n.getCompletelyVisibleViewRange(),c=n.coordinatesConverter.convertViewRangeToModelRange(g);switch(t){case 11:{const l=this._firstLineNumberInRange(n.model,c,s),a=n.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(n,o[0],i,l,a)]}case 13:{const l=this._lastLineNumberInRange(n.model,c,s),a=n.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(n,o[0],i,l,a)]}case 12:{const l=Math.round((c.startLineNumber+c.endLineNumber)/2),a=n.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(n,o[0],i,l,a)]}case 14:{const l=[];for(let a=0,r=o.length;at.endLineNumber-1?g=t.endLineNumber-1:sk.CursorState.fromViewState(I.MoveOperations.moveLeft(n.cursorConfig,n,s.viewState,t,i)))}static _moveHalfLineLeft(n,o,t){const i=[];for(let s=0,g=o.length;sk.CursorState.fromViewState(I.MoveOperations.moveRight(n.cursorConfig,n,s.viewState,t,i)))}static _moveHalfLineRight(n,o,t){const i=[];for(let s=0,g=o.length;sn.readSelectionFromMarkers(this.context))}getAll(){return this.cursors.map(n=>n.asCursorState())}getViewPositions(){return this.cursors.map(n=>n.viewState.position)}getTopMostViewPosition(){return(0,k.findFirstMin)(this.cursors,(0,d.compareBy)(n=>n.viewState.position,y.Position.compare)).viewState.position}getBottomMostViewPosition(){return(0,k.findLastMax)(this.cursors,(0,d.compareBy)(n=>n.viewState.position,y.Position.compare)).viewState.position}getSelections(){return this.cursors.map(n=>n.modelState.selection)}getViewSelections(){return this.cursors.map(n=>n.viewState.selection)}setSelections(n){this.setStates(I.CursorState.fromModelSelections(n))}getPrimaryCursor(){return this.cursors[0].asCursorState()}setStates(n){n!==null&&(this.cursors[0].setState(this.context,n[0].modelState,n[0].viewState),this._setSecondaryStates(n.slice(1)))}_setSecondaryStates(n){const o=this.cursors.length-1,t=n.length;if(ot){const i=o-t;for(let s=0;s=n+1&&this.lastAddedCursorIndex--,this.cursors[n+1].dispose(this.context),this.cursors.splice(n+1,1)}normalize(){if(this.cursors.length===1)return;const n=this.cursors.slice(0),o=[];for(let t=0,i=n.length;tt.selection,m.Range.compareRangesUsingStarts));for(let t=0;tu&&v.index--;n.splice(u,1),o.splice(r,1),this._removeSecondaryCursor(u-1),t--}}}}e.CursorCollection=b}),define(ne[568],se([1,0,131]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CharacterPairSupport=void 0;class k{static{this.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES=`;:.,=}])> + `}static{this.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS=`'"\`;:.,=}])> + `}constructor(E){if(E.autoClosingPairs?this._autoClosingPairs=E.autoClosingPairs.map(y=>new d.StandardAutoClosingPairConditional(y)):E.brackets?this._autoClosingPairs=E.brackets.map(y=>new d.StandardAutoClosingPairConditional({open:y[0],close:y[1]})):this._autoClosingPairs=[],E.__electricCharacterSupport&&E.__electricCharacterSupport.docComment){const y=E.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new d.StandardAutoClosingPairConditional({open:y.open,close:y.close||""}))}this._autoCloseBeforeForQuotes=typeof E.autoCloseBefore=="string"?E.autoCloseBefore:k.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES,this._autoCloseBeforeForBrackets=typeof E.autoCloseBefore=="string"?E.autoCloseBefore:k.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS,this._surroundingPairs=E.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(E){return E?this._autoCloseBeforeForQuotes:this._autoCloseBeforeForBrackets}getSurroundingPairs(){return this._surroundingPairs}}e.CharacterPairSupport=k}),define(ne[569],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IndentRulesSupport=void 0;function d(I){return I.global&&(I.lastIndex=0),!0}class k{constructor(E){this._indentationRules=E}shouldIncrease(E){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&d(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(E))}shouldDecrease(E){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&d(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(E))}shouldIndentNextLine(E){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&d(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(E))}shouldIgnore(E){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&d(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(E))}getIndentMetadata(E){let y=0;return this.shouldIncrease(E)&&(y+=1),this.shouldDecrease(E)&&(y+=2),this.shouldIndentNextLine(E)&&(y+=4),this.shouldIgnore(E)&&(y+=8),y}}e.IndentRulesSupport=k}),define(ne[570],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BasicInplaceReplace=void 0;class d{constructor(){this._defaultValueSet=[["true","false"],["True","False"],["Private","Public","Friend","ReadOnly","Partial","Protected","WriteOnly"],["public","protected","private"]]}static{this.INSTANCE=new d}navigateValueSet(I,E,y,m,_){if(I&&E){const b=this.doNavigateValueSet(E,_);if(b)return{range:I,value:b}}if(y&&m){const b=this.doNavigateValueSet(m,_);if(b)return{range:y,value:b}}return null}doNavigateValueSet(I,E){const y=this.numberReplace(I,E);return y!==null?y:this.textReplace(I,E)}numberReplace(I,E){const y=Math.pow(10,I.length-(I.lastIndexOf(".")+1));let m=Number(I);const _=parseFloat(I);return!isNaN(m)&&!isNaN(_)&&m===_?m===0&&!E?null:(m=Math.floor(m*y),m+=E?y:-y,String(m/y)):null}textReplace(I,E){return this.valueSetsReplace(this._defaultValueSet,I,E)}valueSetsReplace(I,E,y){let m=null;for(let _=0,b=I.length;m===null&&_=0?(m+=y?1:-1,m<0?m=I.length-1:m%=I.length,I[m]):null}}e.BasicInplaceReplace=d}),define(ne[571],se([1,0,8,11,131]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OnEnterSupport=void 0;class E{constructor(m){m=m||{},m.brackets=m.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],m.brackets.forEach(_=>{const b=E._createOpenBracketRegExp(_[0]),p=E._createCloseBracketRegExp(_[1]);b&&p&&this._brackets.push({open:_[0],openRegExp:b,close:_[1],closeRegExp:p})}),this._regExpRules=m.onEnterRules||[]}onEnter(m,_,b,p){if(m>=3)for(let n=0,o=this._regExpRules.length;ns.reg?(s.reg.lastIndex=0,s.reg.test(s.text)):!0))return t.action}if(m>=2&&b.length>0&&p.length>0)for(let n=0,o=this._brackets.length;n=2&&b.length>0){for(let n=0,o=this._brackets.length;n{const S=n(v.token,w.token);return S!==0?S:v.index-w.index});let c=0,l="000000",a="ffffff";for(;s.length>=1&&s[0].token==="";){const v=s.shift();v.fontStyle!==-1&&(c=v.fontStyle),v.foreground!==null&&(l=v.foreground),v.background!==null&&(a=v.background)}const r=new m;for(const v of g)r.getId(v);const u=r.getId(l),C=r.getId(a),f=new o(c,u,C),h=new t(f);for(let v=0,w=s.length;v"u"){const a=this._match(c),r=p(c);l=(a.metadata|r<<8)>>>0,this._cache.set(c,l)}return(l|g<<0)>>>0}}e.TokenTheme=_;const b=/\b(comment|string|regex|regexp)\b/;function p(s){const g=s.match(b);if(!g)return 0;switch(g[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"regexp":return 3}throw new Error("Unexpected match for standard token type!")}function n(s,g){return sg?1:0}class o{constructor(g,c,l){this._themeTrieElementRuleBrand=void 0,this._fontStyle=g,this._foreground=c,this._background=l,this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}clone(){return new o(this._fontStyle,this._foreground,this._background)}acceptOverwrite(g,c,l){g!==-1&&(this._fontStyle=g),c!==0&&(this._foreground=c),l!==0&&(this._background=l),this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}}e.ThemeTrieElementRule=o;class t{constructor(g){this._themeTrieElementBrand=void 0,this._mainRule=g,this._children=new Map}match(g){if(g==="")return this._mainRule;const c=g.indexOf(".");let l,a;c===-1?(l=g,a=""):(l=g.substring(0,c),a=g.substring(c+1));const r=this._children.get(l);return typeof r<"u"?r.match(a):this._mainRule}insert(g,c,l,a){if(g===""){this._mainRule.acceptOverwrite(c,l,a);return}const r=g.indexOf(".");let u,C;r===-1?(u=g,C=""):(u=g.substring(0,r),C=g.substring(r+1));let f=this._children.get(u);typeof f>"u"&&(f=new t(this._mainRule.clone()),this._children.set(u,f)),f.insert(C,c,l,a)}}e.ThemeTrieElement=t;function i(s){const g=[];for(let c=1,l=s.length;c=m&&(h=h-C%m),h}function t(C,f){return C.reduce((h,v)=>o(h,f(v)),e.lengthZero)}function i(C,f){return C===f}function s(C,f){const h=C,v=f;if(v-h<=0)return e.lengthZero;const S=Math.floor(h/m),L=Math.floor(v/m),D=v-L*m;if(S===L){const T=h-S*m;return _(0,D-T)}else return _(L-S,D)}function g(C,f){return C=f}function a(C){return _(C.lineNumber-1,C.column-1)}function r(C,f){const h=C,v=Math.floor(h/m),w=h-v*m,S=f,L=Math.floor(S/m),D=S-L*m;return new k.Range(v+1,w+1,L+1,D+1)}function u(C){const f=(0,d.splitLines)(C);return _(f.length-1,f[f.length-1].length)}}),define(ne[200],se([1,0,4,106]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BeforeEditPositionMapper=e.TextEditInfo=void 0;class I{static fromModelContentChanges(_){return _.map(p=>{const n=d.Range.lift(p.range);return new I((0,k.positionToLength)(n.getStartPosition()),(0,k.positionToLength)(n.getEndPosition()),(0,k.lengthOfString)(p.text))}).reverse()}constructor(_,b,p){this.startOffset=_,this.endOffset=b,this.newLength=p}toString(){return`[${(0,k.lengthToObj)(this.startOffset)}...${(0,k.lengthToObj)(this.endOffset)}) -> ${(0,k.lengthToObj)(this.newLength)}`}}e.TextEditInfo=I;class E{constructor(_){this.nextEditIdx=0,this.deltaOldToNewLineCount=0,this.deltaOldToNewColumnCount=0,this.deltaLineIdxInOld=-1,this.edits=_.map(b=>y.from(b))}getOffsetBeforeChange(_){return this.adjustNextEdit(_),this.translateCurToOld(_)}getDistanceToNextChange(_){this.adjustNextEdit(_);const b=this.edits[this.nextEditIdx],p=b?this.translateOldToCur(b.offsetObj):null;return p===null?null:(0,k.lengthDiffNonNegative)(_,p)}translateOldToCur(_){return _.lineCount===this.deltaLineIdxInOld?(0,k.toLength)(_.lineCount+this.deltaOldToNewLineCount,_.columnCount+this.deltaOldToNewColumnCount):(0,k.toLength)(_.lineCount+this.deltaOldToNewLineCount,_.columnCount)}translateCurToOld(_){const b=(0,k.lengthToObj)(_);return b.lineCount-this.deltaOldToNewLineCount===this.deltaLineIdxInOld?(0,k.toLength)(b.lineCount-this.deltaOldToNewLineCount,b.columnCount-this.deltaOldToNewColumnCount):(0,k.toLength)(b.lineCount-this.deltaOldToNewLineCount,b.columnCount)}adjustNextEdit(_){for(;this.nextEditIdx!0)||[];return o&&a.unshift(o),a}const l=[];for(;o&&!(0,I.lengthIsZero)(c);){const[a,r]=o.splitAt(c);l.push(a),c=(0,I.lengthDiffNonNegative)(a.lengthAfter,c),o=r??p.dequeue()}return(0,I.lengthIsZero)(c)||l.push(new y(!1,c,c)),l}const i=[];function s(c,l,a){if(i.length>0&&(0,I.lengthEquals)(i[i.length-1].endOffset,c)){const r=i[i.length-1];i[i.length-1]=new k.TextEditInfo(r.startOffset,l,(0,I.lengthAdd)(r.newLength,a))}else i.push({startOffset:c,endOffset:l,newLength:a})}let g=I.lengthZero;for(const c of n){const l=t(c.lengthBefore);if(c.modified){const a=(0,I.sumLengths)(l,u=>u.lengthBefore),r=(0,I.lengthAdd)(g,a);s(g,r,c.lengthAfter),g=r}else for(const a of l){const r=g;g=(0,I.lengthAdd)(g,a.lengthBefore),a.modified&&s(r,g,a.lengthAfter)}}return i}class y{constructor(b,p,n){this.modified=b,this.lengthBefore=p,this.lengthAfter=n}splitAt(b){const p=(0,I.lengthDiffNonNegative)(b,this.lengthAfter);return(0,I.lengthEquals)(p,I.lengthZero)?[this,void 0]:this.modified?[new y(this.modified,this.lengthBefore,b),new y(this.modified,I.lengthZero,p)]:[new y(this.modified,b,b),new y(this.modified,p,p)]}toString(){return`${this.modified?"M":"U"}:${(0,I.lengthToObj)(this.lengthBefore)} -> ${(0,I.lengthToObj)(this.lengthAfter)}`}}function m(_){const b=[];let p=I.lengthZero;for(const n of _){const o=(0,I.lengthDiffNonNegative)(p,n.startOffset);(0,I.lengthIsZero)(o)||b.push(new y(!1,o,o));const t=(0,I.lengthDiffNonNegative)(n.startOffset,n.endOffset);b.push(new y(!0,t,n.newLength)),p=n.endOffset}return b}}),define(ne[573],se([1,0,106]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.NodeReader=void 0;class k{constructor(m){this.lastOffset=d.lengthZero,this.nextNodes=[m],this.offsets=[d.lengthZero],this.idxs=[]}readLongestNodeAt(m,_){if((0,d.lengthLessThan)(m,this.lastOffset))throw new Error("Invalid offset");for(this.lastOffset=m;;){const b=E(this.nextNodes);if(!b)return;const p=E(this.offsets);if((0,d.lengthLessThan)(m,p))return;if((0,d.lengthLessThan)(p,m))if((0,d.lengthAdd)(p,b.length)<=m)this.nextNodeAfterCurrent();else{const n=I(b);n!==-1?(this.nextNodes.push(b.getChild(n)),this.offsets.push(p),this.idxs.push(n)):this.nextNodeAfterCurrent()}else{if(_(b))return this.nextNodeAfterCurrent(),b;{const n=I(b);if(n===-1){this.nextNodeAfterCurrent();return}else this.nextNodes.push(b.getChild(n)),this.offsets.push(p),this.idxs.push(n)}}}}nextNodeAfterCurrent(){for(;;){const m=E(this.offsets),_=E(this.nextNodes);if(this.nextNodes.pop(),this.offsets.pop(),this.idxs.length===0)break;const b=E(this.nextNodes),p=I(b,this.idxs[this.idxs.length-1]);if(p!==-1){this.nextNodes.push(b.getChild(p)),this.offsets.push((0,d.lengthAdd)(m,_.length)),this.idxs[this.idxs.length-1]=p;break}else this.idxs.pop()}}}e.NodeReader=k;function I(y,m=-1){for(;;){if(m++,m>=y.childrenLength)return-1;if(y.getChild(m))return m}}function E(y){return y.length>0?y[y.length-1]:void 0}}),define(ne[149],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DenseKeyProvider=e.identityKeyProvider=e.SmallImmutableSet=void 0;const d=[];class k{static{this.cache=new Array(129)}static create(y,m){if(y<=128&&m.length===0){let _=k.cache[y];return _||(_=new k(y,m),k.cache[y]=_),_}return new k(y,m)}static{this.empty=k.create(0,d)}static getEmpty(){return this.empty}constructor(y,m){this.items=y,this.additionalItems=m}add(y,m){const _=m.getKey(y);let b=_>>5;if(b===0){const n=1<<_|this.items;return n===this.items?this:k.create(n,this.additionalItems)}b--;const p=this.additionalItems.slice(0);for(;p.length=b.length)return null;const s=p,g=b[s].listHeight;for(p++;p=2?I(s===0&&p===b.length?b:b.slice(s,p),!1):b[s]}let o=n(),t=n();if(!t)return o;for(let s=n();s;s=n())E(o,t)<=E(t,s)?(o=y(o,t),t=s):t=y(t,s);return y(o,t)}function I(b,p=!1){if(b.length===0)return null;if(b.length===1)return b[0];let n=b.length;for(;n>3;){const o=n>>1;for(let t=0;t=3?b[2]:null,p)}function E(b,p){return Math.abs(b.listHeight-p.listHeight)}function y(b,p){return b.listHeight===p.listHeight?d.ListAstNode.create23(b,p,null,!1):b.listHeight>p.listHeight?m(b,p):_(p,b)}function m(b,p){b=b.toMutable();let n=b;const o=[];let t;for(;;){if(p.listHeight===n.listHeight){t=p;break}if(n.kind!==4)throw new Error("unexpected");o.push(n),n=n.makeLastElementMutable()}for(let i=o.length-1;i>=0;i--){const s=o[i];t?s.childrenLength>=3?t=d.ListAstNode.create23(s.unappendChild(),t,null,!1):(s.appendChildOfSameHeight(t),t=void 0):s.handleChildrenChanged()}return t?d.ListAstNode.create23(b,t,null,!1):b}function _(b,p){b=b.toMutable();let n=b;const o=[];for(;p.listHeight!==n.listHeight;){if(n.kind!==4)throw new Error("unexpected");o.push(n),n=n.makeFirstElementMutable()}let t=p;for(let i=o.length-1;i>=0;i--){const s=o[i];t?s.childrenLength>=3?t=d.ListAstNode.create23(t,s.unprependChild(),null,!1):(s.prependChildOfSameHeight(t),t=void 0):s.handleChildrenChanged()}return t?d.ListAstNode.create23(t,b,null,!1):b}}),define(ne[320],se([1,0,201,200,149,106,574,573]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parseDocument=_;function _(p,n,o,t){return new b(p,n,o,t).parseDocument()}class b{constructor(n,o,t,i){if(this.tokenizer=n,this.createImmutableLists=i,this._itemsConstructed=0,this._itemsFromCache=0,t&&i)throw new Error("Not supported");this.oldNodeReader=t?new m.NodeReader(t):void 0,this.positionMapper=new k.BeforeEditPositionMapper(o)}parseDocument(){this._itemsConstructed=0,this._itemsFromCache=0;let n=this.parseList(I.SmallImmutableSet.getEmpty(),0);return n||(n=d.ListAstNode.getEmpty()),n}parseList(n,o){const t=[];for(;;){let s=this.tryReadChildFromCache(n);if(!s){const g=this.tokenizer.peek();if(!g||g.kind===2&&g.bracketIds.intersects(n))break;s=this.parseChild(n,o+1)}s.kind===4&&s.childrenLength===0||t.push(s)}return this.oldNodeReader?(0,y.concat23Trees)(t):(0,y.concat23TreesOfSameHeight)(t,this.createImmutableLists)}tryReadChildFromCache(n){if(this.oldNodeReader){const o=this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);if(o===null||!(0,E.lengthIsZero)(o)){const t=this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset),i=>o!==null&&!(0,E.lengthLessThan)(i.length,o)?!1:i.canBeReused(n));if(t)return this._itemsFromCache++,this.tokenizer.skip(t.length),t}}}parseChild(n,o){this._itemsConstructed++;const t=this.tokenizer.read();switch(t.kind){case 2:return new d.InvalidBracketAstNode(t.bracketIds,t.length);case 0:return t.astNode;case 1:{if(o>300)return new d.TextAstNode(t.length);const i=n.merge(t.bracketIds),s=this.parseList(i,o+1),g=this.tokenizer.peek();return g&&g.kind===2&&(g.bracketId===t.bracketId||g.bracketIds.intersects(t.bracketIds))?(this.tokenizer.read(),d.PairAstNode.create(t.astNode,s,g.astNode)):d.PairAstNode.create(t.astNode,s,null)}default:throw new Error("unexpected")}}}}),define(ne[236],se([1,0,8,148,201,106,149]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FastTokenizer=e.TextBufferTokenizer=e.Token=void 0;class m{constructor(o,t,i,s,g){this.length=o,this.kind=t,this.bracketId=i,this.bracketIds=s,this.astNode=g}}e.Token=m;class _{constructor(o,t){this.textModel=o,this.bracketTokens=t,this.reader=new b(this.textModel,this.bracketTokens),this._offset=E.lengthZero,this.didPeek=!1,this.peeked=null,this.textBufferLineCount=o.getLineCount(),this.textBufferLastLineLength=o.getLineLength(this.textBufferLineCount)}get offset(){return this._offset}get length(){return(0,E.toLength)(this.textBufferLineCount-1,this.textBufferLastLineLength)}skip(o){this.didPeek=!1,this._offset=(0,E.lengthAdd)(this._offset,o);const t=(0,E.lengthToObj)(this._offset);this.reader.setPosition(t.lineCount,t.columnCount)}read(){let o;return this.peeked?(this.didPeek=!1,o=this.peeked):o=this.reader.read(),o&&(this._offset=(0,E.lengthAdd)(this._offset,o.length)),o}peek(){return this.didPeek||(this.peeked=this.reader.read(),this.didPeek=!0),this.peeked}}e.TextBufferTokenizer=_;class b{constructor(o,t){this.textModel=o,this.bracketTokens=t,this.lineIdx=0,this.line=null,this.lineCharOffset=0,this.lineTokens=null,this.lineTokenOffset=0,this.peekedToken=null,this.textBufferLineCount=o.getLineCount(),this.textBufferLastLineLength=o.getLineLength(this.textBufferLineCount)}setPosition(o,t){o===this.lineIdx?(this.lineCharOffset=t,this.line!==null&&(this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset))):(this.lineIdx=o,this.lineCharOffset=t,this.line=null),this.peekedToken=null}read(){if(this.peekedToken){const g=this.peekedToken;return this.peekedToken=null,this.lineCharOffset+=(0,E.lengthGetColumnCountIfZeroLineCount)(g.length),g}if(this.lineIdx>this.textBufferLineCount-1||this.lineIdx===this.textBufferLineCount-1&&this.lineCharOffset>=this.textBufferLastLineLength)return null;this.line===null&&(this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.line=this.lineTokens.getLineContent(),this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset));const o=this.lineIdx,t=this.lineCharOffset;let i=0;for(;;){const g=this.lineTokens,c=g.getCount();let l=null;if(this.lineTokenOffset1e3))break;if(i>1500)break}const s=(0,E.lengthDiff)(o,t,this.lineIdx,this.lineCharOffset);return new m(s,0,-1,y.SmallImmutableSet.getEmpty(),new I.TextAstNode(s))}}class p{constructor(o,t){this.text=o,this._offset=E.lengthZero,this.idx=0;const i=t.getRegExpStr(),s=i?new RegExp(i+`| +`,"gi"):null,g=[];let c,l=0,a=0,r=0,u=0;const C=[];for(let v=0;v<60;v++)C.push(new m((0,E.toLength)(0,v),0,-1,y.SmallImmutableSet.getEmpty(),new I.TextAstNode((0,E.toLength)(0,v))));const f=[];for(let v=0;v<60;v++)f.push(new m((0,E.toLength)(1,v),0,-1,y.SmallImmutableSet.getEmpty(),new I.TextAstNode((0,E.toLength)(1,v))));if(s)for(s.lastIndex=0;(c=s.exec(o))!==null;){const v=c.index,w=c[0];if(w===` +`)l++,a=v+1;else{if(r!==v){let S;if(u===l){const L=v-r;if(L_(o)).join("|")}}get regExpGlobal(){if(!this.hasRegExp){const n=this.getRegExpStr();this._regExpGlobal=n?new RegExp(n,"gi"):null,this.hasRegExp=!0}return this._regExpGlobal}getToken(n){return this.map.get(n.toLowerCase())}findClosingTokenText(n){for(const[o,t]of this.map)if(t.kind===2&&t.bracketIds.intersects(n))return o}get isEmpty(){return this.map.size===0}}e.BracketTokens=m;function _(p){let n=(0,d.escapeRegExpCharacters)(p);return/^[\w ]+/.test(p)&&(n=`\\b${n}`),/[\w ]+$/.test(p)&&(n=`${n}\\b`),n}class b{constructor(n,o){this.denseKeyProvider=n,this.getLanguageConfiguration=o,this.languageIdToBracketTokens=new Map}didLanguageChange(n){return this.languageIdToBracketTokens.has(n)}getSingleLanguageBracketTokens(n){let o=this.languageIdToBracketTokens.get(n);return o||(o=m.createFromLanguage(this.getLanguageConfiguration(n),this.denseKeyProvider),this.languageIdToBracketTokens.set(n,o)),o}}e.LanguageAgnosticBracketTokens=b}),define(ne[575],se([1,0,321,106,320,149,236]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.fixBracketsInLine=m;function m(b,p){const n=new E.DenseKeyProvider,o=new d.LanguageAgnosticBracketTokens(n,l=>p.getLanguageConfiguration(l)),t=new y.TextBufferTokenizer(new _([b]),o),i=(0,I.parseDocument)(t,[],void 0,!0);let s="";const g=b.getLineContent();function c(l,a){if(l.kind===2)if(c(l.openingBracket,a),a=(0,k.lengthAdd)(a,l.openingBracket.length),l.child&&(c(l.child,a),a=(0,k.lengthAdd)(a,l.child.length)),l.closingBracket)c(l.closingBracket,a),a=(0,k.lengthAdd)(a,l.closingBracket.length);else{const u=o.getSingleLanguageBracketTokens(l.openingBracket.languageId).findClosingTokenText(l.openingBracket.bracketIds);s+=u}else if(l.kind!==3){if(l.kind===0||l.kind===1)s+=g.substring((0,k.lengthGetColumnCountIfZeroLineCount)(a),(0,k.lengthGetColumnCountIfZeroLineCount)((0,k.lengthAdd)(a,l.length)));else if(l.kind===4)for(const r of l.children)c(r,a),a=(0,k.lengthAdd)(a,r.length)}}return c(i,k.lengthZero),s}class _{constructor(p){this.lines=p,this.tokenization={getLineTokens:n=>this.lines[n-1]}}getLineCount(){return this.lines.length}getLineLength(p){return this.lines[p-1].getLineContent().length}}}),define(ne[576],se([1,0,13]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FixedArray=void 0;class k{constructor(y){this._default=y,this._store=[]}get(y){return y=this._store.length;)this._store[this._store.length]=this._default;this._store[y]=m}replace(y,m,_){if(y>=this._store.length)return;if(m===0){this.insert(y,_);return}else if(_===0){this.delete(y,m);return}const b=this._store.slice(0,y),p=this._store.slice(y+m),n=I(_,this._default);this._store=b.concat(n,p)}delete(y,m){m===0||y>=this._store.length||this._store.splice(y,m)}insert(y,m){if(m===0||y>=this._store.length)return;const _=[];for(let b=0;b0&&o>0||t>0&&i>0)return;const s=Math.abs(o-i),g=Math.abs(n-t);if(s===0){b.spacesDiff=g,g>0&&0<=t-1&&t-10?b++:v>1&&p++,k(n,o,u,h,g),g.looksLikeAlignment&&!(m&&y===g.spacesDiff)))continue;const S=g.spacesDiff;S<=i&&s[S]++,n=u,o=h}let c=m;b!==p&&(c=b{const u=s[r];u>a&&(a=u,l=r)}),l===4&&s[4]>0&&s[2]>0&&s[2]>=s[4]/2&&(l=2)}return{insertSpaces:c,tabSize:l}}}),define(ne[578],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IntervalTree=e.SENTINEL=e.IntervalNode=void 0,e.getNodeColor=d,e.nodeAcceptEdit=l,e.recomputeMaxEnd=P,e.intervalCompare=O;function d(F){return(F.metadata&1)>>>0}function k(F,x){F.metadata=F.metadata&254|x<<0}function I(F){return(F.metadata&2)>>>1===1}function E(F,x){F.metadata=F.metadata&253|(x?1:0)<<1}function y(F){return(F.metadata&4)>>>2===1}function m(F,x){F.metadata=F.metadata&251|(x?1:0)<<2}function _(F){return(F.metadata&64)>>>6===1}function b(F,x){F.metadata=F.metadata&191|(x?1:0)<<6}function p(F){return(F.metadata&24)>>>3}function n(F,x){F.metadata=F.metadata&231|x<<3}function o(F){return(F.metadata&32)>>>5===1}function t(F,x){F.metadata=F.metadata&223|(x?1:0)<<5}class i{constructor(x,W,V){this.metadata=0,this.parent=this,this.left=this,this.right=this,k(this,1),this.start=W,this.end=V,this.delta=0,this.maxEnd=V,this.id=x,this.ownerId=0,this.options=null,m(this,!1),b(this,!1),n(this,1),t(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=W,this.cachedAbsoluteEnd=V,this.range=null,E(this,!1)}reset(x,W,V,q){this.start=W,this.end=V,this.maxEnd=V,this.cachedVersionId=x,this.cachedAbsoluteStart=W,this.cachedAbsoluteEnd=V,this.range=q}setOptions(x){this.options=x;const W=this.options.className;m(this,W==="squiggly-error"||W==="squiggly-warning"||W==="squiggly-info"),b(this,this.options.glyphMarginClassName!==null),n(this,this.options.stickiness),t(this,this.options.collapseOnReplaceEdit)}setCachedOffsets(x,W,V){this.cachedVersionId!==V&&(this.range=null),this.cachedVersionId=V,this.cachedAbsoluteStart=x,this.cachedAbsoluteEnd=W}detach(){this.parent=null,this.left=null,this.right=null}}e.IntervalNode=i,e.SENTINEL=new i(null,0,0),e.SENTINEL.parent=e.SENTINEL,e.SENTINEL.left=e.SENTINEL,e.SENTINEL.right=e.SENTINEL,k(e.SENTINEL,0);class s{constructor(){this.root=e.SENTINEL,this.requestNormalizeDelta=!1}intervalSearch(x,W,V,q,H,z){return this.root===e.SENTINEL?[]:h(this,x,W,V,q,H,z)}search(x,W,V,q){return this.root===e.SENTINEL?[]:f(this,x,W,V,q)}collectNodesFromOwner(x){return u(this,x)}collectNodesPostOrder(){return C(this)}insert(x){v(this,x),this._normalizeDeltaIfNecessary()}delete(x){S(this,x),this._normalizeDeltaIfNecessary()}resolveNode(x,W){const V=x;let q=0;for(;x!==this.root;)x===x.parent.right&&(q+=x.parent.delta),x=x.parent;const H=V.start+q,z=V.end+q;V.setCachedOffsets(H,z,W)}acceptReplace(x,W,V,q){const H=a(this,x,x+W);for(let z=0,U=H.length;zW||V===1?!1:V===2?!0:x}function l(F,x,W,V,q){const H=p(F),z=H===0||H===2,U=H===1||H===2,j=W-x,Y=V,G=Math.min(j,Y),K=F.start;let R=!1;const J=F.end;let ie=!1;x<=K&&J<=W&&o(F)&&(F.start=x,R=!0,F.end=x,ie=!0);{const he=q?1:j>0?2:0;!R&&c(K,z,x,he)&&(R=!0),!ie&&c(J,U,x,he)&&(ie=!0)}if(G>0&&!q){const he=j>Y?2:0;!R&&c(K,z,x+G,he)&&(R=!0),!ie&&c(J,U,x+G,he)&&(ie=!0)}{const he=q?1:0;!R&&c(K,z,W,he)&&(F.start=x+Y,R=!0),!ie&&c(J,U,W,he)&&(F.end=x+Y,ie=!0)}const ue=Y-j;R||(F.start=Math.max(0,K+ue)),ie||(F.end=Math.max(0,J+ue)),F.start>F.end&&(F.end=F.start)}function a(F,x,W){let V=F.root,q=0,H=0,z=0,U=0;const j=[];let Y=0;for(;V!==e.SENTINEL;){if(I(V)){E(V.left,!1),E(V.right,!1),V===V.parent.right&&(q-=V.parent.delta),V=V.parent;continue}if(!I(V.left)){if(H=q+V.maxEnd,HW){E(V,!0);continue}if(U=q+V.end,U>=x&&(V.setCachedOffsets(z,U,0),j[Y++]=V),E(V,!0),V.right!==e.SENTINEL&&!I(V.right)){q+=V.delta,V=V.right;continue}}return E(F.root,!1),j}function r(F,x,W,V){let q=F.root,H=0,z=0,U=0;const j=V-(W-x);for(;q!==e.SENTINEL;){if(I(q)){E(q.left,!1),E(q.right,!1),q===q.parent.right&&(H-=q.parent.delta),P(q),q=q.parent;continue}if(!I(q.left)){if(z=H+q.maxEnd,zW){q.start+=j,q.end+=j,q.delta+=j,(q.delta<-1073741824||q.delta>1073741824)&&(F.requestNormalizeDelta=!0),E(q,!0);continue}if(E(q,!0),q.right!==e.SENTINEL&&!I(q.right)){H+=q.delta,q=q.right;continue}}E(F.root,!1)}function u(F,x){let W=F.root;const V=[];let q=0;for(;W!==e.SENTINEL;){if(I(W)){E(W.left,!1),E(W.right,!1),W=W.parent;continue}if(W.left!==e.SENTINEL&&!I(W.left)){W=W.left;continue}if(W.ownerId===x&&(V[q++]=W),E(W,!0),W.right!==e.SENTINEL&&!I(W.right)){W=W.right;continue}}return E(F.root,!1),V}function C(F){let x=F.root;const W=[];let V=0;for(;x!==e.SENTINEL;){if(I(x)){E(x.left,!1),E(x.right,!1),x=x.parent;continue}if(x.left!==e.SENTINEL&&!I(x.left)){x=x.left;continue}if(x.right!==e.SENTINEL&&!I(x.right)){x=x.right;continue}W[V++]=x,E(x,!0)}return E(F.root,!1),W}function f(F,x,W,V,q){let H=F.root,z=0,U=0,j=0;const Y=[];let G=0;for(;H!==e.SENTINEL;){if(I(H)){E(H.left,!1),E(H.right,!1),H===H.parent.right&&(z-=H.parent.delta),H=H.parent;continue}if(H.left!==e.SENTINEL&&!I(H.left)){H=H.left;continue}U=z+H.start,j=z+H.end,H.setCachedOffsets(U,j,V);let K=!0;if(x&&H.ownerId&&H.ownerId!==x&&(K=!1),W&&y(H)&&(K=!1),q&&!_(H)&&(K=!1),K&&(Y[G++]=H),E(H,!0),H.right!==e.SENTINEL&&!I(H.right)){z+=H.delta,H=H.right;continue}}return E(F.root,!1),Y}function h(F,x,W,V,q,H,z){let U=F.root,j=0,Y=0,G=0,K=0;const R=[];let J=0;for(;U!==e.SENTINEL;){if(I(U)){E(U.left,!1),E(U.right,!1),U===U.parent.right&&(j-=U.parent.delta),U=U.parent;continue}if(!I(U.left)){if(Y=j+U.maxEnd,YW){E(U,!0);continue}if(K=j+U.end,K>=x){U.setCachedOffsets(G,K,H);let ie=!0;V&&U.ownerId&&U.ownerId!==V&&(ie=!1),q&&y(U)&&(ie=!1),z&&!_(U)&&(ie=!1),ie&&(R[J++]=U)}if(E(U,!0),U.right!==e.SENTINEL&&!I(U.right)){j+=U.delta,U=U.right;continue}}return E(F.root,!1),R}function v(F,x){if(F.root===e.SENTINEL)return x.parent=e.SENTINEL,x.left=e.SENTINEL,x.right=e.SENTINEL,k(x,0),F.root=x,F.root;w(F,x),N(x.parent);let W=x;for(;W!==F.root&&d(W.parent)===1;)if(W.parent===W.parent.parent.left){const V=W.parent.parent.right;d(V)===1?(k(W.parent,0),k(V,0),k(W.parent.parent,1),W=W.parent.parent):(W===W.parent.right&&(W=W.parent,T(F,W)),k(W.parent,0),k(W.parent.parent,1),M(F,W.parent.parent))}else{const V=W.parent.parent.left;d(V)===1?(k(W.parent,0),k(V,0),k(W.parent.parent,1),W=W.parent.parent):(W===W.parent.left&&(W=W.parent,M(F,W)),k(W.parent,0),k(W.parent.parent,1),T(F,W.parent.parent))}return k(F.root,0),x}function w(F,x){let W=0,V=F.root;const q=x.start,H=x.end;for(;;)if(O(q,H,V.start+W,V.end+W)<0)if(V.left===e.SENTINEL){x.start-=W,x.end-=W,x.maxEnd-=W,V.left=x;break}else V=V.left;else if(V.right===e.SENTINEL){x.start-=W+V.delta,x.end-=W+V.delta,x.maxEnd-=W+V.delta,V.right=x;break}else W+=V.delta,V=V.right;x.parent=V,x.left=e.SENTINEL,x.right=e.SENTINEL,k(x,1)}function S(F,x){let W,V;if(x.left===e.SENTINEL?(W=x.right,V=x,W.delta+=x.delta,(W.delta<-1073741824||W.delta>1073741824)&&(F.requestNormalizeDelta=!0),W.start+=x.delta,W.end+=x.delta):x.right===e.SENTINEL?(W=x.left,V=x):(V=L(x.right),W=V.right,W.start+=V.delta,W.end+=V.delta,W.delta+=V.delta,(W.delta<-1073741824||W.delta>1073741824)&&(F.requestNormalizeDelta=!0),V.start+=x.delta,V.end+=x.delta,V.delta=x.delta,(V.delta<-1073741824||V.delta>1073741824)&&(F.requestNormalizeDelta=!0)),V===F.root){F.root=W,k(W,0),x.detach(),D(),P(W),F.root.parent=e.SENTINEL;return}const q=d(V)===1;if(V===V.parent.left?V.parent.left=W:V.parent.right=W,V===x?W.parent=V.parent:(V.parent===x?W.parent=V:W.parent=V.parent,V.left=x.left,V.right=x.right,V.parent=x.parent,k(V,d(x)),x===F.root?F.root=V:x===x.parent.left?x.parent.left=V:x.parent.right=V,V.left!==e.SENTINEL&&(V.left.parent=V),V.right!==e.SENTINEL&&(V.right.parent=V)),x.detach(),q){N(W.parent),V!==x&&(N(V),N(V.parent)),D();return}N(W),N(W.parent),V!==x&&(N(V),N(V.parent));let H;for(;W!==F.root&&d(W)===0;)W===W.parent.left?(H=W.parent.right,d(H)===1&&(k(H,0),k(W.parent,1),T(F,W.parent),H=W.parent.right),d(H.left)===0&&d(H.right)===0?(k(H,1),W=W.parent):(d(H.right)===0&&(k(H.left,0),k(H,1),M(F,H),H=W.parent.right),k(H,d(W.parent)),k(W.parent,0),k(H.right,0),T(F,W.parent),W=F.root)):(H=W.parent.left,d(H)===1&&(k(H,0),k(W.parent,1),M(F,W.parent),H=W.parent.left),d(H.left)===0&&d(H.right)===0?(k(H,1),W=W.parent):(d(H.left)===0&&(k(H.right,0),k(H,1),T(F,H),H=W.parent.left),k(H,d(W.parent)),k(W.parent,0),k(H.left,0),M(F,W.parent),W=F.root));k(W,0),D()}function L(F){for(;F.left!==e.SENTINEL;)F=F.left;return F}function D(){e.SENTINEL.parent=e.SENTINEL,e.SENTINEL.delta=0,e.SENTINEL.start=0,e.SENTINEL.end=0}function T(F,x){const W=x.right;W.delta+=x.delta,(W.delta<-1073741824||W.delta>1073741824)&&(F.requestNormalizeDelta=!0),W.start+=x.delta,W.end+=x.delta,x.right=W.left,W.left!==e.SENTINEL&&(W.left.parent=x),W.parent=x.parent,x.parent===e.SENTINEL?F.root=W:x===x.parent.left?x.parent.left=W:x.parent.right=W,W.left=x,x.parent=W,P(x),P(W)}function M(F,x){const W=x.left;x.delta-=W.delta,(x.delta<-1073741824||x.delta>1073741824)&&(F.requestNormalizeDelta=!0),x.start-=W.delta,x.end-=W.delta,x.left=W.right,W.right!==e.SENTINEL&&(W.right.parent=x),W.parent=x.parent,x.parent===e.SENTINEL?F.root=W:x===x.parent.right?x.parent.right=W:x.parent.left=W,W.right=x,x.parent=W,P(x),P(W)}function A(F){let x=F.end;if(F.left!==e.SENTINEL){const W=F.left.maxEnd;W>x&&(x=W)}if(F.right!==e.SENTINEL){const W=F.right.maxEnd+F.delta;W>x&&(x=W)}return x}function P(F){F.maxEnd=A(F)}function N(F){for(;F!==e.SENTINEL;){const x=A(F);if(F.maxEnd===x)return;F.maxEnd=x,F=F.parent}}function O(F,x,W,V){return F===W?x-V:F-W}}),define(ne[579],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SENTINEL=e.TreeNode=void 0,e.leftest=k,e.righttest=I,e.leftRotate=_,e.rightRotate=b,e.rbDelete=p,e.fixInsert=n,e.updateTreeMetadata=o,e.recomputeTreeMetadata=t;class d{constructor(s,g){this.piece=s,this.color=g,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}next(){if(this.right!==e.SENTINEL)return k(this.right);let s=this;for(;s.parent!==e.SENTINEL&&s.parent.left!==s;)s=s.parent;return s.parent===e.SENTINEL?e.SENTINEL:s.parent}prev(){if(this.left!==e.SENTINEL)return I(this.left);let s=this;for(;s.parent!==e.SENTINEL&&s.parent.right!==s;)s=s.parent;return s.parent===e.SENTINEL?e.SENTINEL:s.parent}detach(){this.parent=null,this.left=null,this.right=null}}e.TreeNode=d,e.SENTINEL=new d(null,0),e.SENTINEL.parent=e.SENTINEL,e.SENTINEL.left=e.SENTINEL,e.SENTINEL.right=e.SENTINEL,e.SENTINEL.color=0;function k(i){for(;i.left!==e.SENTINEL;)i=i.left;return i}function I(i){for(;i.right!==e.SENTINEL;)i=i.right;return i}function E(i){return i===e.SENTINEL?0:i.size_left+i.piece.length+E(i.right)}function y(i){return i===e.SENTINEL?0:i.lf_left+i.piece.lineFeedCnt+y(i.right)}function m(){e.SENTINEL.parent=e.SENTINEL}function _(i,s){const g=s.right;g.size_left+=s.size_left+(s.piece?s.piece.length:0),g.lf_left+=s.lf_left+(s.piece?s.piece.lineFeedCnt:0),s.right=g.left,g.left!==e.SENTINEL&&(g.left.parent=s),g.parent=s.parent,s.parent===e.SENTINEL?i.root=g:s.parent.left===s?s.parent.left=g:s.parent.right=g,g.left=s,s.parent=g}function b(i,s){const g=s.left;s.left=g.right,g.right!==e.SENTINEL&&(g.right.parent=s),g.parent=s.parent,s.size_left-=g.size_left+(g.piece?g.piece.length:0),s.lf_left-=g.lf_left+(g.piece?g.piece.lineFeedCnt:0),s.parent===e.SENTINEL?i.root=g:s===s.parent.right?s.parent.right=g:s.parent.left=g,g.right=s,s.parent=g}function p(i,s){let g,c;if(s.left===e.SENTINEL?(c=s,g=c.right):s.right===e.SENTINEL?(c=s,g=c.left):(c=k(s.right),g=c.right),c===i.root){i.root=g,g.color=0,s.detach(),m(),i.root.parent=e.SENTINEL;return}const l=c.color===1;if(c===c.parent.left?c.parent.left=g:c.parent.right=g,c===s?(g.parent=c.parent,t(i,g)):(c.parent===s?g.parent=c:g.parent=c.parent,t(i,g),c.left=s.left,c.right=s.right,c.parent=s.parent,c.color=s.color,s===i.root?i.root=c:s===s.parent.left?s.parent.left=c:s.parent.right=c,c.left!==e.SENTINEL&&(c.left.parent=c),c.right!==e.SENTINEL&&(c.right.parent=c),c.size_left=s.size_left,c.lf_left=s.lf_left,t(i,c)),s.detach(),g.parent.left===g){const r=E(g),u=y(g);if(r!==g.parent.size_left||u!==g.parent.lf_left){const C=r-g.parent.size_left,f=u-g.parent.lf_left;g.parent.size_left=r,g.parent.lf_left=u,o(i,g.parent,C,f)}}if(t(i,g.parent),l){m();return}let a;for(;g!==i.root&&g.color===0;)g===g.parent.left?(a=g.parent.right,a.color===1&&(a.color=0,g.parent.color=1,_(i,g.parent),a=g.parent.right),a.left.color===0&&a.right.color===0?(a.color=1,g=g.parent):(a.right.color===0&&(a.left.color=0,a.color=1,b(i,a),a=g.parent.right),a.color=g.parent.color,g.parent.color=0,a.right.color=0,_(i,g.parent),g=i.root)):(a=g.parent.left,a.color===1&&(a.color=0,g.parent.color=1,b(i,g.parent),a=g.parent.left),a.left.color===0&&a.right.color===0?(a.color=1,g=g.parent):(a.left.color===0&&(a.right.color=0,a.color=1,_(i,a),a=g.parent.left),a.color=g.parent.color,g.parent.color=0,a.left.color=0,b(i,g.parent),g=i.root));g.color=0,m()}function n(i,s){for(t(i,s);s!==i.root&&s.parent.color===1;)if(s.parent===s.parent.parent.left){const g=s.parent.parent.right;g.color===1?(s.parent.color=0,g.color=0,s.parent.parent.color=1,s=s.parent.parent):(s===s.parent.right&&(s=s.parent,_(i,s)),s.parent.color=0,s.parent.parent.color=1,b(i,s.parent.parent))}else{const g=s.parent.parent.left;g.color===1?(s.parent.color=0,g.color=0,s.parent.parent.color=1,s=s.parent.parent):(s===s.parent.left&&(s=s.parent,b(i,s)),s.parent.color=0,s.parent.parent.color=1,_(i,s.parent.parent))}i.root.color=0}function o(i,s,g,c){for(;s!==i.root&&s!==e.SENTINEL;)s.parent.left===s&&(s.parent.size_left+=g,s.parent.lf_left+=c),s=s.parent}function t(i,s){let g=0,c=0;if(s!==i.root){for(;s!==i.root&&s===s.parent.right;)s=s.parent;if(s!==i.root)for(s=s.parent,g=E(s.left)-s.size_left,c=y(s.left)-s.lf_left,s.size_left+=g,s.lf_left+=c;s!==i.root&&(g!==0||c!==0);)s.parent.left===s&&(s.parent.size_left+=g,s.parent.lf_left+=c),s=s.parent}}}),define(ne[322],se([1,0,13,192]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PrefixSumIndexOfResult=e.ConstantTimePrefixSumComputer=e.PrefixSumComputer=void 0;class I{constructor(_){this.values=_,this.prefixSum=new Uint32Array(_.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(_,b){_=(0,k.toUint32)(_);const p=this.values,n=this.prefixSum,o=b.length;return o===0?!1:(this.values=new Uint32Array(p.length+o),this.values.set(p.subarray(0,_),0),this.values.set(p.subarray(_),_+o),this.values.set(b,_),_-1=0&&this.prefixSum.set(n.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(_,b){return _=(0,k.toUint32)(_),b=(0,k.toUint32)(b),this.values[_]===b?!1:(this.values[_]=b,_-1=p.length)return!1;const o=p.length-_;return b>=o&&(b=o),b===0?!1:(this.values=new Uint32Array(p.length-b),this.values.set(p.subarray(0,_),0),this.values.set(p.subarray(_+b),_),this.prefixSum=new Uint32Array(this.values.length),_-1=0&&this.prefixSum.set(n.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(_){return _<0?0:(_=(0,k.toUint32)(_),this._getPrefixSum(_))}_getPrefixSum(_){if(_<=this.prefixSumValidIndex[0])return this.prefixSum[_];let b=this.prefixSumValidIndex[0]+1;b===0&&(this.prefixSum[0]=this.values[0],b++),_>=this.values.length&&(_=this.values.length-1);for(let p=b;p<=_;p++)this.prefixSum[p]=this.prefixSum[p-1]+this.values[p];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],_),this.prefixSum[_]}getIndexOf(_){_=Math.floor(_),this.getTotalSum();let b=0,p=this.values.length-1,n=0,o=0,t=0;for(;b<=p;)if(n=b+(p-b)/2|0,o=this.prefixSum[n],t=o-this.values[n],_=o)b=n+1;else break;return new y(n,_-t)}}e.PrefixSumComputer=I;class E{constructor(_){this._values=_,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(_){return this._ensureValid(),_===0?0:this._prefixSum[_-1]}getIndexOf(_){this._ensureValid();const b=this._indexBySum[_],p=b>0?this._prefixSum[b-1]:0;return new y(b,_-p)}removeValues(_,b){this._values.splice(_,b),this._invalidate(_)}insertValues(_,b){this._values=(0,d.arrayInsert)(this._values,_,b),this._invalidate(_)}_invalidate(_){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,_-1)}_ensureValid(){if(!this._isValid){for(let _=this._validEndIndex+1,b=this._values.length;_0?this._prefixSum[_-1]:0;this._prefixSum[_]=n+p;for(let o=0;o=0;let a=null;try{a=d.createRegExp(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:l,global:!0,unicode:!0})}catch{return null}if(!a)return null;let r=!this.isRegex&&!l;return r&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(r=this.matchCase),new y.SearchData(a,this.wordSeparators?(0,k.getMapForWordSeparators)(this.wordSeparators,[]):null,r?this.searchString:null)}}e.SearchParams=_;function b(c){if(!c||c.length===0)return!1;for(let l=0,a=c.length;l=a)break;const u=c.charCodeAt(l);if(u===110||u===114||u===87)return!0}}return!1}function p(c,l,a){if(!a)return new y.FindMatch(c,null);const r=[];for(let u=0,C=l.length;u>0);a[C]>=l?u=C-1:a[C+1]>=l?(r=C,u=C):r=C+1}return r+1}}class o{static findMatches(l,a,r,u,C){const f=a.parseSearchRequest();return f?f.regex.multiline?this._doFindMatchesMultiline(l,r,new g(f.wordSeparators,f.regex),u,C):this._doFindMatchesLineByLine(l,r,f,u,C):[]}static _getMultilineMatchRange(l,a,r,u,C,f){let h,v=0;u?(v=u.findLineFeedCountBeforeOffset(C),h=a+C+v):h=a+C;let w;if(u){const T=u.findLineFeedCountBeforeOffset(C+f.length)-v;w=h+f.length+T}else w=h+f.length;const S=l.getPositionAt(h),L=l.getPositionAt(w);return new E.Range(S.lineNumber,S.column,L.lineNumber,L.column)}static _doFindMatchesMultiline(l,a,r,u,C){const f=l.getOffsetAt(a.getStartPosition()),h=l.getValueInRange(a,1),v=l.getEOL()===`\r +`?new n(h):null,w=[];let S=0,L;for(r.reset(0);L=r.next(h);)if(w[S++]=p(this._getMultilineMatchRange(l,f,h,v,L.index,L[0]),L,u),S>=C)return w;return w}static _doFindMatchesLineByLine(l,a,r,u,C){const f=[];let h=0;if(a.startLineNumber===a.endLineNumber){const w=l.getLineContent(a.startLineNumber).substring(a.startColumn-1,a.endColumn-1);return h=this._findMatchesInLine(r,w,a.startLineNumber,a.startColumn-1,h,f,u,C),f}const v=l.getLineContent(a.startLineNumber).substring(a.startColumn-1);h=this._findMatchesInLine(r,v,a.startLineNumber,a.startColumn-1,h,f,u,C);for(let w=a.startLineNumber+1;w=v))return C;return C}const S=new g(l.wordSeparators,l.regex);let L;S.reset(0);do if(L=S.next(a),L&&(f[C++]=p(new E.Range(r,L.index+1+u,r,L.index+1+L[0].length+u),L,h),C>=v))return C;while(L);return C}static findNextMatch(l,a,r,u){const C=a.parseSearchRequest();if(!C)return null;const f=new g(C.wordSeparators,C.regex);return C.regex.multiline?this._doFindNextMatchMultiline(l,r,f,u):this._doFindNextMatchLineByLine(l,r,f,u)}static _doFindNextMatchMultiline(l,a,r,u){const C=new I.Position(a.lineNumber,1),f=l.getOffsetAt(C),h=l.getLineCount(),v=l.getValueInRange(new E.Range(C.lineNumber,C.column,h,l.getLineMaxColumn(h)),1),w=l.getEOL()===`\r +`?new n(v):null;r.reset(a.column-1);const S=r.next(v);return S?p(this._getMultilineMatchRange(l,f,v,w,S.index,S[0]),S,u):a.lineNumber!==1||a.column!==1?this._doFindNextMatchMultiline(l,new I.Position(1,1),r,u):null}static _doFindNextMatchLineByLine(l,a,r,u){const C=l.getLineCount(),f=a.lineNumber,h=l.getLineContent(f),v=this._findFirstMatchInLine(r,h,f,a.column,u);if(v)return v;for(let w=1;w<=C;w++){const S=(f+w-1)%C,L=l.getLineContent(S+1),D=this._findFirstMatchInLine(r,L,S+1,1,u);if(D)return D}return null}static _findFirstMatchInLine(l,a,r,u,C){l.reset(u-1);const f=l.next(a);return f?p(new E.Range(r,f.index+1,r,f.index+1+f[0].length),f,C):null}static findPreviousMatch(l,a,r,u){const C=a.parseSearchRequest();if(!C)return null;const f=new g(C.wordSeparators,C.regex);return C.regex.multiline?this._doFindPreviousMatchMultiline(l,r,f,u):this._doFindPreviousMatchLineByLine(l,r,f,u)}static _doFindPreviousMatchMultiline(l,a,r,u){const C=this._doFindMatchesMultiline(l,new E.Range(1,1,a.lineNumber,a.column),r,u,10*m);if(C.length>0)return C[C.length-1];const f=l.getLineCount();return a.lineNumber!==f||a.column!==l.getLineMaxColumn(f)?this._doFindPreviousMatchMultiline(l,new I.Position(f,l.getLineMaxColumn(f)),r,u):null}static _doFindPreviousMatchLineByLine(l,a,r,u){const C=l.getLineCount(),f=a.lineNumber,h=l.getLineContent(f).substring(0,a.column-1),v=this._findLastMatchInLine(r,h,f,u);if(v)return v;for(let w=1;w<=C;w++){const S=(C+f-w-1)%C,L=l.getLineContent(S+1),D=this._findLastMatchInLine(r,L,S+1,u);if(D)return D}return null}static _findLastMatchInLine(l,a,r,u){let C=null,f;for(l.reset(0);f=l.next(a);)C=p(new E.Range(r,f.index+1,r,f.index+1+f[0].length),f,u);return C}}e.TextModelSearch=o;function t(c,l,a,r,u){if(r===0)return!0;const C=l.charCodeAt(r-1);if(c.get(C)!==0||C===13||C===10)return!0;if(u>0){const f=l.charCodeAt(r);if(c.get(f)!==0)return!0}return!1}function i(c,l,a,r,u){if(r+u===a)return!0;const C=l.charCodeAt(r+u);if(c.get(C)!==0||C===13||C===10)return!0;if(u>0){const f=l.charCodeAt(r+u-1);if(c.get(f)!==0)return!0}return!1}function s(c,l,a,r,u){return t(c,l,a,r,u)&&i(c,l,a,r,u)}class g{constructor(l,a){this._wordSeparators=l,this._searchRegex=a,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(l){this._searchRegex.lastIndex=l,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(l){const a=l.length;let r;do{if(this._prevMatchStartIndex+this._prevMatchLength===a||(r=this._searchRegex.exec(l),!r))return null;const u=r.index,C=r[0].length;if(u===this._prevMatchStartIndex&&C===this._prevMatchLength){if(C===0){d.getNextCodePoint(l,a,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=u,this._prevMatchLength=C,!this._wordSeparators||s(this._wordSeparators,l,a,u,C))return r}while(r);return null}}e.Searcher=g}),define(ne[324],se([1,0,9,4,40,579,202]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PieceTreeBase=e.StringBuffer=e.Piece=void 0,e.createLineStartsFast=p,e.createLineStarts=n;const m=65535;function _(c){let l;return c[c.length-1]<65536?l=new Uint16Array(c.length):l=new Uint32Array(c.length),l.set(c,0),l}class b{constructor(l,a,r,u,C){this.lineStarts=l,this.cr=a,this.lf=r,this.crlf=u,this.isBasicASCII=C}}function p(c,l=!0){const a=[0];let r=1;for(let u=0,C=c.length;u126)&&(f=!1)}const h=new b(_(c),r,u,C,f);return c.length=0,h}class o{constructor(l,a,r,u,C){this.bufferIndex=l,this.start=a,this.end=r,this.lineFeedCnt=u,this.length=C}}e.Piece=o;class t{constructor(l,a){this.buffer=l,this.lineStarts=a}}e.StringBuffer=t;class i{constructor(l,a){this._pieces=[],this._tree=l,this._BOM=a,this._index=0,l.root!==E.SENTINEL&&l.iterate(l.root,r=>(r!==E.SENTINEL&&this._pieces.push(r.piece),!0))}read(){return this._pieces.length===0?this._index===0?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:this._index===0?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}class s{constructor(l){this._limit=l,this._cache=[]}get(l){for(let a=this._cache.length-1;a>=0;a--){const r=this._cache[a];if(r.nodeStartOffset<=l&&r.nodeStartOffset+r.node.piece.length>=l)return r}return null}get2(l){for(let a=this._cache.length-1;a>=0;a--){const r=this._cache[a];if(r.nodeStartLineNumber&&r.nodeStartLineNumber=l)return r}return null}set(l){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(l)}validate(l){let a=!1;const r=this._cache;for(let u=0;u=l){r[u]=null,a=!0;continue}}if(a){const u=[];for(const C of r)C!==null&&u.push(C);this._cache=u}}}class g{constructor(l,a,r){this.create(l,a,r)}create(l,a,r){this._buffers=[new t("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=E.SENTINEL,this._lineCnt=1,this._length=0,this._EOL=a,this._EOLLength=a.length,this._EOLNormalized=r;let u=null;for(let C=0,f=l.length;C0){l[C].lineStarts||(l[C].lineStarts=p(l[C].buffer));const h=new o(C+1,{line:0,column:0},{line:l[C].lineStarts.length-1,column:l[C].buffer.length-l[C].lineStarts[l[C].lineStarts.length-1]},l[C].lineStarts.length-1,l[C].buffer.length);this._buffers.push(l[C]),u=this.rbInsertRight(u,h)}this._searchCache=new s(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(l){const a=m,r=a-Math.floor(a/3),u=r*2;let C="",f=0;const h=[];if(this.iterate(this.root,v=>{const w=this.getNodeContent(v),S=w.length;if(f<=r||f+S0){const v=C.replace(/\r\n|\r|\n/g,l);h.push(new t(v,p(v)))}this.create(h,l,!0)}getEOL(){return this._EOL}setEOL(l){this._EOL=l,this._EOLLength=this._EOL.length,this.normalizeEOL(l)}createSnapshot(l){return new i(this,l)}getOffsetAt(l,a){let r=0,u=this.root;for(;u!==E.SENTINEL;)if(u.left!==E.SENTINEL&&u.lf_left+1>=l)u=u.left;else if(u.lf_left+u.piece.lineFeedCnt+1>=l){r+=u.size_left;const C=this.getAccumulatedValue(u,l-u.lf_left-2);return r+=C+a-1}else l-=u.lf_left+u.piece.lineFeedCnt,r+=u.size_left+u.piece.length,u=u.right;return r}getPositionAt(l){l=Math.floor(l),l=Math.max(0,l);let a=this.root,r=0;const u=l;for(;a!==E.SENTINEL;)if(a.size_left!==0&&a.size_left>=l)a=a.left;else if(a.size_left+a.piece.length>=l){const C=this.getIndexOf(a,l-a.size_left);if(r+=a.lf_left+C.index,C.index===0){const f=this.getOffsetAt(r+1,1),h=u-f;return new d.Position(r+1,h+1)}return new d.Position(r+1,C.remainder+1)}else if(l-=a.size_left+a.piece.length,r+=a.lf_left+a.piece.lineFeedCnt,a.right===E.SENTINEL){const C=this.getOffsetAt(r+1,1),f=u-l-C;return new d.Position(r+1,f+1)}else a=a.right;return new d.Position(1,1)}getValueInRange(l,a){if(l.startLineNumber===l.endLineNumber&&l.startColumn===l.endColumn)return"";const r=this.nodeAt2(l.startLineNumber,l.startColumn),u=this.nodeAt2(l.endLineNumber,l.endColumn),C=this.getValueInRange2(r,u);return a?a!==this._EOL||!this._EOLNormalized?C.replace(/\r\n|\r|\n/g,a):a===this.getEOL()&&this._EOLNormalized?C:C.replace(/\r\n|\r|\n/g,a):C}getValueInRange2(l,a){if(l.node===a.node){const h=l.node,v=this._buffers[h.piece.bufferIndex].buffer,w=this.offsetInBuffer(h.piece.bufferIndex,h.piece.start);return v.substring(w+l.remainder,w+a.remainder)}let r=l.node;const u=this._buffers[r.piece.bufferIndex].buffer,C=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);let f=u.substring(C+l.remainder,C+r.piece.length);for(r=r.next();r!==E.SENTINEL;){const h=this._buffers[r.piece.bufferIndex].buffer,v=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);if(r===a.node){f+=h.substring(v,v+a.remainder);break}else f+=h.substr(v,r.piece.length);r=r.next()}return f}getLinesContent(){const l=[];let a=0,r="",u=!1;return this.iterate(this.root,C=>{if(C===E.SENTINEL)return!0;const f=C.piece;let h=f.length;if(h===0)return!0;const v=this._buffers[f.bufferIndex].buffer,w=this._buffers[f.bufferIndex].lineStarts,S=f.start.line,L=f.end.line;let D=w[S]+f.start.column;if(u&&(v.charCodeAt(D)===10&&(D++,h--),l[a++]=r,r="",u=!1,h===0))return!0;if(S===L)return!this._EOLNormalized&&v.charCodeAt(D+h-1)===13?(u=!0,r+=v.substr(D,h-1)):r+=v.substr(D,h),!0;r+=this._EOLNormalized?v.substring(D,Math.max(D,w[S+1]-this._EOLLength)):v.substring(D,w[S+1]).replace(/(\r\n|\r|\n)$/,""),l[a++]=r;for(let T=S+1;Tx+M,a.reset(0)):(O=D.buffer,F=x=>x,a.reset(M));do if(P=a.next(O),P){if(F(P.index)>=A)return S;this.positionInBuffer(l,F(P.index)-T,N);const x=this.getLineFeedCnt(l.piece.bufferIndex,C,N),W=N.line===C.line?N.column-C.column+u:N.column+1,V=W+P[0].length;if(L[S++]=(0,y.createFindMatch)(new k.Range(r+x,W,r+x,V),P,v),F(P.index)+P[0].length>=A||S>=w)return S}while(P);return S}findMatchesLineByLine(l,a,r,u){const C=[];let f=0;const h=new y.Searcher(a.wordSeparators,a.regex);let v=this.nodeAt2(l.startLineNumber,l.startColumn);if(v===null)return[];const w=this.nodeAt2(l.endLineNumber,l.endColumn);if(w===null)return[];let S=this.positionInBuffer(v.node,v.remainder);const L=this.positionInBuffer(w.node,w.remainder);if(v.node===w.node)return this.findMatchesInNode(v.node,h,l.startLineNumber,l.startColumn,S,L,a,r,u,f,C),C;let D=l.startLineNumber,T=v.node;for(;T!==w.node;){const A=this.getLineFeedCnt(T.piece.bufferIndex,S,T.piece.end);if(A>=1){const N=this._buffers[T.piece.bufferIndex].lineStarts,O=this.offsetInBuffer(T.piece.bufferIndex,T.piece.start),F=N[S.line+A],x=D===l.startLineNumber?l.startColumn:1;if(f=this.findMatchesInNode(T,h,D,x,S,this.positionInBuffer(T,F-O),a,r,u,f,C),f>=u)return C;D+=A}const P=D===l.startLineNumber?l.startColumn-1:0;if(D===l.endLineNumber){const N=this.getLineContent(D).substring(P,l.endColumn-1);return f=this._findMatchesInLine(a,h,N,l.endLineNumber,P,f,C,r,u),C}if(f=this._findMatchesInLine(a,h,this.getLineContent(D).substr(P),D,P,f,C,r,u),f>=u)return C;D++,v=this.nodeAt2(D,1),T=v.node,S=this.positionInBuffer(v.node,v.remainder)}if(D===l.endLineNumber){const A=D===l.startLineNumber?l.startColumn-1:0,P=this.getLineContent(D).substring(A,l.endColumn-1);return f=this._findMatchesInLine(a,h,P,l.endLineNumber,A,f,C,r,u),C}const M=D===l.startLineNumber?l.startColumn:1;return f=this.findMatchesInNode(w.node,h,D,M,S,L,a,r,u,f,C),C}_findMatchesInLine(l,a,r,u,C,f,h,v,w){const S=l.wordSeparators;if(!v&&l.simpleSearch){const D=l.simpleSearch,T=D.length,M=r.length;let A=-T;for(;(A=r.indexOf(D,A+T))!==-1;)if((!S||(0,y.isValidMatch)(S,r,M,A,T))&&(h[f++]=new I.FindMatch(new k.Range(u,A+1+C,u,A+1+T+C),null),f>=w))return f;return f}let L;a.reset(0);do if(L=a.next(r),L&&(h[f++]=(0,y.createFindMatch)(new k.Range(u,L.index+1+C,u,L.index+1+L[0].length+C),L,v),f>=w))return f;while(L);return f}insert(l,a,r=!1){if(this._EOLNormalized=this._EOLNormalized&&r,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==E.SENTINEL){const{node:u,remainder:C,nodeStartOffset:f}=this.nodeAt(l),h=u.piece,v=h.bufferIndex,w=this.positionInBuffer(u,C);if(u.piece.bufferIndex===0&&h.end.line===this._lastChangeBufferPos.line&&h.end.column===this._lastChangeBufferPos.column&&f+h.length===l&&a.lengthl){const S=[];let L=new o(h.bufferIndex,w,h.end,this.getLineFeedCnt(h.bufferIndex,w,h.end),this.offsetInBuffer(v,h.end)-this.offsetInBuffer(v,w));if(this.shouldCheckCRLF()&&this.endWithCR(a)&&this.nodeCharCodeAt(u,C)===10){const A={line:L.start.line+1,column:0};L=new o(L.bufferIndex,A,L.end,this.getLineFeedCnt(L.bufferIndex,A,L.end),L.length-1),a+=` +`}if(this.shouldCheckCRLF()&&this.startWithLF(a))if(this.nodeCharCodeAt(u,C-1)===13){const A=this.positionInBuffer(u,C-1);this.deleteNodeTail(u,A),a="\r"+a,u.piece.length===0&&S.push(u)}else this.deleteNodeTail(u,w);else this.deleteNodeTail(u,w);const D=this.createNewPieces(a);L.length>0&&this.rbInsertRight(u,L);let T=u;for(let M=0;M=0;f--)C=this.rbInsertLeft(C,u[f]);this.validateCRLFWithPrevNode(C),this.deleteNodes(r)}insertContentToNodeRight(l,a){this.adjustCarriageReturnFromNext(l,a)&&(l+=` +`);const r=this.createNewPieces(l),u=this.rbInsertRight(a,r[0]);let C=u;for(let f=1;f=D)w=L+1;else break;return r?(r.line=L,r.column=v-T,null):{line:L,column:v-T}}getLineFeedCnt(l,a,r){if(r.column===0)return r.line-a.line;const u=this._buffers[l].lineStarts;if(r.line===u.length-1)return r.line-a.line;const C=u[r.line+1],f=u[r.line]+r.column;if(C>f+1)return r.line-a.line;const h=f-1;return this._buffers[l].buffer.charCodeAt(h)===13?r.line-a.line+1:r.line-a.line}offsetInBuffer(l,a){return this._buffers[l].lineStarts[a.line]+a.column}deleteNodes(l){for(let a=0;am){const S=[];for(;l.length>m;){const D=l.charCodeAt(m-1);let T;D===13||D>=55296&&D<=56319?(T=l.substring(0,m-1),l=l.substring(m-1)):(T=l.substring(0,m),l=l.substring(m));const M=p(T);S.push(new o(this._buffers.length,{line:0,column:0},{line:M.length-1,column:T.length-M[M.length-1]},M.length-1,T.length)),this._buffers.push(new t(T,M))}const L=p(l);return S.push(new o(this._buffers.length,{line:0,column:0},{line:L.length-1,column:l.length-L[L.length-1]},L.length-1,l.length)),this._buffers.push(new t(l,L)),S}let a=this._buffers[0].buffer.length;const r=p(l,!1);let u=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===a&&a!==0&&this.startWithLF(l)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},u=this._lastChangeBufferPos;for(let S=0;S=l-1)r=r.left;else if(r.lf_left+r.piece.lineFeedCnt>l-1){const v=this.getAccumulatedValue(r,l-r.lf_left-2),w=this.getAccumulatedValue(r,l-r.lf_left-1),S=this._buffers[r.piece.bufferIndex].buffer,L=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);return f+=r.size_left,this._searchCache.set({node:r,nodeStartOffset:f,nodeStartLineNumber:h-(l-1-r.lf_left)}),S.substring(L+v,L+w-a)}else if(r.lf_left+r.piece.lineFeedCnt===l-1){const v=this.getAccumulatedValue(r,l-r.lf_left-2),w=this._buffers[r.piece.bufferIndex].buffer,S=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);u=w.substring(S+v,S+r.piece.length);break}else l-=r.lf_left+r.piece.lineFeedCnt,f+=r.size_left+r.piece.length,r=r.right}for(r=r.next();r!==E.SENTINEL;){const f=this._buffers[r.piece.bufferIndex].buffer;if(r.piece.lineFeedCnt>0){const h=this.getAccumulatedValue(r,0),v=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);return u+=f.substring(v,v+h-a),u}else{const h=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);u+=f.substr(h,r.piece.length)}r=r.next()}return u}computeBufferMetadata(){let l=this.root,a=1,r=0;for(;l!==E.SENTINEL;)a+=l.lf_left+l.piece.lineFeedCnt,r+=l.size_left+l.piece.length,l=l.right;this._lineCnt=a,this._length=r,this._searchCache.validate(this._length)}getIndexOf(l,a){const r=l.piece,u=this.positionInBuffer(l,a),C=u.line-r.start.line;if(this.offsetInBuffer(r.bufferIndex,r.end)-this.offsetInBuffer(r.bufferIndex,r.start)===a){const f=this.getLineFeedCnt(l.piece.bufferIndex,r.start,u);if(f!==C)return{index:f,remainder:0}}return{index:C,remainder:u.column}}getAccumulatedValue(l,a){if(a<0)return 0;const r=l.piece,u=this._buffers[r.bufferIndex].lineStarts,C=r.start.line+a+1;return C>r.end.line?u[r.end.line]+r.end.column-u[r.start.line]-r.start.column:u[C]-u[r.start.line]-r.start.column}deleteNodeTail(l,a){const r=l.piece,u=r.lineFeedCnt,C=this.offsetInBuffer(r.bufferIndex,r.end),f=a,h=this.offsetInBuffer(r.bufferIndex,f),v=this.getLineFeedCnt(r.bufferIndex,r.start,f),w=v-u,S=h-C,L=r.length+S;l.piece=new o(r.bufferIndex,r.start,f,v,L),(0,E.updateTreeMetadata)(this,l,S,w)}deleteNodeHead(l,a){const r=l.piece,u=r.lineFeedCnt,C=this.offsetInBuffer(r.bufferIndex,r.start),f=a,h=this.getLineFeedCnt(r.bufferIndex,f,r.end),v=this.offsetInBuffer(r.bufferIndex,f),w=h-u,S=C-v,L=r.length+S;l.piece=new o(r.bufferIndex,f,r.end,h,L),(0,E.updateTreeMetadata)(this,l,S,w)}shrinkNode(l,a,r){const u=l.piece,C=u.start,f=u.end,h=u.length,v=u.lineFeedCnt,w=a,S=this.getLineFeedCnt(u.bufferIndex,u.start,w),L=this.offsetInBuffer(u.bufferIndex,a)-this.offsetInBuffer(u.bufferIndex,C);l.piece=new o(u.bufferIndex,u.start,w,S,L),(0,E.updateTreeMetadata)(this,l,L-h,S-v);const D=new o(u.bufferIndex,r,f,this.getLineFeedCnt(u.bufferIndex,r,f),this.offsetInBuffer(u.bufferIndex,f)-this.offsetInBuffer(u.bufferIndex,r)),T=this.rbInsertRight(l,D);this.validateCRLFWithPrevNode(T)}appendToNode(l,a){this.adjustCarriageReturnFromNext(a,l)&&(a+=` +`);const r=this.shouldCheckCRLF()&&this.startWithLF(a)&&this.endWithCR(l),u=this._buffers[0].buffer.length;this._buffers[0].buffer+=a;const C=p(a,!1);for(let T=0;Tl)a=a.left;else if(a.size_left+a.piece.length>=l){u+=a.size_left;const C={node:a,remainder:l-a.size_left,nodeStartOffset:u};return this._searchCache.set(C),C}else l-=a.size_left+a.piece.length,u+=a.size_left+a.piece.length,a=a.right;return null}nodeAt2(l,a){let r=this.root,u=0;for(;r!==E.SENTINEL;)if(r.left!==E.SENTINEL&&r.lf_left>=l-1)r=r.left;else if(r.lf_left+r.piece.lineFeedCnt>l-1){const C=this.getAccumulatedValue(r,l-r.lf_left-2),f=this.getAccumulatedValue(r,l-r.lf_left-1);return u+=r.size_left,{node:r,remainder:Math.min(C+a-1,f),nodeStartOffset:u}}else if(r.lf_left+r.piece.lineFeedCnt===l-1){const C=this.getAccumulatedValue(r,l-r.lf_left-2);if(C+a-1<=r.piece.length)return{node:r,remainder:C+a-1,nodeStartOffset:u};a-=r.piece.length-C;break}else l-=r.lf_left+r.piece.lineFeedCnt,u+=r.size_left+r.piece.length,r=r.right;for(r=r.next();r!==E.SENTINEL;){if(r.piece.lineFeedCnt>0){const C=this.getAccumulatedValue(r,0),f=this.offsetOfNode(r);return{node:r,remainder:Math.min(a-1,C),nodeStartOffset:f}}else if(r.piece.length>=a-1){const C=this.offsetOfNode(r);return{node:r,remainder:a-1,nodeStartOffset:C}}else a-=r.piece.length;r=r.next()}return null}nodeCharCodeAt(l,a){if(l.piece.lineFeedCnt<1)return-1;const r=this._buffers[l.piece.bufferIndex],u=this.offsetInBuffer(l.piece.bufferIndex,l.piece.start)+a;return r.buffer.charCodeAt(u)}offsetOfNode(l){if(!l)return 0;let a=l.size_left;for(;l!==this.root;)l.parent.right===l&&(a+=l.parent.size_left+l.parent.piece.length),l=l.parent;return a}shouldCheckCRLF(){return!(this._EOLNormalized&&this._EOL===` +`)}startWithLF(l){if(typeof l=="string")return l.charCodeAt(0)===10;if(l===E.SENTINEL||l.piece.lineFeedCnt===0)return!1;const a=l.piece,r=this._buffers[a.bufferIndex].lineStarts,u=a.start.line,C=r[u]+a.start.column;return u===r.length-1||r[u+1]>C+1?!1:this._buffers[a.bufferIndex].buffer.charCodeAt(C)===10}endWithCR(l){return typeof l=="string"?l.charCodeAt(l.length-1)===13:l===E.SENTINEL||l.piece.lineFeedCnt===0?!1:this.nodeCharCodeAt(l,l.piece.length-1)===13}validateCRLFWithPrevNode(l){if(this.shouldCheckCRLF()&&this.startWithLF(l)){const a=l.prev();this.endWithCR(a)&&this.fixCRLF(a,l)}}validateCRLFWithNextNode(l){if(this.shouldCheckCRLF()&&this.endWithCR(l)){const a=l.next();this.startWithLF(a)&&this.fixCRLF(l,a)}}fixCRLF(l,a){const r=[],u=this._buffers[l.piece.bufferIndex].lineStarts;let C;l.piece.end.column===0?C={line:l.piece.end.line-1,column:u[l.piece.end.line]-u[l.piece.end.line-1]-1}:C={line:l.piece.end.line,column:l.piece.end.column-1};const f=l.piece.length-1,h=l.piece.lineFeedCnt-1;l.piece=new o(l.piece.bufferIndex,l.piece.start,C,h,f),(0,E.updateTreeMetadata)(this,l,-1,-1),l.piece.length===0&&r.push(l);const v={line:a.piece.start.line+1,column:0},w=a.piece.length-1,S=this.getLineFeedCnt(a.piece.bufferIndex,v,a.piece.end);a.piece=new o(a.piece.bufferIndex,v,a.piece.end,S,w),(0,E.updateTreeMetadata)(this,a,-1,-1),a.piece.length===0&&r.push(a);const L=this.createNewPieces(`\r +`);this.rbInsertRight(l,L[0]);for(let D=0;D0?this.wrappedTextIndentLength:0}getLineLength(n){const o=n>0?this.breakOffsets[n-1]:0;let i=this.breakOffsets[n]-o;return n>0&&(i+=this.wrappedTextIndentLength),i}getMaxOutputOffset(n){return this.getLineLength(n)}translateToInputOffset(n,o){n>0&&(o=Math.max(0,o-this.wrappedTextIndentLength));let i=n===0?o:this.breakOffsets[n-1]+o;if(this.injectionOffsets!==null)for(let s=0;sthis.injectionOffsets[s];s++)i0?this.breakOffsets[s-1]:0,o===0)if(n<=g)i=s-1;else if(n>l)t=s+1;else break;else if(n=l)t=s+1;else break}let c=n-g;return s>0&&(c+=this.wrappedTextIndentLength),new b(s,c)}normalizeOutputPosition(n,o,t){if(this.injectionOffsets!==null){const i=this.outputPositionToOffsetInInputWithInjections(n,o),s=this.normalizeOffsetInInputWithInjectionsAroundInjections(i,t);if(s!==i)return this.offsetInInputWithInjectionsToOutputPosition(s,t)}if(t===0){if(n>0&&o===this.getMinOutputOffset(n))return new b(n-1,this.getMaxOutputOffset(n-1))}else if(t===1){const i=this.getOutputLineCount()-1;if(n0&&(o=Math.max(0,o-this.wrappedTextIndentLength)),(n>0?this.breakOffsets[n-1]:0)+o}normalizeOffsetInInputWithInjectionsAroundInjections(n,o){const t=this.getInjectedTextAtOffset(n);if(!t)return n;if(o===2){if(n===t.offsetInInputWithInjections+t.length&&y(this.injectionOptions[t.injectedTextIndex].cursorStops))return t.offsetInInputWithInjections+t.length;{let i=t.offsetInInputWithInjections;if(m(this.injectionOptions[t.injectedTextIndex].cursorStops))return i;let s=t.injectedTextIndex-1;for(;s>=0&&this.injectionOffsets[s]===this.injectionOffsets[t.injectedTextIndex]&&!(y(this.injectionOptions[s].cursorStops)||(i-=this.injectionOptions[s].content.length,m(this.injectionOptions[s].cursorStops)));)s--;return i}}else if(o===1||o===4){let i=t.offsetInInputWithInjections+t.length,s=t.injectedTextIndex;for(;s+1=0&&this.injectionOffsets[s-1]===this.injectionOffsets[s];)i-=this.injectionOptions[s-1].content.length,s--;return i}(0,d.assertNever)(o)}getInjectedText(n,o){const t=this.outputPositionToOffsetInInputWithInjections(n,o),i=this.getInjectedTextAtOffset(t);return i?{options:this.injectionOptions[i.injectedTextIndex]}:null}getInjectedTextAtOffset(n){const o=this.injectionOffsets,t=this.injectionOptions;if(o!==null){let i=0;for(let s=0;sn)break;if(n<=l)return{injectedTextIndex:s,offsetInInputWithInjections:c,length:g};i+=g}}}}e.ModelLineProjectionData=E;function y(p){return p==null?!0:p===I.InjectedTextCursorStops.Right||p===I.InjectedTextCursorStops.Both}function m(p){return p==null?!0:p===I.InjectedTextCursorStops.Left||p===I.InjectedTextCursorStops.Both}class _{constructor(n){this.options=n}}e.InjectedText=_;class b{constructor(n,o){this.outputLineIndex=n,this.outputOffset=o}toString(){return`${this.outputLineIndex}:${this.outputOffset}`}toPosition(n){return new k.Position(n+this.outputLineIndex,this.outputOffset+1)}}e.OutputPosition=b}),define(ne[326],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorWorkerHost=void 0;class d{static{this.CHANNEL_NAME="editorWorkerHost"}static getChannel(I){return I.getChannel(d.CHANNEL_NAME)}static setChannel(I,E){I.setChannel(d.CHANNEL_NAME,E)}}e.EditorWorkerHost=d}),define(ne[582],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.findSectionHeaders=I;const d=new RegExp("\\bMARK:\\s*(.*)$","d"),k=/^-+|-+$/g;function I(b,p){let n=[];if(p.findRegionSectionHeaders&&p.foldingRules?.markers){const o=E(b,p);n=n.concat(o)}if(p.findMarkSectionHeaders){const o=y(b);n=n.concat(o)}return n}function E(b,p){const n=[],o=b.getLineCount();for(let t=1;t<=o;t++){const i=b.getLineContent(t),s=i.match(p.foldingRules.markers.start);if(s){const g={startLineNumber:t,startColumn:s[0].length+1,endLineNumber:t,endColumn:i.length+1};if(g.endColumn>g.startColumn){const c={range:g,..._(i.substring(s[0].length)),shouldBeInComments:!1};(c.text||c.hasSeparatorLine)&&n.push(c)}}}return n}function y(b){const p=[],n=b.getLineCount();for(let o=1;o<=n;o++){const t=b.getLineContent(o);m(t,o,p)}return p}function m(b,p,n){d.lastIndex=0;const o=d.exec(b);if(o){const t=o.indices[1][0]+1,i=o.indices[1][1]+1,s={startLineNumber:p,startColumn:t,endLineNumber:p,endColumn:i};if(s.endColumn>s.startColumn){const g={range:s,..._(o[1]),shouldBeInComments:!0};(g.text||g.hasSeparatorLine)&&n.push(g)}}}function _(b){b=b.trim();const p=b.startsWith("-");return b=b.replace(k,""),{text:b,hasSeparatorLine:p}}}),define(ne[327],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DraggedTreeItemsIdentifier=e.TreeViewsDnDService=void 0;class d{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(E){if(E&&this._dragOperations.has(E)){const y=this._dragOperations.get(E);return this._dragOperations.delete(E),y}}}e.TreeViewsDnDService=d;class k{constructor(E){this.identifier=E}}e.DraggedTreeItemsIdentifier=k}),define(ne[328],se([1,0,4,202,11,90,147]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UnicodeTextModelHighlighter=void 0;class m{static computeUnicodeHighlights(o,t,i){const s=i?i.startLineNumber:1,g=i?i.endLineNumber:o.getLineCount(),c=new b(t),l=c.getCandidateCodePoints();let a;l==="allNonBasicAscii"?a=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):a=new RegExp(`${_(Array.from(l))}`,"g");const r=new k.Searcher(null,a),u=[];let C=!1,f,h=0,v=0,w=0;e:for(let S=s,L=g;S<=L;S++){const D=o.getLineContent(S),T=D.length;r.reset(0);do if(f=r.next(D),f){let M=f.index,A=f.index+f[0].length;if(M>0){const F=D.charCodeAt(M-1);I.isHighSurrogate(F)&&M--}if(A+1=1e3){C=!0;break e}u.push(new d.Range(S,M+1,S,A+1))}}while(f)}return{ranges:u,hasMore:C,ambiguousCharacterCount:h,invisibleCharacterCount:v,nonBasicAsciiCharacterCount:w}}static computeUnicodeHighlightReason(o,t){const i=new b(t);switch(i.shouldHighlightNonBasicASCII(o,null)){case 0:return null;case 2:return{kind:1};case 3:{const g=o.codePointAt(0),c=i.ambiguousCharacters.getPrimaryConfusable(g),l=I.AmbiguousCharacters.getLocales().filter(a=>!I.AmbiguousCharacters.getInstance(new Set([...t.allowedLocales,a])).isAmbiguous(g));return{kind:0,confusableWith:String.fromCodePoint(c),notAmbiguousInLocales:l}}case 1:return{kind:2}}}}e.UnicodeTextModelHighlighter=m;function _(n,o){return`[${I.escapeRegExpCharacters(n.map(i=>String.fromCodePoint(i)).join(""))}]`}class b{constructor(o){this.options=o,this.allowedCodePoints=new Set(o.allowedCodePoints),this.ambiguousCharacters=I.AmbiguousCharacters.getInstance(new Set(o.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const o=new Set;if(this.options.invisibleCharacters)for(const t of I.InvisibleCharacters.codePoints)p(String.fromCodePoint(t))||o.add(t);if(this.options.ambiguousCharacters)for(const t of this.ambiguousCharacters.getConfusableCodePoints())o.add(t);for(const t of this.allowedCodePoints)o.delete(t);return o}shouldHighlightNonBasicASCII(o,t){const i=o.codePointAt(0);if(this.allowedCodePoints.has(i))return 0;if(this.options.nonBasicASCII)return 1;let s=!1,g=!1;if(t)for(const c of t){const l=c.codePointAt(0),a=I.isBasicASCII(c);s=s||a,!a&&!this.ambiguousCharacters.isAmbiguous(l)&&!I.InvisibleCharacters.isInvisibleCharacter(l)&&(g=!0)}return!s&&g?0:this.options.invisibleCharacters&&!p(o)&&I.InvisibleCharacters.isInvisibleCharacter(i)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(i)?3:0}}function p(n){return n===" "||n===` +`||n===" "}}),define(ne[238],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WrappingIndent=e.TrackedRangeStickiness=e.TextEditorCursorStyle=e.TextEditorCursorBlinkingStyle=e.SymbolTag=e.SymbolKind=e.SignatureHelpTriggerKind=e.ShowLightbulbIconMode=e.SelectionDirection=e.ScrollbarVisibility=e.ScrollType=e.RenderMinimap=e.RenderLineNumbersType=e.PositionAffinity=e.PartialAcceptTriggerKind=e.OverviewRulerLane=e.OverlayWidgetPositionPreference=e.NewSymbolNameTriggerKind=e.NewSymbolNameTag=e.MouseTargetType=e.MinimapSectionHeaderStyle=e.MinimapPosition=e.MarkerTag=e.MarkerSeverity=e.KeyCode=e.InlineEditTriggerKind=e.InlineCompletionTriggerKind=e.InlayHintKind=e.InjectedTextCursorStops=e.IndentAction=e.HoverVerbosityAction=e.GlyphMarginLane=e.EndOfLineSequence=e.EndOfLinePreference=e.EditorOption=e.EditorAutoIndentStrategy=e.DocumentHighlightKind=e.DefaultEndOfLine=e.CursorChangeReason=e.ContentWidgetPositionPreference=e.CompletionTriggerKind=e.CompletionItemTag=e.CompletionItemKind=e.CompletionItemInsertTextRule=e.CodeActionTriggerType=e.AccessibilitySupport=void 0;var d;(function(R){R[R.Unknown=0]="Unknown",R[R.Disabled=1]="Disabled",R[R.Enabled=2]="Enabled"})(d||(e.AccessibilitySupport=d={}));var k;(function(R){R[R.Invoke=1]="Invoke",R[R.Auto=2]="Auto"})(k||(e.CodeActionTriggerType=k={}));var I;(function(R){R[R.None=0]="None",R[R.KeepWhitespace=1]="KeepWhitespace",R[R.InsertAsSnippet=4]="InsertAsSnippet"})(I||(e.CompletionItemInsertTextRule=I={}));var E;(function(R){R[R.Method=0]="Method",R[R.Function=1]="Function",R[R.Constructor=2]="Constructor",R[R.Field=3]="Field",R[R.Variable=4]="Variable",R[R.Class=5]="Class",R[R.Struct=6]="Struct",R[R.Interface=7]="Interface",R[R.Module=8]="Module",R[R.Property=9]="Property",R[R.Event=10]="Event",R[R.Operator=11]="Operator",R[R.Unit=12]="Unit",R[R.Value=13]="Value",R[R.Constant=14]="Constant",R[R.Enum=15]="Enum",R[R.EnumMember=16]="EnumMember",R[R.Keyword=17]="Keyword",R[R.Text=18]="Text",R[R.Color=19]="Color",R[R.File=20]="File",R[R.Reference=21]="Reference",R[R.Customcolor=22]="Customcolor",R[R.Folder=23]="Folder",R[R.TypeParameter=24]="TypeParameter",R[R.User=25]="User",R[R.Issue=26]="Issue",R[R.Snippet=27]="Snippet"})(E||(e.CompletionItemKind=E={}));var y;(function(R){R[R.Deprecated=1]="Deprecated"})(y||(e.CompletionItemTag=y={}));var m;(function(R){R[R.Invoke=0]="Invoke",R[R.TriggerCharacter=1]="TriggerCharacter",R[R.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"})(m||(e.CompletionTriggerKind=m={}));var _;(function(R){R[R.EXACT=0]="EXACT",R[R.ABOVE=1]="ABOVE",R[R.BELOW=2]="BELOW"})(_||(e.ContentWidgetPositionPreference=_={}));var b;(function(R){R[R.NotSet=0]="NotSet",R[R.ContentFlush=1]="ContentFlush",R[R.RecoverFromMarkers=2]="RecoverFromMarkers",R[R.Explicit=3]="Explicit",R[R.Paste=4]="Paste",R[R.Undo=5]="Undo",R[R.Redo=6]="Redo"})(b||(e.CursorChangeReason=b={}));var p;(function(R){R[R.LF=1]="LF",R[R.CRLF=2]="CRLF"})(p||(e.DefaultEndOfLine=p={}));var n;(function(R){R[R.Text=0]="Text",R[R.Read=1]="Read",R[R.Write=2]="Write"})(n||(e.DocumentHighlightKind=n={}));var o;(function(R){R[R.None=0]="None",R[R.Keep=1]="Keep",R[R.Brackets=2]="Brackets",R[R.Advanced=3]="Advanced",R[R.Full=4]="Full"})(o||(e.EditorAutoIndentStrategy=o={}));var t;(function(R){R[R.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",R[R.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",R[R.accessibilitySupport=2]="accessibilitySupport",R[R.accessibilityPageSize=3]="accessibilityPageSize",R[R.ariaLabel=4]="ariaLabel",R[R.ariaRequired=5]="ariaRequired",R[R.autoClosingBrackets=6]="autoClosingBrackets",R[R.autoClosingComments=7]="autoClosingComments",R[R.screenReaderAnnounceInlineSuggestion=8]="screenReaderAnnounceInlineSuggestion",R[R.autoClosingDelete=9]="autoClosingDelete",R[R.autoClosingOvertype=10]="autoClosingOvertype",R[R.autoClosingQuotes=11]="autoClosingQuotes",R[R.autoIndent=12]="autoIndent",R[R.automaticLayout=13]="automaticLayout",R[R.autoSurround=14]="autoSurround",R[R.bracketPairColorization=15]="bracketPairColorization",R[R.guides=16]="guides",R[R.codeLens=17]="codeLens",R[R.codeLensFontFamily=18]="codeLensFontFamily",R[R.codeLensFontSize=19]="codeLensFontSize",R[R.colorDecorators=20]="colorDecorators",R[R.colorDecoratorsLimit=21]="colorDecoratorsLimit",R[R.columnSelection=22]="columnSelection",R[R.comments=23]="comments",R[R.contextmenu=24]="contextmenu",R[R.copyWithSyntaxHighlighting=25]="copyWithSyntaxHighlighting",R[R.cursorBlinking=26]="cursorBlinking",R[R.cursorSmoothCaretAnimation=27]="cursorSmoothCaretAnimation",R[R.cursorStyle=28]="cursorStyle",R[R.cursorSurroundingLines=29]="cursorSurroundingLines",R[R.cursorSurroundingLinesStyle=30]="cursorSurroundingLinesStyle",R[R.cursorWidth=31]="cursorWidth",R[R.disableLayerHinting=32]="disableLayerHinting",R[R.disableMonospaceOptimizations=33]="disableMonospaceOptimizations",R[R.domReadOnly=34]="domReadOnly",R[R.dragAndDrop=35]="dragAndDrop",R[R.dropIntoEditor=36]="dropIntoEditor",R[R.emptySelectionClipboard=37]="emptySelectionClipboard",R[R.experimentalWhitespaceRendering=38]="experimentalWhitespaceRendering",R[R.extraEditorClassName=39]="extraEditorClassName",R[R.fastScrollSensitivity=40]="fastScrollSensitivity",R[R.find=41]="find",R[R.fixedOverflowWidgets=42]="fixedOverflowWidgets",R[R.folding=43]="folding",R[R.foldingStrategy=44]="foldingStrategy",R[R.foldingHighlight=45]="foldingHighlight",R[R.foldingImportsByDefault=46]="foldingImportsByDefault",R[R.foldingMaximumRegions=47]="foldingMaximumRegions",R[R.unfoldOnClickAfterEndOfLine=48]="unfoldOnClickAfterEndOfLine",R[R.fontFamily=49]="fontFamily",R[R.fontInfo=50]="fontInfo",R[R.fontLigatures=51]="fontLigatures",R[R.fontSize=52]="fontSize",R[R.fontWeight=53]="fontWeight",R[R.fontVariations=54]="fontVariations",R[R.formatOnPaste=55]="formatOnPaste",R[R.formatOnType=56]="formatOnType",R[R.glyphMargin=57]="glyphMargin",R[R.gotoLocation=58]="gotoLocation",R[R.hideCursorInOverviewRuler=59]="hideCursorInOverviewRuler",R[R.hover=60]="hover",R[R.inDiffEditor=61]="inDiffEditor",R[R.inlineSuggest=62]="inlineSuggest",R[R.inlineEdit=63]="inlineEdit",R[R.letterSpacing=64]="letterSpacing",R[R.lightbulb=65]="lightbulb",R[R.lineDecorationsWidth=66]="lineDecorationsWidth",R[R.lineHeight=67]="lineHeight",R[R.lineNumbers=68]="lineNumbers",R[R.lineNumbersMinChars=69]="lineNumbersMinChars",R[R.linkedEditing=70]="linkedEditing",R[R.links=71]="links",R[R.matchBrackets=72]="matchBrackets",R[R.minimap=73]="minimap",R[R.mouseStyle=74]="mouseStyle",R[R.mouseWheelScrollSensitivity=75]="mouseWheelScrollSensitivity",R[R.mouseWheelZoom=76]="mouseWheelZoom",R[R.multiCursorMergeOverlapping=77]="multiCursorMergeOverlapping",R[R.multiCursorModifier=78]="multiCursorModifier",R[R.multiCursorPaste=79]="multiCursorPaste",R[R.multiCursorLimit=80]="multiCursorLimit",R[R.occurrencesHighlight=81]="occurrencesHighlight",R[R.overviewRulerBorder=82]="overviewRulerBorder",R[R.overviewRulerLanes=83]="overviewRulerLanes",R[R.padding=84]="padding",R[R.pasteAs=85]="pasteAs",R[R.parameterHints=86]="parameterHints",R[R.peekWidgetDefaultFocus=87]="peekWidgetDefaultFocus",R[R.placeholder=88]="placeholder",R[R.definitionLinkOpensInPeek=89]="definitionLinkOpensInPeek",R[R.quickSuggestions=90]="quickSuggestions",R[R.quickSuggestionsDelay=91]="quickSuggestionsDelay",R[R.readOnly=92]="readOnly",R[R.readOnlyMessage=93]="readOnlyMessage",R[R.renameOnType=94]="renameOnType",R[R.renderControlCharacters=95]="renderControlCharacters",R[R.renderFinalNewline=96]="renderFinalNewline",R[R.renderLineHighlight=97]="renderLineHighlight",R[R.renderLineHighlightOnlyWhenFocus=98]="renderLineHighlightOnlyWhenFocus",R[R.renderValidationDecorations=99]="renderValidationDecorations",R[R.renderWhitespace=100]="renderWhitespace",R[R.revealHorizontalRightPadding=101]="revealHorizontalRightPadding",R[R.roundedSelection=102]="roundedSelection",R[R.rulers=103]="rulers",R[R.scrollbar=104]="scrollbar",R[R.scrollBeyondLastColumn=105]="scrollBeyondLastColumn",R[R.scrollBeyondLastLine=106]="scrollBeyondLastLine",R[R.scrollPredominantAxis=107]="scrollPredominantAxis",R[R.selectionClipboard=108]="selectionClipboard",R[R.selectionHighlight=109]="selectionHighlight",R[R.selectOnLineNumbers=110]="selectOnLineNumbers",R[R.showFoldingControls=111]="showFoldingControls",R[R.showUnused=112]="showUnused",R[R.snippetSuggestions=113]="snippetSuggestions",R[R.smartSelect=114]="smartSelect",R[R.smoothScrolling=115]="smoothScrolling",R[R.stickyScroll=116]="stickyScroll",R[R.stickyTabStops=117]="stickyTabStops",R[R.stopRenderingLineAfter=118]="stopRenderingLineAfter",R[R.suggest=119]="suggest",R[R.suggestFontSize=120]="suggestFontSize",R[R.suggestLineHeight=121]="suggestLineHeight",R[R.suggestOnTriggerCharacters=122]="suggestOnTriggerCharacters",R[R.suggestSelection=123]="suggestSelection",R[R.tabCompletion=124]="tabCompletion",R[R.tabIndex=125]="tabIndex",R[R.unicodeHighlighting=126]="unicodeHighlighting",R[R.unusualLineTerminators=127]="unusualLineTerminators",R[R.useShadowDOM=128]="useShadowDOM",R[R.useTabStops=129]="useTabStops",R[R.wordBreak=130]="wordBreak",R[R.wordSegmenterLocales=131]="wordSegmenterLocales",R[R.wordSeparators=132]="wordSeparators",R[R.wordWrap=133]="wordWrap",R[R.wordWrapBreakAfterCharacters=134]="wordWrapBreakAfterCharacters",R[R.wordWrapBreakBeforeCharacters=135]="wordWrapBreakBeforeCharacters",R[R.wordWrapColumn=136]="wordWrapColumn",R[R.wordWrapOverride1=137]="wordWrapOverride1",R[R.wordWrapOverride2=138]="wordWrapOverride2",R[R.wrappingIndent=139]="wrappingIndent",R[R.wrappingStrategy=140]="wrappingStrategy",R[R.showDeprecated=141]="showDeprecated",R[R.inlayHints=142]="inlayHints",R[R.editorClassName=143]="editorClassName",R[R.pixelRatio=144]="pixelRatio",R[R.tabFocusMode=145]="tabFocusMode",R[R.layoutInfo=146]="layoutInfo",R[R.wrappingInfo=147]="wrappingInfo",R[R.defaultColorDecorators=148]="defaultColorDecorators",R[R.colorDecoratorsActivatedOn=149]="colorDecoratorsActivatedOn",R[R.inlineCompletionsAccessibilityVerbose=150]="inlineCompletionsAccessibilityVerbose"})(t||(e.EditorOption=t={}));var i;(function(R){R[R.TextDefined=0]="TextDefined",R[R.LF=1]="LF",R[R.CRLF=2]="CRLF"})(i||(e.EndOfLinePreference=i={}));var s;(function(R){R[R.LF=0]="LF",R[R.CRLF=1]="CRLF"})(s||(e.EndOfLineSequence=s={}));var g;(function(R){R[R.Left=1]="Left",R[R.Center=2]="Center",R[R.Right=3]="Right"})(g||(e.GlyphMarginLane=g={}));var c;(function(R){R[R.Increase=0]="Increase",R[R.Decrease=1]="Decrease"})(c||(e.HoverVerbosityAction=c={}));var l;(function(R){R[R.None=0]="None",R[R.Indent=1]="Indent",R[R.IndentOutdent=2]="IndentOutdent",R[R.Outdent=3]="Outdent"})(l||(e.IndentAction=l={}));var a;(function(R){R[R.Both=0]="Both",R[R.Right=1]="Right",R[R.Left=2]="Left",R[R.None=3]="None"})(a||(e.InjectedTextCursorStops=a={}));var r;(function(R){R[R.Type=1]="Type",R[R.Parameter=2]="Parameter"})(r||(e.InlayHintKind=r={}));var u;(function(R){R[R.Automatic=0]="Automatic",R[R.Explicit=1]="Explicit"})(u||(e.InlineCompletionTriggerKind=u={}));var C;(function(R){R[R.Invoke=0]="Invoke",R[R.Automatic=1]="Automatic"})(C||(e.InlineEditTriggerKind=C={}));var f;(function(R){R[R.DependsOnKbLayout=-1]="DependsOnKbLayout",R[R.Unknown=0]="Unknown",R[R.Backspace=1]="Backspace",R[R.Tab=2]="Tab",R[R.Enter=3]="Enter",R[R.Shift=4]="Shift",R[R.Ctrl=5]="Ctrl",R[R.Alt=6]="Alt",R[R.PauseBreak=7]="PauseBreak",R[R.CapsLock=8]="CapsLock",R[R.Escape=9]="Escape",R[R.Space=10]="Space",R[R.PageUp=11]="PageUp",R[R.PageDown=12]="PageDown",R[R.End=13]="End",R[R.Home=14]="Home",R[R.LeftArrow=15]="LeftArrow",R[R.UpArrow=16]="UpArrow",R[R.RightArrow=17]="RightArrow",R[R.DownArrow=18]="DownArrow",R[R.Insert=19]="Insert",R[R.Delete=20]="Delete",R[R.Digit0=21]="Digit0",R[R.Digit1=22]="Digit1",R[R.Digit2=23]="Digit2",R[R.Digit3=24]="Digit3",R[R.Digit4=25]="Digit4",R[R.Digit5=26]="Digit5",R[R.Digit6=27]="Digit6",R[R.Digit7=28]="Digit7",R[R.Digit8=29]="Digit8",R[R.Digit9=30]="Digit9",R[R.KeyA=31]="KeyA",R[R.KeyB=32]="KeyB",R[R.KeyC=33]="KeyC",R[R.KeyD=34]="KeyD",R[R.KeyE=35]="KeyE",R[R.KeyF=36]="KeyF",R[R.KeyG=37]="KeyG",R[R.KeyH=38]="KeyH",R[R.KeyI=39]="KeyI",R[R.KeyJ=40]="KeyJ",R[R.KeyK=41]="KeyK",R[R.KeyL=42]="KeyL",R[R.KeyM=43]="KeyM",R[R.KeyN=44]="KeyN",R[R.KeyO=45]="KeyO",R[R.KeyP=46]="KeyP",R[R.KeyQ=47]="KeyQ",R[R.KeyR=48]="KeyR",R[R.KeyS=49]="KeyS",R[R.KeyT=50]="KeyT",R[R.KeyU=51]="KeyU",R[R.KeyV=52]="KeyV",R[R.KeyW=53]="KeyW",R[R.KeyX=54]="KeyX",R[R.KeyY=55]="KeyY",R[R.KeyZ=56]="KeyZ",R[R.Meta=57]="Meta",R[R.ContextMenu=58]="ContextMenu",R[R.F1=59]="F1",R[R.F2=60]="F2",R[R.F3=61]="F3",R[R.F4=62]="F4",R[R.F5=63]="F5",R[R.F6=64]="F6",R[R.F7=65]="F7",R[R.F8=66]="F8",R[R.F9=67]="F9",R[R.F10=68]="F10",R[R.F11=69]="F11",R[R.F12=70]="F12",R[R.F13=71]="F13",R[R.F14=72]="F14",R[R.F15=73]="F15",R[R.F16=74]="F16",R[R.F17=75]="F17",R[R.F18=76]="F18",R[R.F19=77]="F19",R[R.F20=78]="F20",R[R.F21=79]="F21",R[R.F22=80]="F22",R[R.F23=81]="F23",R[R.F24=82]="F24",R[R.NumLock=83]="NumLock",R[R.ScrollLock=84]="ScrollLock",R[R.Semicolon=85]="Semicolon",R[R.Equal=86]="Equal",R[R.Comma=87]="Comma",R[R.Minus=88]="Minus",R[R.Period=89]="Period",R[R.Slash=90]="Slash",R[R.Backquote=91]="Backquote",R[R.BracketLeft=92]="BracketLeft",R[R.Backslash=93]="Backslash",R[R.BracketRight=94]="BracketRight",R[R.Quote=95]="Quote",R[R.OEM_8=96]="OEM_8",R[R.IntlBackslash=97]="IntlBackslash",R[R.Numpad0=98]="Numpad0",R[R.Numpad1=99]="Numpad1",R[R.Numpad2=100]="Numpad2",R[R.Numpad3=101]="Numpad3",R[R.Numpad4=102]="Numpad4",R[R.Numpad5=103]="Numpad5",R[R.Numpad6=104]="Numpad6",R[R.Numpad7=105]="Numpad7",R[R.Numpad8=106]="Numpad8",R[R.Numpad9=107]="Numpad9",R[R.NumpadMultiply=108]="NumpadMultiply",R[R.NumpadAdd=109]="NumpadAdd",R[R.NUMPAD_SEPARATOR=110]="NUMPAD_SEPARATOR",R[R.NumpadSubtract=111]="NumpadSubtract",R[R.NumpadDecimal=112]="NumpadDecimal",R[R.NumpadDivide=113]="NumpadDivide",R[R.KEY_IN_COMPOSITION=114]="KEY_IN_COMPOSITION",R[R.ABNT_C1=115]="ABNT_C1",R[R.ABNT_C2=116]="ABNT_C2",R[R.AudioVolumeMute=117]="AudioVolumeMute",R[R.AudioVolumeUp=118]="AudioVolumeUp",R[R.AudioVolumeDown=119]="AudioVolumeDown",R[R.BrowserSearch=120]="BrowserSearch",R[R.BrowserHome=121]="BrowserHome",R[R.BrowserBack=122]="BrowserBack",R[R.BrowserForward=123]="BrowserForward",R[R.MediaTrackNext=124]="MediaTrackNext",R[R.MediaTrackPrevious=125]="MediaTrackPrevious",R[R.MediaStop=126]="MediaStop",R[R.MediaPlayPause=127]="MediaPlayPause",R[R.LaunchMediaPlayer=128]="LaunchMediaPlayer",R[R.LaunchMail=129]="LaunchMail",R[R.LaunchApp2=130]="LaunchApp2",R[R.Clear=131]="Clear",R[R.MAX_VALUE=132]="MAX_VALUE"})(f||(e.KeyCode=f={}));var h;(function(R){R[R.Hint=1]="Hint",R[R.Info=2]="Info",R[R.Warning=4]="Warning",R[R.Error=8]="Error"})(h||(e.MarkerSeverity=h={}));var v;(function(R){R[R.Unnecessary=1]="Unnecessary",R[R.Deprecated=2]="Deprecated"})(v||(e.MarkerTag=v={}));var w;(function(R){R[R.Inline=1]="Inline",R[R.Gutter=2]="Gutter"})(w||(e.MinimapPosition=w={}));var S;(function(R){R[R.Normal=1]="Normal",R[R.Underlined=2]="Underlined"})(S||(e.MinimapSectionHeaderStyle=S={}));var L;(function(R){R[R.UNKNOWN=0]="UNKNOWN",R[R.TEXTAREA=1]="TEXTAREA",R[R.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",R[R.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",R[R.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",R[R.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",R[R.CONTENT_TEXT=6]="CONTENT_TEXT",R[R.CONTENT_EMPTY=7]="CONTENT_EMPTY",R[R.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",R[R.CONTENT_WIDGET=9]="CONTENT_WIDGET",R[R.OVERVIEW_RULER=10]="OVERVIEW_RULER",R[R.SCROLLBAR=11]="SCROLLBAR",R[R.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",R[R.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"})(L||(e.MouseTargetType=L={}));var D;(function(R){R[R.AIGenerated=1]="AIGenerated"})(D||(e.NewSymbolNameTag=D={}));var T;(function(R){R[R.Invoke=0]="Invoke",R[R.Automatic=1]="Automatic"})(T||(e.NewSymbolNameTriggerKind=T={}));var M;(function(R){R[R.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",R[R.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",R[R.TOP_CENTER=2]="TOP_CENTER"})(M||(e.OverlayWidgetPositionPreference=M={}));var A;(function(R){R[R.Left=1]="Left",R[R.Center=2]="Center",R[R.Right=4]="Right",R[R.Full=7]="Full"})(A||(e.OverviewRulerLane=A={}));var P;(function(R){R[R.Word=0]="Word",R[R.Line=1]="Line",R[R.Suggest=2]="Suggest"})(P||(e.PartialAcceptTriggerKind=P={}));var N;(function(R){R[R.Left=0]="Left",R[R.Right=1]="Right",R[R.None=2]="None",R[R.LeftOfInjectedText=3]="LeftOfInjectedText",R[R.RightOfInjectedText=4]="RightOfInjectedText"})(N||(e.PositionAffinity=N={}));var O;(function(R){R[R.Off=0]="Off",R[R.On=1]="On",R[R.Relative=2]="Relative",R[R.Interval=3]="Interval",R[R.Custom=4]="Custom"})(O||(e.RenderLineNumbersType=O={}));var F;(function(R){R[R.None=0]="None",R[R.Text=1]="Text",R[R.Blocks=2]="Blocks"})(F||(e.RenderMinimap=F={}));var x;(function(R){R[R.Smooth=0]="Smooth",R[R.Immediate=1]="Immediate"})(x||(e.ScrollType=x={}));var W;(function(R){R[R.Auto=1]="Auto",R[R.Hidden=2]="Hidden",R[R.Visible=3]="Visible"})(W||(e.ScrollbarVisibility=W={}));var V;(function(R){R[R.LTR=0]="LTR",R[R.RTL=1]="RTL"})(V||(e.SelectionDirection=V={}));var q;(function(R){R.Off="off",R.OnCode="onCode",R.On="on"})(q||(e.ShowLightbulbIconMode=q={}));var H;(function(R){R[R.Invoke=1]="Invoke",R[R.TriggerCharacter=2]="TriggerCharacter",R[R.ContentChange=3]="ContentChange"})(H||(e.SignatureHelpTriggerKind=H={}));var z;(function(R){R[R.File=0]="File",R[R.Module=1]="Module",R[R.Namespace=2]="Namespace",R[R.Package=3]="Package",R[R.Class=4]="Class",R[R.Method=5]="Method",R[R.Property=6]="Property",R[R.Field=7]="Field",R[R.Constructor=8]="Constructor",R[R.Enum=9]="Enum",R[R.Interface=10]="Interface",R[R.Function=11]="Function",R[R.Variable=12]="Variable",R[R.Constant=13]="Constant",R[R.String=14]="String",R[R.Number=15]="Number",R[R.Boolean=16]="Boolean",R[R.Array=17]="Array",R[R.Object=18]="Object",R[R.Key=19]="Key",R[R.Null=20]="Null",R[R.EnumMember=21]="EnumMember",R[R.Struct=22]="Struct",R[R.Event=23]="Event",R[R.Operator=24]="Operator",R[R.TypeParameter=25]="TypeParameter"})(z||(e.SymbolKind=z={}));var U;(function(R){R[R.Deprecated=1]="Deprecated"})(U||(e.SymbolTag=U={}));var j;(function(R){R[R.Hidden=0]="Hidden",R[R.Blink=1]="Blink",R[R.Smooth=2]="Smooth",R[R.Phase=3]="Phase",R[R.Expand=4]="Expand",R[R.Solid=5]="Solid"})(j||(e.TextEditorCursorBlinkingStyle=j={}));var Y;(function(R){R[R.Line=1]="Line",R[R.Block=2]="Block",R[R.Underline=3]="Underline",R[R.LineThin=4]="LineThin",R[R.BlockOutline=5]="BlockOutline",R[R.UnderlineThin=6]="UnderlineThin"})(Y||(e.TextEditorCursorStyle=Y={}));var G;(function(R){R[R.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",R[R.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",R[R.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",R[R.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"})(G||(e.TrackedRangeStickiness=G={}));var K;(function(R){R[R.None=0]="None",R[R.Same=1]="Same",R[R.Indent=2]="Indent",R[R.DeepIndent=3]="DeepIndent"})(K||(e.WrappingIndent=K={}))}),define(ne[583],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketPairWithMinIndentationInfo=e.BracketPairInfo=e.BracketInfo=void 0;class d{constructor(y,m,_,b){this.range=y,this.nestingLevel=m,this.nestingLevelOfEqualBracketType=_,this.isInvalid=b}}e.BracketInfo=d;class k{constructor(y,m,_,b,p,n){this.range=y,this.openingBracketRange=m,this.closingBracketRange=_,this.nestingLevel=b,this.nestingLevelOfEqualBracketType=p,this.bracketPairNode=n}get openingBracketInfo(){return this.bracketPairNode.openingBracket.bracketInfo}}e.BracketPairInfo=k;class I extends k{constructor(y,m,_,b,p,n,o){super(y,m,_,b,p,n),this.minVisibleColumnIndentation=o}}e.BracketPairWithMinIndentationInfo=I}),define(ne[584],se([1,0,6,2,583,200,321,106,320,149,236,13,319]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketPairsTree=void 0;class t extends k.Disposable{didLanguageChange(r){return this.brackets.didLanguageChange(r)}constructor(r,u){if(super(),this.textModel=r,this.getLanguageConfiguration=u,this.didChangeEmitter=new d.Emitter,this.denseKeyProvider=new b.DenseKeyProvider,this.brackets=new y.LanguageAgnosticBracketTokens(this.denseKeyProvider,this.getLanguageConfiguration),this.onDidChange=this.didChangeEmitter.event,this.queuedTextEditsForInitialAstWithoutTokens=[],this.queuedTextEdits=[],r.tokenization.hasTokens)r.tokenization.backgroundTokenizationState===2?(this.initialAstWithoutTokens=void 0,this.astWithTokens=this.parseDocumentFromTextBuffer([],void 0,!1)):(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer([],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens);else{const C=this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()),f=new p.FastTokenizer(this.textModel.getValue(),C);this.initialAstWithoutTokens=(0,_.parseDocument)(f,[],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens}}handleDidChangeBackgroundTokenizationState(){if(this.textModel.tokenization.backgroundTokenizationState===2){const r=this.initialAstWithoutTokens===void 0;this.initialAstWithoutTokens=void 0,r||this.didChangeEmitter.fire()}}handleDidChangeTokens({ranges:r}){const u=r.map(C=>new E.TextEditInfo((0,m.toLength)(C.fromLineNumber-1,0),(0,m.toLength)(C.toLineNumber,0),(0,m.toLength)(C.toLineNumber-C.fromLineNumber+1,0)));this.handleEdits(u,!0),this.initialAstWithoutTokens||this.didChangeEmitter.fire()}handleContentChanged(r){const u=E.TextEditInfo.fromModelContentChanges(r.changes);this.handleEdits(u,!1)}handleEdits(r,u){const C=(0,o.combineTextEditInfos)(this.queuedTextEdits,r);this.queuedTextEdits=C,this.initialAstWithoutTokens&&!u&&(this.queuedTextEditsForInitialAstWithoutTokens=(0,o.combineTextEditInfos)(this.queuedTextEditsForInitialAstWithoutTokens,r))}flushQueue(){this.queuedTextEdits.length>0&&(this.astWithTokens=this.parseDocumentFromTextBuffer(this.queuedTextEdits,this.astWithTokens,!1),this.queuedTextEdits=[]),this.queuedTextEditsForInitialAstWithoutTokens.length>0&&(this.initialAstWithoutTokens&&(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer(this.queuedTextEditsForInitialAstWithoutTokens,this.initialAstWithoutTokens,!1)),this.queuedTextEditsForInitialAstWithoutTokens=[])}parseDocumentFromTextBuffer(r,u,C){const h=u,v=new p.TextBufferTokenizer(this.textModel,this.brackets);return(0,_.parseDocument)(v,r,h,C)}getBracketsInRange(r,u){this.flushQueue();const C=(0,m.toLength)(r.startLineNumber-1,r.startColumn-1),f=(0,m.toLength)(r.endLineNumber-1,r.endColumn-1);return new n.CallbackIterable(h=>{const v=this.initialAstWithoutTokens||this.astWithTokens;g(v,m.lengthZero,v.length,C,f,h,0,0,new Map,u)})}getBracketPairsInRange(r,u){this.flushQueue();const C=(0,m.positionToLength)(r.getStartPosition()),f=(0,m.positionToLength)(r.getEndPosition());return new n.CallbackIterable(h=>{const v=this.initialAstWithoutTokens||this.astWithTokens,w=new c(h,u,this.textModel);l(v,m.lengthZero,v.length,C,f,w,0,new Map)})}getFirstBracketAfter(r){this.flushQueue();const u=this.initialAstWithoutTokens||this.astWithTokens;return s(u,m.lengthZero,u.length,(0,m.positionToLength)(r))}getFirstBracketBefore(r){this.flushQueue();const u=this.initialAstWithoutTokens||this.astWithTokens;return i(u,m.lengthZero,u.length,(0,m.positionToLength)(r))}}e.BracketPairsTree=t;function i(a,r,u,C){if(a.kind===4||a.kind===2){const f=[];for(const h of a.children)u=(0,m.lengthAdd)(r,h.length),f.push({nodeOffsetStart:r,nodeOffsetEnd:u}),r=u;for(let h=f.length-1;h>=0;h--){const{nodeOffsetStart:v,nodeOffsetEnd:w}=f[h];if((0,m.lengthLessThan)(v,C)){const S=i(a.children[h],v,w,C);if(S)return S}}return null}else{if(a.kind===3)return null;if(a.kind===1){const f=(0,m.lengthsToRange)(r,u);return{bracketInfo:a.bracketInfo,range:f}}}return null}function s(a,r,u,C){if(a.kind===4||a.kind===2){for(const f of a.children){if(u=(0,m.lengthAdd)(r,f.length),(0,m.lengthLessThan)(C,u)){const h=s(f,r,u,C);if(h)return h}r=u}return null}else{if(a.kind===3)return null;if(a.kind===1){const f=(0,m.lengthsToRange)(r,u);return{bracketInfo:a.bracketInfo,range:f}}}return null}function g(a,r,u,C,f,h,v,w,S,L,D=!1){if(v>200)return!0;e:for(;;)switch(a.kind){case 4:{const T=a.childrenLength;for(let M=0;M200)return!0;let S=!0;if(a.kind===2){let L=0;if(w){let M=w.get(a.openingBracket.text);M===void 0&&(M=0),L=M,M++,w.set(a.openingBracket.text,M)}const D=(0,m.lengthAdd)(r,a.openingBracket.length);let T=-1;if(h.includeMinIndentation&&(T=a.computeMinIndentation(r,h.textModel)),S=h.push(new I.BracketPairWithMinIndentationInfo((0,m.lengthsToRange)(r,u),(0,m.lengthsToRange)(r,D),a.closingBracket?(0,m.lengthsToRange)((0,m.lengthAdd)(D,a.child?.length||m.lengthZero),u):void 0,v,L,a,T)),r=D,S&&a.child){const M=a.child;if(u=(0,m.lengthAdd)(r,M.length),(0,m.lengthLessThanEqual)(r,f)&&(0,m.lengthGreaterThanEqual)(u,C)&&(S=l(M,r,u,C,f,h,v+1,w),!S))return!1}w?.set(a.openingBracket.text,L)}else{let L=r;for(const D of a.children){const T=L;if(L=(0,m.lengthAdd)(L,D.length),(0,m.lengthLessThanEqual)(T,f)&&(0,m.lengthLessThanEqual)(C,L)&&(S=l(D,T,L,C,f,h,v,w),!S))return!1}}return S}}),define(ne[132],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InternalModelContentChangeEvent=e.ModelInjectedTextChangedEvent=e.ModelRawContentChangedEvent=e.ModelRawEOLChanged=e.ModelRawLinesInserted=e.ModelRawLinesDeleted=e.ModelRawLineChanged=e.LineInjectedText=e.ModelRawFlush=void 0;class d{constructor(){this.changeType=1}}e.ModelRawFlush=d;class k{static applyInjectedText(o,t){if(!t||t.length===0)return o;let i="",s=0;for(const g of t)i+=o.substring(s,g.column-1),s=g.column-1,i+=g.options.content;return i+=o.substring(s),i}static fromDecorations(o){const t=[];for(const i of o)i.options.before&&i.options.before.content.length>0&&t.push(new k(i.ownerId,i.range.startLineNumber,i.range.startColumn,i.options.before,0)),i.options.after&&i.options.after.content.length>0&&t.push(new k(i.ownerId,i.range.endLineNumber,i.range.endColumn,i.options.after,1));return t.sort((i,s)=>i.lineNumber===s.lineNumber?i.column===s.column?i.order-s.order:i.column-s.column:i.lineNumber-s.lineNumber),t}constructor(o,t,i,s,g){this.ownerId=o,this.lineNumber=t,this.column=i,this.options=s,this.order=g}}e.LineInjectedText=k;class I{constructor(o,t,i){this.changeType=2,this.lineNumber=o,this.detail=t,this.injectedText=i}}e.ModelRawLineChanged=I;class E{constructor(o,t){this.changeType=3,this.fromLineNumber=o,this.toLineNumber=t}}e.ModelRawLinesDeleted=E;class y{constructor(o,t,i,s){this.changeType=4,this.injectedTexts=s,this.fromLineNumber=o,this.toLineNumber=t,this.detail=i}}e.ModelRawLinesInserted=y;class m{constructor(){this.changeType=5}}e.ModelRawEOLChanged=m;class _{constructor(o,t,i,s){this.changes=o,this.versionId=t,this.isUndoing=i,this.isRedoing=s,this.resultingSelection=null}containsEvent(o){for(let t=0,i=this.changes.length;tg)throw new b.BugIndicatingError("Illegal value for lineNumber");const c=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,l=!!(c&&c.offSide);let a=-2,r=-1,u=-2,C=-1;const f=O=>{if(a!==-1&&(a===-2||a>O-1)){a=-1,r=-1;for(let F=O-2;F>=0;F--){const x=this._computeIndentLevel(F);if(x>=0){a=F,r=x;break}}}if(u===-2){u=-1,C=-1;for(let F=O;F=0){u=F,C=x;break}}}};let h=-2,v=-1,w=-2,S=-1;const L=O=>{if(h===-2){h=-1,v=-1;for(let F=O-2;F>=0;F--){const x=this._computeIndentLevel(F);if(x>=0){h=F,v=x;break}}}if(w!==-1&&(w===-2||w=0){w=F,S=x;break}}}};let D=0,T=!0,M=0,A=!0,P=0,N=0;for(let O=0;T||A;O++){const F=t-O,x=t+O;O>1&&(F<1||F1&&(x>g||x>s)&&(A=!1),O>5e4&&(T=!1,A=!1);let W=-1;if(T&&F>=1){const q=this._computeIndentLevel(F-1);q>=0?(u=F-1,C=q,W=Math.ceil(q/this.textModel.getOptions().indentSize)):(f(F),W=this._getIndentLevelForWhitespaceLine(l,r,C))}let V=-1;if(A&&x<=g){const q=this._computeIndentLevel(x-1);q>=0?(h=x-1,v=q,V=Math.ceil(q/this.textModel.getOptions().indentSize)):(L(x),V=this._getIndentLevelForWhitespaceLine(l,v,S))}if(O===0){N=W;continue}if(O===1){if(x<=g&&V>=0&&N+1===V){T=!1,D=x,M=x,P=V;continue}if(F>=1&&W>=0&&W-1===N){A=!1,D=F,M=F,P=W;continue}if(D=t,M=t,P=N,P===0)return{startLineNumber:D,endLineNumber:M,indent:P}}T&&(W>=P?D=F:T=!1),A&&(V>=P?M=x:A=!1)}return{startLineNumber:D,endLineNumber:M,indent:P}}getLinesBracketGuides(t,i,s,g){const c=[];for(let f=t;f<=i;f++)c.push([]);const l=!0,a=this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new E.Range(t,1,i,this.textModel.getLineMaxColumn(i))).toArray();let r;if(s&&a.length>0){const f=(t<=s.lineNumber&&s.lineNumber<=i?a:this.textModel.bracketPairs.getBracketPairsInRange(E.Range.fromPositions(s)).toArray()).filter(h=>E.Range.strictContainsPosition(h.range,s));r=(0,d.findLast)(f,h=>l||h.range.startLineNumber!==h.range.endLineNumber)?.range}const u=this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType,C=new n;for(const f of a){if(!f.closingBracketRange)continue;const h=r&&f.range.equalsRange(r);if(!h&&!g.includeInactive)continue;const v=C.getInlineClassName(f.nestingLevel,f.nestingLevelOfEqualBracketType,u)+(g.highlightActive&&h?" "+C.activeClassName:""),w=f.openingBracketRange.getStartPosition(),S=f.closingBracketRange.getStartPosition(),L=g.horizontalGuides===_.HorizontalGuidesState.Enabled||g.horizontalGuides===_.HorizontalGuidesState.EnabledForActive&&h;if(f.range.startLineNumber===f.range.endLineNumber){l&&L&&c[f.range.startLineNumber-t].push(new _.IndentGuide(-1,f.openingBracketRange.getEndPosition().column,v,new _.IndentGuideHorizontalLine(!1,S.column),-1,-1));continue}const D=this.getVisibleColumnFromPosition(S),T=this.getVisibleColumnFromPosition(f.openingBracketRange.getStartPosition()),M=Math.min(T,D,f.minVisibleColumnIndentation+1);let A=!1;k.firstNonWhitespaceIndex(this.textModel.getLineContent(f.closingBracketRange.startLineNumber))=t&&T>M&&c[w.lineNumber-t].push(new _.IndentGuide(M,-1,v,new _.IndentGuideHorizontalLine(!1,w.column),-1,-1)),S.lineNumber<=i&&D>M&&c[S.lineNumber-t].push(new _.IndentGuide(M,-1,v,new _.IndentGuideHorizontalLine(!A,S.column),-1,-1)))}for(const f of c)f.sort((h,v)=>h.visibleColumn-v.visibleColumn);return c}getVisibleColumnFromPosition(t){return I.CursorColumns.visibleColumnFromColumn(this.textModel.getLineContent(t.lineNumber),t.column,this.textModel.getOptions().tabSize)+1}getLinesIndentGuides(t,i){this.assertNotDisposed();const s=this.textModel.getLineCount();if(t<1||t>s)throw new Error("Illegal value for startLineNumber");if(i<1||i>s)throw new Error("Illegal value for endLineNumber");const g=this.textModel.getOptions(),c=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,l=!!(c&&c.offSide),a=new Array(i-t+1);let r=-2,u=-1,C=-2,f=-1;for(let h=t;h<=i;h++){const v=h-t,w=this._computeIndentLevel(h-1);if(w>=0){r=h-1,u=w,a[v]=Math.ceil(w/g.indentSize);continue}if(r===-2){r=-1,u=-1;for(let S=h-2;S>=0;S--){const L=this._computeIndentLevel(S);if(L>=0){r=S,u=L;break}}}if(C!==-1&&(C===-2||C=0){C=S,f=L;break}}}a[v]=this._getIndentLevelForWhitespaceLine(l,u,f)}return a}_getIndentLevelForWhitespaceLine(t,i,s){const g=this.textModel.getOptions();return i===-1||s===-1?0:i{this._tokenizationSupports.get(m)===_&&(this._tokenizationSupports.delete(m),this.handleChange([m]))})}get(m){return this._tokenizationSupports.get(m)||null}registerFactory(m,_){this._factories.get(m)?.dispose();const b=new E(this,m,_);return this._factories.set(m,b),(0,k.toDisposable)(()=>{const p=this._factories.get(m);!p||p!==b||(this._factories.delete(m),p.dispose())})}async getOrCreate(m){const _=this.get(m);if(_)return _;const b=this._factories.get(m);return!b||b.isResolved?null:(await b.resolve(),this.get(m))}isResolved(m){if(this.get(m))return!0;const b=this._factories.get(m);return!!(!b||b.isResolved)}setColorMap(m){this._colorMap=m,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}}e.TokenizationRegistry=I;class E extends k.Disposable{get isResolved(){return this._isResolved}constructor(m,_,b){super(),this._registry=m,this._languageId=_,this._factory=b,this._isDisposed=!1,this._resolvePromise=null,this._isResolved=!1}dispose(){this._isDisposed=!0,super.dispose()}async resolve(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise}async _create(){const m=await this._factory.tokenizationSupport;this._isResolved=!0,m&&!this._isDisposed&&this._register(this._registry.register(this._languageId,m))}}}),define(ne[586],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContiguousMultilineTokens=void 0;class d{get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._startLineNumber+this._tokens.length-1}constructor(I,E){this._startLineNumber=I,this._tokens=E}getLineTokens(I){return this._tokens[I-this._startLineNumber]}appendLineTokens(I){this._tokens.push(I)}}e.ContiguousMultilineTokens=d}),define(ne[330],se([1,0,586]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContiguousMultilineTokensBuilder=void 0;class k{constructor(){this._tokens=[]}add(E,y){if(this._tokens.length>0){const m=this._tokens[this._tokens.length-1];if(m.endLineNumber+1===E){m.appendLineTokens(y);return}}this._tokens.push(new d.ContiguousMultilineTokens(E,[y]))}finalize(){return this._tokens}}e.ContiguousMultilineTokensBuilder=k}),define(ne[83],se([1,0,148]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LineTokens=void 0,e.getStandardTokenTypeAtPosition=E;class k{static{this.defaultTokenMetadata=(32768|2<<24)>>>0}static createEmpty(m,_){const b=k.defaultTokenMetadata,p=new Uint32Array(2);return p[0]=m.length,p[1]=b,new k(p,m,_)}static createFromTextAndMetadata(m,_){let b=0,p="";const n=new Array;for(const{text:o,metadata:t}of m)n.push(b+o.length,t),b+=o.length,p+=o;return new k(new Uint32Array(n),p,_)}constructor(m,_,b){this._lineTokensBrand=void 0,this._tokens=m,this._tokensCount=this._tokens.length>>>1,this._text=_,this.languageIdCodec=b}equals(m){return m instanceof k?this.slicedEquals(m,0,this._tokensCount):!1}slicedEquals(m,_,b){if(this._text!==m._text||this._tokensCount!==m._tokensCount)return!1;const p=_<<1,n=p+(b<<1);for(let o=p;o0?this._tokens[m-1<<1]:0}getMetadata(m){return this._tokens[(m<<1)+1]}getLanguageId(m){const _=this._tokens[(m<<1)+1],b=d.TokenMetadata.getLanguageId(_);return this.languageIdCodec.decodeLanguageId(b)}getStandardTokenType(m){const _=this._tokens[(m<<1)+1];return d.TokenMetadata.getTokenType(_)}getForeground(m){const _=this._tokens[(m<<1)+1];return d.TokenMetadata.getForeground(_)}getClassName(m){const _=this._tokens[(m<<1)+1];return d.TokenMetadata.getClassNameFromMetadata(_)}getInlineStyle(m,_){const b=this._tokens[(m<<1)+1];return d.TokenMetadata.getInlineStyleFromMetadata(b,_)}getPresentation(m){const _=this._tokens[(m<<1)+1];return d.TokenMetadata.getPresentationFromMetadata(_)}getEndOffset(m){return this._tokens[m<<1]}findTokenIndexAtOffset(m){return k.findIndexInTokensArray(this._tokens,m)}inflate(){return this}sliceAndInflate(m,_,b){return new I(this,m,_,b)}static convertToEndOffset(m,_){const p=(m.length>>>1)-1;for(let n=0;n>>1)-1;for(;b_&&(p=n)}return b}withInserted(m){if(m.length===0)return this;let _=0,b=0,p="";const n=new Array;let o=0;for(;;){const t=_o){p+=this._text.substring(o,i.offset);const s=this._tokens[(_<<1)+1];n.push(p.length,s),o=i.offset}p+=i.text,n.push(p.length,i.tokenMetadata),b++}else break}return new k(new Uint32Array(n),p,this.languageIdCodec)}getTokenText(m){const _=this.getStartOffset(m),b=this.getEndOffset(m);return this._text.substring(_,b)}forEach(m){const _=this.getCount();for(let b=0;b<_;b++)m(b)}}e.LineTokens=k;class I{constructor(m,_,b,p){this._source=m,this._startOffset=_,this._endOffset=b,this._deltaOffset=p,this._firstTokenIndex=m.findTokenIndexAtOffset(_),this.languageIdCodec=m.languageIdCodec,this._tokensCount=0;for(let n=this._firstTokenIndex,o=m.getCount();n=b);n++)this._tokensCount++}getMetadata(m){return this._source.getMetadata(this._firstTokenIndex+m)}getLanguageId(m){return this._source.getLanguageId(this._firstTokenIndex+m)}getLineContent(){return this._source.getLineContent().substring(this._startOffset,this._endOffset)}equals(m){return m instanceof I?this._startOffset===m._startOffset&&this._endOffset===m._endOffset&&this._deltaOffset===m._deltaOffset&&this._source.slicedEquals(m._source,this._firstTokenIndex,this._tokensCount):!1}getCount(){return this._tokensCount}getStandardTokenType(m){return this._source.getStandardTokenType(this._firstTokenIndex+m)}getForeground(m){return this._source.getForeground(this._firstTokenIndex+m)}getEndOffset(m){const _=this._source.getEndOffset(this._firstTokenIndex+m);return Math.min(this._endOffset,_)-this._startOffset+this._deltaOffset}getClassName(m){return this._source.getClassName(this._firstTokenIndex+m)}getInlineStyle(m,_){return this._source.getInlineStyle(this._firstTokenIndex+m,_)}getPresentation(m){return this._source.getPresentation(this._firstTokenIndex+m)}findTokenIndexAtOffset(m){return this._source.findTokenIndexAtOffset(m+this._startOffset-this._deltaOffset)-this._firstTokenIndex}getTokenText(m){const _=this._firstTokenIndex+m,b=this._source.getStartOffset(_),p=this._source.getEndOffset(_);let n=this._source.getTokenText(_);return bthis._endOffset&&(n=n.substring(0,n.length-(p-this._endOffset))),n}forEach(m){for(let _=0;_{this.model.tokenization.forceTokenization(C);const f=this.model.tokenization.getLineTokens(C),h=this.model.getLineMaxColumn(C)-1;return(0,k.createScopedLineTokens)(f,h)};this.model.tokenization.forceTokenization(p.startLineNumber);const o=this.model.tokenization.getLineTokens(p.startLineNumber),t=(0,k.createScopedLineTokens)(o,p.startColumn-1),i=I.LineTokens.createEmpty("",t.languageIdCodec),s=p.startLineNumber-1;if(s===0||!(t.firstCharOffset===0))return i;const l=n(s);if(!(t.languageId===l.languageId))return i;const r=l.toIViewLineTokens();return this.indentationLineProcessor.getProcessedTokens(r)}}e.IndentationContextProcessor=y;class m{constructor(p,n){this.model=p,this.languageConfigurationService=n}getProcessedLine(p,n){const o=(s,g)=>{const c=d.getLeadingWhitespace(s);return g+s.substring(c.length)};this.model.tokenization.forceTokenization?.(p);const t=this.model.tokenization.getLineTokens(p);let i=this.getProcessedTokens(t).getLineContent();return n!==void 0&&(i=o(i,n)),i}getProcessedTokens(p){const n=c=>c===2||c===3||c===1,o=p.getLanguageId(0),i=this.languageConfigurationService.getLanguageConfiguration(o).bracketsNew.getBracketRegExp({global:!0}),s=[];return p.forEach(c=>{const l=p.getStandardTokenType(c);let a=p.getTokenText(c);n(l)&&(a=a.replace(i,""));const r=p.getMetadata(c);s.push({text:a,metadata:r})}),I.LineTokens.createFromTextAndMetadata(s,p.languageIdCodec)}}function _(b,p){b.tokenization.forceTokenization(p.lineNumber);const n=b.tokenization.getLineTokens(p.lineNumber),o=(0,k.createScopedLineTokens)(n,p.column-1),t=o.firstCharOffset===0,i=n.getLanguageId(0)===o.languageId;return!t&&!i}}),define(ne[241],se([1,0,11,131,240]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getInheritIndentForLine=y,e.getGoodIndentForLine=m,e.getIndentForEnter=_,e.getIndentActionForType=b,e.getIndentMetadata=p;function E(o,t,i){const s=o.tokenization.getLanguageIdAtPosition(t,0);if(t>1){let g,c=-1;for(g=t-1;g>=1;g--){if(o.tokenization.getLanguageIdAtPosition(g,0)!==s)return c;const l=o.getLineContent(g);if(i.shouldIgnore(g)||/^\s+$/.test(l)||l===""){c=g;continue}return g}}return-1}function y(o,t,i,s=!0,g){if(o<4)return null;const c=g.getLanguageConfiguration(t.tokenization.getLanguageId()).indentRulesSupport;if(!c)return null;const l=new I.ProcessedIndentRulesSupport(t,c,g);if(i<=1)return{indentation:"",action:null};for(let r=i-1;r>0&&t.getLineContent(r)==="";r--)if(r===1)return{indentation:"",action:null};const a=E(t,i,l);if(a<0)return null;if(a<1)return{indentation:"",action:null};if(l.shouldIncrease(a)||l.shouldIndentNextLine(a)){const r=t.getLineContent(a);return{indentation:d.getLeadingWhitespace(r),action:k.IndentAction.Indent,line:a}}else if(l.shouldDecrease(a)){const r=t.getLineContent(a);return{indentation:d.getLeadingWhitespace(r),action:null,line:a}}else{if(a===1)return{indentation:d.getLeadingWhitespace(t.getLineContent(a)),action:null,line:a};const r=a-1,u=c.getIndentMetadata(t.getLineContent(r));if(!(u&3)&&u&4){let C=0;for(let f=r-1;f>0;f--)if(!l.shouldIndentNextLine(f)){C=f;break}return{indentation:d.getLeadingWhitespace(t.getLineContent(C+1)),action:null,line:C+1}}if(s)return{indentation:d.getLeadingWhitespace(t.getLineContent(a)),action:null,line:a};for(let C=a;C>0;C--){if(l.shouldIncrease(C))return{indentation:d.getLeadingWhitespace(t.getLineContent(C)),action:k.IndentAction.Indent,line:C};if(l.shouldIndentNextLine(C)){let f=0;for(let h=C-1;h>0;h--)if(!l.shouldIndentNextLine(C)){f=h;break}return{indentation:d.getLeadingWhitespace(t.getLineContent(f+1)),action:null,line:f+1}}else if(l.shouldDecrease(C))return{indentation:d.getLeadingWhitespace(t.getLineContent(C)),action:null,line:C}}return{indentation:d.getLeadingWhitespace(t.getLineContent(1)),action:null,line:1}}}function m(o,t,i,s,g,c){if(o<4)return null;const l=c.getLanguageConfiguration(i);if(!l)return null;const a=c.getLanguageConfiguration(i).indentRulesSupport;if(!a)return null;const r=new I.ProcessedIndentRulesSupport(t,a,c),u=y(o,t,s,void 0,c);if(u){const C=u.line;if(C!==void 0){let f=!0;for(let h=C;h0){const D=t.getLineContent(L);if(u.shouldIndentNextLine(D)&&u.shouldIncrease(S)){const M=y(l,t,i.startLineNumber,!1,c)?.indentation;if(M!==void 0){const A=t.getLineContent(i.startLineNumber),P=d.getLeadingWhitespace(A),O=g.shiftIndent(M)===P,F=/^\s*$/.test(w),x=o.autoClosingPairs.autoClosingPairsOpenByEnd.get(s),V=x&&x.length>0&&F;if(O&&V)return M}}}return null}function p(o,t,i){const s=i.getLanguageConfiguration(o.getLanguageId()).indentRulesSupport;return!s||t<1||t>o.getLineCount()?null:s.getIndentMetadata(o.getLineContent(t))}function n(o,t,i){return{tokenization:{getLineTokens:g=>g===t?i:o.tokenization.getLineTokens(g),getLanguageId:()=>o.getLanguageId(),getLanguageIdAtPosition:(g,c)=>o.getLanguageIdAtPosition(g,c)},getLineContent:g=>g===t?i.getLineContent():o.getLineContent(g)}}}),define(ne[587],se([1,0,83]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContiguousTokensEditing=e.EMPTY_LINE_TOKENS=void 0,e.toUint32Array=I,e.EMPTY_LINE_TOKENS=new Uint32Array(0).buffer;class k{static deleteBeginning(y,m){return y===null||y===e.EMPTY_LINE_TOKENS?y:k.delete(y,0,m)}static deleteEnding(y,m){if(y===null||y===e.EMPTY_LINE_TOKENS)return y;const _=I(y),b=_[_.length-2];return k.delete(y,m,b)}static delete(y,m,_){if(y===null||y===e.EMPTY_LINE_TOKENS||m===_)return y;const b=I(y),p=b.length>>>1;if(m===0&&b[b.length-2]===_)return e.EMPTY_LINE_TOKENS;const n=d.LineTokens.findIndexInTokensArray(b,m),o=n>0?b[n-1<<1]:0,t=b[n<<1];if(_s&&(b[i++]=a,b[i++]=b[(l<<1)+1],s=a)}if(i===b.length)return y;const c=new Uint32Array(i);return c.set(b.subarray(0,i),0),c.buffer}static append(y,m){if(m===e.EMPTY_LINE_TOKENS)return y;if(y===e.EMPTY_LINE_TOKENS)return m;if(y===null)return y;if(m===null)return null;const _=I(y),b=I(m),p=b.length>>>1,n=new Uint32Array(_.length+b.length);n.set(_,0);let o=_.length;const t=_[_.length-2];for(let i=0;i>>1;let n=d.LineTokens.findIndexInTokensArray(b,m);n>0&&b[n-1<<1]===m&&n--;for(let o=n;o0}getTokens(p,n,o){let t=null;if(n1&&(i=y.TokenMetadata.getLanguageId(t[1])!==p),!i)return I.EMPTY_LINE_TOKENS}if(!t||t.length===0){const i=new Uint32Array(2);return i[0]=n,i[1]=_(p),i.buffer}return t[t.length-2]=n,t.byteOffset===0&&t.byteLength===t.buffer.byteLength?t.buffer:t}_ensureLine(p){for(;p>=this._len;)this._lineTokens[this._len]=null,this._len++}_deleteLines(p,n){n!==0&&(p+n>this._len&&(n=this._len-p),this._lineTokens.splice(p,n),this._len-=n)}_insertLines(p,n){if(n===0)return;const o=[];for(let t=0;t=this._len)return;if(p.startLineNumber===p.endLineNumber){if(p.startColumn===p.endColumn)return;this._lineTokens[n]=I.ContiguousTokensEditing.delete(this._lineTokens[n],p.startColumn-1,p.endColumn-1);return}this._lineTokens[n]=I.ContiguousTokensEditing.deleteEnding(this._lineTokens[n],p.startColumn-1);const o=p.endLineNumber-1;let t=null;o=this._len)){if(n===0){this._lineTokens[t]=I.ContiguousTokensEditing.insert(this._lineTokens[t],p.column-1,o);return}this._lineTokens[t]=I.ContiguousTokensEditing.deleteEnding(this._lineTokens[t],p.column-1),this._lineTokens[t]=I.ContiguousTokensEditing.insert(this._lineTokens[t],p.column-1,o),this._insertLines(p.lineNumber,n)}}setMultilineTokens(p,n){if(p.length===0)return{changes:[]};const o=[];for(let t=0,i=p.length;t>>0}}),define(ne[589],se([1,0,9,4,145]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SparseLineTokens=e.SparseMultilineTokens=void 0;class E{static create(b,p){return new E(b,new y(p))}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._endLineNumber}constructor(b,p){this._startLineNumber=b,this._tokens=p,this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}toString(){return this._tokens.toString(this._startLineNumber)}_updateEndLineNumber(){this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}isEmpty(){return this._tokens.isEmpty()}getLineTokens(b){return this._startLineNumber<=b&&b<=this._endLineNumber?this._tokens.getLineTokens(b-this._startLineNumber):null}getRange(){const b=this._tokens.getRange();return b&&new k.Range(this._startLineNumber+b.startLineNumber,b.startColumn,this._startLineNumber+b.endLineNumber,b.endColumn)}removeTokens(b){const p=b.startLineNumber-this._startLineNumber,n=b.endLineNumber-this._startLineNumber;this._startLineNumber+=this._tokens.removeTokens(p,b.startColumn-1,n,b.endColumn-1),this._updateEndLineNumber()}split(b){const p=b.startLineNumber-this._startLineNumber,n=b.endLineNumber-this._startLineNumber,[o,t,i]=this._tokens.split(p,b.startColumn-1,n,b.endColumn-1);return[new E(this._startLineNumber,o),new E(this._startLineNumber+i,t)]}applyEdit(b,p){const[n,o,t]=(0,I.countEOL)(p);this.acceptEdit(b,n,o,t,p.length>0?p.charCodeAt(0):0)}acceptEdit(b,p,n,o,t){this._acceptDeleteRange(b),this._acceptInsertText(new d.Position(b.startLineNumber,b.startColumn),p,n,o,t),this._updateEndLineNumber()}_acceptDeleteRange(b){if(b.startLineNumber===b.endLineNumber&&b.startColumn===b.endColumn)return;const p=b.startLineNumber-this._startLineNumber,n=b.endLineNumber-this._startLineNumber;if(n<0){const t=n-p;this._startLineNumber-=t;return}const o=this._tokens.getMaxDeltaLine();if(!(p>=o+1)){if(p<0&&n>=o+1){this._startLineNumber=0,this._tokens.clear();return}if(p<0){const t=-p;this._startLineNumber-=t,this._tokens.acceptDeleteRange(b.startColumn-1,0,0,n,b.endColumn-1)}else this._tokens.acceptDeleteRange(0,p,b.startColumn-1,n,b.endColumn-1)}}_acceptInsertText(b,p,n,o,t){if(p===0&&n===0)return;const i=b.lineNumber-this._startLineNumber;if(i<0){this._startLineNumber+=p;return}const s=this._tokens.getMaxDeltaLine();i>=s+1||this._tokens.acceptInsertText(i,b.column-1,p,n,o,t)}}e.SparseMultilineTokens=E;class y{constructor(b){this._tokens=b,this._tokenCount=b.length/4}toString(b){const p=[];for(let n=0;nb)n=o-1;else{let i=o;for(;i>p&&this._getDeltaLine(i-1)===b;)i--;let s=o;for(;sb||r===b&&C>=p)&&(rb||C===b&&h>=p){if(Ct?f-=t-n:f=n;else if(u===p&&C===n)if(u===o&&f>t)f-=t-n;else{l=!0;continue}else if(ut)u=p,C=n,f=C+(f-t);else{l=!0;continue}else if(u>o){if(g===0&&!l){c=s;break}u-=g}else if(u===o&&C>=t)b&&u===0&&(C+=b,f+=b),u-=g,C-=t-n,f-=t-n;else throw new Error("Not possible!");const v=4*c;i[v]=u,i[v+1]=C,i[v+2]=f,i[v+3]=h,c++}this._tokenCount=c}acceptInsertText(b,p,n,o,t,i){const s=n===0&&o===1&&(i>=48&&i<=57||i>=65&&i<=90||i>=97&&i<=122),g=this._tokens,c=this._tokenCount;for(let l=0;l0){const p=m[0].getRange(),n=m[m.length-1].getRange();if(!p||!n)return y;_=y.plusRange(p).plusRange(n)}let b=null;for(let p=0,n=this._pieces.length;p_.endLineNumber){b=b||{index:p};break}if(o.removeTokens(_),o.isEmpty()){this._pieces.splice(p,1),p--,n--;continue}if(o.endLineNumber<_.startLineNumber)continue;if(o.startLineNumber>_.endLineNumber){b=b||{index:p};continue}const[t,i]=o.split(_);if(t.isEmpty()){b=b||{index:p};continue}i.isEmpty()||(this._pieces.splice(p,1,t,i),p++,n++,b=b||{index:p})}return b=b||{index:this._pieces.length},m.length>0&&(this._pieces=d.arrayInsert(this._pieces,b.index,m)),_}isComplete(){return this._isComplete}addSparseTokens(y,m){if(m.getLineContent().length===0)return m;const _=this._pieces;if(_.length===0)return m;const b=I._findFirstPieceWithLine(_,y),p=_[b].getLineTokens(y);if(!p)return m;const n=m.getCount(),o=p.getCount();let t=0;const i=[];let s=0,g=0;const c=(l,a)=>{l!==g&&(g=l,i[s++]=l,i[s++]=a)};for(let l=0;l>>0,f=~C>>>0;for(;tm)b=p-1;else{for(;p>_&&y[p-1].startLineNumber<=m&&m<=y[p-1].endLineNumber;)p--;return p}}return _}acceptEdit(y,m,_,b,p){for(const n of this._pieces)n.acceptEdit(y,m,_,b,p)}}e.SparseTokensStore=I}),define(ne[170],se([1,0,2]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewEventHandler=void 0;class k extends d.Disposable{constructor(){super(),this._shouldRender=!0}shouldRender(){return this._shouldRender}forceShouldRender(){this._shouldRender=!0}setShouldRender(){this._shouldRender=!0}onDidRender(){this._shouldRender=!1}onCompositionStart(E){return!1}onCompositionEnd(E){return!1}onConfigurationChanged(E){return!1}onCursorStateChanged(E){return!1}onDecorationsChanged(E){return!1}onFlushed(E){return!1}onFocusChanged(E){return!1}onLanguageConfigurationChanged(E){return!1}onLineMappingChanged(E){return!1}onLinesChanged(E){return!1}onLinesDeleted(E){return!1}onLinesInserted(E){return!1}onRevealRangeRequest(E){return!1}onScrollChanged(E){return!1}onThemeChanged(E){return!1}onTokensChanged(E){return!1}onTokensColorsChanged(E){return!1}onZonesChanged(E){return!1}handleEvents(E){let y=!1;for(let m=0,_=E.length;m<_;m++){const b=E[m];switch(b.type){case 0:this.onCompositionStart(b)&&(y=!0);break;case 1:this.onCompositionEnd(b)&&(y=!0);break;case 2:this.onConfigurationChanged(b)&&(y=!0);break;case 3:this.onCursorStateChanged(b)&&(y=!0);break;case 4:this.onDecorationsChanged(b)&&(y=!0);break;case 5:this.onFlushed(b)&&(y=!0);break;case 6:this.onFocusChanged(b)&&(y=!0);break;case 7:this.onLanguageConfigurationChanged(b)&&(y=!0);break;case 8:this.onLineMappingChanged(b)&&(y=!0);break;case 9:this.onLinesChanged(b)&&(y=!0);break;case 10:this.onLinesDeleted(b)&&(y=!0);break;case 11:this.onLinesInserted(b)&&(y=!0);break;case 12:this.onRevealRangeRequest(b)&&(y=!0);break;case 13:this.onScrollChanged(b)&&(y=!0);break;case 15:this.onTokensChanged(b)&&(y=!0);break;case 14:this.onThemeChanged(b)&&(y=!0);break;case 16:this.onTokensColorsChanged(b)&&(y=!0);break;case 17:this.onZonesChanged(b)&&(y=!0);break;default:console.info("View received unknown event: "),console.info(b)}}y&&(this._shouldRender=!0)}}e.ViewEventHandler=k}),define(ne[133],se([1,0,170]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DynamicViewOverlay=void 0;class k extends d.ViewEventHandler{}e.DynamicViewOverlay=k}),define(ne[56],se([1,0,170]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PartFingerprints=e.ViewPart=void 0;class k extends d.ViewEventHandler{constructor(y){super(),this._context=y,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}}e.ViewPart=k;class I{static write(y,m){y.setAttribute("data-mprt",String(m))}static read(y){const m=y.getAttribute("data-mprt");return m===null?0:parseInt(m,10)}static collect(y,m){const _=[];let b=0;for(;y&&y!==y.ownerDocument.body&&y!==m;)y.nodeType===y.ELEMENT_NODE&&(_[b++]=this.read(y)),y=y.parentElement;const p=new Uint8Array(b);for(let n=0;n{if(i.options.zIndexs.options.zIndex)return 1;const g=i.options.className,c=s.options.className;return gc?1:I.Range.compareRangesUsingStarts(i.range,s.range)});const n=m.visibleRange.startLineNumber,o=m.visibleRange.endLineNumber,t=[];for(let i=n;i<=o;i++){const s=i-n;t[s]=""}this._renderWholeLineDecorations(m,b,t),this._renderNormalDecorations(m,b,t),this._renderResult=t}_renderWholeLineDecorations(m,_,b){const p=m.visibleRange.startLineNumber,n=m.visibleRange.endLineNumber;for(let o=0,t=_.length;o',g=Math.max(i.range.startLineNumber,p),c=Math.min(i.range.endLineNumber,n);for(let l=g;l<=c;l++){const a=l-p;b[a]+=s}}}_renderNormalDecorations(m,_,b){const p=m.visibleRange.startLineNumber;let n=null,o=!1,t=null,i=!1;for(let s=0,g=_.length;s';t[l]+=f}}}render(m,_){if(!this._renderResult)return"";const b=_-m;return b<0||b>=this._renderResult.length?"":this._renderResult[b]}}e.DecorationsOverlay=E}),define(ne[242],se([1,0,39,13,133,56,9,4,40,484]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GlyphMarginWidgets=e.DedupOverlay=e.VisibleLineDecorationsToRender=e.LineDecorationToRender=e.DecorationToRender=void 0;class b{constructor(l,a,r,u,C){this.startLineNumber=l,this.endLineNumber=a,this.className=r,this.tooltip=u,this._decorationToRenderBrand=void 0,this.zIndex=C??0}}e.DecorationToRender=b;class p{constructor(l,a,r){this.className=l,this.zIndex=a,this.tooltip=r}}e.LineDecorationToRender=p;class n{constructor(){this.decorations=[]}add(l){this.decorations.push(l)}getDecorations(){return this.decorations}}e.VisibleLineDecorationsToRender=n;class o extends I.DynamicViewOverlay{_render(l,a,r){const u=[];for(let h=l;h<=a;h++){const v=h-l;u[v]=new n}if(r.length===0)return u;r.sort((h,v)=>h.className===v.className?h.startLineNumber===v.startLineNumber?h.endLineNumber-v.endLineNumber:h.startLineNumber-v.startLineNumber:h.classNameu)continue;const w=Math.max(h,r),S=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new y.Position(w,0)),L=this._context.viewModel.glyphLanes.getLanesAtLine(S.lineNumber).indexOf(C.preference.lane);a.push(new s(w,L,C.preference.zIndex,C))}}_collectSortedGlyphRenderRequests(l){const a=[];return this._collectDecorationBasedGlyphRenderRequest(l,a),this._collectWidgetBasedGlyphRenderRequest(l,a),a.sort((r,u)=>r.lineNumber===u.lineNumber?r.laneIndex===u.laneIndex?r.zIndex===u.zIndex?u.type===r.type?r.type===0&&u.type===0?r.className0;){const u=a.peek();if(!u)break;const C=a.takeWhile(h=>h.lineNumber===u.lineNumber&&h.laneIndex===u.laneIndex);if(!C||C.length===0)break;const f=C[0];if(f.type===0){const h=[];for(const v of C){if(v.zIndex!==f.zIndex||v.type!==f.type)break;(h.length===0||h[h.length-1]!==v.className)&&h.push(v.className)}r.push(f.accept(h.join(" ")))}else f.widget.renderInfo={lineNumber:f.lineNumber,laneIndex:f.laneIndex}}this._decorationGlyphsToRender=r}render(l){if(!this._glyphMargin){for(const r of Object.values(this._widgets))r.domNode.setDisplay("none");for(;this._managedDomNodes.length>0;)this._managedDomNodes.pop()?.domNode.remove();return}const a=Math.round(this._glyphMarginWidth/this._glyphMarginDecorationLaneCount);for(const r of Object.values(this._widgets))if(!r.renderInfo)r.domNode.setDisplay("none");else{const u=l.viewportData.relativeVerticalOffset[r.renderInfo.lineNumber-l.viewportData.startLineNumber],C=this._glyphMarginLeft+r.renderInfo.laneIndex*this._lineHeight;r.domNode.setDisplay("block"),r.domNode.setTop(u),r.domNode.setLeft(C),r.domNode.setWidth(a),r.domNode.setHeight(this._lineHeight)}for(let r=0;rthis._decorationGlyphsToRender.length;)this._managedDomNodes.pop()?.domNode.remove()}}e.GlyphMarginWidgets=t;class i{constructor(l,a,r,u){this.lineNumber=l,this.laneIndex=a,this.zIndex=r,this.className=u,this.type=0}accept(l){return new g(this.lineNumber,this.laneIndex,l)}}class s{constructor(l,a,r,u){this.lineNumber=l,this.laneIndex=a,this.zIndex=r,this.widget=u,this.type=1}}class g{constructor(l,a,r){this.lineNumber=l,this.laneIndex=a,this.combinedClassName=r}}}),define(ne[593],se([1,0,242,488]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinesDecorationsOverlay=void 0;class k extends d.DedupOverlay{constructor(E){super(),this._context=E;const m=this._context.configuration.options.get(146);this._decorationsLeft=m.decorationsLeft,this._decorationsWidth=m.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(E){const m=this._context.configuration.options.get(146);return this._decorationsLeft=m.decorationsLeft,this._decorationsWidth=m.decorationsWidth,!0}onDecorationsChanged(E){return!0}onFlushed(E){return!0}onLinesChanged(E){return!0}onLinesDeleted(E){return!0}onLinesInserted(E){return!0}onScrollChanged(E){return E.scrollTopChanged}onZonesChanged(E){return!0}_getDecorations(E){const y=E.getDecorationsInViewport(),m=[];let _=0;for(let b=0,p=y.length;b',o=[];for(let t=y;t<=m;t++){const i=t-y,s=_[i].getDecorations();let g="";for(const c of s){let l='
    ';b[n]=t}this._renderResult=b}render(E,y){return this._renderResult?this._renderResult[y-E]:""}}e.MarginViewLineDecorationsOverlay=k}),define(ne[595],se([1,0,39,56,493]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Rulers=void 0;class I extends k.ViewPart{constructor(y){super(y),this.domNode=(0,d.createFastDomNode)(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("view-rulers"),this._renderedRulers=[];const m=this._context.configuration.options;this._rulers=m.get(103),this._typicalHalfwidthCharacterWidth=m.get(50).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(y){const m=this._context.configuration.options;return this._rulers=m.get(103),this._typicalHalfwidthCharacterWidth=m.get(50).typicalHalfwidthCharacterWidth,!0}onScrollChanged(y){return y.scrollHeightChanged}prepareRender(y){}_ensureRulersCount(){const y=this._renderedRulers.length,m=this._rulers.length;if(y===m)return;if(y0;){const o=(0,d.createFastDomNode)(document.createElement("div"));o.setClassName("view-ruler"),o.setWidth(p),this.domNode.appendChild(o),this._renderedRulers.push(o),n--}return}let _=y-m;for(;_>0;){const b=this._renderedRulers.pop();this.domNode.removeChild(b),_--}}render(y){this._ensureRulersCount();for(let m=0,_=this._rulers.length;m<_;m++){const b=this._renderedRulers[m],p=this._rulers[m];b.setBoxShadow(p.color?`1px 0 0 0 ${p.color} inset`:""),b.setHeight(Math.min(y.scrollHeight,1e6)),b.setLeft(p.column*this._typicalHalfwidthCharacterWidth)}}}e.Rulers=I}),define(ne[596],se([1,0,39,56,494]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ScrollDecorationViewPart=void 0;class I extends k.ViewPart{constructor(y){super(y),this._scrollTop=0,this._width=0,this._updateWidth(),this._shouldShow=!1;const _=this._context.configuration.options.get(104);this._useShadows=_.useShadows,this._domNode=(0,d.createFastDomNode)(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true")}dispose(){super.dispose()}_updateShouldShow(){const y=this._useShadows&&this._scrollTop>0;return this._shouldShow!==y?(this._shouldShow=y,!0):!1}getDomNode(){return this._domNode}_updateWidth(){const m=this._context.configuration.options.get(146);m.minimap.renderMinimap===0||m.minimap.minimapWidth>0&&m.minimap.minimapLeft===0?this._width=m.width:this._width=m.width-m.verticalScrollbarWidth}onConfigurationChanged(y){const _=this._context.configuration.options.get(104);return this._useShadows=_.useShadows,this._updateWidth(),this._updateShouldShow(),!0}onScrollChanged(y){return this._scrollTop=y.scrollTop,this._updateShouldShow()}prepareRender(y){}render(y){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")}}e.ScrollDecorationViewPart=I}),define(ne[597],se([1,0,39,8,56,9]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewZones=void 0;const y=()=>{throw new Error("Invalid change accessor")};class m extends I.ViewPart{constructor(p){super(p);const n=this._context.configuration.options,o=n.get(146);this._lineHeight=n.get(67),this._contentWidth=o.contentWidth,this._contentLeft=o.contentLeft,this.domNode=(0,d.createFastDomNode)(document.createElement("div")),this.domNode.setClassName("view-zones"),this.domNode.setPosition("absolute"),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.marginDomNode=(0,d.createFastDomNode)(document.createElement("div")),this.marginDomNode.setClassName("margin-view-zones"),this.marginDomNode.setPosition("absolute"),this.marginDomNode.setAttribute("role","presentation"),this.marginDomNode.setAttribute("aria-hidden","true"),this._zones={}}dispose(){super.dispose(),this._zones={}}_recomputeWhitespacesProps(){const p=this._context.viewLayout.getWhitespaces(),n=new Map;for(const t of p)n.set(t.id,t);let o=!1;return this._context.viewModel.changeWhitespace(t=>{const i=Object.keys(this._zones);for(let s=0,g=i.length;s{const t={addZone:i=>(n=!0,this._addZone(o,i)),removeZone:i=>{i&&(n=this._removeZone(o,i)||n)},layoutZone:i=>{i&&(n=this._layoutZone(o,i)||n)}};_(p,t),t.addZone=y,t.removeZone=y,t.layoutZone=y}),n}_addZone(p,n){const o=this._computeWhitespaceProps(n),i={whitespaceId:p.insertWhitespace(o.afterViewLineNumber,this._getZoneOrdinal(n),o.heightInPx,o.minWidthInPx),delegate:n,isInHiddenArea:o.isInHiddenArea,isVisible:!1,domNode:(0,d.createFastDomNode)(n.domNode),marginDomNode:n.marginDomNode?(0,d.createFastDomNode)(n.marginDomNode):null};return this._safeCallOnComputedHeight(i.delegate,o.heightInPx),i.domNode.setPosition("absolute"),i.domNode.domNode.style.width="100%",i.domNode.setDisplay("none"),i.domNode.setAttribute("monaco-view-zone",i.whitespaceId),this.domNode.appendChild(i.domNode),i.marginDomNode&&(i.marginDomNode.setPosition("absolute"),i.marginDomNode.domNode.style.width="100%",i.marginDomNode.setDisplay("none"),i.marginDomNode.setAttribute("monaco-view-zone",i.whitespaceId),this.marginDomNode.appendChild(i.marginDomNode)),this._zones[i.whitespaceId]=i,this.setShouldRender(),i.whitespaceId}_removeZone(p,n){if(this._zones.hasOwnProperty(n)){const o=this._zones[n];return delete this._zones[n],p.removeWhitespace(o.whitespaceId),o.domNode.removeAttribute("monaco-visible-view-zone"),o.domNode.removeAttribute("monaco-view-zone"),o.domNode.domNode.remove(),o.marginDomNode&&(o.marginDomNode.removeAttribute("monaco-visible-view-zone"),o.marginDomNode.removeAttribute("monaco-view-zone"),o.marginDomNode.domNode.remove()),this.setShouldRender(),!0}return!1}_layoutZone(p,n){if(this._zones.hasOwnProperty(n)){const o=this._zones[n],t=this._computeWhitespaceProps(o.delegate);return o.isInHiddenArea=t.isInHiddenArea,p.changeOneWhitespace(o.whitespaceId,t.afterViewLineNumber,t.heightInPx),this._safeCallOnComputedHeight(o.delegate,t.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(p){return this._zones.hasOwnProperty(p)?!!this._zones[p].delegate.suppressMouseDown:!1}_heightInPixels(p){return typeof p.heightInPx=="number"?p.heightInPx:typeof p.heightInLines=="number"?this._lineHeight*p.heightInLines:this._lineHeight}_minWidthInPixels(p){return typeof p.minWidthInPx=="number"?p.minWidthInPx:0}_safeCallOnComputedHeight(p,n){if(typeof p.onComputedHeight=="function")try{p.onComputedHeight(n)}catch(o){(0,k.onUnexpectedError)(o)}}_safeCallOnDomNodeTop(p,n){if(typeof p.onDomNodeTop=="function")try{p.onDomNodeTop(n)}catch(o){(0,k.onUnexpectedError)(o)}}prepareRender(p){}render(p){const n=p.viewportData.whitespaceViewportData,o={};let t=!1;for(const s of n)this._zones[s.id].isInHiddenArea||(o[s.id]=s,t=!0);const i=Object.keys(this._zones);for(let s=0,g=i.length;s=o||(i[s++]=new k(Math.max(1,g.startColumn-n+1),Math.min(t+1,g.endColumn-n+1),g.className,g.type));return i}static filter(_,b,p,n){if(_.length===0)return[];const o=[];let t=0;for(let i=0,s=_.length;ib||c.isEmpty()&&(g.type===0||g.type===3))continue;const l=c.startLineNumber===b?c.startColumn:p,a=c.endLineNumber===b?c.endColumn:n;o[t++]=new k(l,a,g.inlineClassName,g.type)}return o}static _typeCompare(_,b){const p=[2,0,1,3];return p[_]-p[b]}static compare(_,b){if(_.startColumn!==b.startColumn)return _.startColumn-b.startColumn;if(_.endColumn!==b.endColumn)return _.endColumn-b.endColumn;const p=k._typeCompare(_.type,b.type);return p!==0?p:_.className!==b.className?_.className0&&this.stopOffsets[0]<_;){let n=0;for(;n+10&&b<_&&(p.push(new I(b,_-1,this.classNames.join(" "),E._metadata(this.metadata))),b=_),b}insert(_,b,p){if(this.count===0||this.stopOffsets[this.count-1]<=_)this.stopOffsets.push(_),this.classNames.push(b),this.metadata.push(p);else for(let n=0;n=_){this.stopOffsets.splice(n,0,_),this.classNames.splice(n,0,b),this.metadata.splice(n,0,p);break}this.count++}}class y{static normalize(_,b){if(b.length===0)return[];const p=[],n=new E;let o=0;for(let t=0,i=b.length;t1){const C=_.charCodeAt(g-2);d.isHighSurrogate(C)&&g--}if(c>1){const C=_.charCodeAt(c-2);d.isHighSurrogate(C)&&c--}const r=g-1,u=c-2;o=n.consumeLowerThan(r,o,p),n.count===0&&(o=r),n.insert(u,l,a)}return n.consumeLowerThan(1073741824,o,p),p}}e.LineDecorationsNormalizer=y}),define(ne[598],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinePart=void 0;class d{constructor(I,E,y,m){this.endIndex=I,this.type=E,this.metadata=y,this.containsRTL=m,this._linePartBrand=void 0}isWhitespace(){return!!(this.metadata&1)}isPseudoAfter(){return!!(this.metadata&4)}}e.LinePart=d}),define(ne[599],se([1,0,11]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinesLayout=e.EditorWhitespace=void 0;class k{constructor(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}insert(m){this._hasPending=!0,this._inserts.push(m)}change(m){this._hasPending=!0,this._changes.push(m)}remove(m){this._hasPending=!0,this._removes.push(m)}mustCommit(){return this._hasPending}commit(m){if(!this._hasPending)return;const _=this._inserts,b=this._changes,p=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],m._commitPendingChanges(_,b,p)}}class I{constructor(m,_,b,p,n){this.id=m,this.afterLineNumber=_,this.ordinal=b,this.height=p,this.minWidth=n,this.prefixSum=0}}e.EditorWhitespace=I;class E{static{this.INSTANCE_COUNT=0}constructor(m,_,b,p){this._instanceId=d.singleLetterHash(++E.INSTANCE_COUNT),this._pendingChanges=new k,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=m,this._lineHeight=_,this._paddingTop=b,this._paddingBottom=p}static findInsertionIndex(m,_,b){let p=0,n=m.length;for(;p>>1;_===m[o].afterLineNumber?b{_=!0,p=p|0,n=n|0,o=o|0,t=t|0;const i=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new I(i,p,n,o,t)),i},changeOneWhitespace:(p,n,o)=>{_=!0,n=n|0,o=o|0,this._pendingChanges.change({id:p,newAfterLineNumber:n,newHeight:o})},removeWhitespace:p=>{_=!0,this._pendingChanges.remove({id:p})}})}finally{this._pendingChanges.commit(this)}return _}_commitPendingChanges(m,_,b){if((m.length>0||b.length>0)&&(this._minWidth=-1),m.length+_.length+b.length<=1){for(const i of m)this._insertWhitespace(i);for(const i of _)this._changeOneWhitespace(i.id,i.newAfterLineNumber,i.newHeight);for(const i of b){const s=this._findWhitespaceIndex(i.id);s!==-1&&this._removeWhitespace(s)}return}const p=new Set;for(const i of b)p.add(i.id);const n=new Map;for(const i of _)n.set(i.id,i);const o=i=>{const s=[];for(const g of i)if(!p.has(g.id)){if(n.has(g.id)){const c=n.get(g.id);g.afterLineNumber=c.newAfterLineNumber,g.height=c.newHeight}s.push(g)}return s},t=o(this._arr).concat(o(m));t.sort((i,s)=>i.afterLineNumber===s.afterLineNumber?i.ordinal-s.ordinal:i.afterLineNumber-s.afterLineNumber),this._arr=t,this._prefixSumValidIndex=-1}_checkPendingChanges(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}_insertWhitespace(m){const _=E.findInsertionIndex(this._arr,m.afterLineNumber,m.ordinal);this._arr.splice(_,0,m),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,_-1)}_findWhitespaceIndex(m){const _=this._arr;for(let b=0,p=_.length;b_&&(this._arr[b].afterLineNumber-=_-m+1)}}onLinesInserted(m,_){this._checkPendingChanges(),m=m|0,_=_|0,this._lineCount+=_-m+1;for(let b=0,p=this._arr.length;b=_.length||_[t+1].afterLineNumber>=m)return t;b=t+1|0}else p=t-1|0}return-1}_findFirstWhitespaceAfterLineNumber(m){m=m|0;const b=this._findLastWhitespaceBeforeLineNumber(m)+1;return b1?b=this._lineHeight*(m-1):b=0;const p=this.getWhitespaceAccumulatedHeightBeforeLineNumber(m-(_?1:0));return b+p+this._paddingTop}getVerticalOffsetAfterLineNumber(m,_=!1){this._checkPendingChanges(),m=m|0;const b=this._lineHeight*m,p=this.getWhitespaceAccumulatedHeightBeforeLineNumber(m+(_?1:0));return b+p+this._paddingTop}getWhitespaceMinWidth(){if(this._checkPendingChanges(),this._minWidth===-1){let m=0;for(let _=0,b=this._arr.length;__}isInTopPadding(m){return this._paddingTop===0?!1:(this._checkPendingChanges(),m=_-this._paddingBottom}getLineNumberAtOrAfterVerticalOffset(m){if(this._checkPendingChanges(),m=m|0,m<0)return 1;const _=this._lineCount|0,b=this._lineHeight;let p=1,n=_;for(;p=t+b)p=o+1;else{if(m>=t)return o;n=o}}return p>_?_:p}getLinesViewportData(m,_){this._checkPendingChanges(),m=m|0,_=_|0;const b=this._lineHeight,p=this.getLineNumberAtOrAfterVerticalOffset(m)|0,n=this.getVerticalOffsetForLineNumber(p)|0;let o=this._lineCount|0,t=this.getFirstWhitespaceIndexAfterLineNumber(p)|0;const i=this.getWhitespacesCount()|0;let s,g;t===-1?(t=i,g=o+1,s=0):(g=this.getAfterLineNumberForWhitespaceIndex(t)|0,s=this.getHeightForWhitespaceIndex(t)|0);let c=n,l=c;const a=5e5;let r=0;n>=a&&(r=Math.floor(n/a)*a,r=Math.floor(r/b)*b,l-=r);const u=[],C=m+(_-m)/2;let f=-1;for(let S=p;S<=o;S++){if(f===-1){const L=c,D=c+b;(L<=C&&CC)&&(f=S)}for(c+=b,u[S-p]=l,l+=b;g===S;)l+=s,c+=s,t++,t>=i?g=o+1:(g=this.getAfterLineNumberForWhitespaceIndex(t)|0,s=this.getHeightForWhitespaceIndex(t)|0);if(c>=_){o=S;break}}f===-1&&(f=o);const h=this.getVerticalOffsetForLineNumber(o)|0;let v=p,w=o;return v_&&w--,{bigNumbersDelta:r,startLineNumber:p,endLineNumber:o,relativeVerticalOffset:u,centeredLineNumber:f,completelyVisibleStartLineNumber:v,completelyVisibleEndLineNumber:w,lineHeight:this._lineHeight}}getVerticalOffsetForWhitespaceIndex(m){this._checkPendingChanges(),m=m|0;const _=this.getAfterLineNumberForWhitespaceIndex(m);let b;_>=1?b=this._lineHeight*_:b=0;let p;return m>0?p=this.getWhitespacesAccumulatedHeight(m-1):p=0,b+p+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(m){this._checkPendingChanges(),m=m|0;let _=0,b=this.getWhitespacesCount()-1;if(b<0)return-1;const p=this.getVerticalOffsetForWhitespaceIndex(b),n=this.getHeightForWhitespaceIndex(b);if(m>=p+n)return-1;for(;_=t+i)_=o+1;else{if(m>=t)return o;b=o}}return _}getWhitespaceAtVerticalOffset(m){this._checkPendingChanges(),m=m|0;const _=this.getWhitespaceIndexAtOrAfterVerticallOffset(m);if(_<0||_>=this.getWhitespacesCount())return null;const b=this.getVerticalOffsetForWhitespaceIndex(_);if(b>m)return null;const p=this.getHeightForWhitespaceIndex(_),n=this.getIdForWhitespaceIndex(_),o=this.getAfterLineNumberForWhitespaceIndex(_);return{id:n,afterLineNumber:o,verticalOffset:b,height:p}}getWhitespaceViewportData(m,_){this._checkPendingChanges(),m=m|0,_=_|0;const b=this.getWhitespaceIndexAtOrAfterVerticallOffset(m),p=this.getWhitespacesCount()-1;if(b<0)return[];const n=[];for(let o=b;o<=p;o++){const t=this.getVerticalOffsetForWhitespaceIndex(o),i=this.getHeightForWhitespaceIndex(o);if(t>=_)break;n.push({id:this.getIdForWhitespaceIndex(o),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(o),verticalOffset:t,height:i})}return n}getWhitespaces(){return this._checkPendingChanges(),this._arr.slice(0)}getWhitespacesCount(){return this._checkPendingChanges(),this._arr.length}getIdForWhitespaceIndex(m){return this._checkPendingChanges(),m=m|0,this._arr[m].id}getAfterLineNumberForWhitespaceIndex(m){return this._checkPendingChanges(),m=m|0,this._arr[m].afterLineNumber}getHeightForWhitespaceIndex(m){return this._checkPendingChanges(),m=m|0,this._arr[m].height}}e.LinesLayout=E}),define(ne[600],se([1,0,4]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewportData=void 0;class k{constructor(E,y,m,_){this.selections=E,this.startLineNumber=y.startLineNumber|0,this.endLineNumber=y.endLineNumber|0,this.relativeVerticalOffset=y.relativeVerticalOffset,this.bigNumbersDelta=y.bigNumbersDelta|0,this.lineHeight=y.lineHeight|0,this.whitespaceViewportData=m,this._model=_,this.visibleRange=new d.Range(y.startLineNumber,this._model.getLineMinColumn(y.startLineNumber),y.endLineNumber,this._model.getLineMaxColumn(y.endLineNumber))}getViewLineRenderingData(E){return this._model.getViewportViewLineRenderingData(this.visibleRange,E)}getDecorationsInViewport(){return this._model.getDecorationsInViewport(this.visibleRange)}}e.ViewportData=k}),define(ne[95],se([1,0,13,11,4]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OverviewRulerDecorationsGroup=e.ViewModelDecoration=e.SingleLineInlineDecoration=e.InlineDecoration=e.ViewLineRenderingData=e.ViewLineData=e.MinimapLinesRenderingData=e.Viewport=void 0;class E{constructor(i,s,g,c){this._viewportBrand=void 0,this.top=i|0,this.left=s|0,this.width=g|0,this.height=c|0}}e.Viewport=E;class y{constructor(i,s){this.tabSize=i,this.data=s}}e.MinimapLinesRenderingData=y;class m{constructor(i,s,g,c,l,a,r){this._viewLineDataBrand=void 0,this.content=i,this.continuesWithWrappedLine=s,this.minColumn=g,this.maxColumn=c,this.startVisibleColumn=l,this.tokens=a,this.inlineDecorations=r}}e.ViewLineData=m;class _{constructor(i,s,g,c,l,a,r,u,C,f){this.minColumn=i,this.maxColumn=s,this.content=g,this.continuesWithWrappedLine=c,this.isBasicASCII=_.isBasicASCII(g,a),this.containsRTL=_.containsRTL(g,this.isBasicASCII,l),this.tokens=r,this.inlineDecorations=u,this.tabSize=C,this.startVisibleColumn=f}static isBasicASCII(i,s){return s?k.isBasicASCII(i):!0}static containsRTL(i,s,g){return!s&&g?k.containsRTL(i):!1}}e.ViewLineRenderingData=_;class b{constructor(i,s,g){this.range=i,this.inlineClassName=s,this.type=g}}e.InlineDecoration=b;class p{constructor(i,s,g,c){this.startOffset=i,this.endOffset=s,this.inlineClassName=g,this.inlineClassNameAffectsLetterSpacing=c}toInlineDecoration(i){return new b(new I.Range(i,this.startOffset+1,i,this.endOffset+1),this.inlineClassName,this.inlineClassNameAffectsLetterSpacing?3:0)}}e.SingleLineInlineDecoration=p;class n{constructor(i,s){this._viewModelDecorationBrand=void 0,this.range=i,this.options=s}}e.ViewModelDecoration=n;class o{constructor(i,s,g){this.color=i,this.zIndex=s,this.data=g}static compareByRenderingProps(i,s){return i.zIndex===s.zIndex?i.colors.color?1:0:i.zIndex-s.zIndex}static equals(i,s){return i.color===s.color&&i.zIndex===s.zIndex&&d.equals(i.data,s.data)}static equalsArr(i,s){return d.equals(i,s,o.equals)}}e.OverviewRulerDecorationsGroup=o}),define(ne[601],se([1,0,40]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GlyphMarginLanesModel=void 0;const k=d.GlyphMarginLane.Right;class I{constructor(y){this.persist=0,this._requiredLanes=1,this.lanes=new Uint8Array(Math.ceil((y+1)*k/8))}reset(y){const m=Math.ceil((y+1)*k/8);this.lanes.length>>3]|=1<>>3]&1<<_%8)&&m.push(b+1),_++;return m.length?m:[d.GlyphMarginLane.Center]}countAtLine(y){let m=k*y,_=0;for(let b=0;b>>3]&1<0?this._projectionData.breakOffsets[g-1]:0,l=this._projectionData.breakOffsets[g];let a;if(this._projectionData.injectionOffsets!==null){const r=this._projectionData.injectionOffsets.map((C,f)=>new I.LineInjectedText(0,0,C+1,this._projectionData.injectionOptions[f],0));a=I.LineInjectedText.applyInjectedText(i.getLineContent(s),r).substring(c,l)}else a=i.getValueInRange({startLineNumber:s,startColumn:c+1,endLineNumber:s,endColumn:l+1});return g>0&&(a=n(this._projectionData.wrappedTextIndentLength)+a),a}getViewLineLength(i,s,g){return this._assertVisible(),this._projectionData.getLineLength(g)}getViewLineMinColumn(i,s,g){return this._assertVisible(),this._projectionData.getMinOutputOffset(g)+1}getViewLineMaxColumn(i,s,g){return this._assertVisible(),this._projectionData.getMaxOutputOffset(g)+1}getViewLineData(i,s,g){const c=new Array;return this.getViewLinesData(i,s,g,1,0,[!0],c),c[0]}getViewLinesData(i,s,g,c,l,a,r){this._assertVisible();const u=this._projectionData,C=u.injectionOffsets,f=u.injectionOptions;let h=null;if(C){h=[];let w=0,S=0;for(let L=0;L0?u.breakOffsets[L-1]:0,M=u.breakOffsets[L];for(;SM)break;if(T0?u.wrappedTextIndentLength:0,x=F+Math.max(P-T,0),W=F+Math.min(N-T,M-T);x!==W&&D.push(new E.SingleLineInlineDecoration(x,W,O.inlineClassName,O.inlineClassNameAffectsLetterSpacing))}}if(N<=M)w+=A,S++;else break}}}let v;C?v=i.tokenization.getLineTokens(s).withInserted(C.map((w,S)=>({offset:w,text:f[S].content,tokenMetadata:d.LineTokens.defaultTokenMetadata}))):v=i.tokenization.getLineTokens(s);for(let w=g;w0?c.wrappedTextIndentLength:0,a=g>0?c.breakOffsets[g-1]:0,r=c.breakOffsets[g],u=i.sliceAndInflate(a,r,l);let C=u.getLineContent();g>0&&(C=n(c.wrappedTextIndentLength)+C);const f=this._projectionData.getMinOutputOffset(g)+1,h=C.length+1,v=g+1=p.length)for(let i=1;i<=t;i++)p[i]=o(i);return p[t]}function o(t){return new Array(t+1).join(" ")}}),define(ne[603],se([1,0,11,144,132,325]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MonospaceLineBreaksComputerFactory=void 0;class y{static create(c){return new y(c.get(135),c.get(134))}constructor(c,l){this.classifier=new m(c,l)}createLineBreaksComputer(c,l,a,r,u){const C=[],f=[],h=[];return{addRequest:(v,w,S)=>{C.push(v),f.push(w),h.push(S)},finalize:()=>{const v=c.typicalFullwidthCharacterWidth/c.typicalHalfwidthCharacterWidth,w=[];for(let S=0,L=C.length;S=0&&c<256?this._asciiMap[c]:c>=12352&&c<=12543||c>=13312&&c<=19903||c>=19968&&c<=40959?3:this._map.get(c)||this._defaultValue}}let _=[],b=[];function p(g,c,l,a,r,u,C,f){if(r===-1)return null;const h=l.length;if(h<=1)return null;const v=f==="keepAll",w=c.breakOffsets,S=c.breakOffsetsVisibleColumn,L=s(l,a,r,u,C),D=r-L,T=_,M=b;let A=0,P=0,N=0,O=r;const F=w.length;let x=0;if(x>=0){let W=Math.abs(S[x]-O);for(;x+1=W)break;W=V,x++}}for(;xW&&(W=P,V=N);let q=0,H=0,z=0,U=0;if(V<=O){let Y=V,G=W===0?0:l.charCodeAt(W-1),K=W===0?0:g.get(G),R=!0;for(let J=W;JP&&i(G,K,ue,he,v)&&(q=ie,H=Y),Y+=pe,Y>O){ie>P?(z=ie,U=Y-pe):(z=J+1,U=Y),Y-H>D&&(q=0),R=!1;break}G=ue,K=he}if(R){A>0&&(T[A]=w[w.length-1],M[A]=S[w.length-1],A++);break}}if(q===0){let Y=V,G=l.charCodeAt(W),K=g.get(G),R=!1;for(let J=W-1;J>=P;J--){const ie=J+1,ue=l.charCodeAt(J);if(ue===9){R=!0;break}let he,pe;if(d.isLowSurrogate(ue)?(J--,he=0,pe=2):(he=g.get(ue),pe=d.isFullWidthCharacter(ue)?u:1),Y<=O){if(z===0&&(z=ie,U=Y),Y<=O-D)break;if(i(ue,he,G,K,v)){q=ie,H=Y;break}}Y-=pe,G=ue,K=he}if(q!==0){const J=D-(U-H);if(J<=a){const ie=l.charCodeAt(z);let ue;d.isHighSurrogate(ie)?ue=2:ue=o(ie,U,a,u),J-ue<0&&(q=0)}}if(R){x--;continue}}if(q===0&&(q=z,H=U),q<=P){const Y=l.charCodeAt(P);d.isHighSurrogate(Y)?(q=P+2,H=N+2):(q=P+1,H=N+o(Y,N,a,u))}for(P=q,T[A]=q,N=H,M[A]=H,A++,O=H+D;x<0||x=j)break;j=Y,x++}}return A===0?null:(T.length=A,M.length=A,_=c.breakOffsets,b=c.breakOffsetsVisibleColumn,c.breakOffsets=T,c.breakOffsetsVisibleColumn=M,c.wrappedTextIndentLength=L,c)}function n(g,c,l,a,r,u,C,f){const h=I.LineInjectedText.applyInjectedText(c,l);let v,w;if(l&&l.length>0?(v=l.map(H=>H.options),w=l.map(H=>H.column-1)):(v=null,w=null),r===-1)return v?new E.ModelLineProjectionData(w,v,[h.length],[],0):null;const S=h.length;if(S<=1)return v?new E.ModelLineProjectionData(w,v,[h.length],[],0):null;const L=f==="keepAll",D=s(h,a,r,u,C),T=r-D,M=[],A=[];let P=0,N=0,O=0,F=r,x=h.charCodeAt(0),W=g.get(x),V=o(x,0,a,u),q=1;d.isHighSurrogate(x)&&(V+=1,x=h.charCodeAt(1),W=g.get(x),q++);for(let H=q;HF&&((N===0||V-O>T)&&(N=z,O=V-Y),M[P]=N,A[P]=O,P++,F=O+T,N=0),x=U,W=j}return P===0&&(!l||l.length===0)?null:(M[P]=S,A[P]=V,new E.ModelLineProjectionData(w,v,M,A,D))}function o(g,c,l,a){return g===9?l-c%l:d.isFullWidthCharacter(g)||g<32?a:1}function t(g,c){return c-g%c}function i(g,c,l,a,r){return l!==32&&(c===2&&a!==2||c!==1&&a===1||!r&&c===3&&a!==2||!r&&a===3&&c!==1)}function s(g,c,l,a,r){let u=0;if(r!==0){const C=d.firstNonWhitespaceIndex(g);if(C!==-1){for(let h=0;hl&&(u=0)}}return u}}),define(ne[332],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OverviewZoneManager=e.OverviewRulerZone=e.ColorZone=void 0;class d{constructor(y,m,_){this._colorZoneBrand=void 0,this.from=y|0,this.to=m|0,this.colorId=_|0}static compare(y,m){return y.colorId===m.colorId?y.from===m.from?y.to-m.to:y.from-m.from:y.colorId-m.colorId}}e.ColorZone=d;class k{constructor(y,m,_,b){this._overviewRulerZoneBrand=void 0,this.startLineNumber=y,this.endLineNumber=m,this.heightInLines=_,this.color=b,this._colorZone=null}static compare(y,m){return y.color===m.color?y.startLineNumber===m.startLineNumber?y.heightInLines===m.heightInLines?y.endLineNumber-m.endLineNumber:y.heightInLines-m.heightInLines:y.startLineNumber-m.startLineNumber:y.color_&&(r=_-u);const C=s.color;let f=this._color2Id[C];f||(f=++this._lastAssignedId,this._color2Id[C]=f,this._id2Color[f]=C);const h=new d(r-u,r+u,f);s.setColorZone(h),o.push(h)}return this._colorZonesInvalid=!1,o.sort(d.compare),o}}e.OverviewZoneManager=I}),define(ne[604],se([1,0,39,332,170]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OverviewRuler=void 0;class E extends I.ViewEventHandler{constructor(m,_){super(),this._context=m;const b=this._context.configuration.options;this._domNode=(0,d.createFastDomNode)(document.createElement("canvas")),this._domNode.setClassName(_),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._zoneManager=new k.OverviewZoneManager(p=>this._context.viewLayout.getVerticalOffsetForLineNumber(p)),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(b.get(67)),this._zoneManager.setPixelRatio(b.get(144)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(m){const _=this._context.configuration.options;return m.hasChanged(67)&&(this._zoneManager.setLineHeight(_.get(67)),this._render()),m.hasChanged(144)&&(this._zoneManager.setPixelRatio(_.get(144)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}onFlushed(m){return this._render(),!0}onScrollChanged(m){return m.scrollHeightChanged&&(this._zoneManager.setOuterHeight(m.scrollHeight),this._render()),!0}onZonesChanged(m){return this._render(),!0}getDomNode(){return this._domNode.domNode}setLayout(m){this._domNode.setTop(m.top),this._domNode.setRight(m.right);let _=!1;_=this._zoneManager.setDOMWidth(m.width)||_,_=this._zoneManager.setDOMHeight(m.height)||_,_&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}setZones(m){this._zoneManager.setZones(m),this._render()}_render(){if(this._zoneManager.getOuterHeight()===0)return!1;const m=this._zoneManager.getCanvasWidth(),_=this._zoneManager.getCanvasHeight(),b=this._zoneManager.resolveColorZones(),p=this._zoneManager.getId2Color(),n=this._domNode.domNode.getContext("2d");return n.clearRect(0,0,m,_),b.length>0&&this._renderOneLane(n,b,p,m),!0}_renderOneLane(m,_,b,p){let n=0,o=0,t=0;for(const i of _){const s=i.colorId,g=i.from,c=i.to;s!==n?(m.fillRect(0,o,p,t-o),n=s,m.fillStyle=b[n],o=g,t=c):t>=g?t=Math.max(t,c):(m.fillRect(0,o,p,t-o),o=g,t=c)}m.fillRect(0,o,p,t-o)}}e.OverviewRuler=E}),define(ne[605],se([1,0,562]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewContext=void 0;class k{constructor(E,y,m){this.configuration=E,this.theme=new d.EditorTheme(y),this.viewModel=m,this.viewLayout=m.viewLayout}addEventHandler(E){this.viewModel.addViewEventHandler(E)}removeEventHandler(E){this.viewModel.removeViewEventHandler(E)}}e.ViewContext=k}),define(ne[244],se([1,0,6,2]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ModelTokensChangedEvent=e.ModelOptionsChangedEvent=e.ModelContentChangedEvent=e.ModelLanguageConfigurationChangedEvent=e.ModelLanguageChangedEvent=e.ModelDecorationsChangedEvent=e.ReadOnlyEditAttemptEvent=e.CursorStateChangedEvent=e.HiddenAreasChangedEvent=e.ViewZonesChangedEvent=e.ScrollChangedEvent=e.FocusChangedEvent=e.ContentSizeChangedEvent=e.ViewModelEventsCollector=e.ViewModelEventDispatcher=void 0;class I extends k.Disposable{constructor(){super(),this._onEvent=this._register(new d.Emitter),this.onEvent=this._onEvent.event,this._eventHandlers=[],this._viewEventQueue=null,this._isConsumingViewEventQueue=!1,this._collector=null,this._collectorCnt=0,this._outgoingEvents=[]}emitOutgoingEvent(r){this._addOutgoingEvent(r),this._emitOutgoingEvents()}_addOutgoingEvent(r){for(let u=0,C=this._outgoingEvents.length;u0;){if(this._collector||this._isConsumingViewEventQueue)return;const r=this._outgoingEvents.shift();r.isNoOp()||this._onEvent.fire(r)}}addViewEventHandler(r){for(let u=0,C=this._eventHandlers.length;u0&&this._emitMany(u)}this._emitOutgoingEvents()}emitSingleViewEvent(r){try{this.beginEmitViewEvents().emitViewEvent(r)}finally{this.endEmitViewEvents()}}_emitMany(r){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(r):this._viewEventQueue=r,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}_consumeViewEventQueue(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}_doConsumeQueue(){for(;this._viewEventQueue;){const r=this._viewEventQueue;this._viewEventQueue=null;const u=this._eventHandlers.slice(0);for(const C of u)C.handleEvents(r)}}}e.ViewModelEventDispatcher=I;class E{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(r){this.viewEvents.push(r)}emitOutgoingEvent(r){this.outgoingEvents.push(r)}}e.ViewModelEventsCollector=E;class y{constructor(r,u,C,f){this.kind=0,this._oldContentWidth=r,this._oldContentHeight=u,this.contentWidth=C,this.contentHeight=f,this.contentWidthChanged=this._oldContentWidth!==this.contentWidth,this.contentHeightChanged=this._oldContentHeight!==this.contentHeight}isNoOp(){return!this.contentWidthChanged&&!this.contentHeightChanged}attemptToMerge(r){return r.kind!==this.kind?null:new y(this._oldContentWidth,this._oldContentHeight,r.contentWidth,r.contentHeight)}}e.ContentSizeChangedEvent=y;class m{constructor(r,u){this.kind=1,this.oldHasFocus=r,this.hasFocus=u}isNoOp(){return this.oldHasFocus===this.hasFocus}attemptToMerge(r){return r.kind!==this.kind?null:new m(this.oldHasFocus,r.hasFocus)}}e.FocusChangedEvent=m;class _{constructor(r,u,C,f,h,v,w,S){this.kind=2,this._oldScrollWidth=r,this._oldScrollLeft=u,this._oldScrollHeight=C,this._oldScrollTop=f,this.scrollWidth=h,this.scrollLeft=v,this.scrollHeight=w,this.scrollTop=S,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft,this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}isNoOp(){return!this.scrollWidthChanged&&!this.scrollLeftChanged&&!this.scrollHeightChanged&&!this.scrollTopChanged}attemptToMerge(r){return r.kind!==this.kind?null:new _(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,r.scrollWidth,r.scrollLeft,r.scrollHeight,r.scrollTop)}}e.ScrollChangedEvent=_;class b{constructor(){this.kind=3}isNoOp(){return!1}attemptToMerge(r){return r.kind!==this.kind?null:this}}e.ViewZonesChangedEvent=b;class p{constructor(){this.kind=4}isNoOp(){return!1}attemptToMerge(r){return r.kind!==this.kind?null:this}}e.HiddenAreasChangedEvent=p;class n{constructor(r,u,C,f,h,v,w){this.kind=6,this.oldSelections=r,this.selections=u,this.oldModelVersionId=C,this.modelVersionId=f,this.source=h,this.reason=v,this.reachedMaxCursorCount=w}static _selectionsAreEqual(r,u){if(!r&&!u)return!0;if(!r||!u)return!1;const C=r.length,f=u.length;if(C!==f)return!1;for(let h=0;h=i?0:g.horizontalScrollbarSize}_getContentHeight(t,i,s){const g=this._configuration.options;let c=this._linesLayout.getLinesTotalHeight();return g.get(106)?c+=Math.max(0,i-g.get(67)-g.get(84).bottom):g.get(104).ignoreHorizontalScrollbarInContentHeight||(c+=this._getHorizontalScrollbarHeight(t,s)),c}_updateHeight(){const t=this._scrollable.getScrollDimensions(),i=t.width,s=t.height,g=t.contentWidth;this._scrollable.setScrollDimensions(new b(i,t.contentWidth,s,this._getContentHeight(i,s,g)))}getCurrentViewport(){const t=this._scrollable.getScrollDimensions(),i=this._scrollable.getCurrentScrollPosition();return new y.Viewport(i.scrollTop,i.scrollLeft,t.width,t.height)}getFutureViewport(){const t=this._scrollable.getScrollDimensions(),i=this._scrollable.getFutureScrollPosition();return new y.Viewport(i.scrollTop,i.scrollLeft,t.width,t.height)}_computeContentWidth(){const t=this._configuration.options,i=this._maxLineWidth,s=t.get(147),g=t.get(50),c=t.get(146);if(s.isViewportWrapping){const l=t.get(73);return i>c.contentWidth+g.typicalHalfwidthCharacterWidth&&l.enabled&&l.side==="right"?i+c.verticalScrollbarWidth:i}else{const l=t.get(105)*g.typicalHalfwidthCharacterWidth,a=this._linesLayout.getWhitespaceMinWidth();return Math.max(i+l+c.verticalScrollbarWidth,a,this._overlayWidgetsMinWidth)}}setMaxLineWidth(t){this._maxLineWidth=t,this._updateContentWidth()}setOverlayWidgetsMinWidth(t){this._overlayWidgetsMinWidth=t,this._updateContentWidth()}_updateContentWidth(){const t=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new b(t.width,this._computeContentWidth(),t.height,t.contentHeight)),this._updateHeight()}saveState(){const t=this._scrollable.getFutureScrollPosition(),i=t.scrollTop,s=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(i),g=this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(s);return{scrollTop:i,scrollTopWithoutViewZones:i-g,scrollLeft:t.scrollLeft}}changeWhitespace(t){const i=this._linesLayout.changeWhitespace(t);return i&&this.onHeightMaybeChanged(),i}getVerticalOffsetForLineNumber(t,i=!1){return this._linesLayout.getVerticalOffsetForLineNumber(t,i)}getVerticalOffsetAfterLineNumber(t,i=!1){return this._linesLayout.getVerticalOffsetAfterLineNumber(t,i)}isAfterLines(t){return this._linesLayout.isAfterLines(t)}isInTopPadding(t){return this._linesLayout.isInTopPadding(t)}isInBottomPadding(t){return this._linesLayout.isInBottomPadding(t)}getLineNumberAtVerticalOffset(t){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t)}getWhitespaceAtVerticalOffset(t){return this._linesLayout.getWhitespaceAtVerticalOffset(t)}getLinesViewportData(){const t=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(t.top,t.top+t.height)}getLinesViewportDataAtScrollTop(t){const i=this._scrollable.getScrollDimensions();return t+i.height>i.scrollHeight&&(t=i.scrollHeight-i.height),t<0&&(t=0),this._linesLayout.getLinesViewportData(t,t+i.height)}getWhitespaceViewportData(){const t=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(t.top,t.top+t.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(t){return this._scrollable.validateScrollPosition(t)}setScrollPosition(t,i){i===1?this._scrollable.setScrollPositionNow(t):this._scrollable.setScrollPositionSmooth(t)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}deltaScrollNow(t,i){const s=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:s.scrollLeft+t,scrollTop:s.scrollTop+i})}}e.ViewLayout=n}),define(ne[607],se([1,0,4,23]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MoveCaretCommand=void 0;class I{constructor(y,m){this._selection=y,this._isMovingLeft=m}getEditOperations(y,m){if(this._selection.startLineNumber!==this._selection.endLineNumber||this._selection.isEmpty())return;const _=this._selection.startLineNumber,b=this._selection.startColumn,p=this._selection.endColumn;if(!(this._isMovingLeft&&b===1)&&!(!this._isMovingLeft&&p===y.getLineMaxColumn(_)))if(this._isMovingLeft){const n=new d.Range(_,b-1,_,b),o=y.getValueInRange(n);m.addEditOperation(n,null),m.addEditOperation(new d.Range(_,p,_,p),o)}else{const n=new d.Range(_,p,_,p+1),o=y.getValueInRange(n);m.addEditOperation(n,null),m.addEditOperation(new d.Range(_,b,_,b),o)}}computeCursorState(y,m){return this._isMovingLeft?new k.Selection(this._selection.startLineNumber,this._selection.startColumn-1,this._selection.endLineNumber,this._selection.endColumn-1):new k.Selection(this._selection.startLineNumber,this._selection.startColumn+1,this._selection.endLineNumber,this._selection.endColumn+1)}}e.MoveCaretCommand=I}),define(ne[134],se([1,0,8,91]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeActionItem=e.CodeActionCommandArgs=e.CodeActionTriggerSource=e.CodeActionKind=void 0,e.mayIncludeActionsOfKind=E,e.filtersAction=y,e.CodeActionKind=new class{constructor(){this.QuickFix=new k.HierarchicalKind("quickfix"),this.Refactor=new k.HierarchicalKind("refactor"),this.RefactorExtract=this.Refactor.append("extract"),this.RefactorInline=this.Refactor.append("inline"),this.RefactorMove=this.Refactor.append("move"),this.RefactorRewrite=this.Refactor.append("rewrite"),this.Notebook=new k.HierarchicalKind("notebook"),this.Source=new k.HierarchicalKind("source"),this.SourceOrganizeImports=this.Source.append("organizeImports"),this.SourceFixAll=this.Source.append("fixAll"),this.SurroundWith=this.Refactor.append("surround")}};var I;(function(p){p.Refactor="refactor",p.RefactorPreview="refactor preview",p.Lightbulb="lightbulb",p.Default="other (default)",p.SourceAction="source action",p.QuickFix="quick fix action",p.FixAll="fix all",p.OrganizeImports="organize imports",p.AutoFix="auto fix",p.QuickFixHover="quick fix hover window",p.OnSave="save participants",p.ProblemsView="problems view"})(I||(e.CodeActionTriggerSource=I={}));function E(p,n){return!(p.include&&!p.include.intersects(n)||p.excludes&&p.excludes.some(o=>m(n,o,p.include))||!p.includeSourceActions&&e.CodeActionKind.Source.contains(n))}function y(p,n){const o=n.kind?new k.HierarchicalKind(n.kind):void 0;return!(p.include&&(!o||!p.include.contains(o))||p.excludes&&o&&p.excludes.some(t=>m(o,t,p.include))||!p.includeSourceActions&&o&&e.CodeActionKind.Source.contains(o)||p.onlyIncludePreferredActions&&!n.isPreferred)}function m(p,n,o){return!(!n.contains(p)||o&&n.contains(o))}class _{static fromUser(n,o){return!n||typeof n!="object"?new _(o.kind,o.apply,!1):new _(_.getKindFromUser(n,o.kind),_.getApplyFromUser(n,o.apply),_.getPreferredUser(n))}static getApplyFromUser(n,o){switch(typeof n.apply=="string"?n.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return o}}static getKindFromUser(n,o){return typeof n.kind=="string"?new k.HierarchicalKind(n.kind):o}static getPreferredUser(n){return typeof n.preferred=="boolean"?n.preferred:!1}constructor(n,o,t){this.kind=n,this.apply=o,this.preferred=t}}e.CodeActionCommandArgs=_;class b{constructor(n,o,t){this.action=n,this.provider=o,this.highlightRange=t}async resolve(n){if(this.provider?.resolveCodeAction&&!this.action.edit){let o;try{o=await this.provider.resolveCodeAction(this.action,n)}catch(t){(0,d.onUnexpectedExternalError)(t)}o&&(this.action.edit=o.edit)}return this}}e.CodeActionItem=b}),define(ne[608],se([1,0,6]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColorPickerModel=void 0;class k{get color(){return this._color}set color(E){this._color.equals(E)||(this._color=E,this._onDidChangeColor.fire(E))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(E){this._colorPresentations=E,this.presentationIndex>E.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}constructor(E,y,m){this.presentationIndex=m,this._onColorFlushed=new d.Emitter,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new d.Emitter,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new d.Emitter,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=E,this._color=E,this._colorPresentations=y}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(E,y){let m=-1;for(let _=0;_o)return!1;for(let t=0;t=65&&i<=90&&i+32===s)&&!(s>=65&&s<=90&&s+32===i))return!1}return!0}_createOperationsForBlockComment(_,b,p,n,o,t){const i=_.startLineNumber,s=_.startColumn,g=_.endLineNumber,c=_.endColumn,l=o.getLineContent(i),a=o.getLineContent(g);let r=l.lastIndexOf(b,s-1+b.length),u=a.indexOf(p,c-1-p.length);if(r!==-1&&u!==-1)if(i===g)l.substring(r+b.length,u).indexOf(p)>=0&&(r=-1,u=-1);else{const f=l.substring(r+b.length),h=a.substring(0,u);(f.indexOf(p)>=0||h.indexOf(p)>=0)&&(r=-1,u=-1)}let C;r!==-1&&u!==-1?(n&&r+b.length0&&a.charCodeAt(u-1)===32&&(p=" "+p,u-=1),C=y._createRemoveBlockCommentOperations(new I.Range(i,r+b.length+1,g,u+1),b,p)):(C=y._createAddBlockCommentOperations(_,b,p,this._insertSpace),this._usedEndToken=C.length===1?p:null);for(const f of C)t.addTrackedEditOperation(f.range,f.text)}static _createRemoveBlockCommentOperations(_,b,p){const n=[];return I.Range.isEmpty(_)?n.push(d.EditOperation.delete(new I.Range(_.startLineNumber,_.startColumn-b.length,_.endLineNumber,_.endColumn+p.length))):(n.push(d.EditOperation.delete(new I.Range(_.startLineNumber,_.startColumn-b.length,_.startLineNumber,_.startColumn))),n.push(d.EditOperation.delete(new I.Range(_.endLineNumber,_.endColumn,_.endLineNumber,_.endColumn+p.length)))),n}static _createAddBlockCommentOperations(_,b,p,n){const o=[];return I.Range.isEmpty(_)?o.push(d.EditOperation.replace(new I.Range(_.startLineNumber,_.startColumn,_.endLineNumber,_.endColumn),b+" "+p)):(o.push(d.EditOperation.insert(new k.Position(_.startLineNumber,_.startColumn),b+(n?" ":""))),o.push(d.EditOperation.insert(new k.Position(_.endLineNumber,_.endColumn),(n?" ":"")+p))),o}getEditOperations(_,b){const p=this._selection.startLineNumber,n=this._selection.startColumn;_.tokenization.tokenizeIfCheap(p);const o=_.getLanguageIdAtPosition(p,n),t=this.languageConfigurationService.getLanguageConfiguration(o).comments;!t||!t.blockCommentStartToken||!t.blockCommentEndToken||this._createOperationsForBlockComment(this._selection,t.blockCommentStartToken,t.blockCommentEndToken,this._insertSpace,_,b)}computeCursorState(_,b){const p=b.getInverseEditOperations();if(p.length===2){const n=p[0],o=p[1];return new E.Selection(n.range.endLineNumber,n.range.endColumn,o.range.startLineNumber,o.range.startColumn)}else{const n=p[0].range,o=this._usedEndToken?-this._usedEndToken.length-1:0;return new E.Selection(n.endLineNumber,n.endColumn+o,n.endLineNumber,n.endColumn+o)}}}e.BlockCommentCommand=y}),define(ne[609],se([1,0,11,75,9,4,23,333]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LineCommentCommand=void 0;class _{constructor(p,n,o,t,i,s,g){this.languageConfigurationService=p,this._selection=n,this._indentSize=o,this._type=t,this._insertSpace=i,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=s,this._ignoreFirstLine=g||!1}static _gatherPreflightCommentStrings(p,n,o,t){p.tokenization.tokenizeIfCheap(n);const i=p.getLanguageIdAtPosition(n,1),s=t.getLanguageConfiguration(i).comments,g=s?s.lineCommentToken:null;if(!g)return null;const c=[];for(let l=0,a=o-n+1;li?n[c].commentStrOffset=s-1:n[c].commentStrOffset=s}}}e.LineCommentCommand=_}),define(ne[610],se([1,0,4,23]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DragAndDropCommand=void 0;class I{constructor(y,m,_){this.selection=y,this.targetPosition=m,this.copy=_,this.targetSelection=null}getEditOperations(y,m){const _=y.getValueInRange(this.selection);if(this.copy||m.addEditOperation(this.selection,null),m.addEditOperation(new d.Range(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),_),this.selection.containsPosition(this.targetPosition)&&!(this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition)))){this.targetSelection=this.selection;return}if(this.copy){this.targetSelection=new k.Selection(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber>this.selection.endLineNumber){this.targetSelection=new k.Selection(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber0){const m=[];for(let p=0;pd.Range.compareRangesUsingStarts(p.range,n.range));const _=[];let b=m[0];for(let p=1;p0){const c=[],l=s.caseOps.length;let a=0;for(let r=0,u=g.length;r=l){c.push(g.slice(r));break}switch(s.caseOps[a]){case"U":c.push(g[r].toUpperCase());break;case"u":c.push(g[r].toUpperCase()),a++;break;case"L":c.push(g[r].toLowerCase());break;case"l":c.push(g[r].toLowerCase()),a++;break;default:c.push(g[r])}}g=c.join("")}o+=g}return o}static _substitute(p,n){if(n===null)return"";if(p===0)return n[0];let o="";for(;p>0;){if(p=t)break;const s=b.charCodeAt(o);switch(s){case 92:n.emitUnchanged(o-1),n.emitStatic("\\",o+1);break;case 110:n.emitUnchanged(o-1),n.emitStatic(` +`,o+1);break;case 116:n.emitUnchanged(o-1),n.emitStatic(" ",o+1);break;case 117:case 85:case 108:case 76:n.emitUnchanged(o-1),n.emitStatic("",o+1),p.push(String.fromCharCode(s));break}continue}if(i===36){if(o++,o>=t)break;const s=b.charCodeAt(o);if(s===36){n.emitUnchanged(o-1),n.emitStatic("$",o+1);continue}if(s===48||s===38){n.emitUnchanged(o-1),n.emitMatchIndex(0,o+1,p),p.length=0;continue}if(49<=s&&s<=57){let g=s-48;if(o+1e.MAX_FOLDING_REGIONS)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=m,this._endIndexes=_,this._collapseStates=new k(m.length),this._userDefinedStates=new k(m.length),this._recoveredStates=new k(m.length),this._types=b,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const m=[],_=(b,p)=>{const n=m[m.length-1];return this.getStartLineNumber(n)<=b&&this.getEndLineNumber(n)>=p};for(let b=0,p=this._startIndexes.length;be.MAX_LINE_NUMBER||o>e.MAX_LINE_NUMBER)throw new Error("startLineNumber or endLineNumber must not exceed "+e.MAX_LINE_NUMBER);for(;m.length>0&&!_(n,o);)m.pop();const t=m.length>0?m[m.length-1]:-1;m.push(b),this._startIndexes[b]=n+((t&255)<<24),this._endIndexes[b]=o+((t&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(m){return this._startIndexes[m]&e.MAX_LINE_NUMBER}getEndLineNumber(m){return this._endIndexes[m]&e.MAX_LINE_NUMBER}getType(m){return this._types?this._types[m]:void 0}hasTypes(){return!!this._types}isCollapsed(m){return this._collapseStates.get(m)}setCollapsed(m,_){this._collapseStates.set(m,_)}isUserDefined(m){return this._userDefinedStates.get(m)}setUserDefined(m,_){return this._userDefinedStates.set(m,_)}isRecovered(m){return this._recoveredStates.get(m)}setRecovered(m,_){return this._recoveredStates.set(m,_)}getSource(m){return this.isUserDefined(m)?1:this.isRecovered(m)?2:0}setSource(m,_){_===1?(this.setUserDefined(m,!0),this.setRecovered(m,!1)):_===2?(this.setUserDefined(m,!1),this.setRecovered(m,!0)):(this.setUserDefined(m,!1),this.setRecovered(m,!1))}setCollapsedAllOfType(m,_){let b=!1;if(this._types)for(let p=0;p>>24)+((this._endIndexes[m]&d)>>>16);return _===e.MAX_FOLDING_REGIONS?-1:_}contains(m,_){return this.getStartLineNumber(m)<=_&&this.getEndLineNumber(m)>=_}findIndex(m){let _=0,b=this._startIndexes.length;if(b===0)return-1;for(;_=0){if(this.getEndLineNumber(_)>=m)return _;for(_=this.getParentIndex(_);_!==-1;){if(this.contains(_,m))return _;_=this.getParentIndex(_)}}return-1}toString(){const m=[];for(let _=0;_Array.isArray(C)?h=>hh=c.startLineNumber))g&&g.startLineNumber===c.startLineNumber?(c.source===1?C=c:(C=g,C.isCollapsed=c.isCollapsed&&(g.endLineNumber===c.endLineNumber||!p?.startsInside(g.startLineNumber+1,g.endLineNumber+1)),C.source=0),g=o(++i)):(C=c,c.isCollapsed&&c.source===0&&(C.source=2)),c=t(++s);else{let f=s,h=c;for(;;){if(!h||h.startLineNumber>g.endLineNumber){C=g;break}if(h.source===1&&h.endLineNumber>g.endLineNumber)break;h=t(++f)}g=o(++i)}if(C){for(;a&&a.endLineNumberC.startLineNumber&&C.startLineNumber>r&&C.endLineNumber<=b&&(!a||a.endLineNumber>=C.endLineNumber)&&(u.push(C),r=C.startLineNumber,a&&l.push(a),a=C)}}return u}}e.FoldingRegions=I;class E{constructor(m,_){this.ranges=m,this.index=_}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(m){return m.startLineNumber<=this.startLineNumber&&m.endLineNumber>=this.endLineNumber}containsLine(m){return this.startLineNumber<=m&&m<=this.endLineNumber}}e.FoldingRegion=E}),define(ne[334],se([1,0,6,203,129]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FoldingModel=void 0,e.toggleCollapseState=y,e.setCollapseStateLevelsDown=m,e.setCollapseStateLevelsUp=_,e.setCollapseStateUp=b,e.setCollapseStateAtLevel=p,e.setCollapseStateForRest=n,e.setCollapseStateForMatchingLines=o,e.setCollapseStateForType=t,e.getParentFoldLine=i,e.getPreviousFoldLine=s,e.getNextFoldLine=g;class E{get regions(){return this._regions}get textModel(){return this._textModel}constructor(l,a){this._updateEventEmitter=new d.Emitter,this.onDidChange=this._updateEventEmitter.event,this._textModel=l,this._decorationProvider=a,this._regions=new k.FoldingRegions(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(l){if(!l.length)return;l=l.sort((r,u)=>r.regionIndex-u.regionIndex);const a={};this._decorationProvider.changeDecorations(r=>{let u=0,C=-1,f=-1;const h=v=>{for(;uf&&(f=w),u++}};for(const v of l){const w=v.regionIndex,S=this._editorDecorationIds[w];if(S&&!a[S]){a[S]=!0,h(w);const L=!this._regions.isCollapsed(w);this._regions.setCollapsed(w,L),C=Math.max(C,this._regions.getEndLineNumber(w))}}h(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:l})}removeManualRanges(l){const a=new Array,r=u=>{for(const C of l)if(!(C.startLineNumber>u.endLineNumber||u.startLineNumber>C.endLineNumber))return!0;return!1};for(let u=0;ur&&(r=h)}this._decorationProvider.changeDecorations(u=>this._editorDecorationIds=u.deltaDecorations(this._editorDecorationIds,a)),this._regions=l,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(l){const a=[];for(let r=0,u=this._regions.length;r=f.endLineNumber||f.startLineNumber<1||f.endLineNumber>r)continue;const h=this._getLinesChecksum(f.startLineNumber+1,f.endLineNumber);a.push({startLineNumber:f.startLineNumber,endLineNumber:f.endLineNumber,isCollapsed:f.isCollapsed,source:f.source,checksum:h})}return a.length>0?a:void 0}applyMemento(l){if(!Array.isArray(l))return;const a=[],r=this._textModel.getLineCount();for(const C of l){if(C.startLineNumber>=C.endLineNumber||C.startLineNumber<1||C.endLineNumber>r)continue;const f=this._getLinesChecksum(C.startLineNumber+1,C.endLineNumber);(!C.checksum||f===C.checksum)&&a.push({startLineNumber:C.startLineNumber,endLineNumber:C.endLineNumber,type:void 0,isCollapsed:C.isCollapsed??!0,source:C.source??0})}const u=k.FoldingRegions.sanitizeAndMerge(this._regions,a,r);this.updatePost(k.FoldingRegions.fromFoldRanges(u))}_getLinesChecksum(l,a){return(0,I.hash)(this._textModel.getLineContent(l)+this._textModel.getLineContent(a))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(l,a){const r=[];if(this._regions){let u=this._regions.findRange(l),C=1;for(;u>=0;){const f=this._regions.toRegion(u);(!a||a(f,C))&&r.push(f),C++,u=f.parentIndex}}return r}getRegionAtLine(l){if(this._regions){const a=this._regions.findRange(l);if(a>=0)return this._regions.toRegion(a)}return null}getRegionsInside(l,a){const r=[],u=l?l.regionIndex+1:0,C=l?l.endLineNumber:Number.MAX_VALUE;if(a&&a.length===2){const f=[];for(let h=u,v=this._regions.length;h0&&!w.containedBy(f[f.length-1]);)f.pop();f.push(w),a(w,f.length)&&r.push(w)}else break}}else for(let f=u,h=this._regions.length;f1){const h=c.getRegionsInside(C,(v,w)=>v.isCollapsed!==f&&w0)for(const C of r){const f=c.getRegionAtLine(C);if(f&&(f.isCollapsed!==l&&u.push(f),a>1)){const h=c.getRegionsInside(f,(v,w)=>v.isCollapsed!==l&&wf.isCollapsed!==l&&hh.isCollapsed!==l&&v<=a);u.push(...f)}c.toggleCollapseState(u)}function b(c,l,a){const r=[];for(const u of a){const C=c.getAllRegionsAtLine(u,f=>f.isCollapsed!==l);C.length>0&&r.push(C[0])}c.toggleCollapseState(r)}function p(c,l,a,r){const u=(f,h)=>h===l&&f.isCollapsed!==a&&!r.some(v=>f.containsLine(v)),C=c.getRegionsInside(null,u);c.toggleCollapseState(C)}function n(c,l,a){const r=[];for(const f of a){const h=c.getAllRegionsAtLine(f,void 0);h.length>0&&r.push(h[0])}const u=f=>r.every(h=>!h.containedBy(f)&&!f.containedBy(h))&&f.isCollapsed!==l,C=c.getRegionsInside(null,u);c.toggleCollapseState(C)}function o(c,l,a){const r=c.textModel,u=c.regions,C=[];for(let f=u.length-1;f>=0;f--)if(a!==u.isCollapsed(f)){const h=u.getStartLineNumber(f);l.test(r.getLineContent(h))&&C.push(u.toRegion(f))}c.toggleCollapseState(C)}function t(c,l,a){const r=c.regions,u=[];for(let C=r.length-1;C>=0;C--)a!==r.isCollapsed(C)&&l===r.getType(C)&&u.push(r.toRegion(C));c.toggleCollapseState(u)}function i(c,l){let a=null;const r=l.getRegionAtLine(c);if(r!==null&&(a=r.startLineNumber,c===a)){const u=r.parentIndex;u!==-1?a=l.regions.getStartLineNumber(u):a=null}return a}function s(c,l){let a=l.getRegionAtLine(c);if(a!==null&&a.startLineNumber===c){if(c!==a.startLineNumber)return a.startLineNumber;{const r=a.parentIndex;let u=0;for(r!==-1&&(u=l.regions.getStartLineNumber(a.parentIndex));a!==null;)if(a.regionIndex>0){if(a=l.regions.toRegion(a.regionIndex-1),a.startLineNumber<=u)return null;if(a.parentIndex===r)return a.startLineNumber}else return null}}else if(l.regions.length>0)for(a=l.regions.toRegion(l.regions.length-1);a!==null;){if(a.startLineNumber0?a=l.regions.toRegion(a.regionIndex-1):a=null}return null}function g(c,l){let a=l.getRegionAtLine(c);if(a!==null&&a.startLineNumber===c){const r=a.parentIndex;let u=0;if(r!==-1)u=l.regions.getEndLineNumber(a.parentIndex);else{if(l.regions.length===0)return null;u=l.regions.getEndLineNumber(l.regions.length-1)}for(;a!==null;)if(a.regionIndex=u)return null;if(a.parentIndex===r)return a.startLineNumber}else return null}else if(l.regions.length>0)for(a=l.regions.toRegion(0);a!==null;){if(a.startLineNumber>c)return a.startLineNumber;a.regionIndexthis.updateHiddenRanges()),this._hiddenRanges=[],p.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(p){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=p.changes.some(n=>n.range.endLineNumber!==n.range.startLineNumber||(0,E.countEOL)(n.text)[0]!==0))}updateHiddenRanges(){let p=!1;const n=[];let o=0,t=0,i=Number.MAX_VALUE,s=-1;const g=this._foldingModel.regions;for(;o0}isHidden(p){return _(this._hiddenRanges,p)!==null}adjustSelections(p){let n=!1;const o=this._foldingModel.textModel;let t=null;const i=s=>((!t||!m(s,t))&&(t=_(this._hiddenRanges,s)),t?t.startLineNumber-1:null);for(let s=0,g=p.length;s0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}e.HiddenRangeModel=y;function m(b,p){return b>=p.startLineNumber&&b<=p.endLineNumber}function _(b,p){const n=(0,d.findFirstIdxMonotonousOrArrLen)(b,o=>p=0&&b[n].endLineNumber>=p?b[n]:null}}),define(ne[335],se([1,0,237,203]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RangesCollector=e.IndentRangeProvider=void 0,e.computeRanges=b;const I=5e3,E="indent";class y{constructor(n,o,t){this.editorModel=n,this.languageConfigurationService=o,this.foldingRangesLimit=t,this.id=E}dispose(){}compute(n){const o=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,t=o&&!!o.offSide,i=o&&o.markers;return Promise.resolve(b(this.editorModel,t,i,this.foldingRangesLimit))}}e.IndentRangeProvider=y;class m{constructor(n){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=n}insertFirst(n,o,t){if(n>k.MAX_LINE_NUMBER||o>k.MAX_LINE_NUMBER)return;const i=this._length;this._startIndexes[i]=n,this._endIndexes[i]=o,this._length++,t<1e3&&(this._indentOccurrences[t]=(this._indentOccurrences[t]||0)+1)}toIndentRanges(n){const o=this._foldingRangesLimit.limit;if(this._length<=o){this._foldingRangesLimit.update(this._length,!1);const t=new Uint32Array(this._length),i=new Uint32Array(this._length);for(let s=this._length-1,g=0;s>=0;s--,g++)t[g]=this._startIndexes[s],i[g]=this._endIndexes[s];return new k.FoldingRegions(t,i)}else{this._foldingRangesLimit.update(this._length,o);let t=0,i=this._indentOccurrences.length;for(let l=0;lo){i=l;break}t+=a}}const s=n.getOptions().tabSize,g=new Uint32Array(o),c=new Uint32Array(o);for(let l=this._length-1,a=0;l>=0;l--){const r=this._startIndexes[l],u=n.getLineContent(r),C=(0,d.computeIndentLevel)(u,s);(C{}};function b(p,n,o,t=_){const i=p.getOptions().tabSize,s=new m(t);let g;o&&(g=new RegExp(`(${o.start.source})|(?:${o.end.source})`));const c=[],l=p.getLineCount()+1;c.push({indent:-1,endAbove:l,line:l});for(let a=p.getLineCount();a>0;a--){const r=p.getLineContent(a),u=(0,d.computeIndentLevel)(r,i);let C=c[c.length-1];if(u===-1){n&&(C.endAbove=a);continue}let f;if(g&&(f=r.match(g)))if(f[1]){let h=c.length-1;for(;h>0&&c[h].indent!==-2;)h--;if(h>0){c.length=h+1,C=c[h],s.insertFirst(a,C.line,u),C.line=a,C.indent=u,C.endAbove=a;continue}}else{c.push({indent:-2,endAbove:a,line:a});continue}if(C.indent>u){do c.pop(),C=c[c.length-1];while(C.indent>u);const h=C.endAbove-1;h-a>=1&&s.insertFirst(a,h,u)}C.indent===u?C.endAbove=a:c.push({indent:u,endAbove:a,line:a})}return s.toIndentRanges(p)}}),define(ne[336],se([1,0,8,2,203]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SyntaxRangeProvider=void 0,e.sanitizeRanges=p;const E={},y="syntax";class m{constructor(o,t,i,s,g){this.editorModel=o,this.providers=t,this.handleFoldingRangesChange=i,this.foldingRangesLimit=s,this.fallbackRangeProvider=g,this.id=y,this.disposables=new k.DisposableStore,g&&this.disposables.add(g);for(const c of t)typeof c.onDidChange=="function"&&this.disposables.add(c.onDidChange(i))}compute(o){return _(this.providers,this.editorModel,o).then(t=>t?p(t,this.foldingRangesLimit):this.fallbackRangeProvider?.compute(o)??null)}dispose(){this.disposables.dispose()}}e.SyntaxRangeProvider=m;function _(n,o,t){let i=null;const s=n.map((g,c)=>Promise.resolve(g.provideFoldingRanges(o,E,t)).then(l=>{if(!t.isCancellationRequested&&Array.isArray(l)){Array.isArray(i)||(i=[]);const a=o.getLineCount();for(const r of l)r.start>0&&r.end>r.start&&r.end<=a&&i.push({start:r.start,end:r.end,rank:c,kind:r.kind})}},d.onUnexpectedExternalError));return Promise.all(s).then(g=>i)}class b{constructor(o){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=o}add(o,t,i,s){if(o>I.MAX_LINE_NUMBER||t>I.MAX_LINE_NUMBER)return;const g=this._length;this._startIndexes[g]=o,this._endIndexes[g]=t,this._nestingLevels[g]=s,this._types[g]=i,this._length++,s<30&&(this._nestingLevelCounts[s]=(this._nestingLevelCounts[s]||0)+1)}toIndentRanges(){const o=this._foldingRangesLimit.limit;if(this._length<=o){this._foldingRangesLimit.update(this._length,!1);const t=new Uint32Array(this._length),i=new Uint32Array(this._length);for(let s=0;so){i=l;break}t+=a}}const s=new Uint32Array(o),g=new Uint32Array(o),c=[];for(let l=0,a=0;l{let a=c.start-l.start;return a===0&&(a=c.rank-l.rank),a}),i=new b(o);let s;const g=[];for(const c of t)if(!s)s=c,i.add(c.start,c.end,c.kind&&c.kind.value,g.length);else if(c.start>s.start)if(c.end<=s.end)g.push(s),s=c,i.add(c.start,c.end,c.kind&&c.kind.value,g.length);else{if(c.start>s.end){do s=g.pop();while(s&&c.start>s.end);s&&g.push(s),s=c}i.add(c.start,c.end,c.kind&&c.kind.value,g.length)}return i.toIndentRanges()}}),define(ne[337],se([1,0,75,4,143]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FormattingEdit=void 0;class E{static _handleEolEdits(m,_){let b;const p=[];for(const n of _)typeof n.eol=="number"&&(b=n.eol),n.range&&typeof n.text=="string"&&p.push(n);return typeof b=="number"&&m.hasModel()&&m.getModel().pushEOL(b),p}static _isFullModelReplaceEdit(m,_){if(!m.hasModel())return!1;const b=m.getModel(),p=b.validateRange(_.range);return b.getFullModelRange().equalsRange(p)}static execute(m,_,b){b&&m.pushUndoStop();const p=I.StableEditorScrollState.capture(m),n=E._handleEolEdits(m,_);n.length===1&&E._isFullModelReplaceEdit(m,n[0])?m.executeEdits("formatEditsCommand",n.map(o=>d.EditOperation.replace(k.Range.lift(o.range),o.text))):m.executeEdits("formatEditsCommand",n.map(o=>d.EditOperation.replaceMove(k.Range.lift(o.range),o.text))),b&&m.pushUndoStop(),p.restoreRelativeVerticalPositionOfCursor(m)}}e.FormattingEdit=E}),define(ne[614],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FilteredHoverResult=e.HoverResult=void 0;class d{constructor(E,y,m){this.anchor=E,this.hoverParts=y,this.isComplete=m}filter(E){const y=this.hoverParts.filter(m=>m.isValidForHoverAnchor(E));return y.length===this.hoverParts.length?this:new k(this,this.anchor,y,this.isComplete)}}e.HoverResult=d;class k extends d{constructor(E,y,m,_){super(y,m,_),this.original=E}filter(E){return this.original.filter(E)}}e.FilteredHoverResult=k}),define(ne[615],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ExtHoverAccessibleView=e.HoverAccessibilityHelp=e.HoverAccessibleView=void 0;class d{}e.HoverAccessibleView=d;class k{}e.HoverAccessibilityHelp=k;class I{}e.ExtHoverAccessibleView=I}),define(ne[84],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HoverParticipantRegistry=e.RenderedHoverParts=e.HoverForeignElementAnchor=e.HoverRangeAnchor=void 0;class d{constructor(y,m,_,b){this.priority=y,this.range=m,this.initialMousePosX=_,this.initialMousePosY=b,this.type=1}equals(y){return y.type===1&&this.range.equalsRange(y.range)}canAdoptVisibleHover(y,m){return y.type===1&&m.lineNumber===this.range.startLineNumber}}e.HoverRangeAnchor=d;class k{constructor(y,m,_,b,p,n){this.priority=y,this.owner=m,this.range=_,this.initialMousePosX=b,this.initialMousePosY=p,this.supportsMarkerHover=n,this.type=2}equals(y){return y.type===2&&this.owner===y.owner}canAdoptVisibleHover(y,m){return y.type===2&&this.owner===y.owner}}e.HoverForeignElementAnchor=k;class I{constructor(y){this.renderedHoverParts=y}dispose(){for(const y of this.renderedHoverParts)y.dispose()}}e.RenderedHoverParts=I,e.HoverParticipantRegistry=new class{constructor(){this._participants=[]}register(y){this._participants.push(y)}getAll(){return this._participants}}}),define(ne[616],se([1,0,23]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InPlaceReplaceCommand=void 0;class k{constructor(E,y,m){this._editRange=E,this._originalSelection=y,this._text=m}getEditOperations(E,y){y.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(E,y){const _=y.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new d.Selection(_.endLineNumber,Math.min(this._originalSelection.positionColumn,_.endColumn),_.endLineNumber,Math.min(this._originalSelection.positionColumn,_.endColumn)):new d.Selection(_.endLineNumber,_.endColumn-this._text.length,_.endLineNumber,_.endColumn)}}e.InPlaceReplaceCommand=k}),define(ne[338],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getSpaceCnt=d,e.generateIndent=k;function d(I,E){let y=0;for(let m=0;mi.equals(t.parts[s]))}renderForScreenReader(t){if(this.parts.length===0)return"";const i=this.parts[this.parts.length-1],s=t.substr(0,i.column-1);return new y.TextEdit([...this.parts.map(c=>new y.SingleTextEdit(E.Range.fromPositions(new I.Position(1,c.column)),c.lines.join(` +`)))]).applyToString(s).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every(t=>t.lines.length===0)}get lineCount(){return 1+this.parts.reduce((t,i)=>t+i.lines.length-1,0)}}e.GhostText=m;class _{constructor(t,i,s){this.column=t,this.text=i,this.preview=s,this.lines=(0,k.splitLines)(this.text)}equals(t){return this.column===t.column&&this.lines.length===t.lines.length&&this.lines.every((i,s)=>i===t.lines[s])}}e.GhostTextPart=_;class b{constructor(t,i,s,g=0){this.lineNumber=t,this.columnRange=i,this.text=s,this.additionalReservedLineCount=g,this.parts=[new _(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=(0,k.splitLines)(this.text)}renderForScreenReader(t){return this.newLines.join(` +`)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every(t=>t.lines.length===0)}equals(t){return this.lineNumber===t.lineNumber&&this.columnRange.equals(t.columnRange)&&this.newLines.length===t.newLines.length&&this.newLines.every((i,s)=>i===t.newLines[s])&&this.additionalReservedLineCount===t.additionalReservedLineCount}}e.GhostTextReplacement=b;function p(o,t){return(0,d.equals)(o,t,n)}function n(o,t){return o===t?!0:!o||!t?!1:o instanceof m&&t instanceof m||o instanceof b&&t instanceof b?o.equals(t):!1}}),define(ne[246],se([1,0,190,11,4,113,104,204]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.singleTextRemoveCommonPrefix=_,e.singleTextEditAugments=b,e.computeGhostText=p;function _(g,c,l){const a=l?g.range.intersectRanges(l):g.range;if(!a)return g;const r=c.getValueInRange(a,1),u=(0,k.commonPrefixLength)(r,g.text),C=E.TextLength.ofText(r.substring(0,u)).addToPosition(g.range.getStartPosition()),f=g.text.substring(u),h=I.Range.fromPositions(C,g.range.getEndPosition());return new y.SingleTextEdit(h,f)}function b(g,c){return g.text.startsWith(c.text)&&n(g.range,c.range)}function p(g,c,l,a,r=0){let u=_(g,c);if(u.range.endLineNumber!==u.range.startLineNumber)return;const C=c.getLineContent(u.range.startLineNumber),f=(0,k.getLeadingWhitespace)(C).length;if(u.range.startColumn-1<=f){const T=(0,k.getLeadingWhitespace)(u.text).length,M=C.substring(u.range.startColumn-1,f),[A,P]=[u.range.getStartPosition(),u.range.getEndPosition()],N=A.column+M.length<=P.column?A.delta(0,M.length):P,O=I.Range.fromPositions(N,P),F=u.text.startsWith(M)?u.text.substring(M.length):u.text.substring(T);u=new y.SingleTextEdit(O,F)}const v=c.getValueInRange(u.range),w=t(v,u.text);if(!w)return;const S=u.range.startLineNumber,L=new Array;if(l==="prefix"){const T=w.filter(M=>M.originalLength===0);if(T.length>1||T.length===1&&T[0].originalStart!==v.length)return}const D=u.text.length-r;for(const T of w){const M=u.range.startColumn+T.originalStart+T.originalLength;if(l==="subwordSmart"&&a&&a.lineNumber===u.range.startLineNumber&&M0)return;if(T.modifiedLength===0)continue;const A=T.modifiedStart+T.modifiedLength,P=Math.max(T.modifiedStart,Math.min(A,D)),N=u.text.substring(T.modifiedStart,P),O=u.text.substring(P,Math.max(T.modifiedStart,A));N.length>0&&L.push(new m.GhostTextPart(M,N,!1)),O.length>0&&L.push(new m.GhostTextPart(M,O,!0))}return new m.GhostText(S,L)}function n(g,c){return c.getStartPosition().equals(g.getStartPosition())&&c.getEndPosition().isBeforeOrEqual(g.getEndPosition())}let o;function t(g,c){if(o?.originalValue===g&&o?.newValue===c)return o?.changes;{let l=s(g,c,!0);if(l){const a=i(l);if(a>0){const r=s(g,c,!1);r&&i(r)5e3||c.length>5e3)return;function a(v){let w=0;for(let S=0,L=v.length;Sw&&(w=D)}return w}const r=Math.max(a(g),a(c));function u(v){if(v<0)throw new Error("unexpected");return r+v+1}function C(v){let w=0,S=0;const L=new Int32Array(v.length);for(let D=0,T=v.length;Df},{getElements:()=>h}).ComputeDiff(!1).changes}}),define(ne[205],se([1,0,8,2,21,9,4]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColumnRange=void 0,e.getReadonlyEmptyArray=_,e.applyObservableDecorations=p,e.addPositions=n,e.subtractPositions=o;const m=[];function _(){return m}class b{constructor(i,s){if(this.startColumn=i,this.endColumnExclusive=s,i>s)throw new d.BugIndicatingError(`startColumn ${i} cannot be after endColumnExclusive ${s}`)}toRange(i){return new y.Range(i,this.startColumn,i,this.endColumnExclusive)}equals(i){return this.startColumn===i.startColumn&&this.endColumnExclusive===i.endColumnExclusive}}e.ColumnRange=b;function p(t,i){const s=new k.DisposableStore,g=t.createDecorationsCollection();return s.add((0,I.autorunOpts)({debugName:()=>`Apply decorations from ${i.debugName}`},c=>{const l=i.read(c);g.set(l)})),s.add({dispose:()=>{g.clear()}}),s}function n(t,i){return new E.Position(t.lineNumber+i.lineNumber-1,i.lineNumber===1?t.column+i.column-1:i.column)}function o(t,i){return new E.Position(t.lineNumber-i.lineNumber+1,t.lineNumber-i.lineNumber===0?t.column-i.column+1:t.column)}}),define(ne[618],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.inlineEditJumpBackId=e.inlineEditJumpToId=e.inlineEditRejectId=e.inlineEditAcceptId=void 0,e.inlineEditAcceptId="editor.action.inlineEdit.accept",e.inlineEditRejectId="editor.action.inlineEdit.reject",e.inlineEditJumpToId="editor.action.inlineEdit.jumpTo",e.inlineEditJumpBackId="editor.action.inlineEdit.jumpBack"}),define(ne[619],se([1,0,4,23]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CopyLinesCommand=void 0;class I{constructor(y,m,_){this._selection=y,this._isCopyingDown=m,this._noop=_||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(y,m){let _=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,_.startLineNumber<_.endLineNumber&&_.endColumn===1&&(this._endLineNumberDelta=1,_=_.setEndPosition(_.endLineNumber-1,y.getLineMaxColumn(_.endLineNumber-1)));const b=[];for(let n=_.startLineNumber;n<=_.endLineNumber;n++)b.push(y.getLineContent(n));const p=b.join(` +`);p===""&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._noop?m.addEditOperation(new d.Range(_.endLineNumber,y.getLineMaxColumn(_.endLineNumber),_.endLineNumber+1,1),_.endLineNumber===y.getLineCount()?"":` +`):this._isCopyingDown?m.addEditOperation(new d.Range(_.startLineNumber,1,_.startLineNumber,1),p+` +`):m.addEditOperation(new d.Range(_.endLineNumber,y.getLineMaxColumn(_.endLineNumber),_.endLineNumber,y.getLineMaxColumn(_.endLineNumber)),` +`+p),this._selectionId=m.trackSelection(_),this._selectionDirection=this._selection.getDirection()}computeCursorState(y,m){let _=m.getTrackedSelection(this._selectionId);if(this._startLineNumberDelta!==0||this._endLineNumberDelta!==0){let b=_.startLineNumber,p=_.startColumn,n=_.endLineNumber,o=_.endColumn;this._startLineNumberDelta!==0&&(b=b+this._startLineNumberDelta,p=1),this._endLineNumberDelta!==0&&(n=n+this._endLineNumberDelta,o=1),_=k.Selection.createWithDirection(b,p,n,o,this._selectionDirection)}return _}}e.CopyLinesCommand=I}),define(ne[620],se([1,0,75,4]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SortLinesCommand=void 0;class I{static{this._COLLATOR=null}static getCollator(){return I._COLLATOR||(I._COLLATOR=new Intl.Collator),I._COLLATOR}constructor(_,b){this.selection=_,this.descending=b,this.selectionId=null}getEditOperations(_,b){const p=y(_,this.selection,this.descending);p&&b.addEditOperation(p.range,p.text),this.selectionId=b.trackSelection(this.selection)}computeCursorState(_,b){return b.getTrackedSelection(this.selectionId)}static canRun(_,b,p){if(_===null)return!1;const n=E(_,b,p);if(!n)return!1;for(let o=0,t=n.before.length;o=n)return null;const o=[];for(let i=p;i<=n;i++)o.push(m.getLineContent(i));let t=o.slice(0);return t.sort(I.getCollator().compare),b===!0&&(t=t.reverse()),{startLineNumber:p,endLineNumber:n,before:o,after:t}}function y(m,_,b){const p=E(m,_,b);return p?d.EditOperation.replace(new k.Range(p.startLineNumber,1,p.endLineNumber,m.getLineMaxColumn(p.endLineNumber)),p.after.join(` +`)):null}}),define(ne[339],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SEMANTIC_HIGHLIGHTING_SETTING_ID=void 0,e.isSemanticColoringEnabled=d,e.SEMANTIC_HIGHLIGHTING_SETTING_ID="editor.semanticHighlighting";function d(k,I,E){const y=E.getValue(e.SEMANTIC_HIGHLIGHTING_SETTING_ID,{overrideIdentifier:k.getLanguageId(),resource:k.uri})?.enabled;return typeof y=="boolean"?y:I.getColorTheme().semanticHighlighting}}),define(ne[340],se([1,0,73,9,4]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketSelectionRangeProvider=void 0;class E{async provideSelectionRanges(m,_){const b=[];for(const p of _){const n=[];b.push(n);const o=new Map;await new Promise(t=>E._bracketsRightYield(t,0,m,p,o)),await new Promise(t=>E._bracketsLeftYield(t,0,m,p,o,n))}return b}static{this._maxDuration=30}static{this._maxRounds=2}static _bracketsRightYield(m,_,b,p,n){const o=new Map,t=Date.now();for(;;){if(_>=E._maxRounds){m();break}if(!p){m();break}const i=b.bracketPairs.findNextBracket(p);if(!i){m();break}if(Date.now()-t>E._maxDuration){setTimeout(()=>E._bracketsRightYield(m,_+1,b,p,n));break}if(i.bracketInfo.isOpeningBracket){const g=i.bracketInfo.bracketText,c=o.has(g)?o.get(g):0;o.set(g,c+1)}else{const g=i.bracketInfo.getOpeningBrackets()[0].bracketText;let c=o.has(g)?o.get(g):0;if(c-=1,o.set(g,Math.max(0,c)),c<0){let l=n.get(g);l||(l=new d.LinkedList,n.set(g,l)),l.push(i.range)}}p=i.range.getEndPosition()}}static _bracketsLeftYield(m,_,b,p,n,o){const t=new Map,i=Date.now();for(;;){if(_>=E._maxRounds&&n.size===0){m();break}if(!p){m();break}const s=b.bracketPairs.findPrevBracket(p);if(!s){m();break}if(Date.now()-i>E._maxDuration){setTimeout(()=>E._bracketsLeftYield(m,_+1,b,p,n,o));break}if(s.bracketInfo.isOpeningBracket){const c=s.bracketInfo.bracketText;let l=t.has(c)?t.get(c):0;if(l-=1,t.set(c,Math.max(0,l)),l<0){const a=n.get(c);if(a){const r=a.shift();a.size===0&&n.delete(c);const u=I.Range.fromPositions(s.range.getEndPosition(),r.getStartPosition()),C=I.Range.fromPositions(s.range.getStartPosition(),r.getEndPosition());o.push({range:u}),o.push({range:C}),E._addBracketLeading(b,C,o)}}}else{const c=s.bracketInfo.getOpeningBrackets()[0].bracketText,l=t.has(c)?t.get(c):0;t.set(c,l+1)}p=s.range.getStartPosition()}}static _addBracketLeading(m,_,b){if(_.startLineNumber===_.endLineNumber)return;const p=_.startLineNumber,n=m.getLineFirstNonWhitespaceColumn(p);n!==0&&n!==_.startColumn&&(b.push({range:I.Range.fromPositions(new k.Position(p,n),_.getEndPosition())}),b.push({range:I.Range.fromPositions(new k.Position(p,1),_.getEndPosition())}));const o=p-1;if(o>0){const t=m.getLineFirstNonWhitespaceColumn(o);t===_.startColumn&&t!==m.getLineLastNonWhitespaceColumn(o)&&(b.push({range:I.Range.fromPositions(new k.Position(o,t),_.getEndPosition())}),b.push({range:I.Range.fromPositions(new k.Position(o,1),_.getEndPosition())}))}}}e.BracketSelectionRangeProvider=E}),define(ne[621],se([1,0,11,4]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WordSelectionRangeProvider=void 0;class I{constructor(y=!0){this.selectSubwords=y}provideSelectionRanges(y,m){const _=[];for(const b of m){const p=[];_.push(p),this.selectSubwords&&this._addInWordRanges(p,y,b),this._addWordRanges(p,y,b),this._addWhitespaceLine(p,y,b),p.push({range:y.getFullModelRange()})}return _}_addInWordRanges(y,m,_){const b=m.getWordAtPosition(_);if(!b)return;const{word:p,startColumn:n}=b,o=_.column-n;let t=o,i=o,s=0;for(;t>=0;t--){const g=p.charCodeAt(t);if(t!==o&&(g===95||g===45))break;if((0,d.isLowerAsciiLetter)(g)&&(0,d.isUpperAsciiLetter)(s))break;s=g}for(t+=1;i0&&m.getLineFirstNonWhitespaceColumn(_.lineNumber)===0&&m.getLineLastNonWhitespaceColumn(_.lineNumber)===0&&y.push({range:new k.Range(_.lineNumber,1,_.lineNumber,m.getLineMaxColumn(_.lineNumber))})}}e.WordSelectionRangeProvider=I}),define(ne[135],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SnippetParser=e.TextmateSnippet=e.Variable=e.FormatString=e.Transform=e.Choice=e.Placeholder=e.TransformableMarker=e.Text=e.Marker=e.Scanner=void 0;class d{constructor(){this.value="",this.pos=0}static{this._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13}}static isDigitCharacter(s){return s>=48&&s<=57}static isVariableCharacter(s){return s===95||s>=97&&s<=122||s>=65&&s<=90}text(s){this.value=s,this.pos=0}tokenText(s){return this.value.substr(s.pos,s.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};const s=this.pos;let g=0,c=this.value.charCodeAt(s),l;if(l=d._table[c],typeof l=="number")return this.pos+=1,{type:l,pos:s,len:1};if(d.isDigitCharacter(c)){l=8;do g+=1,c=this.value.charCodeAt(s+g);while(d.isDigitCharacter(c));return this.pos+=g,{type:l,pos:s,len:g}}if(d.isVariableCharacter(c)){l=9;do c=this.value.charCodeAt(s+ ++g);while(d.isVariableCharacter(c)||d.isDigitCharacter(c));return this.pos+=g,{type:l,pos:s,len:g}}l=10;do g+=1,c=this.value.charCodeAt(s+g);while(!isNaN(c)&&typeof d._table[c]>"u"&&!d.isDigitCharacter(c)&&!d.isVariableCharacter(c));return this.pos+=g,{type:l,pos:s,len:g}}}e.Scanner=d;class k{constructor(){this._children=[]}appendChild(s){return s instanceof I&&this._children[this._children.length-1]instanceof I?this._children[this._children.length-1].value+=s.value:(s.parent=this,this._children.push(s)),this}replace(s,g){const{parent:c}=s,l=c.children.indexOf(s),a=c.children.slice(0);a.splice(l,1,...g),c._children=a,function r(u,C){for(const f of u)f.parent=C,r(f.children,f)}(g,c)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let s=this;for(;;){if(!s)return;if(s instanceof o)return s;s=s.parent}}toString(){return this.children.reduce((s,g)=>s+g.toString(),"")}len(){return 0}}e.Marker=k;class I extends k{constructor(s){super(),this.value=s}toString(){return this.value}len(){return this.value.length}clone(){return new I(this.value)}}e.Text=I;class E extends k{}e.TransformableMarker=E;class y extends E{static compareByIndex(s,g){return s.index===g.index?0:s.isFinalTabstop?1:g.isFinalTabstop||s.indexg.index?1:0}constructor(s){super(),this.index=s}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof m?this._children[0]:void 0}clone(){const s=new y(this.index);return this.transform&&(s.transform=this.transform.clone()),s._children=this.children.map(g=>g.clone()),s}}e.Placeholder=y;class m extends k{constructor(){super(...arguments),this.options=[]}appendChild(s){return s instanceof I&&(s.parent=this,this.options.push(s)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const s=new m;return this.options.forEach(s.appendChild,s),s}}e.Choice=m;class _ extends k{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(s){const g=this;let c=!1,l=s.replace(this.regexp,function(){return c=!0,g._replace(Array.prototype.slice.call(arguments,0,-2))});return!c&&this._children.some(a=>a instanceof b&&!!a.elseValue)&&(l=this._replace([])),l}_replace(s){let g="";for(const c of this._children)if(c instanceof b){let l=s[c.index]||"";l=c.resolve(l),g+=l}else g+=c.toString();return g}toString(){return""}clone(){const s=new _;return s.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),s._children=this.children.map(g=>g.clone()),s}}e.Transform=_;class b extends k{constructor(s,g,c,l){super(),this.index=s,this.shorthandName=g,this.ifValue=c,this.elseValue=l}resolve(s){return this.shorthandName==="upcase"?s?s.toLocaleUpperCase():"":this.shorthandName==="downcase"?s?s.toLocaleLowerCase():"":this.shorthandName==="capitalize"?s?s[0].toLocaleUpperCase()+s.substr(1):"":this.shorthandName==="pascalcase"?s?this._toPascalCase(s):"":this.shorthandName==="camelcase"?s?this._toCamelCase(s):"":s&&typeof this.ifValue=="string"?this.ifValue:!s&&typeof this.elseValue=="string"?this.elseValue:s||""}_toPascalCase(s){const g=s.match(/[a-z0-9]+/gi);return g?g.map(c=>c.charAt(0).toUpperCase()+c.substr(1)).join(""):s}_toCamelCase(s){const g=s.match(/[a-z0-9]+/gi);return g?g.map((c,l)=>l===0?c.charAt(0).toLowerCase()+c.substr(1):c.charAt(0).toUpperCase()+c.substr(1)).join(""):s}clone(){return new b(this.index,this.shorthandName,this.ifValue,this.elseValue)}}e.FormatString=b;class p extends E{constructor(s){super(),this.name=s}resolve(s){let g=s.resolve(this);return this.transform&&(g=this.transform.resolve(g||"")),g!==void 0?(this._children=[new I(g)],!0):!1}clone(){const s=new p(this.name);return this.transform&&(s.transform=this.transform.clone()),s._children=this.children.map(g=>g.clone()),s}}e.Variable=p;function n(i,s){const g=[...i];for(;g.length>0;){const c=g.shift();if(!s(c))break;g.unshift(...c.children)}}class o extends k{get placeholderInfo(){if(!this._placeholders){const s=[];let g;this.walk(function(c){return c instanceof y&&(s.push(c),g=!g||g.indexl===s?(c=!0,!1):(g+=l.len(),!0)),c?g:-1}fullLen(s){let g=0;return n([s],c=>(g+=c.len(),!0)),g}enclosingPlaceholders(s){const g=[];let{parent:c}=s;for(;c;)c instanceof y&&g.push(c),c=c.parent;return g}resolveVariables(s){return this.walk(g=>(g instanceof p&&g.resolve(s)&&(this._placeholders=void 0),!0)),this}appendChild(s){return this._placeholders=void 0,super.appendChild(s)}replace(s,g){return this._placeholders=void 0,super.replace(s,g)}clone(){const s=new o;return this._children=this.children.map(g=>g.clone()),s}walk(s){n(this.children,s)}}e.TextmateSnippet=o;class t{constructor(){this._scanner=new d,this._token={type:14,pos:0,len:0}}static escape(s){return s.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(s){return/\${?CLIPBOARD/.test(s)}parse(s,g,c){const l=new o;return this.parseFragment(s,l),this.ensureFinalTabstop(l,c??!1,g??!1),l}parseFragment(s,g){const c=g.children.length;for(this._scanner.text(s),this._token=this._scanner.next();this._parse(g););const l=new Map,a=[];g.walk(C=>(C instanceof y&&(C.isFinalTabstop?l.set(0,void 0):!l.has(C.index)&&C.children.length>0?l.set(C.index,C.children):a.push(C)),!0));const r=(C,f)=>{const h=l.get(C.index);if(!h)return;const v=new y(C.index);v.transform=C.transform;for(const w of h){const S=w.clone();v.appendChild(S),S instanceof y&&l.has(S.index)&&!f.has(S.index)&&(f.add(S.index),r(S,f),f.delete(S.index))}g.replace(C,[v])},u=new Set;for(const C of a)r(C,u);return g.children.slice(c)}ensureFinalTabstop(s,g,c){(g||c&&s.placeholders.length>0)&&(s.placeholders.find(a=>a.index===0)||s.appendChild(new y(0)))}_accept(s,g){if(s===void 0||this._token.type===s){const c=g?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),c}return!1}_backTo(s){return this._scanner.pos=s.pos+s.len,this._token=s,!1}_until(s){const g=this._token;for(;this._token.type!==s;){if(this._token.type===14)return!1;if(this._token.type===5){const l=this._scanner.next();if(l.type!==0&&l.type!==4&&l.type!==5)return!1}this._token=this._scanner.next()}const c=this._scanner.value.substring(g.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),c}_parse(s){return this._parseEscaped(s)||this._parseTabstopOrVariableName(s)||this._parseComplexPlaceholder(s)||this._parseComplexVariable(s)||this._parseAnything(s)}_parseEscaped(s){let g;return(g=this._accept(5,!0))?(g=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||g,s.appendChild(new I(g)),!0):!1}_parseTabstopOrVariableName(s){let g;const c=this._token;return this._accept(0)&&(g=this._accept(9,!0)||this._accept(8,!0))?(s.appendChild(/^\d+$/.test(g)?new y(Number(g)):new p(g)),!0):this._backTo(c)}_parseComplexPlaceholder(s){let g;const c=this._token;if(!(this._accept(0)&&this._accept(3)&&(g=this._accept(8,!0))))return this._backTo(c);const a=new y(Number(g));if(this._accept(1))for(;;){if(this._accept(4))return s.appendChild(a),!0;if(!this._parse(a))return s.appendChild(new I("${"+g+":")),a.children.forEach(s.appendChild,s),!0}else if(a.index>0&&this._accept(7)){const r=new m;for(;;){if(this._parseChoiceElement(r)){if(this._accept(2))continue;if(this._accept(7)&&(a.appendChild(r),this._accept(4)))return s.appendChild(a),!0}return this._backTo(c),!1}}else return this._accept(6)?this._parseTransform(a)?(s.appendChild(a),!0):(this._backTo(c),!1):this._accept(4)?(s.appendChild(a),!0):this._backTo(c)}_parseChoiceElement(s){const g=this._token,c=[];for(;!(this._token.type===2||this._token.type===7);){let l;if((l=this._accept(5,!0))?l=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||l:l=this._accept(void 0,!0),!l)return this._backTo(g),!1;c.push(l)}return c.length===0?(this._backTo(g),!1):(s.appendChild(new I(c.join(""))),!0)}_parseComplexVariable(s){let g;const c=this._token;if(!(this._accept(0)&&this._accept(3)&&(g=this._accept(9,!0))))return this._backTo(c);const a=new p(g);if(this._accept(1))for(;;){if(this._accept(4))return s.appendChild(a),!0;if(!this._parse(a))return s.appendChild(new I("${"+g+":")),a.children.forEach(s.appendChild,s),!0}else return this._accept(6)?this._parseTransform(a)?(s.appendChild(a),!0):(this._backTo(c),!1):this._accept(4)?(s.appendChild(a),!0):this._backTo(c)}_parseTransform(s){const g=new _;let c="",l="";for(;!this._accept(6);){let a;if(a=this._accept(5,!0)){a=this._accept(6,!0)||a,c+=a;continue}if(this._token.type!==14){c+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let a;if(a=this._accept(5,!0)){a=this._accept(5,!0)||this._accept(6,!0)||a,g.appendChild(new I(a));continue}if(!(this._parseFormatString(g)||this._parseAnything(g)))return!1}for(;!this._accept(4);){if(this._token.type!==14){l+=this._accept(void 0,!0);continue}return!1}try{g.regexp=new RegExp(c,l)}catch{return!1}return s.transform=g,!0}_parseFormatString(s){const g=this._token;if(!this._accept(0))return!1;let c=!1;this._accept(3)&&(c=!0);const l=this._accept(8,!0);if(l)if(c){if(this._accept(4))return s.appendChild(new b(Number(l))),!0;if(!this._accept(1))return this._backTo(g),!1}else return s.appendChild(new b(Number(l))),!0;else return this._backTo(g),!1;if(this._accept(6)){const a=this._accept(9,!0);return!a||!this._accept(4)?(this._backTo(g),!1):(s.appendChild(new b(Number(l),a)),!0)}else if(this._accept(11)){const a=this._until(4);if(a)return s.appendChild(new b(Number(l),void 0,a,void 0)),!0}else if(this._accept(12)){const a=this._until(4);if(a)return s.appendChild(new b(Number(l),void 0,void 0,a)),!0}else if(this._accept(13)){const a=this._until(1);if(a){const r=this._until(4);if(r)return s.appendChild(new b(Number(l),void 0,a,r)),!0}}else{const a=this._until(4);if(a)return s.appendChild(new b(Number(l),void 0,void 0,a)),!0}return this._backTo(g),!1}_parseAnything(s){return this._token.type!==14?(s.appendChild(new I(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}}e.SnippetParser=t}),define(ne[341],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StickyModel=e.StickyElement=e.StickyRange=void 0;class d{constructor(y,m){this.startLineNumber=y,this.endLineNumber=m}}e.StickyRange=d;class k{constructor(y,m,_){this.range=y,this.children=m,this.parent=_}}e.StickyElement=k;class I{constructor(y,m,_,b){this.uri=y,this.version=m,this.element=_,this.outlineProviderId=b}}e.StickyModel=I}),define(ne[342],se([1,0,13,82,11]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CompletionModel=e.LineContext=void 0;class E{constructor(_,b){this.leadingLineContent=_,this.characterCountDelta=b}}e.LineContext=E;class y{constructor(_,b,p,n,o,t,i=k.FuzzyScoreOptions.default,s=void 0){this.clipboardText=s,this._snippetCompareFn=y._compareCompletionItems,this._items=_,this._column=b,this._wordDistance=n,this._options=o,this._refilterKind=1,this._lineContext=p,this._fuzzyScoreOptions=i,t==="top"?this._snippetCompareFn=y._compareCompletionItemsSnippetsUp:t==="bottom"&&(this._snippetCompareFn=y._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(_){(this._lineContext.leadingLineContent!==_.leadingLineContent||this._lineContext.characterCountDelta!==_.characterCountDelta)&&(this._refilterKind=this._lineContext.characterCountDelta<_.characterCountDelta&&this._filteredItems?2:1,this._lineContext=_)}get items(){return this._ensureCachedState(),this._filteredItems}getItemsByProvider(){return this._ensureCachedState(),this._itemsByProvider}getIncompleteProvider(){this._ensureCachedState();const _=new Set;for(const[b,p]of this.getItemsByProvider())p.length>0&&p[0].container.incomplete&&_.add(b);return _}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){this._refilterKind!==0&&this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;const _=[],{leadingLineContent:b,characterCountDelta:p}=this._lineContext;let n="",o="";const t=this._refilterKind===1?this._items:this._filteredItems,i=[],s=!this._options.filterGraceful||t.length>2e3?k.fuzzyScore:k.fuzzyScoreGracefulAggressive;for(let g=0;g=r)c.score=k.FuzzyScore.Default;else if(typeof c.completion.filterText=="string"){const C=s(n,o,u,c.completion.filterText,c.filterTextLow,0,this._fuzzyScoreOptions);if(!C)continue;(0,I.compareIgnoreCase)(c.completion.filterText,c.textLabel)===0?c.score=C:(c.score=(0,k.anyScore)(n,o,u,c.textLabel,c.labelLow,0),c.score[0]=C[0])}else{const C=s(n,o,u,c.textLabel,c.labelLow,0,this._fuzzyScoreOptions);if(!C)continue;c.score=C}}c.idx=g,c.distance=this._wordDistance.distance(c.position,c.completion),i.push(c),_.push(c.textLabel.length)}this._filteredItems=i.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:_.length?(0,d.quickSelect)(_.length-.85,_,(g,c)=>g-c):0}}static _compareCompletionItems(_,b){return _.score[0]>b.score[0]?-1:_.score[0]b.distance?1:_.idxb.idx?1:0}static _compareCompletionItemsSnippetsDown(_,b){if(_.completion.kind!==b.completion.kind){if(_.completion.kind===27)return 1;if(b.completion.kind===27)return-1}return y._compareCompletionItems(_,b)}static _compareCompletionItemsSnippetsUp(_,b){if(_.completion.kind!==b.completion.kind){if(_.completion.kind===27)return-1;if(b.completion.kind===27)return 1}return y._compareCompletionItems(_,b)}}e.CompletionModel=y}),define(ne[622],se([1,0,13,2,144]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CommitCharacterController=void 0;class E{constructor(m,_,b,p){this._disposables=new k.DisposableStore,this._disposables.add(b.onDidSuggest(n=>{n.completionModel.items.length===0&&this.reset()})),this._disposables.add(b.onDidCancel(n=>{this.reset()})),this._disposables.add(_.onDidShow(()=>this._onItem(_.getFocusedItem()))),this._disposables.add(_.onDidFocus(this._onItem,this)),this._disposables.add(_.onDidHide(this.reset,this)),this._disposables.add(m.onWillType(n=>{if(this._active&&!_.isFrozen()&&b.state!==0){const o=n.charCodeAt(n.length-1);this._active.acceptCharacters.has(o)&&m.getOption(0)&&p(this._active.item)}}))}_onItem(m){if(!m||!(0,d.isNonEmptyArray)(m.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===m.item)return;const _=new I.CharacterSet;for(const b of m.item.completion.commitCharacters)b.length>0&&_.add(b.charCodeAt(0));this._active={acceptCharacters:_,item:m}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}e.CommitCharacterController=E}),define(ne[623],se([1,0,2]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OvertypingCapturer=void 0;class k{static{this._maxSelectionLength=51200}constructor(E,y){this._disposables=new d.DisposableStore,this._lastOvertyped=[],this._locked=!1,this._disposables.add(E.onWillType(()=>{if(this._locked||!E.hasModel())return;const m=E.getSelections(),_=m.length;let b=!1;for(let n=0;n<_;n++)if(!m[n].isEmpty()){b=!0;break}if(!b){this._lastOvertyped.length!==0&&(this._lastOvertyped.length=0);return}this._lastOvertyped=[];const p=E.getModel();for(let n=0;n<_;n++){const o=m[n];if(p.getValueLengthInRange(o)>k._maxSelectionLength)return;this._lastOvertyped[n]={value:p.getValueInRange(o),multiline:o.startLineNumber!==o.endLineNumber}}})),this._disposables.add(y.onDidTrigger(m=>{this._locked=!0})),this._disposables.add(y.onDidCancel(m=>{this._locked=!1}))}getLastOvertypedInfo(E){if(E>=0&&E=0?c[l]:c[Math.max(0,~l-1)];let r=n.length;for(const u of n){if(!k.Range.containsRange(u.range,a))break;r-=1}return r}}}}e.WordDistance=E}),define(ne[624],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneTreeSitterParserService=void 0;class d{getParseResult(I){}}e.StandaloneTreeSitterParserService=d}),define(ne[344],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isFuzzyActionArr=d,e.isFuzzyAction=k,e.isString=I,e.isIAction=E,e.empty=y,e.fixCase=m,e.sanitize=_,e.log=b,e.createError=p,e.substituteMatches=n,e.substituteMatchesRe=o,e.findRules=t,e.stateExists=i;function d(s){return Array.isArray(s)}function k(s){return!d(s)}function I(s){return typeof s=="string"}function E(s){return!I(s)}function y(s){return!s}function m(s,g){return s.ignoreCase&&g?g.toLowerCase():g}function _(s){return s.replace(/[&<>'"_]/g,"-")}function b(s,g){console.log(`${s.languageId}: ${g}`)}function p(s,g){return new Error(`${s.languageId}: ${g}`)}function n(s,g,c,l,a){const r=/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g;let u=null;return g.replace(r,function(C,f,h,v,w,S,L,D,T){return y(h)?y(v)?!y(w)&&w0;){const l=s.tokenizer[c];if(l)return l;const a=c.lastIndexOf(".");a<0?c=null:c=c.substr(0,a)}return null}function i(s,g){let c=g;for(;c&&c.length>0;){if(s.stateNames[c])return!0;const a=c.lastIndexOf(".");a<0?c=null:c=c.substr(0,a)}return!1}}),define(ne[625],se([1,0,344]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.compile=t;function k(i,s){if(!s||!Array.isArray(s))return!1;for(const g of s)if(!i(g))return!1;return!0}function I(i,s){return typeof i=="boolean"?i:s}function E(i,s){return typeof i=="string"?i:s}function y(i){const s={};for(const g of i)s[g]=!0;return s}function m(i,s=!1){s&&(i=i.map(function(c){return c.toLowerCase()}));const g=y(i);return s?function(c){return g[c.toLowerCase()]!==void 0&&g.hasOwnProperty(c.toLowerCase())}:function(c){return g[c]!==void 0&&g.hasOwnProperty(c)}}function _(i,s,g){s=s.replace(/@@/g,"");let c=0,l;do l=!1,s=s.replace(/@(\w+)/g,function(r,u){l=!0;let C="";if(typeof i[u]=="string")C=i[u];else if(i[u]&&i[u]instanceof RegExp)C=i[u].source;else throw i[u]===void 0?d.createError(i,"language definition does not contain attribute '"+u+"', used at: "+s):d.createError(i,"attribute reference '"+u+"' must be a string, used at: "+s);return d.empty(C)?"":"(?:"+C+")"}),c++;while(l&&c<5);s=s.replace(/\x01/g,"@");const a=(i.ignoreCase?"i":"")+(i.unicode?"u":"");if(g&&s.match(/\$[sS](\d\d?)/g)){let u=null,C=null;return f=>(C&&u===f||(u=f,C=new RegExp(d.substituteMatchesRe(i,s,f),a)),C)}return new RegExp(s,a)}function b(i,s,g,c){if(c<0)return i;if(c=100){c=c-100;const l=g.split(".");if(l.unshift(g),c=0&&(c.tokenSubst=!0),typeof g.bracket=="string")if(g.bracket==="@open")c.bracket=1;else if(g.bracket==="@close")c.bracket=-1;else throw d.createError(i,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+s);if(g.next){if(typeof g.next!="string")throw d.createError(i,"the next state must be a string value in rule: "+s);{let l=g.next;if(!/^(@pop|@push|@popall)$/.test(l)&&(l[0]==="@"&&(l=l.substr(1)),l.indexOf("$")<0&&!d.stateExists(i,d.substituteMatches(i,l,"",[],""))))throw d.createError(i,"the next state '"+g.next+"' is not defined in rule: "+s);c.next=l}}return typeof g.goBack=="number"&&(c.goBack=g.goBack),typeof g.switchTo=="string"&&(c.switchTo=g.switchTo),typeof g.log=="string"&&(c.log=g.log),typeof g.nextEmbedded=="string"&&(c.nextEmbedded=g.nextEmbedded,i.usesEmbedded=!0),c}}else if(Array.isArray(g)){const c=[];for(let l=0,a=g.length;l0&&c[0]==="^",this.name=this.name+": "+c,this.regex=_(s,"^(?:"+(this.matchOnlyAtLineStart?c.substr(1):c)+")",!0)}setAction(s,g){this.action=n(s,this.name,g)}resolveRegex(s){return this.regex instanceof RegExp?this.regex:this.regex(s)}}function t(i,s){if(!s||typeof s!="object")throw new Error("Monarch: expecting a language definition object");const g={languageId:i,includeLF:I(s.includeLF,!1),noThrow:!1,maxStack:100,start:typeof s.start=="string"?s.start:null,ignoreCase:I(s.ignoreCase,!1),unicode:I(s.unicode,!1),tokenPostfix:E(s.tokenPostfix,"."+i),defaultToken:E(s.defaultToken,"source"),usesEmbedded:!1,stateNames:{},tokenizer:{},brackets:[]},c=s;c.languageId=i,c.includeLF=g.includeLF,c.ignoreCase=g.ignoreCase,c.unicode=g.unicode,c.noThrow=g.noThrow,c.usesEmbedded=g.usesEmbedded,c.stateNames=s.tokenizer,c.defaultToken=g.defaultToken;function l(r,u,C){for(const f of C){let h=f.include;if(h){if(typeof h!="string")throw d.createError(g,"an 'include' attribute must be a string at: "+r);if(h[0]==="@"&&(h=h.substr(1)),!s.tokenizer[h])throw d.createError(g,"include target '"+h+"' is not defined at: "+r);l(r+"."+h,u,s.tokenizer[h])}else{const v=new o(r);if(Array.isArray(f)&&f.length>=1&&f.length<=3)if(v.setRegex(c,f[0]),f.length>=3)if(typeof f[1]=="string")v.setAction(c,{token:f[1],next:f[2]});else if(typeof f[1]=="object"){const w=f[1];w.next=f[2],v.setAction(c,w)}else throw d.createError(g,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+r);else v.setAction(c,f[1]);else{if(!f.regex)throw d.createError(g,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+r);f.name&&typeof f.name=="string"&&(v.name=f.name),f.matchOnlyAtStart&&(v.matchOnlyAtLineStart=I(f.matchOnlyAtLineStart,!1)),v.setRegex(c,f.regex),v.setAction(c,f.action)}u.push(v)}}}if(!s.tokenizer||typeof s.tokenizer!="object")throw d.createError(g,"a language definition must define the 'tokenizer' attribute as an object");g.tokenizer=[];for(const r in s.tokenizer)if(s.tokenizer.hasOwnProperty(r)){g.start||(g.start=r);const u=s.tokenizer[r];g.tokenizer[r]=new Array,l("tokenizer."+r,g.tokenizer[r],u)}if(g.usesEmbedded=c.usesEmbedded,s.brackets){if(!Array.isArray(s.brackets))throw d.createError(g,"the 'brackets' attribute must be defined as an array")}else s.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const a=[];for(const r of s.brackets){let u=r;if(u&&Array.isArray(u)&&u.length===3&&(u={token:u[2],open:u[0],close:u[1]}),u.open===u.close)throw d.createError(g,"open and close brackets in a 'brackets' attribute must be different: "+u.open+` + hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof u.open=="string"&&typeof u.token=="string"&&typeof u.close=="string")a.push({token:u.token+g.tokenPostfix,open:d.fixCase(g,u.open),close:d.fixCase(g,u.close)});else throw d.createError(g,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return g.brackets=a,g.noThrow=!0,g}}),define(ne[345],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getNLSMessages=d,e.getNLSLanguage=k;function d(){return globalThis._VSCODE_NLS_MESSAGES}function k(){return globalThis._VSCODE_NLS_LANGUAGE}}),define(ne[3],se([1,0,345,345]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getNLSMessages=e.getNLSLanguage=void 0,e.localize=y,e.localize2=_,Object.defineProperty(e,"getNLSLanguage",{enumerable:!0,get:function(){return k.getNLSLanguage}}),Object.defineProperty(e,"getNLSMessages",{enumerable:!0,get:function(){return k.getNLSMessages}});const I=(0,d.getNLSLanguage)()==="pseudo"||typeof document<"u"&&document.location&&document.location.hash.indexOf("pseudo=true")>=0;function E(b,p){let n;return p.length===0?n=b:n=b.replace(/\{(\d+)\}/g,(o,t)=>{const i=t[0],s=p[i];let g=o;return typeof s=="string"?g=s:(typeof s=="number"||typeof s=="boolean"||s===void 0||s===null)&&(g=String(s)),g}),I&&(n="\uFF3B"+n.replace(/[aouei]/g,"$&$&")+"\uFF3D"),n}function y(b,p,...n){return E(typeof b=="number"?m(b,p):p,n)}function m(b,p){const n=(0,d.getNLSMessages)()?.[b];if(typeof n!="string"){if(typeof p=="string")return p;throw new Error(`!!! NLS MISSING: ${b} !!!`)}return n}function _(b,p,...n){let o;typeof b=="number"?o=m(b,p):o=p;const t=E(o,n);return{value:t,original:p===o?t:E(p,n)}}}),define(ne[41],se([1,0,6,2,3]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EmptySubmenuAction=e.SubmenuAction=e.Separator=e.ActionRunner=e.Action=void 0,e.toAction=p;class E extends k.Disposable{constructor(o,t="",i="",s=!0,g){super(),this._onDidChange=this._register(new d.Emitter),this.onDidChange=this._onDidChange.event,this._enabled=!0,this._id=o,this._label=t,this._cssClass=i,this._enabled=s,this._actionCallback=g}get id(){return this._id}get label(){return this._label}set label(o){this._setLabel(o)}_setLabel(o){this._label!==o&&(this._label=o,this._onDidChange.fire({label:o}))}get tooltip(){return this._tooltip||""}set tooltip(o){this._setTooltip(o)}_setTooltip(o){this._tooltip!==o&&(this._tooltip=o,this._onDidChange.fire({tooltip:o}))}get class(){return this._cssClass}set class(o){this._setClass(o)}_setClass(o){this._cssClass!==o&&(this._cssClass=o,this._onDidChange.fire({class:o}))}get enabled(){return this._enabled}set enabled(o){this._setEnabled(o)}_setEnabled(o){this._enabled!==o&&(this._enabled=o,this._onDidChange.fire({enabled:o}))}get checked(){return this._checked}set checked(o){this._setChecked(o)}_setChecked(o){this._checked!==o&&(this._checked=o,this._onDidChange.fire({checked:o}))}async run(o,t){this._actionCallback&&await this._actionCallback(o)}}e.Action=E;class y extends k.Disposable{constructor(){super(...arguments),this._onWillRun=this._register(new d.Emitter),this.onWillRun=this._onWillRun.event,this._onDidRun=this._register(new d.Emitter),this.onDidRun=this._onDidRun.event}async run(o,t){if(!o.enabled)return;this._onWillRun.fire({action:o});let i;try{await this.runAction(o,t)}catch(s){i=s}this._onDidRun.fire({action:o,error:i})}async runAction(o,t){await o.run(t)}}e.ActionRunner=y;class m{constructor(){this.id=m.ID,this.label="",this.tooltip="",this.class="separator",this.enabled=!1,this.checked=!1}static join(...o){let t=[];for(const i of o)i.length&&(t.length?t=[...t,new m,...i]:t=i);return t}static{this.ID="vs.actions.separator"}async run(){}}e.Separator=m;class _{get actions(){return this._actions}constructor(o,t,i,s){this.tooltip="",this.enabled=!0,this.checked=void 0,this.id=o,this.label=t,this.class=s,this._actions=i}async run(){}}e.SubmenuAction=_;class b extends E{static{this.ID="vs.actions.empty"}constructor(){super(b.ID,I.localize(27,"(empty)"),void 0,!1)}}e.EmptySubmenuAction=b;function p(n){return{id:n.id,label:n.label,tooltip:n.tooltip??n.label,class:n.class,enabled:n.enabled??!0,checked:n.checked,run:async(...o)=>n.run(...o)}}}),define(ne[346],se([1,0,13,19,3]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.toErrorMessage=_;function E(b,p){return p&&(b.stack||b.stacktrace)?I.localize(28,"{0}: {1}",m(b),y(b.stack)||y(b.stacktrace)):m(b)}function y(b){return Array.isArray(b)?b.join(` +`):b}function m(b){return b.code==="ERR_UNC_HOST_NOT_ALLOWED"?`${b.message}. Please update the 'security.allowedUNCHosts' setting if you want to allow this host.`:typeof b.code=="string"&&typeof b.errno=="number"&&typeof b.syscall=="string"?I.localize(29,"A system error occurred ({0})",b.message):b.message||I.localize(30,"An unknown error occurred. Please consult the log for more details.")}function _(b=null,p=!1){if(!b)return I.localize(31,"An unknown error occurred. Please consult the log for more details.");if(Array.isArray(b)){const n=d.coalesce(b),o=_(n[0],p);return n.length>1?I.localize(32,"{0} ({1} errors in total)",o,n.length):o}if(k.isString(b))return b;if(b.detail){const n=b.detail;if(n.error)return E(n.error,p);if(n.exception)return E(n.exception,p)}return b.stack?E(b,p):b.message?b.message:I.localize(33,"An unknown error occurred. Please consult the log for more details.")}}),define(ne[247],se([1,0,3]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UserSettingsLabelProvider=e.ElectronAcceleratorLabelProvider=e.AriaLabelProvider=e.UILabelProvider=e.ModifierLabelProvider=void 0;class k{constructor(y,m,_=m){this.modifierLabels=[null],this.modifierLabels[2]=y,this.modifierLabels[1]=m,this.modifierLabels[3]=_}toLabel(y,m,_){if(m.length===0)return null;const b=[];for(let p=0,n=m.length;p=0,I=c.indexOf("Macintosh")>=0,p=(c.indexOf("Macintosh")>=0||c.indexOf("iPad")>=0||c.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,E=c.indexOf("Linux")>=0,o=c?.indexOf("Mobi")>=0,_=!0,i=d.getNLSLanguage()||e.LANGUAGE_DEFAULT,t=navigator.language.toLowerCase(),s=t):console.error("Unable to resolve platform.");let C=0;I?C=1:k?C=3:E&&(C=2),e.isWindows=k,e.isMacintosh=I,e.isLinux=E,e.isNative=m,e.isWeb=_,e.isWebWorker=_&&typeof l.importScripts=="function",e.webWorkerOrigin=e.isWebWorker?l.origin:void 0,e.isIOS=p,e.isMobile=o,e.userAgent=c,e.language=i,e.setTimeout0IsFaster=typeof l.postMessage=="function"&&!l.importScripts,e.setTimeout0=(()=>{if(e.setTimeout0IsFaster){const w=[];l.addEventListener("message",L=>{if(L.data&&L.data.vscodeScheduleAsyncWork)for(let D=0,T=w.length;D{const D=++S;w.push({id:D,callback:L}),l.postMessage({vscodeScheduleAsyncWork:D},"*")}}return w=>setTimeout(w)})(),e.OS=I||p?2:k?1:3;let f=!0,h=!1;function v(){if(!h){h=!0;const w=new Uint8Array(2);w[0]=1,w[1]=2,f=new Uint16Array(w.buffer)[0]===513}return f}e.isChrome=!!(e.userAgent&&e.userAgent.indexOf("Chrome")>=0),e.isFirefox=!!(e.userAgent&&e.userAgent.indexOf("Firefox")>=0),e.isSafari=!!(!e.isChrome&&e.userAgent&&e.userAgent.indexOf("Safari")>=0),e.isEdge=!!(e.userAgent&&e.userAgent.indexOf("Edg/")>=0),e.isAndroid=!!(e.userAgent&&e.userAgent.indexOf("Android")>=0)}),define(ne[248],se([1,0,64,52,16]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BrowserFeatures=void 0,e.BrowserFeatures={clipboard:{writeText:I.isNative||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:I.isNative||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},keyboard:I.isNative||d.isStandalone()?0:navigator.keyboard||d.isSafari?1:2,touch:"ontouchstart"in k.mainWindow||navigator.maxTouchPoints>0,pointerEvents:k.mainWindow.PointerEvent&&("ontouchstart"in k.mainWindow||navigator.maxTouchPoints>0)}}),define(ne[347],se([1,0,16]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DEFAULT_FONT_FAMILY=void 0,e.DEFAULT_FONT_FAMILY=d.isWindows?'"Segoe WPC", "Segoe UI", sans-serif':d.isMacintosh?"-apple-system, BlinkMacSystemFont, sans-serif":'system-ui, "Ubuntu", "Droid Sans", sans-serif'}),define(ne[47],se([1,0,64,72,140,16]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandardKeyboardEvent=void 0;function y(o){if(o.charCode){const i=String.fromCharCode(o.charCode).toUpperCase();return k.KeyCodeUtils.fromString(i)}const t=o.keyCode;if(t===3)return 7;if(d.isFirefox)switch(t){case 59:return 85;case 60:if(E.isLinux)return 97;break;case 61:return 86;case 107:return 109;case 109:return 111;case 173:return 88;case 224:if(E.isMacintosh)return 57;break}else if(d.isWebKit){if(E.isMacintosh&&t===93)return 57;if(!E.isMacintosh&&t===92)return 57}return k.EVENT_KEY_CODE_MAP[t]||0}const m=E.isMacintosh?256:2048,_=512,b=1024,p=E.isMacintosh?2048:256;class n{constructor(t){this._standardKeyboardEventBrand=!0;const i=t;this.browserEvent=i,this.target=i.target,this.ctrlKey=i.ctrlKey,this.shiftKey=i.shiftKey,this.altKey=i.altKey,this.metaKey=i.metaKey,this.altGraphKey=i.getModifierState?.("AltGraph"),this.keyCode=y(i),this.code=i.code,this.ctrlKey=this.ctrlKey||this.keyCode===5,this.altKey=this.altKey||this.keyCode===6,this.shiftKey=this.shiftKey||this.keyCode===4,this.metaKey=this.metaKey||this.keyCode===57,this._asKeybinding=this._computeKeybinding(),this._asKeyCodeChord=this._computeKeyCodeChord()}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}toKeyCodeChord(){return this._asKeyCodeChord}equals(t){return this._asKeybinding===t}_computeKeybinding(){let t=0;this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(t=this.keyCode);let i=0;return this.ctrlKey&&(i|=m),this.altKey&&(i|=_),this.shiftKey&&(i|=b),this.metaKey&&(i|=p),i|=t,i}_computeKeyCodeChord(){let t=0;return this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(t=this.keyCode),new I.KeyCodeChord(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,t)}}e.StandardKeyboardEvent=n}),define(ne[77],se([1,0,64,441,16]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandardWheelEvent=e.StandardMouseEvent=void 0;class E{constructor(_,b){this.timestamp=Date.now(),this.browserEvent=b,this.leftButton=b.button===0,this.middleButton=b.button===1,this.rightButton=b.button===2,this.buttons=b.buttons,this.target=b.target,this.detail=b.detail||1,b.type==="dblclick"&&(this.detail=2),this.ctrlKey=b.ctrlKey,this.shiftKey=b.shiftKey,this.altKey=b.altKey,this.metaKey=b.metaKey,typeof b.pageX=="number"?(this.posx=b.pageX,this.posy=b.pageY):(this.posx=b.clientX+this.target.ownerDocument.body.scrollLeft+this.target.ownerDocument.documentElement.scrollLeft,this.posy=b.clientY+this.target.ownerDocument.body.scrollTop+this.target.ownerDocument.documentElement.scrollTop);const p=k.IframeUtils.getPositionOfChildWindowRelativeToAncestorWindow(_,b.view);this.posx-=p.left,this.posy-=p.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}}e.StandardMouseEvent=E;class y{constructor(_,b=0,p=0){this.browserEvent=_||null,this.target=_?_.target||_.targetNode||_.srcElement:null,this.deltaY=p,this.deltaX=b;let n=!1;if(d.isChrome){const o=navigator.userAgent.match(/Chrome\/(\d+)/);n=(o?parseInt(o[1]):123)<=122}if(_){const o=_,t=_,i=_.view?.devicePixelRatio||1;if(typeof o.wheelDeltaY<"u")n?this.deltaY=o.wheelDeltaY/(120*i):this.deltaY=o.wheelDeltaY/120;else if(typeof t.VERTICAL_AXIS<"u"&&t.axis===t.VERTICAL_AXIS)this.deltaY=-t.detail/3;else if(_.type==="wheel"){const s=_;s.deltaMode===s.DOM_DELTA_LINE?d.isFirefox&&!I.isMacintosh?this.deltaY=-_.deltaY/3:this.deltaY=-_.deltaY:this.deltaY=-_.deltaY/40}if(typeof o.wheelDeltaX<"u")d.isSafari&&I.isWindows?this.deltaX=-(o.wheelDeltaX/120):n?this.deltaX=o.wheelDeltaX/(120*i):this.deltaX=o.wheelDeltaX/120;else if(typeof t.HORIZONTAL_AXIS<"u"&&t.axis===t.HORIZONTAL_AXIS)this.deltaX=-_.detail/3;else if(_.type==="wheel"){const s=_;s.deltaMode===s.DOM_DELTA_LINE?d.isFirefox&&!I.isMacintosh?this.deltaX=-_.deltaX/3:this.deltaX=-_.deltaX:this.deltaX=-_.deltaX/40}this.deltaY===0&&this.deltaX===0&&_.wheelDelta&&(n?this.deltaY=_.wheelDelta/(120*i):this.deltaY=_.wheelDelta/120)}}preventDefault(){this.browserEvent?.preventDefault()}stopPropagation(){this.browserEvent?.stopPropagation()}}e.StandardWheelEvent=y}),define(ne[14],se([1,0,18,8,6,2,16,301]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CancelableAsyncIterableObject=e.AsyncIterableObject=e.Promises=e.DeferredPromise=e.GlobalIdleValue=e.AbstractIdleValue=e._runWhenIdle=e.runWhenGlobalIdle=e.RunOnceScheduler=e.IntervalTimer=e.TimeoutTimer=e.ThrottledDelayer=e.Delayer=e.Throttler=void 0,e.isThenable=_,e.createCancelablePromise=b,e.raceCancellation=p,e.timeout=g,e.disposableTimeout=c,e.first=l,e.createCancelableAsyncIterable=L;function _(D){return!!D&&typeof D.then=="function"}function b(D){const T=new d.CancellationTokenSource,M=D(T.token),A=new Promise((P,N)=>{const O=T.token.onCancellationRequested(()=>{O.dispose(),N(new k.CancellationError)});Promise.resolve(M).then(F=>{O.dispose(),T.dispose(),P(F)},F=>{O.dispose(),T.dispose(),N(F)})});return new class{cancel(){T.cancel(),T.dispose()}then(P,N){return A.then(P,N)}catch(P){return this.then(void 0,P)}finally(P){return A.finally(P)}}}function p(D,T,M){return new Promise((A,P)=>{const N=T.onCancellationRequested(()=>{N.dispose(),A(M)});D.then(A,P).finally(()=>N.dispose())})}class n{constructor(){this.isDisposed=!1,this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(T){if(this.isDisposed)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=T,!this.queuedPromise){const M=()=>{if(this.queuedPromise=null,this.isDisposed)return;const A=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,A};this.queuedPromise=new Promise(A=>{this.activePromise.then(M,M).then(A)})}return new Promise((M,A)=>{this.queuedPromise.then(M,A)})}return this.activePromise=T(),new Promise((M,A)=>{this.activePromise.then(P=>{this.activePromise=null,M(P)},P=>{this.activePromise=null,A(P)})})}dispose(){this.isDisposed=!0}}e.Throttler=n;const o=(D,T)=>{let M=!0;const A=setTimeout(()=>{M=!1,T()},D);return{isTriggered:()=>M,dispose:()=>{clearTimeout(A),M=!1}}},t=D=>{let T=!0;return queueMicrotask(()=>{T&&(T=!1,D())}),{isTriggered:()=>T,dispose:()=>{T=!1}}};class i{constructor(T){this.defaultDelay=T,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(T,M=this.defaultDelay){this.task=T,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((P,N)=>{this.doResolve=P,this.doReject=N}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const P=this.task;return this.task=null,P()}}));const A=()=>{this.deferred=null,this.doResolve?.(null)};return this.deferred=M===m.MicrotaskDelay?t(A):o(M,A),this.completionPromise}isTriggered(){return!!this.deferred?.isTriggered()}cancel(){this.cancelTimeout(),this.completionPromise&&(this.doReject?.(new k.CancellationError),this.completionPromise=null)}cancelTimeout(){this.deferred?.dispose(),this.deferred=null}dispose(){this.cancel()}}e.Delayer=i;class s{constructor(T){this.delayer=new i(T),this.throttler=new n}trigger(T,M){return this.delayer.trigger(()=>this.throttler.queue(T),M)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}}e.ThrottledDelayer=s;function g(D,T){return T?new Promise((M,A)=>{const P=setTimeout(()=>{N.dispose(),M()},D),N=T.onCancellationRequested(()=>{clearTimeout(P),N.dispose(),A(new k.CancellationError)})}):b(M=>g(D,M))}function c(D,T=0,M){const A=setTimeout(()=>{D(),M&&P.dispose()},T),P=(0,E.toDisposable)(()=>{clearTimeout(A),M?.deleteAndLeak(P)});return M?.add(P),P}function l(D,T=A=>!!A,M=null){let A=0;const P=D.length,N=()=>{if(A>=P)return Promise.resolve(M);const O=D[A++];return Promise.resolve(O()).then(x=>T(x)?Promise.resolve(x):N())};return N()}class a{constructor(T,M){this._isDisposed=!1,this._token=-1,typeof T=="function"&&typeof M=="number"&&this.setIfNotSet(T,M)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){this._token!==-1&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(T,M){if(this._isDisposed)throw new k.BugIndicatingError("Calling 'cancelAndSet' on a disposed TimeoutTimer");this.cancel(),this._token=setTimeout(()=>{this._token=-1,T()},M)}setIfNotSet(T,M){if(this._isDisposed)throw new k.BugIndicatingError("Calling 'setIfNotSet' on a disposed TimeoutTimer");this._token===-1&&(this._token=setTimeout(()=>{this._token=-1,T()},M))}}e.TimeoutTimer=a;class r{constructor(){this.disposable=void 0,this.isDisposed=!1}cancel(){this.disposable?.dispose(),this.disposable=void 0}cancelAndSet(T,M,A=globalThis){if(this.isDisposed)throw new k.BugIndicatingError("Calling 'cancelAndSet' on a disposed IntervalTimer");this.cancel();const P=A.setInterval(()=>{T()},M);this.disposable=(0,E.toDisposable)(()=>{A.clearInterval(P),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}}e.IntervalTimer=r;class u{constructor(T,M){this.timeoutToken=-1,this.runner=T,this.timeout=M,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}schedule(T=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,T)}get delay(){return this.timeout}set delay(T){this.timeout=T}isScheduled(){return this.timeoutToken!==-1}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){this.runner?.()}}e.RunOnceScheduler=u,function(){typeof globalThis.requestIdleCallback!="function"||typeof globalThis.cancelIdleCallback!="function"?e._runWhenIdle=(D,T)=>{(0,y.setTimeout0)(()=>{if(M)return;const A=Date.now()+15;T(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,A-Date.now())}}))});let M=!1;return{dispose(){M||(M=!0)}}}:e._runWhenIdle=(D,T,M)=>{const A=D.requestIdleCallback(T,typeof M=="number"?{timeout:M}:void 0);let P=!1;return{dispose(){P||(P=!0,D.cancelIdleCallback(A))}}},e.runWhenGlobalIdle=D=>(0,e._runWhenIdle)(globalThis,D)}();class C{constructor(T,M){this._didRun=!1,this._executor=()=>{try{this._value=M()}catch(A){this._error=A}finally{this._didRun=!0}},this._handle=(0,e._runWhenIdle)(T,()=>this._executor())}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}e.AbstractIdleValue=C;class f extends C{constructor(T){super(globalThis,T)}}e.GlobalIdleValue=f;class h{get isRejected(){return this.outcome?.outcome===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((T,M)=>{this.completeCallback=T,this.errorCallback=M})}complete(T){return new Promise(M=>{this.completeCallback(T),this.outcome={outcome:0,value:T},M()})}error(T){return new Promise(M=>{this.errorCallback(T),this.outcome={outcome:1,value:T},M()})}cancel(){return this.error(new k.CancellationError)}}e.DeferredPromise=h;var v;(function(D){async function T(A){let P;const N=await Promise.all(A.map(O=>O.then(F=>F,F=>{P||(P=F)})));if(typeof P<"u")throw P;return N}D.settled=T;function M(A){return new Promise(async(P,N)=>{try{await A(P,N)}catch(O){N(O)}})}D.withAsyncBody=M})(v||(e.Promises=v={}));class w{static fromArray(T){return new w(M=>{M.emitMany(T)})}static fromPromise(T){return new w(async M=>{M.emitMany(await T)})}static fromPromises(T){return new w(async M=>{await Promise.all(T.map(async A=>M.emitOne(await A)))})}static merge(T){return new w(async M=>{await Promise.all(T.map(async A=>{for await(const P of A)M.emitOne(P)}))})}static{this.EMPTY=w.fromArray([])}constructor(T,M){this._state=0,this._results=[],this._error=null,this._onReturn=M,this._onStateChanged=new I.Emitter,queueMicrotask(async()=>{const A={emitOne:P=>this.emitOne(P),emitMany:P=>this.emitMany(P),reject:P=>this.reject(P)};try{await Promise.resolve(T(A)),this.resolve()}catch(P){this.reject(P)}finally{A.emitOne=void 0,A.emitMany=void 0,A.reject=void 0}})}[Symbol.asyncIterator](){let T=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(T(this._onReturn?.(),{done:!0,value:void 0})}}static map(T,M){return new w(async A=>{for await(const P of T)A.emitOne(M(P))})}map(T){return w.map(this,T)}static filter(T,M){return new w(async A=>{for await(const P of T)M(P)&&A.emitOne(P)})}filter(T){return w.filter(this,T)}static coalesce(T){return w.filter(T,M=>!!M)}coalesce(){return w.coalesce(this)}static async toPromise(T){const M=[];for await(const A of T)M.push(A);return M}toPromise(){return w.toPromise(this)}emitOne(T){this._state===0&&(this._results.push(T),this._onStateChanged.fire())}emitMany(T){this._state===0&&(this._results=this._results.concat(T),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(T){this._state===0&&(this._state=2,this._error=T,this._onStateChanged.fire())}}e.AsyncIterableObject=w;class S extends w{constructor(T,M){super(M),this._source=T}cancel(){this._source.cancel()}}e.CancelableAsyncIterableObject=S;function L(D){const T=new d.CancellationTokenSource,M=D(T.token);return new S(T,async A=>{const P=T.token.onCancellationRequested(()=>{P.dispose(),T.dispose(),A.reject(new k.CancellationError)});try{for await(const N of M){if(T.token.isCancellationRequested)return;A.emitOne(N)}P.dispose(),T.dispose()}catch(N){P.dispose(),T.dispose(),A.reject(N)}})}}),define(ne[626],se([1,0,14,2]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ScrollbarVisibilityController=void 0;class I extends k.Disposable{constructor(y,m,_){super(),this._visibility=y,this._visibleClassName=m,this._invisibleClassName=_,this._domNode=null,this._isVisible=!1,this._isNeeded=!1,this._rawShouldBeVisible=!1,this._shouldBeVisible=!1,this._revealTimer=this._register(new d.TimeoutTimer)}setVisibility(y){this._visibility!==y&&(this._visibility=y,this._updateShouldBeVisible())}setShouldBeVisible(y){this._rawShouldBeVisible=y,this._updateShouldBeVisible()}_applyVisibilitySetting(){return this._visibility===2?!1:this._visibility===3?!0:this._rawShouldBeVisible}_updateShouldBeVisible(){const y=this._applyVisibilitySetting();this._shouldBeVisible!==y&&(this._shouldBeVisible=y,this.ensureVisibility())}setIsNeeded(y){this._isNeeded!==y&&(this._isNeeded=y,this.ensureVisibility())}setDomNode(y){this._domNode=y,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}ensureVisibility(){if(!this._isNeeded){this._hide(!1);return}this._shouldBeVisible?this._reveal():this._hide(!0)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet(()=>{this._domNode?.setClassName(this._visibleClassName)},0))}_hide(y){this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,this._domNode?.setClassName(this._invisibleClassName+(y?" fade":"")))}}e.ScrollbarVisibilityController=I}),define(ne[249],se([1,0,159,13,14,301,190,6,53]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IndexTreeModel=void 0,e.isFilterResult=b,e.getVisibleState=p;function b(t){return typeof t=="object"&&"visibility"in t&&"data"in t}function p(t){switch(t){case!0:return 1;case!1:return 0;default:return t}}function n(t){return typeof t.collapsible=="boolean"}class o{constructor(i,s,g,c={}){this.user=i,this.list=s,this.rootRef=[],this.eventBufferer=new m.EventBufferer,this._onDidChangeCollapseState=new m.Emitter,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new m.Emitter,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new m.Emitter,this.onDidSplice=this._onDidSplice.event,this.refilterDelayer=new I.Delayer(E.MicrotaskDelay),this.collapseByDefault=typeof c.collapseByDefault>"u"?!1:c.collapseByDefault,this.allowNonCollapsibleParents=c.allowNonCollapsibleParents??!1,this.filter=c.filter,this.autoExpandSingleChildren=typeof c.autoExpandSingleChildren>"u"?!1:c.autoExpandSingleChildren,this.root={parent:void 0,element:g,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visibility:1,visible:!0,filterData:void 0}}splice(i,s,g=_.Iterable.empty(),c={}){if(i.length===0)throw new d.TreeError(this.user,"Invalid tree location");c.diffIdentityProvider?this.spliceSmart(c.diffIdentityProvider,i,s,g,c):this.spliceSimple(i,s,g,c)}spliceSmart(i,s,g,c=_.Iterable.empty(),l,a=l.diffDepth??0){const{parentNode:r}=this.getParentNodeWithListIndex(s);if(!r.lastDiffIds)return this.spliceSimple(s,g,c,l);const u=[...c],C=s[s.length-1],f=new y.LcsDiff({getElements:()=>r.lastDiffIds},{getElements:()=>[...r.children.slice(0,C),...u,...r.children.slice(C+g)].map(L=>i.getId(L.element).toString())}).ComputeDiff(!1);if(f.quitEarly)return r.lastDiffIds=void 0,this.spliceSimple(s,g,u,l);const h=s.slice(0,-1),v=(L,D,T)=>{if(a>0)for(let M=0;MT.originalStart-D.originalStart))v(w,S,w-(L.originalStart+L.originalLength)),w=L.originalStart,S=L.modifiedStart-C,this.spliceSimple([...h,w],L.originalLength,_.Iterable.slice(u,S,S+L.modifiedLength),l);v(w,S,w)}spliceSimple(i,s,g=_.Iterable.empty(),{onDidCreateNode:c,onDidDeleteNode:l,diffIdentityProvider:a}){const{parentNode:r,listIndex:u,revealed:C,visible:f}=this.getParentNodeWithListIndex(i),h=[],v=_.Iterable.map(g,N=>this.createTreeNode(N,r,r.visible?1:0,C,h,c)),w=i[i.length-1];let S=0;for(let N=w;N>=0&&Na.getId(N.element).toString())):r.lastDiffIds=r.children.map(N=>a.getId(N.element).toString()):r.lastDiffIds=void 0;let A=0;for(const N of M)N.visible&&A++;if(A!==0)for(let N=w+L.length;NO+(F.visible?F.renderNodeCount:0),0);this._updateAncestorsRenderNodeCount(r,T-N),this.list.splice(u,N,h)}if(M.length>0&&l){const N=O=>{l(O),O.children.forEach(N)};M.forEach(N)}this._onDidSplice.fire({insertedNodes:L,deletedNodes:M});let P=r;for(;P;){if(P.visibility===2){this.refilterDelayer.trigger(()=>this.refilter());break}P=P.parent}}rerender(i){if(i.length===0)throw new d.TreeError(this.user,"Invalid tree location");const{node:s,listIndex:g,revealed:c}=this.getTreeNodeWithListIndex(i);s.visible&&c&&this.list.splice(g,1,[s])}has(i){return this.hasTreeNode(i)}getListIndex(i){const{listIndex:s,visible:g,revealed:c}=this.getTreeNodeWithListIndex(i);return g&&c?s:-1}getListRenderCount(i){return this.getTreeNode(i).renderNodeCount}isCollapsible(i){return this.getTreeNode(i).collapsible}setCollapsible(i,s){const g=this.getTreeNode(i);typeof s>"u"&&(s=!g.collapsible);const c={collapsible:s};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(i,c))}isCollapsed(i){return this.getTreeNode(i).collapsed}setCollapsed(i,s,g){const c=this.getTreeNode(i);typeof s>"u"&&(s=!c.collapsed);const l={collapsed:s,recursive:g||!1};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(i,l))}_setCollapseState(i,s){const{node:g,listIndex:c,revealed:l}=this.getTreeNodeWithListIndex(i),a=this._setListNodeCollapseState(g,c,l,s);if(g!==this.root&&this.autoExpandSingleChildren&&a&&!n(s)&&g.collapsible&&!g.collapsed&&!s.recursive){let r=-1;for(let u=0;u-1){r=-1;break}else r=u;r>-1&&this._setCollapseState([...i,r],s)}return a}_setListNodeCollapseState(i,s,g,c){const l=this._setNodeCollapseState(i,c,!1);if(!g||!i.visible||!l)return l;const a=i.renderNodeCount,r=this.updateNodeAfterCollapseChange(i),u=a-(s===-1?0:1);return this.list.splice(s+1,u,r.slice(1)),l}_setNodeCollapseState(i,s,g){let c;if(i===this.root?c=!1:(n(s)?(c=i.collapsible!==s.collapsible,i.collapsible=s.collapsible):i.collapsible?(c=i.collapsed!==s.collapsed,i.collapsed=s.collapsed):c=!1,c&&this._onDidChangeCollapseState.fire({node:i,deep:g})),!n(s)&&s.recursive)for(const l of i.children)c=this._setNodeCollapseState(l,s,!0)||c;return c}expandTo(i){this.eventBufferer.bufferEvents(()=>{let s=this.getTreeNode(i);for(;s.parent;)s=s.parent,i=i.slice(0,i.length-1),s.collapsed&&this._setCollapseState(i,{collapsed:!1,recursive:!1})})}refilter(){const i=this.root.renderNodeCount,s=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,i,s),this.refilterDelayer.cancel()}createTreeNode(i,s,g,c,l,a){const r={parent:s,element:i.element,children:[],depth:s.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:typeof i.collapsible=="boolean"?i.collapsible:typeof i.collapsed<"u",collapsed:typeof i.collapsed>"u"?this.collapseByDefault:i.collapsed,renderNodeCount:1,visibility:1,visible:!0,filterData:void 0},u=this._filterNode(r,g);r.visibility=u,c&&l.push(r);const C=i.children||_.Iterable.empty(),f=c&&u!==0&&!r.collapsed;let h=0,v=1;for(const w of C){const S=this.createTreeNode(w,r,u,f,l,a);r.children.push(S),v+=S.renderNodeCount,S.visible&&(S.visibleChildIndex=h++)}return this.allowNonCollapsibleParents||(r.collapsible=r.collapsible||r.children.length>0),r.visibleChildrenCount=h,r.visible=u===2?h>0:u===1,r.visible?r.collapsed||(r.renderNodeCount=v):(r.renderNodeCount=0,c&&l.pop()),a?.(r),r}updateNodeAfterCollapseChange(i){const s=i.renderNodeCount,g=[];return this._updateNodeAfterCollapseChange(i,g),this._updateAncestorsRenderNodeCount(i.parent,g.length-s),g}_updateNodeAfterCollapseChange(i,s){if(i.visible===!1)return 0;if(s.push(i),i.renderNodeCount=1,!i.collapsed)for(const g of i.children)i.renderNodeCount+=this._updateNodeAfterCollapseChange(g,s);return this._onDidChangeRenderNodeCount.fire(i),i.renderNodeCount}updateNodeAfterFilterChange(i){const s=i.renderNodeCount,g=[];return this._updateNodeAfterFilterChange(i,i.visible?1:0,g),this._updateAncestorsRenderNodeCount(i.parent,g.length-s),g}_updateNodeAfterFilterChange(i,s,g,c=!0){let l;if(i!==this.root){if(l=this._filterNode(i,s),l===0)return i.visible=!1,i.renderNodeCount=0,!1;c&&g.push(i)}const a=g.length;i.renderNodeCount=i===this.root?0:1;let r=!1;if(!i.collapsed||l!==0){let u=0;for(const C of i.children)r=this._updateNodeAfterFilterChange(C,l,g,c&&!i.collapsed)||r,C.visible&&(C.visibleChildIndex=u++);i.visibleChildrenCount=u}else i.visibleChildrenCount=0;return i!==this.root&&(i.visible=l===2?r:l===1,i.visibility=l),i.visible?i.collapsed||(i.renderNodeCount+=g.length-a):(i.renderNodeCount=0,c&&g.pop()),this._onDidChangeRenderNodeCount.fire(i),i.visible}_updateAncestorsRenderNodeCount(i,s){if(s!==0)for(;i;)i.renderNodeCount+=s,this._onDidChangeRenderNodeCount.fire(i),i=i.parent}_filterNode(i,s){const g=this.filter?this.filter.filter(i.element,s):1;return typeof g=="boolean"?(i.filterData=void 0,g?1:0):b(g)?(i.filterData=g.data,p(g.visibility)):(i.filterData=void 0,p(g))}hasTreeNode(i,s=this.root){if(!i||i.length===0)return!0;const[g,...c]=i;return g<0||g>s.children.length?!1:this.hasTreeNode(c,s.children[g])}getTreeNode(i,s=this.root){if(!i||i.length===0)return s;const[g,...c]=i;if(g<0||g>s.children.length)throw new d.TreeError(this.user,"Invalid tree location");return this.getTreeNode(c,s.children[g])}getTreeNodeWithListIndex(i){if(i.length===0)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};const{parentNode:s,listIndex:g,revealed:c,visible:l}=this.getParentNodeWithListIndex(i),a=i[i.length-1];if(a<0||a>s.children.length)throw new d.TreeError(this.user,"Invalid tree location");const r=s.children[a];return{node:r,listIndex:g,revealed:c,visible:l&&r.visible}}getParentNodeWithListIndex(i,s=this.root,g=0,c=!0,l=!0){const[a,...r]=i;if(a<0||a>s.children.length)throw new d.TreeError(this.user,"Invalid tree location");for(let u=0;u{if(i.element===null)return;const s=i;if(p.add(s.element),this.nodes.set(s.element,s),this.identityProvider){const g=this.identityProvider.getId(s.element).toString();n.add(g),this.nodesByIdentity.set(g,s)}b.onDidCreateNode?.(s)},t=i=>{if(i.element===null)return;const s=i;if(p.has(s.element)||this.nodes.delete(s.element),this.identityProvider){const g=this.identityProvider.getId(s.element).toString();n.has(g)||this.nodesByIdentity.delete(g)}b.onDidDeleteNode?.(s)};this.model.splice([...m,0],Number.MAX_VALUE,_,{...b,onDidCreateNode:o,onDidDeleteNode:t})}preserveCollapseState(m=I.Iterable.empty()){return this.sorter&&(m=[...m].sort(this.sorter.compare.bind(this.sorter))),I.Iterable.map(m,_=>{let b=this.nodes.get(_.element);if(!b&&this.identityProvider){const o=this.identityProvider.getId(_.element).toString();b=this.nodesByIdentity.get(o)}if(!b){let o;return typeof _.collapsed>"u"?o=void 0:_.collapsed===k.ObjectTreeElementCollapseState.Collapsed||_.collapsed===k.ObjectTreeElementCollapseState.PreserveOrCollapsed?o=!0:_.collapsed===k.ObjectTreeElementCollapseState.Expanded||_.collapsed===k.ObjectTreeElementCollapseState.PreserveOrExpanded?o=!1:o=!!_.collapsed,{..._,children:this.preserveCollapseState(_.children),collapsed:o}}const p=typeof _.collapsible=="boolean"?_.collapsible:b.collapsible;let n;return typeof _.collapsed>"u"||_.collapsed===k.ObjectTreeElementCollapseState.PreserveOrCollapsed||_.collapsed===k.ObjectTreeElementCollapseState.PreserveOrExpanded?n=b.collapsed:_.collapsed===k.ObjectTreeElementCollapseState.Collapsed?n=!0:_.collapsed===k.ObjectTreeElementCollapseState.Expanded?n=!1:n=!!_.collapsed,{..._,collapsible:p,collapsed:n,children:this.preserveCollapseState(_.children)}})}rerender(m){const _=this.getElementLocation(m);this.model.rerender(_)}getFirstElementChild(m=null){const _=this.getElementLocation(m);return this.model.getFirstElementChild(_)}has(m){return this.nodes.has(m)}getListIndex(m){const _=this.getElementLocation(m);return this.model.getListIndex(_)}getListRenderCount(m){const _=this.getElementLocation(m);return this.model.getListRenderCount(_)}isCollapsible(m){const _=this.getElementLocation(m);return this.model.isCollapsible(_)}setCollapsible(m,_){const b=this.getElementLocation(m);return this.model.setCollapsible(b,_)}isCollapsed(m){const _=this.getElementLocation(m);return this.model.isCollapsed(_)}setCollapsed(m,_,b){const p=this.getElementLocation(m);return this.model.setCollapsed(p,_,b)}expandTo(m){const _=this.getElementLocation(m);this.model.expandTo(_)}refilter(){this.model.refilter()}getNode(m=null){if(m===null)return this.model.getNode(this.model.rootRef);const _=this.nodes.get(m);if(!_)throw new k.TreeError(this.user,`Tree element not found: ${m}`);return _}getNodeLocation(m){return m.element}getParentNodeLocation(m){if(m===null)throw new k.TreeError(this.user,"Invalid getParentNodeLocation call");const _=this.nodes.get(m);if(!_)throw new k.TreeError(this.user,`Tree element not found: ${m}`);const b=this.model.getNodeLocation(_),p=this.model.getParentNodeLocation(b);return this.model.getNode(p).element}getElementLocation(m){if(m===null)return[];const _=this.nodes.get(m);if(!_)throw new k.TreeError(this.user,`Tree element not found: ${m}`);return this.model.getNodeLocation(_)}}e.ObjectTreeModel=E}),define(ne[627],se([1,0,250,159,13,6,53]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CompressibleObjectTreeModel=e.DefaultElementMapper=e.CompressedObjectTreeModel=void 0,e.compress=_,e.decompress=p;function m(a){const r=[a.element],u=a.incompressible||!1;return{element:{elements:r,incompressible:u},children:y.Iterable.map(y.Iterable.from(a.children),m),collapsible:a.collapsible,collapsed:a.collapsed}}function _(a){const r=[a.element],u=a.incompressible||!1;let C,f;for(;[f,C]=y.Iterable.consume(y.Iterable.from(a.children),2),!(f.length!==1||f[0].incompressible);)a=f[0],r.push(a.element);return{element:{elements:r,incompressible:u},children:y.Iterable.map(y.Iterable.concat(f,C),_),collapsible:a.collapsible,collapsed:a.collapsed}}function b(a,r=0){let u;return rb(C,0)),r===0&&a.element.incompressible?{element:a.element.elements[r],children:u,incompressible:!0,collapsible:a.collapsible,collapsed:a.collapsed}:{element:a.element.elements[r],children:u,collapsible:a.collapsible,collapsed:a.collapsed}}function p(a){return b(a,0)}function n(a,r,u){return a.element===r?{...a,children:u}:{...a,children:y.Iterable.map(y.Iterable.from(a.children),C=>n(C,r,u))}}const o=a=>({getId(r){return r.elements.map(u=>a.getId(u).toString()).join("\0")}});class t{get onDidSplice(){return this.model.onDidSplice}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get onDidChangeRenderNodeCount(){return this.model.onDidChangeRenderNodeCount}constructor(r,u,C={}){this.user=r,this.rootRef=null,this.nodes=new Map,this.model=new d.ObjectTreeModel(r,u,C),this.enabled=typeof C.compressionEnabled>"u"?!0:C.compressionEnabled,this.identityProvider=C.identityProvider}setChildren(r,u=y.Iterable.empty(),C){const f=C.diffIdentityProvider&&o(C.diffIdentityProvider);if(r===null){const P=y.Iterable.map(u,this.enabled?_:m);this._setChildren(null,P,{diffIdentityProvider:f,diffDepth:1/0});return}const h=this.nodes.get(r);if(!h)throw new k.TreeError(this.user,"Unknown compressed tree node");const v=this.model.getNode(h),w=this.model.getParentNodeLocation(h),S=this.model.getNode(w),L=p(v),D=n(L,r,u),T=(this.enabled?_:m)(D),M=C.diffIdentityProvider?(P,N)=>C.diffIdentityProvider.getId(P)===C.diffIdentityProvider.getId(N):void 0;if((0,I.equals)(T.element.elements,v.element.elements,M)){this._setChildren(h,T.children||y.Iterable.empty(),{diffIdentityProvider:f,diffDepth:1});return}const A=S.children.map(P=>P===v?T:P);this._setChildren(S.element,A,{diffIdentityProvider:f,diffDepth:v.depth-S.depth})}isCompressionEnabled(){return this.enabled}setCompressionEnabled(r){if(r===this.enabled)return;this.enabled=r;const C=this.model.getNode().children,f=y.Iterable.map(C,p),h=y.Iterable.map(f,r?_:m);this._setChildren(null,h,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}_setChildren(r,u,C){const f=new Set,h=w=>{for(const S of w.element.elements)f.add(S),this.nodes.set(S,w.element)},v=w=>{for(const S of w.element.elements)f.has(S)||this.nodes.delete(S)};this.model.setChildren(r,u,{...C,onDidCreateNode:h,onDidDeleteNode:v})}has(r){return this.nodes.has(r)}getListIndex(r){const u=this.getCompressedNode(r);return this.model.getListIndex(u)}getListRenderCount(r){const u=this.getCompressedNode(r);return this.model.getListRenderCount(u)}getNode(r){if(typeof r>"u")return this.model.getNode();const u=this.getCompressedNode(r);return this.model.getNode(u)}getNodeLocation(r){const u=this.model.getNodeLocation(r);return u===null?null:u.elements[u.elements.length-1]}getParentNodeLocation(r){const u=this.getCompressedNode(r),C=this.model.getParentNodeLocation(u);return C===null?null:C.elements[C.elements.length-1]}getFirstElementChild(r){const u=this.getCompressedNode(r);return this.model.getFirstElementChild(u)}isCollapsible(r){const u=this.getCompressedNode(r);return this.model.isCollapsible(u)}setCollapsible(r,u){const C=this.getCompressedNode(r);return this.model.setCollapsible(C,u)}isCollapsed(r){const u=this.getCompressedNode(r);return this.model.isCollapsed(u)}setCollapsed(r,u,C){const f=this.getCompressedNode(r);return this.model.setCollapsed(f,u,C)}expandTo(r){const u=this.getCompressedNode(r);this.model.expandTo(u)}rerender(r){const u=this.getCompressedNode(r);this.model.rerender(u)}refilter(){this.model.refilter()}getCompressedNode(r){if(r===null)return null;const u=this.nodes.get(r);if(!u)throw new k.TreeError(this.user,`Tree element not found: ${r}`);return u}}e.CompressedObjectTreeModel=t;const i=a=>a[a.length-1];e.DefaultElementMapper=i;class s{get element(){return this.node.element===null?null:this.unwrapper(this.node.element)}get children(){return this.node.children.map(r=>new s(this.unwrapper,r))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(r,u){this.unwrapper=r,this.node=u}}function g(a,r){return{splice(u,C,f){r.splice(u,C,f.map(h=>a.map(h)))},updateElementHeight(u,C){r.updateElementHeight(u,C)}}}function c(a,r){return{...r,identityProvider:r.identityProvider&&{getId(u){return r.identityProvider.getId(a(u))}},sorter:r.sorter&&{compare(u,C){return r.sorter.compare(u.elements[0],C.elements[0])}},filter:r.filter&&{filter(u,C){return r.filter.filter(a(u),C)}}}}class l{get onDidSplice(){return E.Event.map(this.model.onDidSplice,({insertedNodes:r,deletedNodes:u})=>({insertedNodes:r.map(C=>this.nodeMapper.map(C)),deletedNodes:u.map(C=>this.nodeMapper.map(C))}))}get onDidChangeCollapseState(){return E.Event.map(this.model.onDidChangeCollapseState,({node:r,deep:u})=>({node:this.nodeMapper.map(r),deep:u}))}get onDidChangeRenderNodeCount(){return E.Event.map(this.model.onDidChangeRenderNodeCount,r=>this.nodeMapper.map(r))}constructor(r,u,C={}){this.rootRef=null,this.elementMapper=C.elementMapper||e.DefaultElementMapper;const f=h=>this.elementMapper(h.elements);this.nodeMapper=new k.WeakMapper(h=>new s(f,h)),this.model=new t(r,g(this.nodeMapper,u),c(f,C))}setChildren(r,u=y.Iterable.empty(),C={}){this.model.setChildren(r,u,C)}isCompressionEnabled(){return this.model.isCompressionEnabled()}setCompressionEnabled(r){this.model.setCompressionEnabled(r)}has(r){return this.model.has(r)}getListIndex(r){return this.model.getListIndex(r)}getListRenderCount(r){return this.model.getListRenderCount(r)}getNode(r){return this.nodeMapper.map(this.model.getNode(r))}getNodeLocation(r){return r.element}getParentNodeLocation(r){return this.model.getParentNodeLocation(r)}getFirstElementChild(r){const u=this.model.getFirstElementChild(r);return u===null||typeof u>"u"?u:this.elementMapper(u.elements)}isCollapsible(r){return this.model.isCollapsible(r)}setCollapsible(r,u){return this.model.setCollapsible(r,u)}isCollapsed(r){return this.model.isCollapsed(r)}setCollapsed(r,u,C){return this.model.setCollapsed(r,u,C)}expandTo(r){return this.model.expandTo(r)}rerender(r){return this.model.rerender(r)}refilter(){return this.model.refilter()}getCompressedTreeNode(r=null){return this.model.getNode(r)}}e.CompressibleObjectTreeModel=l}),define(ne[348],se([1,0,16]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.platform=e.env=e.cwd=void 0;let k;const I=globalThis.vscode;if(typeof I<"u"&&typeof I.process<"u"){const E=I.process;k={get platform(){return E.platform},get arch(){return E.arch},get env(){return E.env},cwd(){return E.cwd()}}}else typeof process<"u"&&typeof process?.versions?.node=="string"?k={get platform(){return process.platform},get arch(){return process.arch},get env(){return process.env},cwd(){return process.env.VSCODE_CWD||process.cwd()}}:k={get platform(){return d.isWindows?"win32":d.isMacintosh?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};e.cwd=k.cwd,e.env=k.env,e.platform=k.platform}),define(ne[349],se([1,0,348]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isHotReloadEnabled=k,e.registerHotReloadHandler=I;function k(){return d.env&&!!d.env.VSCODE_DEV}function I(m){if(k()){const _=E();return _.add(m),{dispose(){_.delete(m)}}}else return{dispose(){}}}function E(){y||(y=new Set);const m=globalThis;return m.$hotReload_applyNewExports||(m.$hotReload_applyNewExports=_=>{const b={config:{mode:void 0},..._},p=[];for(const n of y){const o=n(b);o&&p.push(o)}if(p.length>0)return n=>{let o=!1;for(const t of p)t(n)&&(o=!0);return o}}),y}let y;k()&&I(({oldExports:m,newSrc:_,config:b})=>{if(b.mode==="patch-prototype")return p=>{for(const n in p){const o=p[n];if(console.log(`[hot-reload] Patching prototype methods of '${n}'`,{exportedItem:o}),typeof o=="function"&&o.prototype){const t=m[n];if(t){for(const i of Object.getOwnPropertyNames(o.prototype)){const s=Object.getOwnPropertyDescriptor(o.prototype,i),g=Object.getOwnPropertyDescriptor(t.prototype,i);s?.value?.toString()!==g?.value?.toString()&&console.log(`[hot-reload] Patching prototype method '${n}.${i}'`),Object.defineProperty(t.prototype,i,s)}p[n]=t}}}return!0}})}),define(ne[171],se([1,0,349,21]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.readHotReloadableExport=I,e.observeHotReloadableExports=E;function I(y,m){return E([y],m),y}function E(y,m){(0,d.isHotReloadEnabled)()&&(0,k.observableSignalFromEvent)("reload",b=>(0,d.registerHotReloadHandler)(({oldExports:p})=>{if([...Object.values(p)].some(n=>y.includes(n)))return n=>(b(void 0),!0)})).read(m)}}),define(ne[99],se([1,0,348]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sep=e.extname=e.basename=e.dirname=e.relative=e.resolve=e.join=e.normalize=e.posix=e.win32=void 0;const k=65,I=97,E=90,y=122,m=46,_=47,b=92,p=58,n=63;class o extends Error{constructor(h,v,w){let S;typeof v=="string"&&v.indexOf("not ")===0?(S="must not be",v=v.replace(/^not /,"")):S="must be";const L=h.indexOf(".")!==-1?"property":"argument";let D=`The "${h}" ${L} ${S} of type ${v}`;D+=`. Received type ${typeof w}`,super(D),this.code="ERR_INVALID_ARG_TYPE"}}function t(f,h){if(f===null||typeof f!="object")throw new o(h,"Object",f)}function i(f,h){if(typeof f!="string")throw new o(h,"string",f)}const s=d.platform==="win32";function g(f){return f===_||f===b}function c(f){return f===_}function l(f){return f>=k&&f<=E||f>=I&&f<=y}function a(f,h,v,w){let S="",L=0,D=-1,T=0,M=0;for(let A=0;A<=f.length;++A){if(A2){const P=S.lastIndexOf(v);P===-1?(S="",L=0):(S=S.slice(0,P),L=S.length-1-S.lastIndexOf(v)),D=A,T=0;continue}else if(S.length!==0){S="",L=0,D=A,T=0;continue}}h&&(S+=S.length>0?`${v}..`:"..",L=2)}else S.length>0?S+=`${v}${f.slice(D+1,A)}`:S=f.slice(D+1,A),L=A-D-1;D=A,T=0}else M===m&&T!==-1?++T:T=-1}return S}function r(f){return f?`${f[0]==="."?"":"."}${f}`:""}function u(f,h){t(h,"pathObject");const v=h.dir||h.root,w=h.base||`${h.name||""}${r(h.ext)}`;return v?v===h.root?`${v}${w}`:`${v}${f}${w}`:w}e.win32={resolve(...f){let h="",v="",w=!1;for(let S=f.length-1;S>=-1;S--){let L;if(S>=0){if(L=f[S],i(L,`paths[${S}]`),L.length===0)continue}else h.length===0?L=d.cwd():(L=d.env[`=${h}`]||d.cwd(),(L===void 0||L.slice(0,2).toLowerCase()!==h.toLowerCase()&&L.charCodeAt(2)===b)&&(L=`${h}\\`));const D=L.length;let T=0,M="",A=!1;const P=L.charCodeAt(0);if(D===1)g(P)&&(T=1,A=!0);else if(g(P))if(A=!0,g(L.charCodeAt(1))){let N=2,O=N;for(;N2&&g(L.charCodeAt(2))&&(A=!0,T=3));if(M.length>0)if(h.length>0){if(M.toLowerCase()!==h.toLowerCase())continue}else h=M;if(w){if(h.length>0)break}else if(v=`${L.slice(T)}\\${v}`,w=A,A&&h.length>0)break}return v=a(v,!w,"\\",g),w?`${h}\\${v}`:`${h}${v}`||"."},normalize(f){i(f,"path");const h=f.length;if(h===0)return".";let v=0,w,S=!1;const L=f.charCodeAt(0);if(h===1)return c(L)?"\\":f;if(g(L))if(S=!0,g(f.charCodeAt(1))){let T=2,M=T;for(;T2&&g(f.charCodeAt(2))&&(S=!0,v=3));let D=v0&&g(f.charCodeAt(h-1))&&(D+="\\"),w===void 0?S?`\\${D}`:D:S?`${w}\\${D}`:`${w}${D}`},isAbsolute(f){i(f,"path");const h=f.length;if(h===0)return!1;const v=f.charCodeAt(0);return g(v)||h>2&&l(v)&&f.charCodeAt(1)===p&&g(f.charCodeAt(2))},join(...f){if(f.length===0)return".";let h,v;for(let L=0;L0&&(h===void 0?h=v=D:h+=`\\${D}`)}if(h===void 0)return".";let w=!0,S=0;if(typeof v=="string"&&g(v.charCodeAt(0))){++S;const L=v.length;L>1&&g(v.charCodeAt(1))&&(++S,L>2&&(g(v.charCodeAt(2))?++S:w=!1))}if(w){for(;S=2&&(h=`\\${h.slice(S)}`)}return e.win32.normalize(h)},relative(f,h){if(i(f,"from"),i(h,"to"),f===h)return"";const v=e.win32.resolve(f),w=e.win32.resolve(h);if(v===w||(f=v.toLowerCase(),h=w.toLowerCase(),f===h))return"";let S=0;for(;SS&&f.charCodeAt(L-1)===b;)L--;const D=L-S;let T=0;for(;TT&&h.charCodeAt(M-1)===b;)M--;const A=M-T,P=DP){if(h.charCodeAt(T+O)===b)return w.slice(T+O+1);if(O===2)return w.slice(T+O)}D>P&&(f.charCodeAt(S+O)===b?N=O:O===2&&(N=3)),N===-1&&(N=0)}let F="";for(O=S+N+1;O<=L;++O)(O===L||f.charCodeAt(O)===b)&&(F+=F.length===0?"..":"\\..");return T+=N,F.length>0?`${F}${w.slice(T,M)}`:(w.charCodeAt(T)===b&&++T,w.slice(T,M))},toNamespacedPath(f){if(typeof f!="string"||f.length===0)return f;const h=e.win32.resolve(f);if(h.length<=2)return f;if(h.charCodeAt(0)===b){if(h.charCodeAt(1)===b){const v=h.charCodeAt(2);if(v!==n&&v!==m)return`\\\\?\\UNC\\${h.slice(2)}`}}else if(l(h.charCodeAt(0))&&h.charCodeAt(1)===p&&h.charCodeAt(2)===b)return`\\\\?\\${h}`;return f},dirname(f){i(f,"path");const h=f.length;if(h===0)return".";let v=-1,w=0;const S=f.charCodeAt(0);if(h===1)return g(S)?f:".";if(g(S)){if(v=w=1,g(f.charCodeAt(1))){let T=2,M=T;for(;T2&&g(f.charCodeAt(2))?3:2,w=v);let L=-1,D=!0;for(let T=h-1;T>=w;--T)if(g(f.charCodeAt(T))){if(!D){L=T;break}}else D=!1;if(L===-1){if(v===-1)return".";L=v}return f.slice(0,L)},basename(f,h){h!==void 0&&i(h,"suffix"),i(f,"path");let v=0,w=-1,S=!0,L;if(f.length>=2&&l(f.charCodeAt(0))&&f.charCodeAt(1)===p&&(v=2),h!==void 0&&h.length>0&&h.length<=f.length){if(h===f)return"";let D=h.length-1,T=-1;for(L=f.length-1;L>=v;--L){const M=f.charCodeAt(L);if(g(M)){if(!S){v=L+1;break}}else T===-1&&(S=!1,T=L+1),D>=0&&(M===h.charCodeAt(D)?--D===-1&&(w=L):(D=-1,w=T))}return v===w?w=T:w===-1&&(w=f.length),f.slice(v,w)}for(L=f.length-1;L>=v;--L)if(g(f.charCodeAt(L))){if(!S){v=L+1;break}}else w===-1&&(S=!1,w=L+1);return w===-1?"":f.slice(v,w)},extname(f){i(f,"path");let h=0,v=-1,w=0,S=-1,L=!0,D=0;f.length>=2&&f.charCodeAt(1)===p&&l(f.charCodeAt(0))&&(h=w=2);for(let T=f.length-1;T>=h;--T){const M=f.charCodeAt(T);if(g(M)){if(!L){w=T+1;break}continue}S===-1&&(L=!1,S=T+1),M===m?v===-1?v=T:D!==1&&(D=1):v!==-1&&(D=-1)}return v===-1||S===-1||D===0||D===1&&v===S-1&&v===w+1?"":f.slice(v,S)},format:u.bind(null,"\\"),parse(f){i(f,"path");const h={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return h;const v=f.length;let w=0,S=f.charCodeAt(0);if(v===1)return g(S)?(h.root=h.dir=f,h):(h.base=h.name=f,h);if(g(S)){if(w=1,g(f.charCodeAt(1))){let N=2,O=N;for(;N0&&(h.root=f.slice(0,w));let L=-1,D=w,T=-1,M=!0,A=f.length-1,P=0;for(;A>=w;--A){if(S=f.charCodeAt(A),g(S)){if(!M){D=A+1;break}continue}T===-1&&(M=!1,T=A+1),S===m?L===-1?L=A:P!==1&&(P=1):L!==-1&&(P=-1)}return T!==-1&&(L===-1||P===0||P===1&&L===T-1&&L===D+1?h.base=h.name=f.slice(D,T):(h.name=f.slice(D,L),h.base=f.slice(D,T),h.ext=f.slice(L,T))),D>0&&D!==w?h.dir=f.slice(0,D-1):h.dir=h.root,h},sep:"\\",delimiter:";",win32:null,posix:null};const C=(()=>{if(s){const f=/\\/g;return()=>{const h=d.cwd().replace(f,"/");return h.slice(h.indexOf("/"))}}return()=>d.cwd()})();e.posix={resolve(...f){let h="",v=!1;for(let w=f.length-1;w>=-1&&!v;w--){const S=w>=0?f[w]:C();i(S,`paths[${w}]`),S.length!==0&&(h=`${S}/${h}`,v=S.charCodeAt(0)===_)}return h=a(h,!v,"/",c),v?`/${h}`:h.length>0?h:"."},normalize(f){if(i(f,"path"),f.length===0)return".";const h=f.charCodeAt(0)===_,v=f.charCodeAt(f.length-1)===_;return f=a(f,!h,"/",c),f.length===0?h?"/":v?"./":".":(v&&(f+="/"),h?`/${f}`:f)},isAbsolute(f){return i(f,"path"),f.length>0&&f.charCodeAt(0)===_},join(...f){if(f.length===0)return".";let h;for(let v=0;v0&&(h===void 0?h=w:h+=`/${w}`)}return h===void 0?".":e.posix.normalize(h)},relative(f,h){if(i(f,"from"),i(h,"to"),f===h||(f=e.posix.resolve(f),h=e.posix.resolve(h),f===h))return"";const v=1,w=f.length,S=w-v,L=1,D=h.length-L,T=ST){if(h.charCodeAt(L+A)===_)return h.slice(L+A+1);if(A===0)return h.slice(L+A)}else S>T&&(f.charCodeAt(v+A)===_?M=A:A===0&&(M=0));let P="";for(A=v+M+1;A<=w;++A)(A===w||f.charCodeAt(A)===_)&&(P+=P.length===0?"..":"/..");return`${P}${h.slice(L+M)}`},toNamespacedPath(f){return f},dirname(f){if(i(f,"path"),f.length===0)return".";const h=f.charCodeAt(0)===_;let v=-1,w=!0;for(let S=f.length-1;S>=1;--S)if(f.charCodeAt(S)===_){if(!w){v=S;break}}else w=!1;return v===-1?h?"/":".":h&&v===1?"//":f.slice(0,v)},basename(f,h){h!==void 0&&i(h,"ext"),i(f,"path");let v=0,w=-1,S=!0,L;if(h!==void 0&&h.length>0&&h.length<=f.length){if(h===f)return"";let D=h.length-1,T=-1;for(L=f.length-1;L>=0;--L){const M=f.charCodeAt(L);if(M===_){if(!S){v=L+1;break}}else T===-1&&(S=!1,T=L+1),D>=0&&(M===h.charCodeAt(D)?--D===-1&&(w=L):(D=-1,w=T))}return v===w?w=T:w===-1&&(w=f.length),f.slice(v,w)}for(L=f.length-1;L>=0;--L)if(f.charCodeAt(L)===_){if(!S){v=L+1;break}}else w===-1&&(S=!1,w=L+1);return w===-1?"":f.slice(v,w)},extname(f){i(f,"path");let h=-1,v=0,w=-1,S=!0,L=0;for(let D=f.length-1;D>=0;--D){const T=f.charCodeAt(D);if(T===_){if(!S){v=D+1;break}continue}w===-1&&(S=!1,w=D+1),T===m?h===-1?h=D:L!==1&&(L=1):h!==-1&&(L=-1)}return h===-1||w===-1||L===0||L===1&&h===w-1&&h===v+1?"":f.slice(h,w)},format:u.bind(null,"/"),parse(f){i(f,"path");const h={root:"",dir:"",base:"",ext:"",name:""};if(f.length===0)return h;const v=f.charCodeAt(0)===_;let w;v?(h.root="/",w=1):w=0;let S=-1,L=0,D=-1,T=!0,M=f.length-1,A=0;for(;M>=w;--M){const P=f.charCodeAt(M);if(P===_){if(!T){L=M+1;break}continue}D===-1&&(T=!1,D=M+1),P===m?S===-1?S=M:A!==1&&(A=1):S!==-1&&(A=-1)}if(D!==-1){const P=L===0&&v?1:L;S===-1||A===0||A===1&&S===D-1&&S===L+1?h.base=h.name=f.slice(P,D):(h.name=f.slice(P,S),h.base=f.slice(P,D),h.ext=f.slice(S,D))}return L>0?h.dir=f.slice(0,L-1):v&&(h.dir="/"),h},sep:"/",delimiter:":",win32:null,posix:null},e.posix.win32=e.win32.win32=e.win32,e.posix.posix=e.win32.posix=e.posix,e.normalize=s?e.win32.normalize:e.posix.normalize,e.join=s?e.win32.join:e.posix.join,e.resolve=s?e.win32.resolve:e.posix.resolve,e.relative=s?e.win32.relative:e.posix.relative,e.dirname=s?e.win32.dirname:e.posix.dirname,e.basename=s?e.win32.basename:e.posix.basename,e.extname=s?e.win32.extname:e.posix.extname,e.sep=s?e.win32.sep:e.posix.sep}),define(ne[251],se([1,0,99,16,11]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isPathSeparator=E,e.toSlashes=y,e.toPosixPath=m,e.getRoot=_,e.isEqualOrParent=b,e.isWindowsDriveLetter=p,e.hasDriveLetter=n;function E(o){return o===47||o===92}function y(o){return o.replace(/[\\/]/g,d.posix.sep)}function m(o){return o.indexOf("/")===-1&&(o=y(o)),/^[a-zA-Z]:(\/|$)/.test(o)&&(o="/"+o),o}function _(o,t=d.posix.sep){if(!o)return"";const i=o.length,s=o.charCodeAt(0);if(E(s)){if(E(o.charCodeAt(1))&&!E(o.charCodeAt(2))){let c=3;const l=c;for(;co.length)return!1;if(i){if(!(0,I.startsWithIgnoreCase)(o,t))return!1;if(t.length===o.length)return!0;let c=t.length;return t.charAt(t.length-1)===s&&c--,o.charAt(c)===s}return t.charAt(t.length-1)!==s&&(t+=s),o.indexOf(t)===0}function p(o){return o>=65&&o<=90||o>=97&&o<=122}function n(o,t=k.isWindows){return t?p(o.charCodeAt(0))&&o.charCodeAt(1)===58:!1}}),define(ne[628],se([1,0,82,99,16,11]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.scoreFuzzy2=m,e.prepareQuery=s,e.pieceToQuery=c;const y=[void 0,[]];function m(l,a,r=0,u=0){const C=a;return C.values&&C.values.length>1?_(l,C.values,r,u):b(l,a,r,u)}function _(l,a,r,u){let C=0;const f=[];for(const h of a){const[v,w]=b(l,h,r,u);if(typeof v!="number")return y;C+=v,f.push(...w)}return[C,n(f)]}function b(l,a,r,u){const C=(0,d.fuzzyScore)(a.original,a.originalLowercase,r,l,l.toLowerCase(),u,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return C?[C[0],(0,d.createMatches)(C)]:y}const p=Object.freeze({score:0});function n(l){const a=l.sort((C,f)=>C.start-f.start),r=[];let u;for(const C of a)!u||!o(u,C)?(u=C,r.push(C)):(u.start=Math.min(u.start,C.start),u.end=Math.max(u.end,C.end));return r}function o(l,a){return!(l.end=0,h=t(l);let v;const w=l.split(i);if(w.length>1)for(const S of w){const L=t(S),{pathNormalized:D,normalized:T,normalizedLowercase:M}=g(S);T&&(v||(v=[]),v.push({original:S,originalLowercase:S.toLowerCase(),pathNormalized:D,normalized:T,normalizedLowercase:M,expectContiguousMatch:L}))}return{original:l,originalLowercase:a,pathNormalized:r,normalized:u,normalizedLowercase:C,values:v,containsPathSeparator:f,expectContiguousMatch:h}}function g(l){let a;I.isWindows?a=l.replace(/\//g,k.sep):a=l.replace(/\\/g,k.sep);const r=(0,E.stripWildcards)(a).replace(/\s|"/g,"");return{pathNormalized:a,normalized:r,normalizedLowercase:r.toLowerCase()}}function c(l){return Array.isArray(l)?s(l.map(a=>a.original).join(i)):s(l.original)}}),define(ne[350],se([1,0,14,251,45,99,16,11]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GLOB_SPLIT=e.GLOBSTAR=void 0,e.splitGlobAware=o,e.match=M,e.parse=A,e.isRelativePattern=P,e.GLOBSTAR="**",e.GLOB_SPLIT="/";const _="[/\\\\]",b="[^/\\\\]",p=/\//g;function n(x,W){switch(x){case 0:return"";case 1:return`${b}*?`;default:return`(?:${_}|${b}+${_}${W?`|${_}${b}+`:""})*?`}}function o(x,W){if(!x)return[];const V=[];let q=!1,H=!1,z="";for(const U of x){switch(U){case W:if(!q&&!H){V.push(z),z="";continue}break;case"{":q=!0;break;case"}":q=!1;break;case"[":H=!0;break;case"]":H=!1;break}z+=U}return z&&V.push(z),V}function t(x){if(!x)return"";let W="";const V=o(x,e.GLOB_SPLIT);if(V.every(q=>q===e.GLOBSTAR))W=".*";else{let q=!1;V.forEach((H,z)=>{if(H===e.GLOBSTAR){if(q)return;W+=n(2,z===V.length-1)}else{let U=!1,j="",Y=!1,G="";for(const K of H){if(K!=="}"&&U){j+=K;continue}if(Y&&(K!=="]"||!G)){let R;K==="-"?R=K:(K==="^"||K==="!")&&!G?R="^":K===e.GLOB_SPLIT?R="":R=(0,m.escapeRegExpCharacters)(K),G+=R;continue}switch(K){case"{":U=!0;continue;case"[":Y=!0;continue;case"}":{const J=`(?:${o(j,",").map(ie=>t(ie)).join("|")})`;W+=J,U=!1,j="";break}case"]":{W+="["+G+"]",Y=!1,G="";break}case"?":W+=b;continue;case"*":W+=n(1);continue;default:W+=(0,m.escapeRegExpCharacters)(K)}}zf(j,W)).filter(j=>j!==C),x),q=V.length;if(!q)return C;if(q===1)return V[0];const H=function(j,Y){for(let G=0,K=V.length;G!!j.allBasenames);z&&(H.allBasenames=z.allBasenames);const U=V.reduce((j,Y)=>Y.allPaths?j.concat(Y.allPaths):j,[]);return U.length&&(H.allPaths=U),H}function D(x,W,V){const q=E.sep===E.posix.sep,H=q?x:x.replace(p,E.sep),z=E.sep+H,U=E.posix.sep+x;let j;return V?j=function(Y,G){return typeof Y=="string"&&(Y===H||Y.endsWith(z)||!q&&(Y===x||Y.endsWith(U)))?W:null}:j=function(Y,G){return typeof Y=="string"&&(Y===H||!q&&Y===x)?W:null},j.allPaths=[(V?"*/":"./")+x],j}function T(x){try{const W=new RegExp(`^${t(x)}$`);return function(V){return W.lastIndex=0,typeof V=="string"&&W.test(V)?x:null}}catch{return C}}function M(x,W,V){return!x||typeof W!="string"?!1:A(x)(W,void 0,V)}function A(x,W={}){if(!x)return u;if(typeof x=="string"||P(x)){const V=f(x,W);if(V===C)return u;const q=function(H,z){return!!V(H,z)};return V.allBasenames&&(q.allBasenames=V.allBasenames),V.allPaths&&(q.allPaths=V.allPaths),q}return N(x,W)}function P(x){const W=x;return W?typeof W.base=="string"&&typeof W.pattern=="string":!1}function N(x,W){const V=F(Object.getOwnPropertyNames(x).map(j=>O(j,x[j],W)).filter(j=>j!==C)),q=V.length;if(!q)return C;if(!V.some(j=>!!j.requiresSiblings)){if(q===1)return V[0];const j=function(K,R){let J;for(let ie=0,ue=V.length;ie{for(const ie of J){const ue=await ie;if(typeof ue=="string")return ue}return null})():null},Y=V.find(K=>!!K.allBasenames);Y&&(j.allBasenames=Y.allBasenames);const G=V.reduce((K,R)=>R.allPaths?K.concat(R.allPaths):K,[]);return G.length&&(j.allPaths=G),j}const H=function(j,Y,G){let K,R;for(let J=0,ie=V.length;J{for(const J of R){const ie=await J;if(typeof ie=="string")return ie}return null})():null},z=V.find(j=>!!j.allBasenames);z&&(H.allBasenames=z.allBasenames);const U=V.reduce((j,Y)=>Y.allPaths?j.concat(Y.allPaths):j,[]);return U.length&&(H.allPaths=U),H}function O(x,W,V){if(W===!1)return C;const q=f(x,V);if(q===C)return C;if(typeof W=="boolean")return q;if(W){const H=W.when;if(typeof H=="string"){const z=(U,j,Y,G)=>{if(!G||!q(U,j))return null;const K=H.replace("$(basename)",()=>Y),R=G(K);return(0,d.isThenable)(R)?R.then(J=>J?x:null):R?x:null};return z.requiresSiblings=!0,z}}return q}function F(x,W){const V=x.filter(j=>!!j.basenames);if(V.length<2)return x;const q=V.reduce((j,Y)=>{const G=Y.basenames;return G?j.concat(G):j},[]);let H;if(W){H=[];for(let j=0,Y=q.length;j{const G=Y.patterns;return G?j.concat(G):j},[]);const z=function(j,Y){if(typeof j!="string")return null;if(!Y){let K;for(K=j.length;K>0;K--){const R=j.charCodeAt(K-1);if(R===47||R===92)break}Y=j.substr(K)}const G=q.indexOf(Y);return G!==-1?H[G]:null};z.basenames=q,z.patterns=H,z.allBasenames=q;const U=x.filter(j=>!j.basenames);return U.push(z),U}}),define(ne[629],se([1,0,251,16]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeDriveLetter=I;function I(y,m=k.isWindows){return(0,d.hasDriveLetter)(y,m)?y.charAt(0).toUpperCase()+y.slice(1):y}let E=Object.create(null)}),define(ne[22],se([1,0,99,16]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.URI=void 0,e.uriToFsPath=a;const I=/^\w[\w\d+.-]*$/,E=/^\//,y=/^\/\//;function m(h,v){if(!h.scheme&&v)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${h.authority}", path: "${h.path}", query: "${h.query}", fragment: "${h.fragment}"}`);if(h.scheme&&!I.test(h.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(h.path){if(h.authority){if(!E.test(h.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(y.test(h.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function _(h,v){return!h&&!v?"file":h}function b(h,v){switch(h){case"https":case"http":case"file":v?v[0]!==n&&(v=n+v):v=n;break}return v}const p="",n="/",o=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class t{static isUri(v){return v instanceof t?!0:v?typeof v.authority=="string"&&typeof v.fragment=="string"&&typeof v.path=="string"&&typeof v.query=="string"&&typeof v.scheme=="string"&&typeof v.fsPath=="string"&&typeof v.with=="function"&&typeof v.toString=="function":!1}constructor(v,w,S,L,D,T=!1){typeof v=="object"?(this.scheme=v.scheme||p,this.authority=v.authority||p,this.path=v.path||p,this.query=v.query||p,this.fragment=v.fragment||p):(this.scheme=_(v,T),this.authority=w||p,this.path=b(this.scheme,S||p),this.query=L||p,this.fragment=D||p,m(this,T))}get fsPath(){return a(this,!1)}with(v){if(!v)return this;let{scheme:w,authority:S,path:L,query:D,fragment:T}=v;return w===void 0?w=this.scheme:w===null&&(w=p),S===void 0?S=this.authority:S===null&&(S=p),L===void 0?L=this.path:L===null&&(L=p),D===void 0?D=this.query:D===null&&(D=p),T===void 0?T=this.fragment:T===null&&(T=p),w===this.scheme&&S===this.authority&&L===this.path&&D===this.query&&T===this.fragment?this:new s(w,S,L,D,T)}static parse(v,w=!1){const S=o.exec(v);return S?new s(S[2]||p,f(S[4]||p),f(S[5]||p),f(S[7]||p),f(S[9]||p),w):new s(p,p,p,p,p)}static file(v){let w=p;if(k.isWindows&&(v=v.replace(/\\/g,n)),v[0]===n&&v[1]===n){const S=v.indexOf(n,2);S===-1?(w=v.substring(2),v=n):(w=v.substring(2,S),v=v.substring(S)||n)}return new s("file",w,v,p,p)}static from(v,w){return new s(v.scheme,v.authority,v.path,v.query,v.fragment,w)}static joinPath(v,...w){if(!v.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let S;return k.isWindows&&v.scheme==="file"?S=t.file(d.win32.join(a(v,!0),...w)).path:S=d.posix.join(v.path,...w),v.with({path:S})}toString(v=!1){return r(this,v)}toJSON(){return this}static revive(v){if(v){if(v instanceof t)return v;{const w=new s(v);return w._formatted=v.external??null,w._fsPath=v._sep===i?v.fsPath??null:null,w}}else return v}}e.URI=t;const i=k.isWindows?1:void 0;class s extends t{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=a(this,!1)),this._fsPath}toString(v=!1){return v?r(this,!0):(this._formatted||(this._formatted=r(this,!1)),this._formatted)}toJSON(){const v={$mid:1};return this._fsPath&&(v.fsPath=this._fsPath,v._sep=i),this._formatted&&(v.external=this._formatted),this.path&&(v.path=this.path),this.scheme&&(v.scheme=this.scheme),this.authority&&(v.authority=this.authority),this.query&&(v.query=this.query),this.fragment&&(v.fragment=this.fragment),v}}const g={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function c(h,v,w){let S,L=-1;for(let D=0;D=97&&T<=122||T>=65&&T<=90||T>=48&&T<=57||T===45||T===46||T===95||T===126||v&&T===47||w&&T===91||w&&T===93||w&&T===58)L!==-1&&(S+=encodeURIComponent(h.substring(L,D)),L=-1),S!==void 0&&(S+=h.charAt(D));else{S===void 0&&(S=h.substr(0,D));const M=g[T];M!==void 0?(L!==-1&&(S+=encodeURIComponent(h.substring(L,D)),L=-1),S+=M):L===-1&&(L=D)}}return L!==-1&&(S+=encodeURIComponent(h.substring(L))),S!==void 0?S:h}function l(h){let v;for(let w=0;w1&&h.scheme==="file"?w=`//${h.authority}${h.path}`:h.path.charCodeAt(0)===47&&(h.path.charCodeAt(1)>=65&&h.path.charCodeAt(1)<=90||h.path.charCodeAt(1)>=97&&h.path.charCodeAt(1)<=122)&&h.path.charCodeAt(2)===58?v?w=h.path.substr(1):w=h.path[1].toLowerCase()+h.path.substr(2):w=h.path,k.isWindows&&(w=w.replace(/\//g,"\\")),w}function r(h,v){const w=v?l:c;let S="",{scheme:L,authority:D,path:T,query:M,fragment:A}=h;if(L&&(S+=L,S+=":"),(D||L==="file")&&(S+=n,S+=n),D){let P=D.indexOf("@");if(P!==-1){const N=D.substr(0,P);D=D.substr(P+1),P=N.lastIndexOf(":"),P===-1?S+=w(N,!1,!1):(S+=w(N.substr(0,P),!1,!1),S+=":",S+=w(N.substr(P+1),!1,!0)),S+="@"}D=D.toLowerCase(),P=D.lastIndexOf(":"),P===-1?S+=w(D,!1,!0):(S+=w(D.substr(0,P),!1,!0),S+=D.substr(P))}if(T){if(T.length>=3&&T.charCodeAt(0)===47&&T.charCodeAt(2)===58){const P=T.charCodeAt(1);P>=65&&P<=90&&(T=`/${String.fromCharCode(P+32)}:${T.substr(3)}`)}else if(T.length>=2&&T.charCodeAt(1)===58){const P=T.charCodeAt(0);P>=65&&P<=90&&(T=`${String.fromCharCode(P+32)}:${T.substr(2)}`)}S+=w(T,!0,!1)}return M&&(S+="?",S+=w(M,!1,!1)),A&&(S+="#",S+=v?A:c(A,!1,!1)),S}function u(h){try{return decodeURIComponent(h)}catch{return h.length>3?h.substr(0,3)+u(h.substr(3)):h}}const C=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function f(h){return h.match(C)?h.replace(C,v=>u(v)):h}}),define(ne[252],se([1,0,160,22]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.stringify=I,e.parse=E,e.revive=m;function I(_){return JSON.stringify(_,y)}function E(_){let b=JSON.parse(_);return b=m(b),b}function y(_,b){return b instanceof RegExp?{$mid:2,source:b.source,flags:b.flags}:b}function m(_,b=0){if(!_||b>200)return _;if(typeof _=="object"){switch(_.$mid){case 1:return k.URI.revive(_);case 2:return new RegExp(_.source,_.flags);case 17:return new Date(_.source)}if(_ instanceof d.VSBuffer||_ instanceof Uint8Array)return _;if(Array.isArray(_))for(let p=0;p<_.length;++p)_[p]=m(_[p],b+1);else for(const p in _)Object.hasOwnProperty.call(_,p)&&(_[p]=m(_[p],b+1))}return _}}),define(ne[42],se([1,0,8,16,11,22,99]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.COI=e.FileAccess=e.VSCODE_AUTHORITY=e.RemoteAuthorities=e.connectionTokenQueryName=e.Schemas=void 0,e.matchesScheme=_,e.matchesSomeScheme=b;var m;(function(t){t.inMemory="inmemory",t.vscode="vscode",t.internal="private",t.walkThrough="walkThrough",t.walkThroughSnippet="walkThroughSnippet",t.http="http",t.https="https",t.file="file",t.mailto="mailto",t.untitled="untitled",t.data="data",t.command="command",t.vscodeRemote="vscode-remote",t.vscodeRemoteResource="vscode-remote-resource",t.vscodeManagedRemoteResource="vscode-managed-remote-resource",t.vscodeUserData="vscode-userdata",t.vscodeCustomEditor="vscode-custom-editor",t.vscodeNotebookCell="vscode-notebook-cell",t.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",t.vscodeNotebookCellMetadataDiff="vscode-notebook-cell-metadata-diff",t.vscodeNotebookCellOutput="vscode-notebook-cell-output",t.vscodeNotebookCellOutputDiff="vscode-notebook-cell-output-diff",t.vscodeNotebookMetadata="vscode-notebook-metadata",t.vscodeInteractiveInput="vscode-interactive-input",t.vscodeSettings="vscode-settings",t.vscodeWorkspaceTrust="vscode-workspace-trust",t.vscodeTerminal="vscode-terminal",t.vscodeChatCodeBlock="vscode-chat-code-block",t.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",t.vscodeChatSesssion="vscode-chat-editor",t.webviewPanel="webview-panel",t.vscodeWebview="vscode-webview",t.extension="extension",t.vscodeFileResource="vscode-file",t.tmp="tmp",t.vsls="vsls",t.vscodeSourceControl="vscode-scm",t.commentsInput="comment",t.codeSetting="code-setting",t.outputChannel="output"})(m||(e.Schemas=m={}));function _(t,i){return E.URI.isUri(t)?(0,I.equalsIgnoreCase)(t.scheme,i):(0,I.startsWithIgnoreCase)(t,i+":")}function b(t,...i){return i.some(s=>_(t,s))}e.connectionTokenQueryName="tkn";class p{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null,this._serverRootPath="/"}setPreferredWebSchema(i){this._preferredWebSchema=i}get _remoteResourcesPath(){return y.posix.join(this._serverRootPath,m.vscodeRemoteResource)}rewrite(i){if(this._delegate)try{return this._delegate(i)}catch(r){return d.onUnexpectedError(r),i}const s=i.authority;let g=this._hosts[s];g&&g.indexOf(":")!==-1&&g.indexOf("[")===-1&&(g=`[${g}]`);const c=this._ports[s],l=this._connectionTokens[s];let a=`path=${encodeURIComponent(i.path)}`;return typeof l=="string"&&(a+=`&${e.connectionTokenQueryName}=${encodeURIComponent(l)}`),E.URI.from({scheme:k.isWeb?this._preferredWebSchema:m.vscodeRemoteResource,authority:`${g}:${c}`,path:this._remoteResourcesPath,query:a})}}e.RemoteAuthorities=new p,e.VSCODE_AUTHORITY="vscode-app";class n{static{this.FALLBACK_AUTHORITY=e.VSCODE_AUTHORITY}asBrowserUri(i){const s=this.toUri(i,oe);return this.uriToBrowserUri(s)}uriToBrowserUri(i){return i.scheme===m.vscodeRemote?e.RemoteAuthorities.rewrite(i):i.scheme===m.file&&(k.isNative||k.webWorkerOrigin===`${m.vscodeFileResource}://${n.FALLBACK_AUTHORITY}`)?i.with({scheme:m.vscodeFileResource,authority:i.authority||n.FALLBACK_AUTHORITY,query:null,fragment:null}):i}toUri(i,s){if(E.URI.isUri(i))return i;if(globalThis._VSCODE_FILE_ROOT){const g=globalThis._VSCODE_FILE_ROOT;if(/^\w[\w\d+.-]*:\/\//.test(g))return E.URI.joinPath(E.URI.parse(g,!0),i);const c=y.join(g,i);return E.URI.file(c)}return E.URI.parse(s.toUrl(i))}}e.FileAccess=new n;var o;(function(t){const i=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);t.CoopAndCoep=Object.freeze(i.get("3"));const s="vscode-coi";function g(l){let a;typeof l=="string"?a=new URL(l).searchParams:l instanceof URL?a=l.searchParams:E.URI.isUri(l)&&(a=new URL(l.toString(!0)).searchParams);const r=a?.get(s);if(r)return i.get(r)}t.getHeadersFromQuery=g;function c(l,a,r){if(!globalThis.crossOriginIsolated)return;const u=a&&r?"3":r?"2":"1";l instanceof URLSearchParams?l.set(s,u):l[s]=u}t.addSearchParam=c})(o||(e.COI=o={}))}),define(ne[5],se([1,0,64,248,47,77,14,8,6,351,2,42,16,129,52]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";var s;Object.defineProperty(e,"__esModule",{value:!0}),e.DragAndDropObserver=e.ModifierKeyEmitter=e.basicMarkupHtmlTags=e.Namespace=e.EventHelper=e.EventType=e.sharedMutationObserver=e.Dimension=e.WindowIntervalTimer=e.scheduleAtNextAnimationFrame=e.runAtThisOrScheduleAtNextAnimationFrame=e.WindowIdleValue=e.addStandardDisposableGenericMouseUpListener=e.addStandardDisposableGenericMouseDownListener=e.addStandardDisposableListener=e.onDidUnregisterWindow=e.onWillUnregisterWindow=e.onDidRegisterWindow=e.hasWindow=e.getWindowById=e.getWindowId=e.getWindowsCount=e.getWindows=e.getDocument=e.getWindow=e.registerWindow=void 0,e.clearNode=g,e.addDisposableListener=l,e.addDisposableGenericMouseDownListener=h,e.addDisposableGenericMouseUpListener=v,e.runWhenWindowIdle=w,e.getComputedStyle=T,e.getClientArea=M,e.getTopLeftOffset=N,e.size=O,e.getDomNodePagePosition=F,e.getDomNodeZoomLevel=x,e.getTotalWidth=W,e.getContentWidth=V,e.getContentHeight=q,e.getTotalHeight=H,e.isAncestor=z,e.findParentWithClass=U,e.hasParentWithClass=j,e.isShadowRoot=Y,e.isInShadowDOM=G,e.getShadowRoot=K,e.getActiveElement=R,e.isActiveElement=J,e.isAncestorOfActiveElement=ie,e.getActiveDocument=ue,e.getActiveWindow=he,e.createStyleSheet2=ae,e.createStyleSheet=de,e.createCSSRule=Q,e.removeCSSRulesContainingSelector=Z,e.isHTMLElement=re,e.isHTMLAnchorElement=le,e.isSVGElement=me,e.isMouseEvent=Ce,e.isKeyboardEvent=ye,e.isEventLike=Le,e.saveParentsScrollTop=Ee,e.restoreParentsScrollTop=Me,e.trackFocus=Ne,e.after=Ke,e.append=ze,e.prepend=Ge,e.reset=it,e.$=_e,e.setVisibility=xe,e.show=be,e.hide=ve,e.computeScreenAwareSize=we,e.windowOpenNoOpener=Te,e.animate=Pe,e.asCSSUrl=Be,e.asCSSPropertyValue=He,e.asCssValueWithDefault=$e,e.hookDomPurifyHrefAndSrcSanitizer=je,e.h=st,e.svgElem=pt,s=function(){const De=new Map;(0,i.ensureCodeWindow)(i.mainWindow,1);const Ie={window:i.mainWindow,disposables:new p.DisposableStore};De.set(i.mainWindow.vscodeWindowId,Ie);const Re=new _.Emitter,Se=new _.Emitter,We=new _.Emitter;function qe(Ue,Je){return(typeof Ue=="number"?De.get(Ue):void 0)??(Je?Ie:void 0)}return{onDidRegisterWindow:Re.event,onWillUnregisterWindow:We.event,onDidUnregisterWindow:Se.event,registerWindow(Ue){if(De.has(Ue.vscodeWindowId))return p.Disposable.None;const Je=new p.DisposableStore,tt={window:Ue,disposables:Je.add(new p.DisposableStore)};return De.set(Ue.vscodeWindowId,tt),Je.add((0,p.toDisposable)(()=>{De.delete(Ue.vscodeWindowId),Se.fire(Ue)})),Je.add(l(Ue,e.EventType.BEFORE_UNLOAD,()=>{We.fire(Ue)})),Re.fire(tt),Je},getWindows(){return De.values()},getWindowsCount(){return De.size},getWindowId(Ue){return Ue.vscodeWindowId},hasWindow(Ue){return De.has(Ue)},getWindowById:qe,getWindow(Ue){const Je=Ue;if(Je?.ownerDocument?.defaultView)return Je.ownerDocument.defaultView.window;const tt=Ue;return tt?.view?tt.view.window:i.mainWindow},getDocument(Ue){const Je=Ue;return(0,e.getWindow)(Je).document}}}(),e.registerWindow=s.registerWindow,e.getWindow=s.getWindow,e.getDocument=s.getDocument,e.getWindows=s.getWindows,e.getWindowsCount=s.getWindowsCount,e.getWindowId=s.getWindowId,e.getWindowById=s.getWindowById,e.hasWindow=s.hasWindow,e.onDidRegisterWindow=s.onDidRegisterWindow,e.onWillUnregisterWindow=s.onWillUnregisterWindow,e.onDidUnregisterWindow=s.onDidUnregisterWindow;function g(De){for(;De.firstChild;)De.firstChild.remove()}class c{constructor(Ie,Re,Se,We){this._node=Ie,this._type=Re,this._handler=Se,this._options=We||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}function l(De,Ie,Re,Se){return new c(De,Ie,Re,Se)}function a(De,Ie){return function(Re){return Ie(new E.StandardMouseEvent(De,Re))}}function r(De){return function(Ie){return De(new I.StandardKeyboardEvent(Ie))}}const u=function(Ie,Re,Se,We){let qe=Se;return Re==="click"||Re==="mousedown"||Re==="contextmenu"?qe=a((0,e.getWindow)(Ie),Se):(Re==="keydown"||Re==="keypress"||Re==="keyup")&&(qe=r(Se)),l(Ie,Re,qe,We)};e.addStandardDisposableListener=u;const C=function(Ie,Re,Se){const We=a((0,e.getWindow)(Ie),Re);return h(Ie,We,Se)};e.addStandardDisposableGenericMouseDownListener=C;const f=function(Ie,Re,Se){const We=a((0,e.getWindow)(Ie),Re);return v(Ie,We,Se)};e.addStandardDisposableGenericMouseUpListener=f;function h(De,Ie,Re){return l(De,o.isIOS&&k.BrowserFeatures.pointerEvents?e.EventType.POINTER_DOWN:e.EventType.MOUSE_DOWN,Ie,Re)}function v(De,Ie,Re){return l(De,o.isIOS&&k.BrowserFeatures.pointerEvents?e.EventType.POINTER_UP:e.EventType.MOUSE_UP,Ie,Re)}function w(De,Ie,Re){return(0,y._runWhenIdle)(De,Ie,Re)}class S extends y.AbstractIdleValue{constructor(Ie,Re){super(Ie,Re)}}e.WindowIdleValue=S;class L extends y.IntervalTimer{constructor(Ie){super(),this.defaultTarget=Ie&&(0,e.getWindow)(Ie)}cancelAndSet(Ie,Re,Se){return super.cancelAndSet(Ie,Re,Se??this.defaultTarget)}}e.WindowIntervalTimer=L;class D{constructor(Ie,Re=0){this._runner=Ie,this.priority=Re,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(Ie){(0,m.onUnexpectedError)(Ie)}}static sort(Ie,Re){return Re.priority-Ie.priority}}(function(){const De=new Map,Ie=new Map,Re=new Map,Se=new Map,We=qe=>{Re.set(qe,!1);const Ue=De.get(qe)??[];for(Ie.set(qe,Ue),De.set(qe,[]),Se.set(qe,!0);Ue.length>0;)Ue.sort(D.sort),Ue.shift().execute();Se.set(qe,!1)};e.scheduleAtNextAnimationFrame=(qe,Ue,Je=0)=>{const tt=(0,e.getWindowId)(qe),Qe=new D(Ue,Je);let rt=De.get(tt);return rt||(rt=[],De.set(tt,rt)),rt.push(Qe),Re.get(tt)||(Re.set(tt,!0),qe.requestAnimationFrame(()=>We(tt))),Qe},e.runAtThisOrScheduleAtNextAnimationFrame=(qe,Ue,Je)=>{const tt=(0,e.getWindowId)(qe);if(Se.get(tt)){const Qe=new D(Ue,Je);let rt=Ie.get(tt);return rt||(rt=[],Ie.set(tt,rt)),rt.push(Qe),Qe}else return(0,e.scheduleAtNextAnimationFrame)(qe,Ue,Je)}})();function T(De){return(0,e.getWindow)(De).getComputedStyle(De,null)}function M(De,Ie){const Re=(0,e.getWindow)(De),Se=Re.document;if(De!==Se.body)return new P(De.clientWidth,De.clientHeight);if(o.isIOS&&Re?.visualViewport)return new P(Re.visualViewport.width,Re.visualViewport.height);if(Re?.innerWidth&&Re.innerHeight)return new P(Re.innerWidth,Re.innerHeight);if(Se.body&&Se.body.clientWidth&&Se.body.clientHeight)return new P(Se.body.clientWidth,Se.body.clientHeight);if(Se.documentElement&&Se.documentElement.clientWidth&&Se.documentElement.clientHeight)return new P(Se.documentElement.clientWidth,Se.documentElement.clientHeight);if(Ie)return M(Ie);throw new Error("Unable to figure out browser width and height")}class A{static convertToPixels(Ie,Re){return parseFloat(Re)||0}static getDimension(Ie,Re,Se){const We=T(Ie),qe=We?We.getPropertyValue(Re):"0";return A.convertToPixels(Ie,qe)}static getBorderLeftWidth(Ie){return A.getDimension(Ie,"border-left-width","borderLeftWidth")}static getBorderRightWidth(Ie){return A.getDimension(Ie,"border-right-width","borderRightWidth")}static getBorderTopWidth(Ie){return A.getDimension(Ie,"border-top-width","borderTopWidth")}static getBorderBottomWidth(Ie){return A.getDimension(Ie,"border-bottom-width","borderBottomWidth")}static getPaddingLeft(Ie){return A.getDimension(Ie,"padding-left","paddingLeft")}static getPaddingRight(Ie){return A.getDimension(Ie,"padding-right","paddingRight")}static getPaddingTop(Ie){return A.getDimension(Ie,"padding-top","paddingTop")}static getPaddingBottom(Ie){return A.getDimension(Ie,"padding-bottom","paddingBottom")}static getMarginLeft(Ie){return A.getDimension(Ie,"margin-left","marginLeft")}static getMarginTop(Ie){return A.getDimension(Ie,"margin-top","marginTop")}static getMarginRight(Ie){return A.getDimension(Ie,"margin-right","marginRight")}static getMarginBottom(Ie){return A.getDimension(Ie,"margin-bottom","marginBottom")}}class P{static{this.None=new P(0,0)}constructor(Ie,Re){this.width=Ie,this.height=Re}with(Ie=this.width,Re=this.height){return Ie!==this.width||Re!==this.height?new P(Ie,Re):this}static is(Ie){return typeof Ie=="object"&&typeof Ie.height=="number"&&typeof Ie.width=="number"}static lift(Ie){return Ie instanceof P?Ie:new P(Ie.width,Ie.height)}static equals(Ie,Re){return Ie===Re?!0:!Ie||!Re?!1:Ie.width===Re.width&&Ie.height===Re.height}}e.Dimension=P;function N(De){let Ie=De.offsetParent,Re=De.offsetTop,Se=De.offsetLeft;for(;(De=De.parentNode)!==null&&De!==De.ownerDocument.body&&De!==De.ownerDocument.documentElement;){Re-=De.scrollTop;const We=Y(De)?null:T(De);We&&(Se-=We.direction!=="rtl"?De.scrollLeft:-De.scrollLeft),De===Ie&&(Se+=A.getBorderLeftWidth(De),Re+=A.getBorderTopWidth(De),Re+=De.offsetTop,Se+=De.offsetLeft,Ie=De.offsetParent)}return{left:Se,top:Re}}function O(De,Ie,Re){typeof Ie=="number"&&(De.style.width=`${Ie}px`),typeof Re=="number"&&(De.style.height=`${Re}px`)}function F(De){const Ie=De.getBoundingClientRect(),Re=(0,e.getWindow)(De);return{left:Ie.left+Re.scrollX,top:Ie.top+Re.scrollY,width:Ie.width,height:Ie.height}}function x(De){let Ie=De,Re=1;do{const Se=T(Ie).zoom;Se!=null&&Se!=="1"&&(Re*=Se),Ie=Ie.parentElement}while(Ie!==null&&Ie!==Ie.ownerDocument.documentElement);return Re}function W(De){const Ie=A.getMarginLeft(De)+A.getMarginRight(De);return De.offsetWidth+Ie}function V(De){const Ie=A.getBorderLeftWidth(De)+A.getBorderRightWidth(De),Re=A.getPaddingLeft(De)+A.getPaddingRight(De);return De.offsetWidth-Ie-Re}function q(De){const Ie=A.getBorderTopWidth(De)+A.getBorderBottomWidth(De),Re=A.getPaddingTop(De)+A.getPaddingBottom(De);return De.offsetHeight-Ie-Re}function H(De){const Ie=A.getMarginTop(De)+A.getMarginBottom(De);return De.offsetHeight+Ie}function z(De,Ie){return!!Ie?.contains(De)}function U(De,Ie,Re){for(;De&&De.nodeType===De.ELEMENT_NODE;){if(De.classList.contains(Ie))return De;if(Re){if(typeof Re=="string"){if(De.classList.contains(Re))return null}else if(De===Re)return null}De=De.parentNode}return null}function j(De,Ie,Re){return!!U(De,Ie,Re)}function Y(De){return De&&!!De.host&&!!De.mode}function G(De){return!!K(De)}function K(De){for(;De.parentNode;){if(De===De.ownerDocument?.body)return null;De=De.parentNode}return Y(De)?De:null}function R(){let De=ue().activeElement;for(;De?.shadowRoot;)De=De.shadowRoot.activeElement;return De}function J(De){return R()===De}function ie(De){return z(R(),De)}function ue(){return(0,e.getWindowsCount)()<=1?i.mainWindow.document:Array.from((0,e.getWindows)()).map(({window:Ie})=>Ie.document).find(Ie=>Ie.hasFocus())??i.mainWindow.document}function he(){return ue().defaultView?.window??i.mainWindow}const pe=new Map;function ae(){return new ee}class ee{constructor(){this._currentCssStyle="",this._styleSheet=void 0}setStyle(Ie){Ie!==this._currentCssStyle&&(this._currentCssStyle=Ie,this._styleSheet?this._styleSheet.innerText=Ie:this._styleSheet=de(i.mainWindow.document.head,Re=>Re.innerText=Ie))}dispose(){this._styleSheet&&(this._styleSheet.remove(),this._styleSheet=void 0)}}function de(De=i.mainWindow.document.head,Ie,Re){const Se=document.createElement("style");if(Se.type="text/css",Se.media="screen",Ie?.(Se),De.appendChild(Se),Re&&Re.add((0,p.toDisposable)(()=>Se.remove())),De===i.mainWindow.document.head){const We=new Set;pe.set(Se,We);for(const{window:qe,disposables:Ue}of(0,e.getWindows)()){if(qe===i.mainWindow)continue;const Je=Ue.add(ge(Se,We,qe));Re?.add(Je)}}return Se}function ge(De,Ie,Re){const Se=new p.DisposableStore,We=De.cloneNode(!0);Re.document.head.appendChild(We),Se.add((0,p.toDisposable)(()=>We.remove()));for(const qe of $(De))We.sheet?.insertRule(qe.cssText,We.sheet?.cssRules.length);return Se.add(e.sharedMutationObserver.observe(De,Se,{childList:!0})(()=>{We.textContent=De.textContent})),Ie.add(We),Se.add((0,p.toDisposable)(()=>Ie.delete(We))),Se}e.sharedMutationObserver=new class{constructor(){this.mutationObservers=new Map}observe(De,Ie,Re){let Se=this.mutationObservers.get(De);Se||(Se=new Map,this.mutationObservers.set(De,Se));const We=(0,t.hash)(Re);let qe=Se.get(We);if(qe)qe.users+=1;else{const Ue=new _.Emitter,Je=new MutationObserver(Qe=>Ue.fire(Qe));Je.observe(De,Re);const tt=qe={users:1,observer:Je,onDidMutate:Ue.event};Ie.add((0,p.toDisposable)(()=>{tt.users-=1,tt.users===0&&(Ue.dispose(),Je.disconnect(),Se?.delete(We),Se?.size===0&&this.mutationObservers.delete(De))})),Se.set(We,qe)}return qe.onDidMutate}};let X=null;function B(){return X||(X=de()),X}function $(De){return De?.sheet?.rules?De.sheet.rules:De?.sheet?.cssRules?De.sheet.cssRules:[]}function Q(De,Ie,Re=B()){if(!(!Re||!Ie)){Re.sheet?.insertRule(`${De} {${Ie}}`,0);for(const Se of pe.get(Re)??[])Q(De,Ie,Se)}}function Z(De,Ie=B()){if(!Ie)return;const Re=$(Ie),Se=[];for(let We=0;We=0;We--)Ie.sheet?.deleteRule(Se[We]);for(const We of pe.get(Ie)??[])Z(De,We)}function te(De){return typeof De.selectorText=="string"}function re(De){return De instanceof HTMLElement||De instanceof(0,e.getWindow)(De).HTMLElement}function le(De){return De instanceof HTMLAnchorElement||De instanceof(0,e.getWindow)(De).HTMLAnchorElement}function me(De){return De instanceof SVGElement||De instanceof(0,e.getWindow)(De).SVGElement}function Ce(De){return De instanceof MouseEvent||De instanceof(0,e.getWindow)(De).MouseEvent}function ye(De){return De instanceof KeyboardEvent||De instanceof(0,e.getWindow)(De).KeyboardEvent}e.EventType={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",BEFORE_UNLOAD:"beforeunload",UNLOAD:"unload",PAGE_SHOW:"pageshow",PAGE_HIDE:"pagehide",PASTE:"paste",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_CHANGE:"fullscreenchange",WK_FULLSCREEN_CHANGE:"webkitfullscreenchange",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:d.isWebKit?"webkitAnimationStart":"animationstart",ANIMATION_END:d.isWebKit?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:d.isWebKit?"webkitAnimationIteration":"animationiteration"};function Le(De){const Ie=De;return!!(Ie&&typeof Ie.preventDefault=="function"&&typeof Ie.stopPropagation=="function")}e.EventHelper={stop:(De,Ie)=>(De.preventDefault(),Ie&&De.stopPropagation(),De)};function Ee(De){const Ie=[];for(let Re=0;De&&De.nodeType===De.ELEMENT_NODE;Re++)Ie[Re]=De.scrollTop,De=De.parentNode;return Ie}function Me(De,Ie){for(let Re=0;De&&De.nodeType===De.ELEMENT_NODE;Re++)De.scrollTop!==Ie[Re]&&(De.scrollTop=Ie[Re]),De=De.parentNode}class Ae extends p.Disposable{static hasFocusWithin(Ie){if(re(Ie)){const Re=K(Ie),Se=Re?Re.activeElement:Ie.ownerDocument.activeElement;return z(Se,Ie)}else{const Re=Ie;return z(Re.document.activeElement,Re.document)}}constructor(Ie){super(),this._onDidFocus=this._register(new _.Emitter),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new _.Emitter),this.onDidBlur=this._onDidBlur.event;let Re=Ae.hasFocusWithin(Ie),Se=!1;const We=()=>{Se=!1,Re||(Re=!0,this._onDidFocus.fire())},qe=()=>{Re&&(Se=!0,(re(Ie)?(0,e.getWindow)(Ie):Ie).setTimeout(()=>{Se&&(Se=!1,Re=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{Ae.hasFocusWithin(Ie)!==Re&&(Re?qe():We())},this._register(l(Ie,e.EventType.FOCUS,We,!0)),this._register(l(Ie,e.EventType.BLUR,qe,!0)),re(Ie)&&(this._register(l(Ie,e.EventType.FOCUS_IN,()=>this._refreshStateHandler())),this._register(l(Ie,e.EventType.FOCUS_OUT,()=>this._refreshStateHandler())))}}function Ne(De){return new Ae(De)}function Ke(De,Ie){return De.after(Ie),Ie}function ze(De,...Ie){if(De.append(...Ie),Ie.length===1&&typeof Ie[0]!="string")return Ie[0]}function Ge(De,Ie){return De.insertBefore(Ie,De.firstChild),Ie}function it(De,...Ie){De.innerText="",ze(De,...Ie)}const Oe=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;var Fe;(function(De){De.HTML="http://www.w3.org/1999/xhtml",De.SVG="http://www.w3.org/2000/svg"})(Fe||(e.Namespace=Fe={}));function fe(De,Ie,Re,...Se){const We=Oe.exec(Ie);if(!We)throw new Error("Bad use of emmet");const qe=We[1]||"div";let Ue;return De!==Fe.HTML?Ue=document.createElementNS(De,qe):Ue=document.createElement(qe),We[3]&&(Ue.id=We[3]),We[4]&&(Ue.className=We[4].replace(/\./g," ").trim()),Re&&Object.entries(Re).forEach(([Je,tt])=>{typeof tt>"u"||(/^on\w+$/.test(Je)?Ue[Je]=tt:Je==="selected"?tt&&Ue.setAttribute(Je,"true"):Ue.setAttribute(Je,tt))}),Ue.append(...Se),Ue}function _e(De,Ie,...Re){return fe(Fe.HTML,De,Ie,...Re)}_e.SVG=function(De,Ie,...Re){return fe(Fe.SVG,De,Ie,...Re)};function xe(De,...Ie){De?be(...Ie):ve(...Ie)}function be(...De){for(const Ie of De)Ie.style.display="",Ie.removeAttribute("aria-hidden")}function ve(...De){for(const Ie of De)Ie.style.display="none",Ie.setAttribute("aria-hidden","true")}function we(De,Ie){const Re=De.devicePixelRatio*Ie;return Math.max(1,Math.floor(Re))/De.devicePixelRatio}function Te(De){i.mainWindow.open(De,"_blank","noopener")}function Pe(De,Ie){const Re=()=>{Ie(),Se=(0,e.scheduleAtNextAnimationFrame)(De,Re)};let Se=(0,e.scheduleAtNextAnimationFrame)(De,Re);return(0,p.toDisposable)(()=>Se.dispose())}n.RemoteAuthorities.setPreferredWebSchema(/^https:/.test(i.mainWindow.location.href)?"https":"http");function Be(De){return De?`url('${n.FileAccess.uriToBrowserUri(De).toString(!0).replace(/'/g,"%27")}')`:"url('')"}function He(De){return`'${De.replace(/'/g,"%27")}'`}function $e(De,Ie){if(De!==void 0){const Re=De.match(/^\s*var\((.+)\)$/);if(Re){const Se=Re[1].split(",",2);return Se.length===2&&(Ie=$e(Se[1].trim(),Ie)),`var(${Se[0]}, ${Ie})`}return De}return Ie}function je(De,Ie=!1){const Re=document.createElement("a");return b.addHook("afterSanitizeAttributes",Se=>{for(const We of["href","src"])if(Se.hasAttribute(We)){const qe=Se.getAttribute(We);if(We==="href"&&qe.startsWith("#"))continue;if(Re.href=qe,!De.includes(Re.protocol.replace(/:$/,""))){if(Ie&&We==="src"&&Re.href.startsWith("data:"))continue;Se.removeAttribute(We)}}}),(0,p.toDisposable)(()=>{b.removeHook("afterSanitizeAttributes")})}e.basicMarkupHtmlTags=Object.freeze(["a","abbr","b","bdo","blockquote","br","caption","cite","code","col","colgroup","dd","del","details","dfn","div","dl","dt","em","figcaption","figure","h1","h2","h3","h4","h5","h6","hr","i","img","input","ins","kbd","label","li","mark","ol","p","pre","q","rp","rt","ruby","samp","small","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","time","tr","tt","u","ul","var","video","wbr"]);const Xe=Object.freeze({ALLOWED_TAGS:["a","button","blockquote","code","div","h1","h2","h3","h4","h5","h6","hr","input","label","li","p","pre","select","small","span","strong","textarea","ul","ol"],ALLOWED_ATTR:["href","data-href","data-command","target","title","name","src","alt","class","id","role","tabindex","style","data-code","width","height","align","x-dispatch","required","checked","placeholder","type","start"],RETURN_DOM:!1,RETURN_DOM_FRAGMENT:!1,RETURN_TRUSTED_TYPE:!0});class et extends _.Emitter{constructor(){super(),this._subscriptions=new p.DisposableStore,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(_.Event.runAndSubscribe(e.onDidRegisterWindow,({window:Ie,disposables:Re})=>this.registerListeners(Ie,Re),{window:i.mainWindow,disposables:this._subscriptions}))}registerListeners(Ie,Re){Re.add(l(Ie,"keydown",Se=>{if(Se.defaultPrevented)return;const We=new I.StandardKeyboardEvent(Se);if(!(We.keyCode===6&&Se.repeat)){if(Se.altKey&&!this._keyStatus.altKey)this._keyStatus.lastKeyPressed="alt";else if(Se.ctrlKey&&!this._keyStatus.ctrlKey)this._keyStatus.lastKeyPressed="ctrl";else if(Se.metaKey&&!this._keyStatus.metaKey)this._keyStatus.lastKeyPressed="meta";else if(Se.shiftKey&&!this._keyStatus.shiftKey)this._keyStatus.lastKeyPressed="shift";else if(We.keyCode!==6)this._keyStatus.lastKeyPressed=void 0;else return;this._keyStatus.altKey=Se.altKey,this._keyStatus.ctrlKey=Se.ctrlKey,this._keyStatus.metaKey=Se.metaKey,this._keyStatus.shiftKey=Se.shiftKey,this._keyStatus.lastKeyPressed&&(this._keyStatus.event=Se,this.fire(this._keyStatus))}},!0)),Re.add(l(Ie,"keyup",Se=>{Se.defaultPrevented||(!Se.altKey&&this._keyStatus.altKey?this._keyStatus.lastKeyReleased="alt":!Se.ctrlKey&&this._keyStatus.ctrlKey?this._keyStatus.lastKeyReleased="ctrl":!Se.metaKey&&this._keyStatus.metaKey?this._keyStatus.lastKeyReleased="meta":!Se.shiftKey&&this._keyStatus.shiftKey?this._keyStatus.lastKeyReleased="shift":this._keyStatus.lastKeyReleased=void 0,this._keyStatus.lastKeyPressed!==this._keyStatus.lastKeyReleased&&(this._keyStatus.lastKeyPressed=void 0),this._keyStatus.altKey=Se.altKey,this._keyStatus.ctrlKey=Se.ctrlKey,this._keyStatus.metaKey=Se.metaKey,this._keyStatus.shiftKey=Se.shiftKey,this._keyStatus.lastKeyReleased&&(this._keyStatus.event=Se,this.fire(this._keyStatus)))},!0)),Re.add(l(Ie.document.body,"mousedown",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),Re.add(l(Ie.document.body,"mouseup",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),Re.add(l(Ie.document.body,"mousemove",Se=>{Se.buttons&&(this._keyStatus.lastKeyPressed=void 0)},!0)),Re.add(l(Ie,"blur",()=>{this.resetKeyStatus()}))}get keyStatus(){return this._keyStatus}resetKeyStatus(){this.doResetKeyStatus(),this.fire(this._keyStatus)}doResetKeyStatus(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}static getInstance(){return et.instance||(et.instance=new et),et.instance}dispose(){super.dispose(),this._subscriptions.dispose()}}e.ModifierKeyEmitter=et;class dt extends p.Disposable{constructor(Ie,Re){super(),this.element=Ie,this.callbacks=Re,this.counter=0,this.dragStartTime=0,this.registerListeners()}registerListeners(){this.callbacks.onDragStart&&this._register(l(this.element,e.EventType.DRAG_START,Ie=>{this.callbacks.onDragStart?.(Ie)})),this.callbacks.onDrag&&this._register(l(this.element,e.EventType.DRAG,Ie=>{this.callbacks.onDrag?.(Ie)})),this._register(l(this.element,e.EventType.DRAG_ENTER,Ie=>{this.counter++,this.dragStartTime=Ie.timeStamp,this.callbacks.onDragEnter?.(Ie)})),this._register(l(this.element,e.EventType.DRAG_OVER,Ie=>{Ie.preventDefault(),this.callbacks.onDragOver?.(Ie,Ie.timeStamp-this.dragStartTime)})),this._register(l(this.element,e.EventType.DRAG_LEAVE,Ie=>{this.counter--,this.counter===0&&(this.dragStartTime=0,this.callbacks.onDragLeave?.(Ie))})),this._register(l(this.element,e.EventType.DRAG_END,Ie=>{this.counter=0,this.dragStartTime=0,this.callbacks.onDragEnd?.(Ie)})),this._register(l(this.element,e.EventType.DROP,Ie=>{this.counter=0,this.dragStartTime=0,this.callbacks.onDrop?.(Ie)}))}}e.DragAndDropObserver=dt;const at=/(?[\w\-]+)?(?:#(?[\w\-]+))?(?(?:\.(?:[\w\-]+))*)(?:@(?(?:[\w\_])+))?/;function st(De,...Ie){let Re,Se;Array.isArray(Ie[0])?(Re={},Se=Ie[0]):(Re=Ie[0]||{},Se=Ie[1]);const We=at.exec(De);if(!We||!We.groups)throw new Error("Bad use of h");const qe=We.groups.tag||"div",Ue=document.createElement(qe);We.groups.id&&(Ue.id=We.groups.id);const Je=[];if(We.groups.class)for(const Qe of We.groups.class.split("."))Qe!==""&&Je.push(Qe);if(Re.className!==void 0)for(const Qe of Re.className.split("."))Qe!==""&&Je.push(Qe);Je.length>0&&(Ue.className=Je.join(" "));const tt={};if(We.groups.name&&(tt[We.groups.name]=Ue),Se)for(const Qe of Se)re(Qe)?Ue.appendChild(Qe):typeof Qe=="string"?Ue.append(Qe):"root"in Qe&&(Object.assign(tt,Qe),Ue.appendChild(Qe.root));for(const[Qe,rt]of Object.entries(Re))if(Qe!=="className")if(Qe==="style")for(const[Ct,ut]of Object.entries(rt))Ue.style.setProperty(bt(Ct),typeof ut=="number"?ut+"px":""+ut);else Qe==="tabIndex"?Ue.tabIndex=rt:Ue.setAttribute(bt(Qe),rt.toString());return tt.root=Ue,tt}function pt(De,...Ie){let Re,Se;Array.isArray(Ie[0])?(Re={},Se=Ie[0]):(Re=Ie[0]||{},Se=Ie[1]);const We=at.exec(De);if(!We||!We.groups)throw new Error("Bad use of h");const qe=We.groups.tag||"div",Ue=document.createElementNS("http://www.w3.org/2000/svg",qe);We.groups.id&&(Ue.id=We.groups.id);const Je=[];if(We.groups.class)for(const Qe of We.groups.class.split("."))Qe!==""&&Je.push(Qe);if(Re.className!==void 0)for(const Qe of Re.className.split("."))Qe!==""&&Je.push(Qe);Je.length>0&&(Ue.className=Je.join(" "));const tt={};if(We.groups.name&&(tt[We.groups.name]=Ue),Se)for(const Qe of Se)re(Qe)?Ue.appendChild(Qe):typeof Qe=="string"?Ue.append(Qe):"root"in Qe&&(Object.assign(tt,Qe),Ue.appendChild(Qe.root));for(const[Qe,rt]of Object.entries(Re))if(Qe!=="className")if(Qe==="style")for(const[Ct,ut]of Object.entries(rt))Ue.style.setProperty(bt(Ct),typeof ut=="number"?ut+"px":""+ut);else Qe==="tabIndex"?Ue.tabIndex=rt:Ue.setAttribute(bt(Qe),rt.toString());return tt.root=Ue,tt}function bt(De){return De.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}}),define(ne[630],se([1,0,5,2,21]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createStyleSheetFromObservable=E;function E(y){const m=new k.DisposableStore,_=m.add((0,d.createStyleSheet2)());return m.add((0,I.autorun)(b=>{_.setStyle(y.read(b))})),m}}),define(ne[352],se([1,0,5]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.renderText=k,e.renderFormattedText=I,e.createElement=E;function k(n,o={}){const t=E(o);return t.textContent=n,t}function I(n,o={}){const t=E(o);return m(t,_(n,!!o.renderCodeSegments),o.actionHandler,o.renderCodeSegments),t}function E(n){const o=n.inline?"span":"div",t=document.createElement(o);return n.className&&(t.className=n.className),t}class y{constructor(o){this.source=o,this.index=0}eos(){return this.index>=this.source.length}next(){const o=this.peek();return this.advance(),o}peek(){return this.source[this.index]}advance(){this.index++}}function m(n,o,t,i){let s;if(o.type===2)s=document.createTextNode(o.content||"");else if(o.type===3)s=document.createElement("b");else if(o.type===4)s=document.createElement("i");else if(o.type===7&&i)s=document.createElement("code");else if(o.type===5&&t){const g=document.createElement("a");t.disposables.add(d.addStandardDisposableListener(g,"click",c=>{t.callback(String(o.index),c)})),s=g}else o.type===8?s=document.createElement("br"):o.type===1&&(s=n);s&&n!==s&&n.appendChild(s),s&&Array.isArray(o.children)&&o.children.forEach(g=>{m(s,g,t,i)})}function _(n,o){const t={type:1,children:[]};let i=0,s=t;const g=[],c=new y(n);for(;!c.eos();){let l=c.next();const a=l==="\\"&&p(c.peek(),o)!==0;if(a&&(l=c.next()),!a&&b(l,o)&&l===c.peek()){c.advance(),s.type===2&&(s=g.pop());const r=p(l,o);if(s.type===r||s.type===5&&r===6)s=g.pop();else{const u={type:r,children:[]};r===5&&(u.index=i,i++),s.children.push(u),g.push(s),s=u}}else if(l===` +`)s.type===2&&(s=g.pop()),s.children.push({type:8});else if(s.type!==2){const r={type:2,content:l};s.children.push(r),g.push(s),s=r}else s.content+=l}return s.type===2&&(s=g.pop()),g.length,t}function b(n,o){return p(n,o)!==0}function p(n,o){switch(n){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;case"`":return o?7:0;default:return 0}}}),define(ne[172],se([1,0,5,2]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GlobalPointerMoveMonitor=void 0;class I{constructor(){this._hooks=new k.DisposableStore,this._pointerMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(y,m){if(!this.isMonitoring())return;this._hooks.clear(),this._pointerMoveCallback=null;const _=this._onStopCallback;this._onStopCallback=null,y&&_&&_(m)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(y,m,_,b,p){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=b,this._onStopCallback=p;let n=y;try{y.setPointerCapture(m),this._hooks.add((0,k.toDisposable)(()=>{try{y.releasePointerCapture(m)}catch{}}))}catch{n=d.getWindow(y)}this._hooks.add(d.addDisposableListener(n,d.EventType.POINTER_MOVE,o=>{if(o.buttons!==_){this.stopMonitoring(!0);return}o.preventDefault(),this._pointerMoveCallback(o)})),this._hooks.add(d.addDisposableListener(n,d.EventType.POINTER_UP,o=>this.stopMonitoring(!0)))}}e.GlobalPointerMoveMonitor=I}),define(ne[253],se([1,0,5,6,2]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PixelRatio=void 0;class E extends I.Disposable{constructor(b){super(),this._onDidChange=this._register(new k.Emitter),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(b,!0),this._mediaQueryList=null,this._handleChange(b,!1)}_handleChange(b,p){this._mediaQueryList?.removeEventListener("change",this._listener),this._mediaQueryList=b.matchMedia(`(resolution: ${b.devicePixelRatio}dppx)`),this._mediaQueryList.addEventListener("change",this._listener),p&&this._onDidChange.fire()}}class y extends I.Disposable{get value(){return this._value}constructor(b){super(),this._onDidChange=this._register(new k.Emitter),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio(b);const p=this._register(new E(b));this._register(p.onDidChange(()=>{this._value=this._getPixelRatio(b),this._onDidChange.fire(this._value)}))}_getPixelRatio(b){const p=document.createElement("canvas").getContext("2d"),n=b.devicePixelRatio||1,o=p.webkitBackingStorePixelRatio||p.mozBackingStorePixelRatio||p.msBackingStorePixelRatio||p.oBackingStorePixelRatio||p.backingStorePixelRatio||1;return n/o}}class m{constructor(){this.mapWindowIdToPixelRatioMonitor=new Map}_getOrCreatePixelRatioMonitor(b){const p=(0,d.getWindowId)(b);let n=this.mapWindowIdToPixelRatioMonitor.get(p);return n||(n=(0,I.markAsSingleton)(new y(b)),this.mapWindowIdToPixelRatioMonitor.set(p,n),(0,I.markAsSingleton)(k.Event.once(d.onDidUnregisterWindow)(({vscodeWindowId:o})=>{o===p&&(n?.dispose(),this.mapWindowIdToPixelRatioMonitor.delete(p))}))),n}getInstance(b){return this._getOrCreatePixelRatioMonitor(b)}}e.PixelRatio=new m}),define(ne[69],se([1,0,5,52,13,126,6,2,73]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Gesture=e.EventType=void 0;var b;(function(n){n.Tap="-monaco-gesturetap",n.Change="-monaco-gesturechange",n.Start="-monaco-gesturestart",n.End="-monaco-gesturesend",n.Contextmenu="-monaco-gesturecontextmenu"})(b||(e.EventType=b={}));class p extends m.Disposable{static{this.SCROLL_FRICTION=-.005}static{this.HOLD_DELAY=700}static{this.CLEAR_TAP_COUNT_TIME=400}constructor(){super(),this.dispatched=!1,this.targets=new _.LinkedList,this.ignoreTargets=new _.LinkedList,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(y.Event.runAndSubscribe(d.onDidRegisterWindow,({window:o,disposables:t})=>{t.add(d.addDisposableListener(o.document,"touchstart",i=>this.onTouchStart(i),{passive:!1})),t.add(d.addDisposableListener(o.document,"touchend",i=>this.onTouchEnd(o,i))),t.add(d.addDisposableListener(o.document,"touchmove",i=>this.onTouchMove(i),{passive:!1}))},{window:k.mainWindow,disposables:this._store}))}static addTarget(o){if(!p.isTouchDevice())return m.Disposable.None;p.INSTANCE||(p.INSTANCE=(0,m.markAsSingleton)(new p));const t=p.INSTANCE.targets.push(o);return(0,m.toDisposable)(t)}static ignoreTarget(o){if(!p.isTouchDevice())return m.Disposable.None;p.INSTANCE||(p.INSTANCE=(0,m.markAsSingleton)(new p));const t=p.INSTANCE.ignoreTargets.push(o);return(0,m.toDisposable)(t)}static isTouchDevice(){return"ontouchstart"in k.mainWindow||navigator.maxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(o){const t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let i=0,s=o.targetTouches.length;i=p.HOLD_DELAY&&Math.abs(a.initialPageX-I.tail(a.rollingPageX))<30&&Math.abs(a.initialPageY-I.tail(a.rollingPageY))<30){const u=this.newGestureEvent(b.Contextmenu,a.initialTarget);u.pageX=I.tail(a.rollingPageX),u.pageY=I.tail(a.rollingPageY),this.dispatchEvent(u)}else if(s===1){const u=I.tail(a.rollingPageX),C=I.tail(a.rollingPageY),f=I.tail(a.rollingTimestamps)-a.rollingTimestamps[0],h=u-a.rollingPageX[0],v=C-a.rollingPageY[0],w=[...this.targets].filter(S=>a.initialTarget instanceof Node&&S.contains(a.initialTarget));this.inertia(o,w,i,Math.abs(h)/f,h>0?1:-1,u,Math.abs(v)/f,v>0?1:-1,C)}this.dispatchEvent(this.newGestureEvent(b.End,a.initialTarget)),delete this.activeTouches[l.identifier]}this.dispatched&&(t.preventDefault(),t.stopPropagation(),this.dispatched=!1)}newGestureEvent(o,t){const i=document.createEvent("CustomEvent");return i.initEvent(o,!1,!0),i.initialTarget=t,i.tapCount=0,i}dispatchEvent(o){if(o.type===b.Tap){const t=new Date().getTime();let i=0;t-this._lastSetTapCountTime>p.CLEAR_TAP_COUNT_TIME?i=1:i=2,this._lastSetTapCountTime=t,o.tapCount=i}else(o.type===b.Change||o.type===b.Contextmenu)&&(this._lastSetTapCountTime=0);if(o.initialTarget instanceof Node){for(const i of this.ignoreTargets)if(i.contains(o.initialTarget))return;const t=[];for(const i of this.targets)if(i.contains(o.initialTarget)){let s=0,g=o.initialTarget;for(;g&&g!==i;)s++,g=g.parentElement;t.push([s,i])}t.sort((i,s)=>i[0]-s[0]);for(const[i,s]of t)s.dispatchEvent(o),this.dispatched=!0}}inertia(o,t,i,s,g,c,l,a,r){this.handle=d.scheduleAtNextAnimationFrame(o,()=>{const u=Date.now(),C=u-i;let f=0,h=0,v=!0;s+=p.SCROLL_FRICTION*C,l+=p.SCROLL_FRICTION*C,s>0&&(v=!1,f=g*s*C),l>0&&(v=!1,h=a*l*C);const w=this.newGestureEvent(b.Change);w.translationX=f,w.translationY=h,t.forEach(S=>S.dispatchEvent(w)),v||this.inertia(o,t,u,s,g,c+f,l,a,r+h)})}onTouchMove(o){const t=Date.now();for(let i=0,s=o.changedTouches.length;i3&&(c.rollingPageX.shift(),c.rollingPageY.shift(),c.rollingTimestamps.shift()),c.rollingPageX.push(g.pageX),c.rollingPageY.push(g.pageY),c.rollingTimestamps.push(t)}this.dispatched&&(o.preventDefault(),o.stopPropagation(),this.dispatched=!1)}}e.Gesture=p,ke([E.memoize],p,"isTouchDevice",null)}),define(ne[46],se([1,0,5,458]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.setARIAContainer=b,e.alert=p,e.status=n;const k=2e4;let I,E,y,m,_;function b(t){I=document.createElement("div"),I.className="monaco-aria-container";const i=()=>{const g=document.createElement("div");return g.className="monaco-alert",g.setAttribute("role","alert"),g.setAttribute("aria-atomic","true"),I.appendChild(g),g};E=i(),y=i();const s=()=>{const g=document.createElement("div");return g.className="monaco-status",g.setAttribute("aria-live","polite"),g.setAttribute("aria-atomic","true"),I.appendChild(g),g};m=s(),_=s(),t.appendChild(I)}function p(t){I&&(E.textContent!==t?(d.clearNode(y),o(E,t)):(d.clearNode(E),o(y,t)))}function n(t){I&&(m.textContent!==t?(d.clearNode(_),o(m,t)):(d.clearNode(m),o(_,t)))}function o(t,i){d.clearNode(t),i.length>k&&(i=i.substr(0,k)),t.textContent=i,t.style.visibility="hidden",t.style.visibility="visible"}}),define(ne[353],se([1,0,248,5,2,16,188,462]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextView=e.LayoutAnchorMode=void 0,e.isAnchor=m,e.layout=b;function m(o){const t=o;return!!t&&typeof t.x=="number"&&typeof t.y=="number"}var _;(function(o){o[o.AVOID=0]="AVOID",o[o.ALIGN=1]="ALIGN"})(_||(e.LayoutAnchorMode=_={}));function b(o,t,i){const s=i.mode===_.ALIGN?i.offset:i.offset+i.size,g=i.mode===_.ALIGN?i.offset+i.size:i.offset;return i.position===0?t<=o-s?s:t<=g?g-t:Math.max(o-t,0):t<=g?g-t:t<=o-s?s:0}class p extends I.Disposable{static{this.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"]}static{this.BUBBLE_DOWN_EVENTS=["click"]}constructor(t,i){super(),this.container=null,this.useFixedPosition=!1,this.useShadowDOM=!1,this.delegate=null,this.toDisposeOnClean=I.Disposable.None,this.toDisposeOnSetContainer=I.Disposable.None,this.shadowRoot=null,this.shadowRootHostElement=null,this.view=k.$(".context-view"),k.hide(this.view),this.setContainer(t,i),this._register((0,I.toDisposable)(()=>this.setContainer(null,1)))}setContainer(t,i){this.useFixedPosition=i!==1;const s=this.useShadowDOM;if(this.useShadowDOM=i===3,!(t===this.container&&s===this.useShadowDOM)&&(this.container&&(this.toDisposeOnSetContainer.dispose(),this.view.remove(),this.shadowRoot&&(this.shadowRoot=null,this.shadowRootHostElement?.remove(),this.shadowRootHostElement=null),this.container=null),t)){if(this.container=t,this.useShadowDOM){this.shadowRootHostElement=k.$(".shadow-root-host"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:"open"});const c=document.createElement("style");c.textContent=n,this.shadowRoot.appendChild(c),this.shadowRoot.appendChild(this.view),this.shadowRoot.appendChild(k.$("slot"))}else this.container.appendChild(this.view);const g=new I.DisposableStore;p.BUBBLE_UP_EVENTS.forEach(c=>{g.add(k.addStandardDisposableListener(this.container,c,l=>{this.onDOMEvent(l,!1)}))}),p.BUBBLE_DOWN_EVENTS.forEach(c=>{g.add(k.addStandardDisposableListener(this.container,c,l=>{this.onDOMEvent(l,!0)},!0))}),this.toDisposeOnSetContainer=g}}show(t){this.isVisible()&&this.hide(),k.clearNode(this.view),this.view.className="context-view monaco-component",this.view.style.top="0px",this.view.style.left="0px",this.view.style.zIndex=`${2575+(t.layer??0)}`,this.view.style.position=this.useFixedPosition?"fixed":"absolute",k.show(this.view),this.toDisposeOnClean=t.render(this.view)||I.Disposable.None,this.delegate=t,this.doLayout(),this.delegate.focus?.()}getViewElement(){return this.view}layout(){if(this.isVisible()){if(this.delegate.canRelayout===!1&&!(E.isIOS&&d.BrowserFeatures.pointerEvents)){this.hide();return}this.delegate?.layout?.(),this.doLayout()}}doLayout(){if(!this.isVisible())return;const t=this.delegate.getAnchor();let i;if(k.isHTMLElement(t)){const h=k.getDomNodePagePosition(t),v=k.getDomNodeZoomLevel(t);i={top:h.top*v,left:h.left*v,width:h.width*v,height:h.height*v}}else m(t)?i={top:t.y,left:t.x,width:t.width||1,height:t.height||2}:i={top:t.posy,left:t.posx,width:2,height:2};const s=k.getTotalWidth(this.view),g=k.getTotalHeight(this.view),c=this.delegate.anchorPosition||0,l=this.delegate.anchorAlignment||0,a=this.delegate.anchorAxisAlignment||0;let r,u;const C=k.getActiveWindow();if(a===0){const h={offset:i.top-C.pageYOffset,size:i.height,position:c===0?0:1},v={offset:i.left,size:i.width,position:l===0?0:1,mode:_.ALIGN};r=b(C.innerHeight,g,h)+C.pageYOffset,y.Range.intersects({start:r,end:r+g},{start:h.offset,end:h.offset+h.size})&&(v.mode=_.AVOID),u=b(C.innerWidth,s,v)}else{const h={offset:i.left,size:i.width,position:l===0?0:1},v={offset:i.top,size:i.height,position:c===0?0:1,mode:_.ALIGN};u=b(C.innerWidth,s,h),y.Range.intersects({start:u,end:u+s},{start:h.offset,end:h.offset+h.size})&&(v.mode=_.AVOID),r=b(C.innerHeight,g,v)+C.pageYOffset}this.view.classList.remove("top","bottom","left","right"),this.view.classList.add(c===0?"bottom":"top"),this.view.classList.add(l===0?"left":"right"),this.view.classList.toggle("fixed",this.useFixedPosition);const f=k.getDomNodePagePosition(this.container);this.view.style.top=`${r-(this.useFixedPosition?k.getDomNodePagePosition(this.view).top:f.top)}px`,this.view.style.left=`${u-(this.useFixedPosition?k.getDomNodePagePosition(this.view).left:f.left)}px`,this.view.style.width="initial"}hide(t){const i=this.delegate;this.delegate=null,i?.onHide&&i.onHide(t),this.toDisposeOnClean.dispose(),k.hide(this.view)}isVisible(){return!!this.delegate}onDOMEvent(t,i){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(t,k.getWindow(t).document.activeElement):i&&!k.isAncestor(t.target,this.container)&&this.hide())}dispose(){this.hide(),super.dispose()}}e.ContextView=p;const n=` + :host { + all: initial; /* 1st rule so subsequent properties are reset. */ + } + + .codicon[class*='codicon-'] { + font: normal normal normal 16px/1 codicon; + display: inline-block; + text-decoration: none; + text-rendering: auto; + text-align: center; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + } + + :host { + font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif; + } + + :host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; } + :host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; } + :host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; } + :host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; } + :host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Nanum Gothic", "Apple SD Gothic Neo", "AppleGothic", sans-serif; } + + :host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; } + :host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; } + :host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; } + :host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; } + :host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; } + + :host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; } + :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; } + :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; } + :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; } + :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; } +`}),define(ne[354],se([1,0,5,11,463]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CountBadge=void 0;class I{constructor(y,m,_){this.options=m,this.styles=_,this.count=0,this.element=(0,d.append)(y,(0,d.$)(".monaco-count-badge")),this.countFormat=this.options.countFormat||"{0}",this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0)}setCount(y){this.count=y,this.render()}setTitleFormat(y){this.titleFormat=y,this.render()}render(){this.element.textContent=(0,k.format)(this.countFormat,this.count),this.element.title=(0,k.format)(this.titleFormat,this.count),this.element.style.backgroundColor=this.styles.badgeBackground??"",this.element.style.color=this.styles.badgeForeground??"",this.styles.badgeBorder&&(this.element.style.border=`1px solid ${this.styles.badgeBorder}`)}}e.CountBadge=I}),define(ne[631],se([1,0,5,47,69,41,6,303]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DropdownMenu=void 0;class m extends E.ActionRunner{constructor(p,n){super(),this._onDidChangeVisibility=this._register(new y.Emitter),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this._element=(0,d.append)(p,(0,d.$)(".monaco-dropdown")),this._label=(0,d.append)(this._element,(0,d.$)(".dropdown-label"));let o=n.labelRenderer;o||(o=i=>(i.textContent=n.label||"",null));for(const i of[d.EventType.CLICK,d.EventType.MOUSE_DOWN,I.EventType.Tap])this._register((0,d.addDisposableListener)(this.element,i,s=>d.EventHelper.stop(s,!0)));for(const i of[d.EventType.MOUSE_DOWN,I.EventType.Tap])this._register((0,d.addDisposableListener)(this._label,i,s=>{(0,d.isMouseEvent)(s)&&(s.detail>1||s.button!==0)||(this.visible?this.hide():this.show())}));this._register((0,d.addDisposableListener)(this._label,d.EventType.KEY_UP,i=>{const s=new k.StandardKeyboardEvent(i);(s.equals(3)||s.equals(10))&&(d.EventHelper.stop(i,!0),this.visible?this.hide():this.show())}));const t=o(this._label);t&&this._register(t),this._register(I.Gesture.addTarget(this._label))}get element(){return this._element}show(){this.visible||(this.visible=!0,this._onDidChangeVisibility.fire(!0))}hide(){this.visible&&(this.visible=!1,this._onDidChangeVisibility.fire(!1))}dispose(){super.dispose(),this.hide(),this.boxContainer&&(this.boxContainer.remove(),this.boxContainer=void 0),this.contents&&(this.contents.remove(),this.contents=void 0),this._label&&(this._label.remove(),this._label=void 0)}}class _ extends m{constructor(p,n){super(p,n),this._options=n,this._actions=[],this.actions=n.actions||[]}set menuOptions(p){this._menuOptions=p}get menuOptions(){return this._menuOptions}get actions(){return this._options.actionProvider?this._options.actionProvider.getActions():this._actions}set actions(p){this._actions=p}show(){super.show(),this.element.classList.add("active"),this._options.contextMenuProvider.showContextMenu({getAnchor:()=>this.element,getActions:()=>this.actions,getActionsContext:()=>this.menuOptions?this.menuOptions.context:null,getActionViewItem:(p,n)=>this.menuOptions&&this.menuOptions.actionViewItemProvider?this.menuOptions.actionViewItemProvider(p,n):void 0,getKeyBinding:p=>this.menuOptions&&this.menuOptions.getKeyBinding?this.menuOptions.getKeyBinding(p):void 0,getMenuClassName:()=>this._options.menuClassName||"",onHide:()=>this.onHide(),actionRunner:this.menuOptions?this.menuOptions.actionRunner:void 0,anchorAlignment:this.menuOptions?this.menuOptions.anchorAlignment:0,domForShadowRoot:this._options.menuAsChild?this.element:void 0,skipTelemetry:this._options.skipTelemetry})}hide(){super.hide()}onHide(){this.hide(),this.element.classList.remove("active")}}e.DropdownMenu=_}),define(ne[114],se([1,0,5,30]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.renderLabelWithIcons=E,e.renderIcon=y;const I=new RegExp(`(\\\\)?\\$\\((${k.ThemeIcon.iconNameExpression}(?:${k.ThemeIcon.iconModifierExpression})?)\\)`,"g");function E(m){const _=new Array;let b,p=0,n=0;for(;(b=I.exec(m))!==null;){n=b.index||0,p{t=i===`\r +`?-1:0,s+=o;for(const g of n)g.end<=s||(g.start>=s&&(g.start+=t),g.end>=s&&(g.end+=t));return o+=t,"\u23CE"})}}e.HighlightedLabel=_}),define(ne[254],se([1,0,5,355,2,60,188,44,81,19,142,465]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IconLabel=void 0;class n{constructor(c){this._element=c}get element(){return this._element}set textContent(c){this.disposed||c===this._textContent||(this._textContent=c,this._element.textContent=c)}set classNames(c){this.disposed||(0,E.equals)(c,this._classNames)||(this._classNames=c,this._element.classList.value="",this._element.classList.add(...c))}set empty(c){this.disposed||c===this._empty||(this._empty=c,this._element.style.marginLeft=c?"0":"")}dispose(){this.disposed=!0}}class o extends I.Disposable{constructor(c,l){super(),this.customHovers=new Map,this.creationOptions=l,this.domNode=this._register(new n(d.append(c,d.$(".monaco-icon-label")))),this.labelContainer=d.append(this.domNode.element,d.$(".monaco-icon-label-container")),this.nameContainer=d.append(this.labelContainer,d.$("span.monaco-icon-name-container")),l?.supportHighlights||l?.supportIcons?this.nameNode=this._register(new s(this.nameContainer,!!l.supportIcons)):this.nameNode=new t(this.nameContainer),this.hoverDelegate=l?.hoverDelegate??(0,m.getDefaultHoverDelegate)("mouse")}get element(){return this.domNode.element}setLabel(c,l,a){const r=["monaco-icon-label"],u=["monaco-icon-label-container"];let C="";a&&(a.extraClasses&&r.push(...a.extraClasses),a.italic&&r.push("italic"),a.strikethrough&&r.push("strikethrough"),a.disabledCommand&&u.push("disabled"),a.title&&(typeof a.title=="string"?C+=a.title:C+=c));const f=this.domNode.element.querySelector(".monaco-icon-label-iconpath");if(a?.iconPath){let h;!f||!d.isHTMLElement(f)?(h=d.$(".monaco-icon-label-iconpath"),this.domNode.element.prepend(h)):h=f,h.style.backgroundImage=d.asCSSUrl(a?.iconPath)}else f&&f.remove();if(this.domNode.classNames=r,this.domNode.element.setAttribute("aria-label",C),this.labelContainer.classList.value="",this.labelContainer.classList.add(...u),this.setupHover(a?.descriptionTitle?this.labelContainer:this.element,a?.title),this.nameNode.setLabel(c,a),l||this.descriptionNode){const h=this.getOrCreateDescriptionNode();h instanceof k.HighlightedLabel?(h.set(l||"",a?a.descriptionMatches:void 0,void 0,a?.labelEscapeNewLines),this.setupHover(h.element,a?.descriptionTitle)):(h.textContent=l&&a?.labelEscapeNewLines?k.HighlightedLabel.escapeNewLines(l,[]):l||"",this.setupHover(h.element,a?.descriptionTitle||""),h.empty=!l)}if(a?.suffix||this.suffixNode){const h=this.getOrCreateSuffixNode();h.textContent=a?.suffix??""}}setupHover(c,l){const a=this.customHovers.get(c);if(a&&(a.dispose(),this.customHovers.delete(c)),!l){c.removeAttribute("title");return}if(this.hoverDelegate.showNativeHover)(function(u,C){(0,b.isString)(C)?u.title=(0,p.stripIcons)(C):C?.markdownNotSupportedFallback?u.title=C.markdownNotSupportedFallback:u.removeAttribute("title")})(c,l);else{const r=(0,_.getBaseLayerHoverDelegate)().setupManagedHover(this.hoverDelegate,c,l);r&&this.customHovers.set(c,r)}}dispose(){super.dispose();for(const c of this.customHovers.values())c.dispose();this.customHovers.clear()}getOrCreateSuffixNode(){if(!this.suffixNode){const c=this._register(new n(d.after(this.nameContainer,d.$("span.monaco-icon-suffix-container"))));this.suffixNode=this._register(new n(d.append(c.element,d.$("span.label-suffix"))))}return this.suffixNode}getOrCreateDescriptionNode(){if(!this.descriptionNode){const c=this._register(new n(d.append(this.labelContainer,d.$("span.monaco-icon-description-container"))));this.creationOptions?.supportDescriptionHighlights?this.descriptionNode=this._register(new k.HighlightedLabel(d.append(c.element,d.$("span.label-description")),{supportIcons:!!this.creationOptions.supportIcons})):this.descriptionNode=this._register(new n(d.append(c.element,d.$("span.label-description"))))}return this.descriptionNode}}e.IconLabel=o;class t{constructor(c){this.container=c,this.label=void 0,this.singleLabel=void 0}setLabel(c,l){if(!(this.label===c&&(0,E.equals)(this.options,l)))if(this.label=c,this.options=l,typeof c=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=d.append(this.container,d.$("a.label-name",{id:l?.domId}))),this.singleLabel.textContent=c;else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;for(let a=0;a{const u={start:a,end:a+r.length},C=l.map(f=>y.Range.intersect(u,f)).filter(f=>!y.Range.isEmpty(f)).map(({start:f,end:h})=>({start:f-a,end:h-a}));return a=u.end+c.length,C})}class s extends I.Disposable{constructor(c,l){super(),this.container=c,this.supportIcons=l,this.label=void 0,this.singleLabel=void 0}setLabel(c,l){if(!(this.label===c&&(0,E.equals)(this.options,l)))if(this.label=c,this.options=l,typeof c=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=this._register(new k.HighlightedLabel(d.append(this.container,d.$("a.label-name",{id:l?.domId})),{supportIcons:this.supportIcons}))),this.singleLabel.set(c,l?.matches,void 0,l?.labelEscapeNewLines);else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;const a=l?.separator||"/",r=i(c,a,l?.matches);for(let u=0;u{for(const m of E)this.getRenderer(y).disposeTemplate(m.templateData),m.templateData=null}),this.cache.clear(),this.transactionNodesPendingRemoval.clear()}getRenderer(E){const y=this.renderers.get(E);if(!y)throw new Error(`No renderer found for ${E}`);return y}}e.RowCache=k}),define(ne[633],se([1,0,5,14,2,469]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ProgressBar=void 0;const E="done",y="active",m="infinite",_="infinite-long-running",b="discrete";class p extends I.Disposable{static{this.LONG_RUNNING_INFINITE_THRESHOLD=1e4}constructor(o,t){super(),this.progressSignal=this._register(new I.MutableDisposable),this.workedVal=0,this.showDelayedScheduler=this._register(new k.RunOnceScheduler(()=>(0,d.show)(this.element),0)),this.longRunningScheduler=this._register(new k.RunOnceScheduler(()=>this.infiniteLongRunning(),p.LONG_RUNNING_INFINITE_THRESHOLD)),this.create(o,t)}create(o,t){this.element=document.createElement("div"),this.element.classList.add("monaco-progress-container"),this.element.setAttribute("role","progressbar"),this.element.setAttribute("aria-valuemin","0"),o.appendChild(this.element),this.bit=document.createElement("div"),this.bit.classList.add("progress-bit"),this.bit.style.backgroundColor=t?.progressBarBackground||"#0E70C0",this.element.appendChild(this.bit)}off(){this.bit.style.width="inherit",this.bit.style.opacity="1",this.element.classList.remove(y,m,_,b),this.workedVal=0,this.totalWork=void 0,this.longRunningScheduler.cancel(),this.progressSignal.clear()}stop(){return this.doDone(!1)}doDone(o){return this.element.classList.add(E),this.element.classList.contains(m)?(this.bit.style.opacity="0",o?setTimeout(()=>this.off(),200):this.off()):(this.bit.style.width="inherit",o?setTimeout(()=>this.off(),200):this.off()),this}infinite(){return this.bit.style.width="2%",this.bit.style.opacity="1",this.element.classList.remove(b,E,_),this.element.classList.add(y,m),this.longRunningScheduler.schedule(),this}infiniteLongRunning(){this.element.classList.add(_)}getContainer(){return this.element}}e.ProgressBar=p}),define(ne[173],se([1,0,5,93,69,14,126,6,2,16,470]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Sash=e.OrthogonalEdge=void 0;const p=!1;var n;(function(u){u.North="north",u.South="south",u.East="east",u.West="west"})(n||(e.OrthogonalEdge=n={}));let o=4;const t=new m.Emitter;let i=300;const s=new m.Emitter;class g{constructor(C){this.el=C,this.disposables=new _.DisposableStore}get onPointerMove(){return this.disposables.add(new k.DomEmitter((0,d.getWindow)(this.el),"mousemove")).event}get onPointerUp(){return this.disposables.add(new k.DomEmitter((0,d.getWindow)(this.el),"mouseup")).event}dispose(){this.disposables.dispose()}}ke([y.memoize],g.prototype,"onPointerMove",null),ke([y.memoize],g.prototype,"onPointerUp",null);class c{get onPointerMove(){return this.disposables.add(new k.DomEmitter(this.el,I.EventType.Change)).event}get onPointerUp(){return this.disposables.add(new k.DomEmitter(this.el,I.EventType.End)).event}constructor(C){this.el=C,this.disposables=new _.DisposableStore}dispose(){this.disposables.dispose()}}ke([y.memoize],c.prototype,"onPointerMove",null),ke([y.memoize],c.prototype,"onPointerUp",null);class l{get onPointerMove(){return this.factory.onPointerMove}get onPointerUp(){return this.factory.onPointerUp}constructor(C){this.factory=C}dispose(){}}ke([y.memoize],l.prototype,"onPointerMove",null),ke([y.memoize],l.prototype,"onPointerUp",null);const a="pointer-events-disabled";class r extends _.Disposable{get state(){return this._state}get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}set state(C){this._state!==C&&(this.el.classList.toggle("disabled",C===0),this.el.classList.toggle("minimum",C===1),this.el.classList.toggle("maximum",C===2),this._state=C,this.onDidEnablementChange.fire(C))}set orthogonalStartSash(C){if(this._orthogonalStartSash!==C){if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),C){const f=h=>{this.orthogonalStartDragHandleDisposables.clear(),h!==0&&(this._orthogonalStartDragHandle=(0,d.append)(this.el,(0,d.$)(".orthogonal-drag-handle.start")),this.orthogonalStartDragHandleDisposables.add((0,_.toDisposable)(()=>this._orthogonalStartDragHandle.remove())),this.orthogonalStartDragHandleDisposables.add(new k.DomEmitter(this._orthogonalStartDragHandle,"mouseenter")).event(()=>r.onMouseEnter(C),void 0,this.orthogonalStartDragHandleDisposables),this.orthogonalStartDragHandleDisposables.add(new k.DomEmitter(this._orthogonalStartDragHandle,"mouseleave")).event(()=>r.onMouseLeave(C),void 0,this.orthogonalStartDragHandleDisposables))};this.orthogonalStartSashDisposables.add(C.onDidEnablementChange.event(f,this)),f(C.state)}this._orthogonalStartSash=C}}set orthogonalEndSash(C){if(this._orthogonalEndSash!==C){if(this.orthogonalEndDragHandleDisposables.clear(),this.orthogonalEndSashDisposables.clear(),C){const f=h=>{this.orthogonalEndDragHandleDisposables.clear(),h!==0&&(this._orthogonalEndDragHandle=(0,d.append)(this.el,(0,d.$)(".orthogonal-drag-handle.end")),this.orthogonalEndDragHandleDisposables.add((0,_.toDisposable)(()=>this._orthogonalEndDragHandle.remove())),this.orthogonalEndDragHandleDisposables.add(new k.DomEmitter(this._orthogonalEndDragHandle,"mouseenter")).event(()=>r.onMouseEnter(C),void 0,this.orthogonalEndDragHandleDisposables),this.orthogonalEndDragHandleDisposables.add(new k.DomEmitter(this._orthogonalEndDragHandle,"mouseleave")).event(()=>r.onMouseLeave(C),void 0,this.orthogonalEndDragHandleDisposables))};this.orthogonalEndSashDisposables.add(C.onDidEnablementChange.event(f,this)),f(C.state)}this._orthogonalEndSash=C}}constructor(C,f,h){super(),this.hoverDelay=i,this.hoverDelayer=this._register(new E.Delayer(this.hoverDelay)),this._state=3,this.onDidEnablementChange=this._register(new m.Emitter),this._onDidStart=this._register(new m.Emitter),this._onDidChange=this._register(new m.Emitter),this._onDidReset=this._register(new m.Emitter),this._onDidEnd=this._register(new m.Emitter),this.orthogonalStartSashDisposables=this._register(new _.DisposableStore),this.orthogonalStartDragHandleDisposables=this._register(new _.DisposableStore),this.orthogonalEndSashDisposables=this._register(new _.DisposableStore),this.orthogonalEndDragHandleDisposables=this._register(new _.DisposableStore),this.onDidStart=this._onDidStart.event,this.onDidChange=this._onDidChange.event,this.onDidReset=this._onDidReset.event,this.onDidEnd=this._onDidEnd.event,this.linkedSash=void 0,this.el=(0,d.append)(C,(0,d.$)(".monaco-sash")),h.orthogonalEdge&&this.el.classList.add(`orthogonal-edge-${h.orthogonalEdge}`),b.isMacintosh&&this.el.classList.add("mac");const v=this._register(new k.DomEmitter(this.el,"mousedown")).event;this._register(v(A=>this.onPointerStart(A,new g(C)),this));const w=this._register(new k.DomEmitter(this.el,"dblclick")).event;this._register(w(this.onPointerDoublePress,this));const S=this._register(new k.DomEmitter(this.el,"mouseenter")).event;this._register(S(()=>r.onMouseEnter(this)));const L=this._register(new k.DomEmitter(this.el,"mouseleave")).event;this._register(L(()=>r.onMouseLeave(this))),this._register(I.Gesture.addTarget(this.el));const D=this._register(new k.DomEmitter(this.el,I.EventType.Start)).event;this._register(D(A=>this.onPointerStart(A,new c(this.el)),this));const T=this._register(new k.DomEmitter(this.el,I.EventType.Tap)).event;let M;this._register(T(A=>{if(M){clearTimeout(M),M=void 0,this.onPointerDoublePress(A);return}clearTimeout(M),M=setTimeout(()=>M=void 0,250)},this)),typeof h.size=="number"?(this.size=h.size,h.orientation===0?this.el.style.width=`${this.size}px`:this.el.style.height=`${this.size}px`):(this.size=o,this._register(t.event(A=>{this.size=A,this.layout()}))),this._register(s.event(A=>this.hoverDelay=A)),this.layoutProvider=f,this.orthogonalStartSash=h.orthogonalStartSash,this.orthogonalEndSash=h.orthogonalEndSash,this.orientation=h.orientation||0,this.orientation===1?(this.el.classList.add("horizontal"),this.el.classList.remove("vertical")):(this.el.classList.remove("horizontal"),this.el.classList.add("vertical")),this.el.classList.toggle("debug",p),this.layout()}onPointerStart(C,f){d.EventHelper.stop(C);let h=!1;if(!C.__orthogonalSashEvent){const O=this.getOrthogonalSash(C);O&&(h=!0,C.__orthogonalSashEvent=!0,O.onPointerStart(C,new l(f)))}if(this.linkedSash&&!C.__linkedSashEvent&&(C.__linkedSashEvent=!0,this.linkedSash.onPointerStart(C,new l(f))),!this.state)return;const v=this.el.ownerDocument.getElementsByTagName("iframe");for(const O of v)O.classList.add(a);const w=C.pageX,S=C.pageY,L=C.altKey,D={startX:w,currentX:w,startY:S,currentY:S,altKey:L};this.el.classList.add("active"),this._onDidStart.fire(D);const T=(0,d.createStyleSheet)(this.el),M=()=>{let O="";h?O="all-scroll":this.orientation===1?this.state===1?O="s-resize":this.state===2?O="n-resize":O=b.isMacintosh?"row-resize":"ns-resize":this.state===1?O="e-resize":this.state===2?O="w-resize":O=b.isMacintosh?"col-resize":"ew-resize",T.textContent=`* { cursor: ${O} !important; }`},A=new _.DisposableStore;M(),h||this.onDidEnablementChange.event(M,null,A);const P=O=>{d.EventHelper.stop(O,!1);const F={startX:w,currentX:O.pageX,startY:S,currentY:O.pageY,altKey:L};this._onDidChange.fire(F)},N=O=>{d.EventHelper.stop(O,!1),T.remove(),this.el.classList.remove("active"),this._onDidEnd.fire(),A.dispose();for(const F of v)F.classList.remove(a)};f.onPointerMove(P,null,A),f.onPointerUp(N,null,A),A.add(f)}onPointerDoublePress(C){const f=this.getOrthogonalSash(C);f&&f._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()}static onMouseEnter(C,f=!1){C.el.classList.contains("active")?(C.hoverDelayer.cancel(),C.el.classList.add("hover")):C.hoverDelayer.trigger(()=>C.el.classList.add("hover"),C.hoverDelay).then(void 0,()=>{}),!f&&C.linkedSash&&r.onMouseEnter(C.linkedSash,!0)}static onMouseLeave(C,f=!1){C.hoverDelayer.cancel(),C.el.classList.remove("hover"),!f&&C.linkedSash&&r.onMouseLeave(C.linkedSash,!0)}clearSashHoverState(){r.onMouseLeave(this)}layout(){if(this.orientation===0){const C=this.layoutProvider;this.el.style.left=C.getVerticalSashLeft(this)-this.size/2+"px",C.getVerticalSashTop&&(this.el.style.top=C.getVerticalSashTop(this)+"px"),C.getVerticalSashHeight&&(this.el.style.height=C.getVerticalSashHeight(this)+"px")}else{const C=this.layoutProvider;this.el.style.top=C.getHorizontalSashTop(this)-this.size/2+"px",C.getHorizontalSashLeft&&(this.el.style.left=C.getHorizontalSashLeft(this)+"px"),C.getHorizontalSashWidth&&(this.el.style.width=C.getHorizontalSashWidth(this)+"px")}}getOrthogonalSash(C){const f=C.initialTarget??C.target;if(!(!f||!(0,d.isHTMLElement)(f))&&f.classList.contains("orthogonal-drag-handle"))return f.classList.contains("start")?this.orthogonalStartSash:this.orthogonalEndSash}dispose(){super.dispose(),this.el.remove()}}e.Sash=r}),define(ne[255],se([1,0,5,173,6,2]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResizableHTMLElement=void 0;class y{constructor(){this._onDidWillResize=new I.Emitter,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new I.Emitter,this.onDidResize=this._onDidResize.event,this._sashListener=new E.DisposableStore,this._size=new d.Dimension(0,0),this._minSize=new d.Dimension(0,0),this._maxSize=new d.Dimension(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new k.Sash(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new k.Sash(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new k.Sash(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:k.OrthogonalEdge.North}),this._southSash=new k.Sash(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:k.OrthogonalEdge.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let _,b=0,p=0;this._sashListener.add(I.Event.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{_===void 0&&(this._onDidWillResize.fire(),_=this._size,b=0,p=0)})),this._sashListener.add(I.Event.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{_!==void 0&&(_=void 0,b=0,p=0,this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(this._eastSash.onDidChange(n=>{_&&(p=n.currentX-n.startX,this.layout(_.height+b,_.width+p),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))})),this._sashListener.add(this._westSash.onDidChange(n=>{_&&(p=-(n.currentX-n.startX),this.layout(_.height+b,_.width+p),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))})),this._sashListener.add(this._northSash.onDidChange(n=>{_&&(b=-(n.currentY-n.startY),this.layout(_.height+b,_.width+p),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))})),this._sashListener.add(this._southSash.onDidChange(n=>{_&&(b=n.currentY-n.startY,this.layout(_.height+b,_.width+p),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))})),this._sashListener.add(I.Event.any(this._eastSash.onDidReset,this._westSash.onDidReset)(n=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(I.Event.any(this._northSash.onDidReset,this._southSash.onDidReset)(n=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(_,b,p,n){this._northSash.state=_?3:0,this._eastSash.state=b?3:0,this._southSash.state=p?3:0,this._westSash.state=n?3:0}layout(_=this.size.height,b=this.size.width){const{height:p,width:n}=this._minSize,{height:o,width:t}=this._maxSize;_=Math.max(p,Math.min(o,_)),b=Math.max(n,Math.min(t,b));const i=new d.Dimension(b,_);d.Dimension.equals(i,this._size)||(this.domNode.style.height=_+"px",this.domNode.style.width=b+"px",this._size=i,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(_){this._maxSize=_}get maxSize(){return this._maxSize}set minSize(_){this._minSize=_}get minSize(){return this._minSize}set preferredSize(_){this._preferredSize=_}get preferredSize(){return this._preferredSize}}e.ResizableHTMLElement=y}),define(ne[634],se([1,0,5,69,13,6,2,16]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectBoxNative=void 0;class _ extends y.Disposable{constructor(p,n,o,t){super(),this.selected=0,this.selectBoxOptions=t||Object.create(null),this.options=[],this.selectElement=document.createElement("select"),this.selectElement.className="monaco-select-box",typeof this.selectBoxOptions.ariaLabel=="string"&&this.selectElement.setAttribute("aria-label",this.selectBoxOptions.ariaLabel),typeof this.selectBoxOptions.ariaDescription=="string"&&this.selectElement.setAttribute("aria-description",this.selectBoxOptions.ariaDescription),this._onDidSelect=this._register(new E.Emitter),this.styles=o,this.registerListeners(),this.setOptions(p,n)}registerListeners(){this._register(k.Gesture.addTarget(this.selectElement)),[k.EventType.Tap].forEach(p=>{this._register(d.addDisposableListener(this.selectElement,p,n=>{this.selectElement.focus()}))}),this._register(d.addStandardDisposableListener(this.selectElement,"click",p=>{d.EventHelper.stop(p,!0)})),this._register(d.addStandardDisposableListener(this.selectElement,"change",p=>{this.selectElement.title=p.target.value,this._onDidSelect.fire({index:p.target.selectedIndex,selected:p.target.value})})),this._register(d.addStandardDisposableListener(this.selectElement,"keydown",p=>{let n=!1;m.isMacintosh?(p.keyCode===18||p.keyCode===16||p.keyCode===10)&&(n=!0):(p.keyCode===18&&p.altKey||p.keyCode===10||p.keyCode===3)&&(n=!0),n&&p.stopPropagation()}))}get onDidSelect(){return this._onDidSelect.event}setOptions(p,n){(!this.options||!I.equals(this.options,p))&&(this.options=p,this.selectElement.options.length=0,this.options.forEach((o,t)=>{this.selectElement.add(this.createOption(o.text,t,o.isDisabled))})),n!==void 0&&this.select(n)}select(p){this.options.length===0?this.selected=0:p>=0&&pthis.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.selectedp(new I.StandardMouseEvent(d.getWindow(b),n))))}onmousedown(b,p){this._register(d.addDisposableListener(b,d.EventType.MOUSE_DOWN,n=>p(new I.StandardMouseEvent(d.getWindow(b),n))))}onmouseover(b,p){this._register(d.addDisposableListener(b,d.EventType.MOUSE_OVER,n=>p(new I.StandardMouseEvent(d.getWindow(b),n))))}onmouseleave(b,p){this._register(d.addDisposableListener(b,d.EventType.MOUSE_LEAVE,n=>p(new I.StandardMouseEvent(d.getWindow(b),n))))}onkeydown(b,p){this._register(d.addDisposableListener(b,d.EventType.KEY_DOWN,n=>p(new k.StandardKeyboardEvent(n))))}onkeyup(b,p){this._register(d.addDisposableListener(b,d.EventType.KEY_UP,n=>p(new k.StandardKeyboardEvent(n))))}oninput(b,p){this._register(d.addDisposableListener(b,d.EventType.INPUT,p))}onblur(b,p){this._register(d.addDisposableListener(b,d.EventType.BLUR,p))}onfocus(b,p){this._register(d.addDisposableListener(b,d.EventType.FOCUS,p))}ignoreGesture(b){return E.Gesture.ignoreTarget(b)}}e.Widget=m}),define(ne[256],se([1,0,172,85,14,30,5]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ScrollbarArrow=e.ARROW_IMG_SIZE=void 0,e.ARROW_IMG_SIZE=11;class m extends k.Widget{constructor(b){super(),this._onActivate=b.onActivate,this.bgDomNode=document.createElement("div"),this.bgDomNode.className="arrow-background",this.bgDomNode.style.position="absolute",this.bgDomNode.style.width=b.bgWidth+"px",this.bgDomNode.style.height=b.bgHeight+"px",typeof b.top<"u"&&(this.bgDomNode.style.top="0px"),typeof b.left<"u"&&(this.bgDomNode.style.left="0px"),typeof b.bottom<"u"&&(this.bgDomNode.style.bottom="0px"),typeof b.right<"u"&&(this.bgDomNode.style.right="0px"),this.domNode=document.createElement("div"),this.domNode.className=b.className,this.domNode.classList.add(...E.ThemeIcon.asClassNameArray(b.icon)),this.domNode.style.position="absolute",this.domNode.style.width=e.ARROW_IMG_SIZE+"px",this.domNode.style.height=e.ARROW_IMG_SIZE+"px",typeof b.top<"u"&&(this.domNode.style.top=b.top+"px"),typeof b.left<"u"&&(this.domNode.style.left=b.left+"px"),typeof b.bottom<"u"&&(this.domNode.style.bottom=b.bottom+"px"),typeof b.right<"u"&&(this.domNode.style.right=b.right+"px"),this._pointerMoveMonitor=this._register(new d.GlobalPointerMoveMonitor),this._register(y.addStandardDisposableListener(this.bgDomNode,y.EventType.POINTER_DOWN,p=>this._arrowPointerDown(p))),this._register(y.addStandardDisposableListener(this.domNode,y.EventType.POINTER_DOWN,p=>this._arrowPointerDown(p))),this._pointerdownRepeatTimer=this._register(new y.WindowIntervalTimer),this._pointerdownScheduleRepeatTimer=this._register(new I.TimeoutTimer)}_arrowPointerDown(b){if(!b.target||!(b.target instanceof Element))return;const p=()=>{this._pointerdownRepeatTimer.cancelAndSet(()=>this._onActivate(),1e3/24,y.getWindow(b))};this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet(p,200),this._pointerMoveMonitor.startMonitoring(b.target,b.pointerId,b.buttons,n=>{},()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()}),b.preventDefault()}}e.ScrollbarArrow=m}),define(ne[356],se([1,0,5,39,172,256,626,85,16]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractScrollbar=void 0;const b=140;class p extends m.Widget{constructor(o){super(),this._lazyRender=o.lazyRender,this._host=o.host,this._scrollable=o.scrollable,this._scrollByPage=o.scrollByPage,this._scrollbarState=o.scrollbarState,this._visibilityController=this._register(new y.ScrollbarVisibilityController(o.visibility,"visible scrollbar "+o.extraScrollbarClassName,"invisible scrollbar "+o.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new I.GlobalPointerMoveMonitor),this._shouldRender=!0,this.domNode=(0,k.createFastDomNode)(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition("absolute"),this._register(d.addDisposableListener(this.domNode.domNode,d.EventType.POINTER_DOWN,t=>this._domNodePointerDown(t)))}_createArrow(o){const t=this._register(new E.ScrollbarArrow(o));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}_createSlider(o,t,i,s){this.slider=(0,k.createFastDomNode)(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(o),this.slider.setLeft(t),typeof i=="number"&&this.slider.setWidth(i),typeof s=="number"&&this.slider.setHeight(s),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this._register(d.addDisposableListener(this.slider.domNode,d.EventType.POINTER_DOWN,g=>{g.button===0&&(g.preventDefault(),this._sliderPointerDown(g))})),this.onclick(this.slider.domNode,g=>{g.leftButton&&g.stopPropagation()})}_onElementSize(o){return this._scrollbarState.setVisibleSize(o)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(o){return this._scrollbarState.setScrollSize(o)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(o){return this._scrollbarState.setScrollPosition(o)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodePointerDown(o){o.target===this.domNode.domNode&&this._onPointerDown(o)}delegatePointerDown(o){const t=this.domNode.domNode.getClientRects()[0].top,i=t+this._scrollbarState.getSliderPosition(),s=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),g=this._sliderPointerPosition(o);i<=g&&g<=s?o.button===0&&(o.preventDefault(),this._sliderPointerDown(o)):this._onPointerDown(o)}_onPointerDown(o){let t,i;if(o.target===this.domNode.domNode&&typeof o.offsetX=="number"&&typeof o.offsetY=="number")t=o.offsetX,i=o.offsetY;else{const g=d.getDomNodePagePosition(this.domNode.domNode);t=o.pageX-g.left,i=o.pageY-g.top}const s=this._pointerDownRelativePosition(t,i);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(s):this._scrollbarState.getDesiredScrollPositionFromOffset(s)),o.button===0&&(o.preventDefault(),this._sliderPointerDown(o))}_sliderPointerDown(o){if(!o.target||!(o.target instanceof Element))return;const t=this._sliderPointerPosition(o),i=this._sliderOrthogonalPointerPosition(o),s=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._pointerMoveMonitor.startMonitoring(o.target,o.pointerId,o.buttons,g=>{const c=this._sliderOrthogonalPointerPosition(g),l=Math.abs(c-i);if(_.isWindows&&l>b){this._setDesiredScrollPositionNow(s.getScrollPosition());return}const r=this._sliderPointerPosition(g)-t;this._setDesiredScrollPositionNow(s.getDesiredScrollPositionFromDelta(r))},()=>{this.slider.toggleClassName("active",!1),this._host.onDragEnd()}),this._host.onDragStart()}_setDesiredScrollPositionNow(o){const t={};this.writeScrollPosition(t,o),this._scrollable.setScrollPositionNow(t)}updateScrollbarSize(o){this._updateScrollbarSize(o),this._scrollbarState.setScrollbarSize(o),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}}e.AbstractScrollbar=p}),define(ne[635],se([1,0,77,356,256,223,26]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HorizontalScrollbar=void 0;class m extends k.AbstractScrollbar{constructor(b,p,n){const o=b.getScrollDimensions(),t=b.getCurrentScrollPosition();if(super({lazyRender:p.lazyRender,host:n,scrollbarState:new E.ScrollbarState(p.horizontalHasArrows?p.arrowSize:0,p.horizontal===2?0:p.horizontalScrollbarSize,p.vertical===2?0:p.verticalScrollbarSize,o.width,o.scrollWidth,t.scrollLeft),visibility:p.horizontal,extraScrollbarClassName:"horizontal",scrollable:b,scrollByPage:p.scrollByPage}),p.horizontalHasArrows){const i=(p.arrowSize-I.ARROW_IMG_SIZE)/2,s=(p.horizontalScrollbarSize-I.ARROW_IMG_SIZE)/2;this._createArrow({className:"scra",icon:y.Codicon.scrollbarButtonLeft,top:s,left:i,bottom:void 0,right:void 0,bgWidth:p.arrowSize,bgHeight:p.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new d.StandardWheelEvent(null,1,0))}),this._createArrow({className:"scra",icon:y.Codicon.scrollbarButtonRight,top:s,left:void 0,bottom:void 0,right:i,bgWidth:p.arrowSize,bgHeight:p.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new d.StandardWheelEvent(null,-1,0))})}this._createSlider(Math.floor((p.horizontalScrollbarSize-p.horizontalSliderSize)/2),0,void 0,p.horizontalSliderSize)}_updateSlider(b,p){this.slider.setWidth(b),this.slider.setLeft(p)}_renderDomNode(b,p){this.domNode.setWidth(b),this.domNode.setHeight(p),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(b){return this._shouldRender=this._onElementScrollSize(b.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(b.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(b.width)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(b,p){return b}_sliderPointerPosition(b){return b.pageX}_sliderOrthogonalPointerPosition(b){return b.pageY}_updateScrollbarSize(b){this.slider.setHeight(b)}writeScrollPosition(b,p){b.scrollLeft=p}updateOptions(b){this.updateScrollbarSize(b.horizontal===2?0:b.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(b.vertical===2?0:b.verticalScrollbarSize),this._visibilityController.setVisibility(b.horizontal),this._scrollByPage=b.scrollByPage}}e.HorizontalScrollbar=m}),define(ne[636],se([1,0,77,356,256,223,26]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.VerticalScrollbar=void 0;class m extends k.AbstractScrollbar{constructor(b,p,n){const o=b.getScrollDimensions(),t=b.getCurrentScrollPosition();if(super({lazyRender:p.lazyRender,host:n,scrollbarState:new E.ScrollbarState(p.verticalHasArrows?p.arrowSize:0,p.vertical===2?0:p.verticalScrollbarSize,0,o.height,o.scrollHeight,t.scrollTop),visibility:p.vertical,extraScrollbarClassName:"vertical",scrollable:b,scrollByPage:p.scrollByPage}),p.verticalHasArrows){const i=(p.arrowSize-I.ARROW_IMG_SIZE)/2,s=(p.verticalScrollbarSize-I.ARROW_IMG_SIZE)/2;this._createArrow({className:"scra",icon:y.Codicon.scrollbarButtonUp,top:i,left:s,bottom:void 0,right:void 0,bgWidth:p.verticalScrollbarSize,bgHeight:p.arrowSize,onActivate:()=>this._host.onMouseWheel(new d.StandardWheelEvent(null,0,1))}),this._createArrow({className:"scra",icon:y.Codicon.scrollbarButtonDown,top:void 0,left:s,bottom:i,right:void 0,bgWidth:p.verticalScrollbarSize,bgHeight:p.arrowSize,onActivate:()=>this._host.onMouseWheel(new d.StandardWheelEvent(null,0,-1))})}this._createSlider(0,Math.floor((p.verticalScrollbarSize-p.verticalSliderSize)/2),p.verticalSliderSize,void 0)}_updateSlider(b,p){this.slider.setHeight(b),this.slider.setTop(p)}_renderDomNode(b,p){this.domNode.setWidth(p),this.domNode.setHeight(b),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(b){return this._shouldRender=this._onElementScrollSize(b.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(b.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(b.height)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(b,p){return p}_sliderPointerPosition(b){return b.pageY}_sliderOrthogonalPointerPosition(b){return b.pageX}_updateScrollbarSize(b){this.slider.setWidth(b)}writeScrollPosition(b,p){b.scrollTop=p}updateOptions(b){this.updateScrollbarSize(b.vertical===2?0:b.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(b.vertical),this._scrollByPage=b.scrollByPage}}e.VerticalScrollbar=m}),define(ne[86],se([1,0,64,5,39,77,635,636,85,14,6,2,16,163,471]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DomScrollableElement=e.SmoothScrollableElement=e.ScrollableElement=e.AbstractScrollableElement=e.MouseWheelClassifier=void 0;const i=500,s=50,g=!0;class c{constructor(v,w,S){this.timestamp=v,this.deltaX=w,this.deltaY=S,this.score=0}}class l{static{this.INSTANCE=new l}constructor(){this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}isPhysicalMouseWheel(){if(this._front===-1&&this._rear===-1)return!1;let v=1,w=0,S=1,L=this._rear;do{const D=L===this._front?v:Math.pow(2,-S);if(v-=D,w+=this._memory[L].score*D,L===this._front)break;L=(this._capacity+L-1)%this._capacity,S++}while(!0);return w<=.5}acceptStandardWheelEvent(v){if(d.isChrome){const w=k.getWindow(v.browserEvent),S=(0,d.getZoomFactor)(w);this.accept(Date.now(),v.deltaX*S,v.deltaY*S)}else this.accept(Date.now(),v.deltaX,v.deltaY)}accept(v,w,S){let L=null;const D=new c(v,w,S);this._front===-1&&this._rear===-1?(this._memory[0]=D,this._front=0,this._rear=0):(L=this._memory[this._rear],this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=D),D.score=this._computeScore(D,L)}_computeScore(v,w){if(Math.abs(v.deltaX)>0&&Math.abs(v.deltaY)>0)return 1;let S=.5;if((!this._isAlmostInt(v.deltaX)||!this._isAlmostInt(v.deltaY))&&(S+=.25),w){const L=Math.abs(v.deltaX),D=Math.abs(v.deltaY),T=Math.abs(w.deltaX),M=Math.abs(w.deltaY),A=Math.max(Math.min(L,T),1),P=Math.max(Math.min(D,M),1),N=Math.max(L,T),O=Math.max(D,M);N%A===0&&O%P===0&&(S-=.5)}return Math.min(Math.max(S,0),1)}_isAlmostInt(v){return Math.abs(Math.round(v)-v)<.01}}e.MouseWheelClassifier=l;class a extends _.Widget{get options(){return this._options}constructor(v,w,S){super(),this._onScroll=this._register(new p.Emitter),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new p.Emitter),v.style.overflow="hidden",this._options=f(w),this._scrollable=S,this._register(this._scrollable.onScroll(D=>{this._onWillScroll.fire(D),this._onDidScroll(D),this._onScroll.fire(D)}));const L={onMouseWheel:D=>this._onMouseWheel(D),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new m.VerticalScrollbar(this._scrollable,this._options,L)),this._horizontalScrollbar=this._register(new y.HorizontalScrollbar(this._scrollable,this._options,L)),this._domNode=document.createElement("div"),this._domNode.className="monaco-scrollable-element "+this._options.className,this._domNode.setAttribute("role","presentation"),this._domNode.style.position="relative",this._domNode.style.overflow="hidden",this._domNode.appendChild(v),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=(0,I.createFastDomNode)(document.createElement("div")),this._leftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=(0,I.createFastDomNode)(document.createElement("div")),this._topShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=(0,I.createFastDomNode)(document.createElement("div")),this._topLeftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,D=>this._onMouseOver(D)),this.onmouseleave(this._listenOnDomNode,D=>this._onMouseLeave(D)),this._hideTimeout=this._register(new b.TimeoutTimer),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}dispose(){this._mouseWheelToDispose=(0,n.dispose)(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(v){this._verticalScrollbar.delegatePointerDown(v)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(v){this._scrollable.setScrollDimensions(v,!1)}updateClassName(v){this._options.className=v,o.isMacintosh&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className}updateOptions(v){typeof v.handleMouseWheel<"u"&&(this._options.handleMouseWheel=v.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),typeof v.mouseWheelScrollSensitivity<"u"&&(this._options.mouseWheelScrollSensitivity=v.mouseWheelScrollSensitivity),typeof v.fastScrollSensitivity<"u"&&(this._options.fastScrollSensitivity=v.fastScrollSensitivity),typeof v.scrollPredominantAxis<"u"&&(this._options.scrollPredominantAxis=v.scrollPredominantAxis),typeof v.horizontal<"u"&&(this._options.horizontal=v.horizontal),typeof v.vertical<"u"&&(this._options.vertical=v.vertical),typeof v.horizontalScrollbarSize<"u"&&(this._options.horizontalScrollbarSize=v.horizontalScrollbarSize),typeof v.verticalScrollbarSize<"u"&&(this._options.verticalScrollbarSize=v.verticalScrollbarSize),typeof v.scrollByPage<"u"&&(this._options.scrollByPage=v.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}delegateScrollFromMouseWheelEvent(v){this._onMouseWheel(new E.StandardWheelEvent(v))}_setListeningToMouseWheel(v){if(this._mouseWheelToDispose.length>0!==v&&(this._mouseWheelToDispose=(0,n.dispose)(this._mouseWheelToDispose),v)){const S=L=>{this._onMouseWheel(new E.StandardWheelEvent(L))};this._mouseWheelToDispose.push(k.addDisposableListener(this._listenOnDomNode,k.EventType.MOUSE_WHEEL,S,{passive:!1}))}}_onMouseWheel(v){if(v.browserEvent?.defaultPrevented)return;const w=l.INSTANCE;g&&w.acceptStandardWheelEvent(v);let S=!1;if(v.deltaY||v.deltaX){let D=v.deltaY*this._options.mouseWheelScrollSensitivity,T=v.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&T+D===0?T=D=0:Math.abs(D)>=Math.abs(T)?T=0:D=0),this._options.flipAxes&&([D,T]=[T,D]);const M=!o.isMacintosh&&v.browserEvent&&v.browserEvent.shiftKey;(this._options.scrollYToX||M)&&!T&&(T=D,D=0),v.browserEvent&&v.browserEvent.altKey&&(T=T*this._options.fastScrollSensitivity,D=D*this._options.fastScrollSensitivity);const A=this._scrollable.getFutureScrollPosition();let P={};if(D){const N=s*D,O=A.scrollTop-(N<0?Math.floor(N):Math.ceil(N));this._verticalScrollbar.writeScrollPosition(P,O)}if(T){const N=s*T,O=A.scrollLeft-(N<0?Math.floor(N):Math.ceil(N));this._horizontalScrollbar.writeScrollPosition(P,O)}P=this._scrollable.validateScrollPosition(P),(A.scrollLeft!==P.scrollLeft||A.scrollTop!==P.scrollTop)&&(g&&this._options.mouseWheelSmoothScroll&&w.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(P):this._scrollable.setScrollPositionNow(P),S=!0)}let L=S;!L&&this._options.alwaysConsumeMouseWheel&&(L=!0),!L&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(L=!0),L&&(v.preventDefault(),v.stopPropagation())}_onDidScroll(v){this._shouldRender=this._horizontalScrollbar.onDidScroll(v)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(v)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){const v=this._scrollable.getCurrentScrollPosition(),w=v.scrollTop>0,S=v.scrollLeft>0,L=S?" left":"",D=w?" top":"",T=S||w?" top-left-corner":"";this._leftShadowDomNode.setClassName(`shadow${L}`),this._topShadowDomNode.setClassName(`shadow${D}`),this._topLeftShadowDomNode.setClassName(`shadow${T}${D}${L}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(v){this._mouseIsOver=!1,this._hide()}_onMouseOver(v){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){!this._mouseIsOver&&!this._isDragging&&(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){!this._mouseIsOver&&!this._isDragging&&this._hideTimeout.cancelAndSet(()=>this._hide(),i)}}e.AbstractScrollableElement=a;class r extends a{constructor(v,w){w=w||{},w.mouseWheelSmoothScroll=!1;const S=new t.Scrollable({forceIntegerValues:!0,smoothScrollDuration:0,scheduleAtNextAnimationFrame:L=>k.scheduleAtNextAnimationFrame(k.getWindow(v),L)});super(v,w,S),this._register(S)}setScrollPosition(v){this._scrollable.setScrollPositionNow(v)}}e.ScrollableElement=r;class u extends a{constructor(v,w,S){super(v,w,S)}setScrollPosition(v){v.reuseAnimation?this._scrollable.setScrollPositionSmooth(v,v.reuseAnimation):this._scrollable.setScrollPositionNow(v)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}}e.SmoothScrollableElement=u;class C extends a{constructor(v,w){w=w||{},w.mouseWheelSmoothScroll=!1;const S=new t.Scrollable({forceIntegerValues:!1,smoothScrollDuration:0,scheduleAtNextAnimationFrame:L=>k.scheduleAtNextAnimationFrame(k.getWindow(v),L)});super(v,w,S),this._register(S),this._element=v,this._register(this.onScroll(L=>{L.scrollTopChanged&&(this._element.scrollTop=L.scrollTop),L.scrollLeftChanged&&(this._element.scrollLeft=L.scrollLeft)})),this.scanDomNode()}setScrollPosition(v){this._scrollable.setScrollPositionNow(v)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}scanDomNode(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}e.DomScrollableElement=C;function f(h){const v={lazyRender:typeof h.lazyRender<"u"?h.lazyRender:!1,className:typeof h.className<"u"?h.className:"",useShadows:typeof h.useShadows<"u"?h.useShadows:!0,handleMouseWheel:typeof h.handleMouseWheel<"u"?h.handleMouseWheel:!0,flipAxes:typeof h.flipAxes<"u"?h.flipAxes:!1,consumeMouseWheelIfScrollbarIsNeeded:typeof h.consumeMouseWheelIfScrollbarIsNeeded<"u"?h.consumeMouseWheelIfScrollbarIsNeeded:!1,alwaysConsumeMouseWheel:typeof h.alwaysConsumeMouseWheel<"u"?h.alwaysConsumeMouseWheel:!1,scrollYToX:typeof h.scrollYToX<"u"?h.scrollYToX:!1,mouseWheelScrollSensitivity:typeof h.mouseWheelScrollSensitivity<"u"?h.mouseWheelScrollSensitivity:1,fastScrollSensitivity:typeof h.fastScrollSensitivity<"u"?h.fastScrollSensitivity:5,scrollPredominantAxis:typeof h.scrollPredominantAxis<"u"?h.scrollPredominantAxis:!0,mouseWheelSmoothScroll:typeof h.mouseWheelSmoothScroll<"u"?h.mouseWheelSmoothScroll:!0,arrowSize:typeof h.arrowSize<"u"?h.arrowSize:11,listenOnDomNode:typeof h.listenOnDomNode<"u"?h.listenOnDomNode:null,horizontal:typeof h.horizontal<"u"?h.horizontal:1,horizontalScrollbarSize:typeof h.horizontalScrollbarSize<"u"?h.horizontalScrollbarSize:10,horizontalSliderSize:typeof h.horizontalSliderSize<"u"?h.horizontalSliderSize:0,horizontalHasArrows:typeof h.horizontalHasArrows<"u"?h.horizontalHasArrows:!1,vertical:typeof h.vertical<"u"?h.vertical:1,verticalScrollbarSize:typeof h.verticalScrollbarSize<"u"?h.verticalScrollbarSize:10,verticalHasArrows:typeof h.verticalHasArrows<"u"?h.verticalHasArrows:!1,verticalSliderSize:typeof h.verticalSliderSize<"u"?h.verticalSliderSize:0,scrollByPage:typeof h.scrollByPage<"u"?h.scrollByPage:!1};return v.horizontalSliderSize=typeof h.horizontalSliderSize<"u"?h.horizontalSliderSize:v.horizontalScrollbarSize,v.verticalSliderSize=typeof h.verticalSliderSize<"u"?h.verticalSliderSize:v.verticalScrollbarSize,o.isMacintosh&&(v.className+=" mac"),v}}),define(ne[174],se([1,0,5,47,86,2,3,464]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.KeyDownAction=e.ClickAction=e.HoverAction=e.HoverWidget=void 0,e.getHoverAccessibleViewHint=p;const m=d.$;class _ extends E.Disposable{constructor(){super(),this.containerDomNode=document.createElement("div"),this.containerDomNode.className="monaco-hover",this.containerDomNode.tabIndex=0,this.containerDomNode.setAttribute("role","tooltip"),this.contentsDomNode=document.createElement("div"),this.contentsDomNode.className="monaco-hover-content",this.scrollbar=this._register(new I.DomScrollableElement(this.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),this.containerDomNode.appendChild(this.scrollbar.getDomNode())}onContentsChanged(){this.scrollbar.scanDomNode()}}e.HoverWidget=_;class b extends E.Disposable{static render(i,s,g){return new b(i,s,g)}constructor(i,s,g){super(),this.actionLabel=s.label,this.actionKeybindingLabel=g,this.actionContainer=d.append(i,m("div.action-container")),this.actionContainer.setAttribute("tabindex","0"),this.action=d.append(this.actionContainer,m("a.action")),this.action.setAttribute("role","button"),s.iconClass&&d.append(this.action,m(`span.icon.${s.iconClass}`));const c=d.append(this.action,m("span"));c.textContent=g?`${s.label} (${g})`:s.label,this._store.add(new n(this.actionContainer,s.run)),this._store.add(new o(this.actionContainer,s.run,[3,10])),this.setEnabled(!0)}setEnabled(i){i?(this.actionContainer.classList.remove("disabled"),this.actionContainer.removeAttribute("aria-disabled")):(this.actionContainer.classList.add("disabled"),this.actionContainer.setAttribute("aria-disabled","true"))}}e.HoverAction=b;function p(t,i){return t&&i?(0,y.localize)(7,"Inspect this in the accessible view with {0}.",i):t?(0,y.localize)(8,"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding."):""}class n extends E.Disposable{constructor(i,s){super(),this._register(d.addDisposableListener(i,d.EventType.CLICK,g=>{g.stopPropagation(),g.preventDefault(),s(i)}))}}e.ClickAction=n;class o extends E.Disposable{constructor(i,s,g){super(),this._register(d.addDisposableListener(i,d.EventType.KEY_DOWN,c=>{const l=new k.StandardKeyboardEvent(c);g.some(a=>l.equals(a))&&(c.stopPropagation(),c.preventDefault(),s(i))}))}}e.KeyDownAction=o}),define(ne[257],se([1,0,224,5,93,69,86,13,14,126,6,2,188,163,454,632,8,141]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ListView=e.NativeDragAndDropData=e.ExternalElementsDragAndDropData=e.ElementsDragAndDropData=void 0;const l={CurrentDragAndDropData:void 0},a={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,setRowHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements(w){return[w]},getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}},horizontalScrolling:!1,transformOptimization:!0,alwaysConsumeMouseWheel:!0};class r{constructor(S){this.elements=S}update(){}getData(){return this.elements}}e.ElementsDragAndDropData=r;class u{constructor(S){this.elements=S}update(){}getData(){return this.elements}}e.ExternalElementsDragAndDropData=u;class C{constructor(){this.types=[],this.files=[]}update(S){if(S.types&&this.types.splice(0,this.types.length,...S.types),S.files){this.files.splice(0,this.files.length);for(let L=0;LT,S?.getPosInSet?this.getPosInSet=S.getPosInSet.bind(S):this.getPosInSet=(L,D)=>D+1,S?.getRole?this.getRole=S.getRole.bind(S):this.getRole=L=>"listitem",S?.isChecked?this.isChecked=S.isChecked.bind(S):this.isChecked=L=>{}}}class v{static{this.InstanceCount=0}get contentHeight(){return this.rangeMap.size}get onDidScroll(){return this.scrollableElement.onScroll}get scrollableElementDomNode(){return this.scrollableElement.getDomNode()}get horizontalScrolling(){return this._horizontalScrolling}set horizontalScrolling(S){if(S!==this._horizontalScrolling){if(S&&this.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");if(this._horizontalScrolling=S,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this._horizontalScrolling){for(const L of this.items)this.measureItemWidth(L);this.updateScrollWidth(),this.scrollableElement.setScrollDimensions({width:(0,k.getContentWidth)(this.domNode)}),this.rowsContainer.style.width=`${Math.max(this.scrollWidth||0,this.renderWidth)}px`}else this.scrollableElementWidthDelayer.cancel(),this.scrollableElement.setScrollDimensions({width:this.renderWidth,scrollWidth:this.renderWidth}),this.rowsContainer.style.width=""}}constructor(S,L,D,T=a){if(this.virtualDelegate=L,this.domId=`list_id_${++v.InstanceCount}`,this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new _.Delayer(50),this.splicing=!1,this.dragOverAnimationStopDisposable=n.Disposable.None,this.dragOverMouseY=0,this.canDrop=!1,this.currentDragFeedbackDisposable=n.Disposable.None,this.onDragLeaveTimeout=n.Disposable.None,this.disposables=new n.DisposableStore,this._onDidChangeContentHeight=new p.Emitter,this._onDidChangeContentWidth=new p.Emitter,this.onDidChangeContentHeight=p.Event.latch(this._onDidChangeContentHeight.event,void 0,this.disposables),this._horizontalScrolling=!1,T.horizontalScrolling&&T.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");this.items=[],this.itemId=0,this.rangeMap=this.createRangeMap(T.paddingTop??0);for(const A of D)this.renderers.set(A.templateId,A);this.cache=this.disposables.add(new s.RowCache(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement("div"),this.domNode.className="monaco-list",this.domNode.classList.add(this.domId),this.domNode.tabIndex=0,this.domNode.classList.toggle("mouse-support",typeof T.mouseSupport=="boolean"?T.mouseSupport:!0),this._horizontalScrolling=T.horizontalScrolling??a.horizontalScrolling,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this.paddingBottom=typeof T.paddingBottom>"u"?0:T.paddingBottom,this.accessibilityProvider=new h(T.accessibilityProvider),this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows",(T.transformOptimization??a.transformOptimization)&&(this.rowsContainer.style.transform="translate3d(0px, 0px, 0px)",this.rowsContainer.style.overflow="hidden",this.rowsContainer.style.contain="strict"),this.disposables.add(E.Gesture.addTarget(this.rowsContainer)),this.scrollable=this.disposables.add(new t.Scrollable({forceIntegerValues:!0,smoothScrollDuration:T.smoothScrolling??!1?125:0,scheduleAtNextAnimationFrame:A=>(0,k.scheduleAtNextAnimationFrame)((0,k.getWindow)(this.domNode),A)})),this.scrollableElement=this.disposables.add(new y.SmoothScrollableElement(this.rowsContainer,{alwaysConsumeMouseWheel:T.alwaysConsumeMouseWheel??a.alwaysConsumeMouseWheel,horizontal:1,vertical:T.verticalScrollMode??a.verticalScrollMode,useShadows:T.useShadows??a.useShadows,mouseWheelScrollSensitivity:T.mouseWheelScrollSensitivity,fastScrollSensitivity:T.fastScrollSensitivity,scrollByPage:T.scrollByPage},this.scrollable)),this.domNode.appendChild(this.scrollableElement.getDomNode()),S.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),this.disposables.add((0,k.addDisposableListener)(this.rowsContainer,E.EventType.Change,A=>this.onTouchChange(A))),this.disposables.add((0,k.addDisposableListener)(this.scrollableElement.getDomNode(),"scroll",A=>A.target.scrollTop=0)),this.disposables.add((0,k.addDisposableListener)(this.domNode,"dragover",A=>this.onDragOver(this.toDragEvent(A)))),this.disposables.add((0,k.addDisposableListener)(this.domNode,"drop",A=>this.onDrop(this.toDragEvent(A)))),this.disposables.add((0,k.addDisposableListener)(this.domNode,"dragleave",A=>this.onDragLeave(this.toDragEvent(A)))),this.disposables.add((0,k.addDisposableListener)(this.domNode,"dragend",A=>this.onDragEnd(A))),this.setRowLineHeight=T.setRowLineHeight??a.setRowLineHeight,this.setRowHeight=T.setRowHeight??a.setRowHeight,this.supportDynamicHeights=T.supportDynamicHeights??a.supportDynamicHeights,this.dnd=T.dnd??this.disposables.add(a.dnd),this.layout(T.initialSize?.height,T.initialSize?.width)}updateOptions(S){S.paddingBottom!==void 0&&(this.paddingBottom=S.paddingBottom,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),S.smoothScrolling!==void 0&&this.scrollable.setSmoothScrollDuration(S.smoothScrolling?125:0),S.horizontalScrolling!==void 0&&(this.horizontalScrolling=S.horizontalScrolling);let L;if(S.scrollByPage!==void 0&&(L={...L??{},scrollByPage:S.scrollByPage}),S.mouseWheelScrollSensitivity!==void 0&&(L={...L??{},mouseWheelScrollSensitivity:S.mouseWheelScrollSensitivity}),S.fastScrollSensitivity!==void 0&&(L={...L??{},fastScrollSensitivity:S.fastScrollSensitivity}),L&&this.scrollableElement.updateOptions(L),S.paddingTop!==void 0&&S.paddingTop!==this.rangeMap.paddingTop){const D=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),T=S.paddingTop-this.rangeMap.paddingTop;this.rangeMap.paddingTop=S.paddingTop,this.render(D,Math.max(0,this.lastRenderTop+T),this.lastRenderHeight,void 0,void 0,!0),this.setScrollTop(this.lastRenderTop),this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.lastRenderTop,this.lastRenderHeight)}}createRangeMap(S){return new i.RangeMap(S)}splice(S,L,D=[]){if(this.splicing)throw new Error("Can't run recursive splices.");this.splicing=!0;try{return this._splice(S,L,D)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}}_splice(S,L,D=[]){const T=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),M={start:S,end:S+L},A=o.Range.intersect(T,M),P=new Map;for(let K=A.end-1;K>=A.start;K--){const R=this.items[K];if(R.dragStartDisposable.dispose(),R.checkedDisposable.dispose(),R.row){let J=P.get(R.templateId);J||(J=[],P.set(R.templateId,J));const ie=this.renderers.get(R.templateId);ie&&ie.disposeElement&&ie.disposeElement(R.element,K,R.row.templateData,R.size),J.unshift(R.row)}R.row=null,R.stale=!0}const N={start:S+L,end:this.items.length},O=o.Range.intersect(N,T),F=o.Range.relativeComplement(N,T),x=D.map(K=>({id:String(this.itemId++),element:K,templateId:this.virtualDelegate.getTemplateId(K),size:this.virtualDelegate.getHeight(K),width:void 0,hasDynamicHeight:!!this.virtualDelegate.hasDynamicHeight&&this.virtualDelegate.hasDynamicHeight(K),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:n.Disposable.None,checkedDisposable:n.Disposable.None,stale:!1}));let W;S===0&&L>=this.items.length?(this.rangeMap=this.createRangeMap(this.rangeMap.paddingTop),this.rangeMap.splice(0,0,x),W=this.items,this.items=x):(this.rangeMap.splice(S,L,x),W=this.items.splice(S,L,...x));const V=D.length-L,q=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),H=(0,i.shift)(O,V),z=o.Range.intersect(q,H);for(let K=z.start;K(0,i.shift)(K,V)),G=[{start:S,end:S+D.length},...j].map(K=>o.Range.intersect(q,K)).reverse();for(const K of G)for(let R=K.end-1;R>=K.start;R--){const J=this.items[R],ue=P.get(J.templateId)?.pop();this.insertItemInDOM(R,ue)}for(const K of P.values())for(const R of K)this.cache.release(R);return this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),W.map(K=>K.element)}eventuallyUpdateScrollDimensions(){this._scrollHeight=this.contentHeight,this.rowsContainer.style.height=`${this._scrollHeight}px`,this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=(0,k.scheduleAtNextAnimationFrame)((0,k.getWindow)(this.domNode),()=>{this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight}),this.updateScrollWidth(),this.scrollableElementUpdateDisposable=null}))}eventuallyUpdateScrollWidth(){if(!this.horizontalScrolling){this.scrollableElementWidthDelayer.cancel();return}this.scrollableElementWidthDelayer.trigger(()=>this.updateScrollWidth())}updateScrollWidth(){if(!this.horizontalScrolling)return;let S=0;for(const L of this.items)typeof L.width<"u"&&(S=Math.max(S,L.width));this.scrollWidth=S,this.scrollableElement.setScrollDimensions({scrollWidth:S===0?0:S+10}),this._onDidChangeContentWidth.fire(this.scrollWidth)}rerender(){if(this.supportDynamicHeights){for(const S of this.items)S.lastDynamicHeightWidth=void 0;this._rerender(this.lastRenderTop,this.lastRenderHeight)}}get length(){return this.items.length}get renderHeight(){return this.scrollableElement.getScrollDimensions().height}get firstVisibleIndex(){return this.getRenderRange(this.lastRenderTop,this.lastRenderHeight).start}element(S){return this.items[S].element}indexOf(S){return this.items.findIndex(L=>L.element===S)}domElement(S){const L=this.items[S].row;return L&&L.domNode}elementHeight(S){return this.items[S].size}elementTop(S){return this.rangeMap.positionAt(S)}indexAt(S){return this.rangeMap.indexAt(S)}indexAfter(S){return this.rangeMap.indexAfter(S)}layout(S,L){const D={height:typeof S=="number"?S:(0,k.getContentHeight)(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,D.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(D),typeof L<"u"&&(this.renderWidth=L,this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight)),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:typeof L=="number"?L:(0,k.getContentWidth)(this.domNode)})}render(S,L,D,T,M,A=!1){const P=this.getRenderRange(L,D),N=o.Range.relativeComplement(P,S).reverse(),O=o.Range.relativeComplement(S,P);if(A){const F=o.Range.intersect(S,P);for(let x=F.start;x{for(const F of O)for(let x=F.start;x=F.start;x--)this.insertItemInDOM(x)}),T!==void 0&&(this.rowsContainer.style.left=`-${T}px`),this.rowsContainer.style.top=`-${L}px`,this.horizontalScrolling&&M!==void 0&&(this.rowsContainer.style.width=`${Math.max(M,this.renderWidth)}px`),this.lastRenderTop=L,this.lastRenderHeight=D}insertItemInDOM(S,L){const D=this.items[S];if(!D.row)if(L)D.row=L,D.stale=!0;else{const N=this.cache.alloc(D.templateId);D.row=N.row,D.stale||=N.isReusingConnectedDomNode}const T=this.accessibilityProvider.getRole(D.element)||"listitem";D.row.domNode.setAttribute("role",T);const M=this.accessibilityProvider.isChecked(D.element);if(typeof M=="boolean")D.row.domNode.setAttribute("aria-checked",String(!!M));else if(M){const N=O=>D.row.domNode.setAttribute("aria-checked",String(!!O));N(M.value),D.checkedDisposable=M.onDidChange(()=>N(M.value))}if(D.stale||!D.row.domNode.parentElement){const N=this.items.at(S+1)?.row?.domNode??null;(D.row.domNode.parentElement!==this.rowsContainer||D.row.domNode.nextElementSibling!==N)&&this.rowsContainer.insertBefore(D.row.domNode,N),D.stale=!1}this.updateItemInDOM(D,S);const A=this.renderers.get(D.templateId);if(!A)throw new Error(`No renderer found for template id ${D.templateId}`);A?.renderElement(D.element,S,D.row.templateData,D.size);const P=this.dnd.getDragURI(D.element);D.dragStartDisposable.dispose(),D.row.domNode.draggable=!!P,P&&(D.dragStartDisposable=(0,k.addDisposableListener)(D.row.domNode,"dragstart",N=>this.onDragStart(D.element,P,N))),this.horizontalScrolling&&(this.measureItemWidth(D),this.eventuallyUpdateScrollWidth())}measureItemWidth(S){if(!S.row||!S.row.domNode)return;S.row.domNode.style.width="fit-content",S.width=(0,k.getContentWidth)(S.row.domNode);const L=(0,k.getWindow)(S.row.domNode).getComputedStyle(S.row.domNode);L.paddingLeft&&(S.width+=parseFloat(L.paddingLeft)),L.paddingRight&&(S.width+=parseFloat(L.paddingRight)),S.row.domNode.style.width=""}updateItemInDOM(S,L){S.row.domNode.style.top=`${this.elementTop(L)}px`,this.setRowHeight&&(S.row.domNode.style.height=`${S.size}px`),this.setRowLineHeight&&(S.row.domNode.style.lineHeight=`${S.size}px`),S.row.domNode.setAttribute("data-index",`${L}`),S.row.domNode.setAttribute("data-last-element",L===this.length-1?"true":"false"),S.row.domNode.setAttribute("data-parity",L%2===0?"even":"odd"),S.row.domNode.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(S.element,L,this.length))),S.row.domNode.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(S.element,L))),S.row.domNode.setAttribute("id",this.getElementDomId(L)),S.row.domNode.classList.toggle("drop-target",S.dropTarget)}removeItemFromDOM(S){const L=this.items[S];if(L.dragStartDisposable.dispose(),L.checkedDisposable.dispose(),L.row){const D=this.renderers.get(L.templateId);D&&D.disposeElement&&D.disposeElement(L.element,S,L.row.templateData,L.size),this.cache.release(L.row),L.row=null}this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()}getScrollTop(){return this.scrollableElement.getScrollPosition().scrollTop}setScrollTop(S,L){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:S,reuseAnimation:L})}get scrollTop(){return this.getScrollTop()}set scrollTop(S){this.setScrollTop(S)}get scrollHeight(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.paddingBottom}get onMouseClick(){return p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"click")).event,S=>this.toMouseEvent(S),this.disposables)}get onMouseDblClick(){return p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"dblclick")).event,S=>this.toMouseEvent(S),this.disposables)}get onMouseMiddleClick(){return p.Event.filter(p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"auxclick")).event,S=>this.toMouseEvent(S),this.disposables),S=>S.browserEvent.button===1,this.disposables)}get onMouseDown(){return p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"mousedown")).event,S=>this.toMouseEvent(S),this.disposables)}get onMouseOver(){return p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"mouseover")).event,S=>this.toMouseEvent(S),this.disposables)}get onMouseOut(){return p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"mouseout")).event,S=>this.toMouseEvent(S),this.disposables)}get onContextMenu(){return p.Event.any(p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"contextmenu")).event,S=>this.toMouseEvent(S),this.disposables),p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,E.EventType.Contextmenu)).event,S=>this.toGestureEvent(S),this.disposables))}get onTouchStart(){return p.Event.map(this.disposables.add(new I.DomEmitter(this.domNode,"touchstart")).event,S=>this.toTouchEvent(S),this.disposables)}get onTap(){return p.Event.map(this.disposables.add(new I.DomEmitter(this.rowsContainer,E.EventType.Tap)).event,S=>this.toGestureEvent(S),this.disposables)}toMouseEvent(S){const L=this.getItemIndexFromEventTarget(S.target||null),D=typeof L>"u"?void 0:this.items[L],T=D&&D.element;return{browserEvent:S,index:L,element:T}}toTouchEvent(S){const L=this.getItemIndexFromEventTarget(S.target||null),D=typeof L>"u"?void 0:this.items[L],T=D&&D.element;return{browserEvent:S,index:L,element:T}}toGestureEvent(S){const L=this.getItemIndexFromEventTarget(S.initialTarget||null),D=typeof L>"u"?void 0:this.items[L],T=D&&D.element;return{browserEvent:S,index:L,element:T}}toDragEvent(S){const L=this.getItemIndexFromEventTarget(S.target||null),D=typeof L>"u"?void 0:this.items[L],T=D&&D.element,M=this.getTargetSector(S,L);return{browserEvent:S,index:L,element:T,sector:M}}onScroll(S){try{const L=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);this.render(L,S.scrollTop,S.height,S.scrollLeft,S.scrollWidth),this.supportDynamicHeights&&this._rerender(S.scrollTop,S.height,S.inSmoothScrolling)}catch(L){throw console.error("Got bad scroll event:",S),L}}onTouchChange(S){S.preventDefault(),S.stopPropagation(),this.scrollTop-=S.translationY}onDragStart(S,L,D){if(!D.dataTransfer)return;const T=this.dnd.getDragElements(S);if(D.dataTransfer.effectAllowed="copyMove",D.dataTransfer.setData(d.DataTransfers.TEXT,L),D.dataTransfer.setDragImage){let M;this.dnd.getDragLabel&&(M=this.dnd.getDragLabel(T,D)),typeof M>"u"&&(M=String(T.length));const A=(0,k.$)(".monaco-drag-image");A.textContent=M,(O=>{for(;O&&!O.classList.contains("monaco-workbench");)O=O.parentElement;return O||this.domNode.ownerDocument})(this.domNode).appendChild(A),D.dataTransfer.setDragImage(A,-10,-10),setTimeout(()=>A.remove(),0)}this.domNode.classList.add("dragging"),this.currentDragData=new r(T),l.CurrentDragAndDropData=new u(T),this.dnd.onDragStart?.(this.currentDragData,D)}onDragOver(S){if(S.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),l.CurrentDragAndDropData&&l.CurrentDragAndDropData.getData()==="vscode-ui"||(this.setupDragAndDropScrollTopAnimation(S.browserEvent),!S.browserEvent.dataTransfer))return!1;if(!this.currentDragData)if(l.CurrentDragAndDropData)this.currentDragData=l.CurrentDragAndDropData;else{if(!S.browserEvent.dataTransfer.types)return!1;this.currentDragData=new C}const L=this.dnd.onDragOver(this.currentDragData,S.element,S.index,S.sector,S.browserEvent);if(this.canDrop=typeof L=="boolean"?L:L.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;S.browserEvent.dataTransfer.dropEffect=typeof L!="boolean"&&L.effect?.type===0?"copy":"move";let D;typeof L!="boolean"&&L.feedback?D=L.feedback:typeof S.index>"u"?D=[-1]:D=[S.index],D=(0,m.distinct)(D).filter(M=>M>=-1&&MM-A),D=D[0]===-1?[-1]:D;let T=typeof L!="boolean"&&L.effect&&L.effect.position?L.effect.position:"drop-target";if(f(this.currentDragFeedback,D)&&this.currentDragFeedbackPosition===T)return!0;if(this.currentDragFeedback=D,this.currentDragFeedbackPosition=T,this.currentDragFeedbackDisposable.dispose(),D[0]===-1)this.domNode.classList.add(T),this.rowsContainer.classList.add(T),this.currentDragFeedbackDisposable=(0,n.toDisposable)(()=>{this.domNode.classList.remove(T),this.rowsContainer.classList.remove(T)});else{if(D.length>1&&T!=="drop-target")throw new Error("Can't use multiple feedbacks with position different than 'over'");T==="drop-target-after"&&D[0]{for(const M of D){const A=this.items[M];A.dropTarget=!1,A.row?.domNode.classList.remove(T)}})}return!0}onDragLeave(S){this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=(0,_.disposableTimeout)(()=>this.clearDragOverFeedback(),100,this.disposables),this.currentDragData&&this.dnd.onDragLeave?.(this.currentDragData,S.element,S.index,S.browserEvent)}onDrop(S){if(!this.canDrop)return;const L=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,l.CurrentDragAndDropData=void 0,!(!L||!S.browserEvent.dataTransfer)&&(S.browserEvent.preventDefault(),L.update(S.browserEvent.dataTransfer),this.dnd.drop(L,S.element,S.index,S.sector,S.browserEvent))}onDragEnd(S){this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,l.CurrentDragAndDropData=void 0,this.dnd.onDragEnd?.(S)}clearDragOverFeedback(){this.currentDragFeedback=void 0,this.currentDragFeedbackPosition=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=n.Disposable.None}setupDragAndDropScrollTopAnimation(S){if(!this.dragOverAnimationDisposable){const L=(0,k.getTopLeftOffset)(this.domNode).top;this.dragOverAnimationDisposable=(0,k.animate)((0,k.getWindow)(this.domNode),this.animateDragAndDropScrollTop.bind(this,L))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=(0,_.disposableTimeout)(()=>{this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)},1e3,this.disposables),this.dragOverMouseY=S.pageY}animateDragAndDropScrollTop(S){if(this.dragOverMouseY===void 0)return;const L=this.dragOverMouseY-S,D=this.renderHeight-35;L<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(L-35))):L>D&&(this.scrollTop+=Math.min(14,Math.floor(.3*(L-D))))}teardownDragAndDropScrollTopAnimation(){this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}getTargetSector(S,L){if(L===void 0)return;const D=S.offsetY/this.items[L].size,T=Math.floor(D/.25);return(0,c.clamp)(T,0,3)}getItemIndexFromEventTarget(S){const L=this.scrollableElement.getDomNode();let D=S;for(;((0,k.isHTMLElement)(D)||(0,k.isSVGElement)(D))&&D!==this.rowsContainer&&L.contains(D);){const T=D.getAttribute("data-index");if(T){const M=Number(T);if(!isNaN(M))return M}D=D.parentElement}}getRenderRange(S,L){return{start:this.rangeMap.indexAt(S),end:this.rangeMap.indexAfter(S+L-1)}}_rerender(S,L,D){const T=this.getRenderRange(S,L);let M,A;S===this.elementTop(T.start)?(M=T.start,A=0):T.end-T.start>1&&(M=T.start+1,A=this.elementTop(M)-S);let P=0;for(;;){const N=this.getRenderRange(S,L);let O=!1;for(let F=N.start;F=W.start;V--)this.insertItemInDOM(V);for(let W=N.start;WB.templateData===ge);if(X>=0){const B=this.renderedElements[X];this.trait.unrender(ge),B.index=de}else{const B={index:de,templateData:ge};this.renderedElements.push(B)}this.trait.renderIndex(de,ge)}splice(ee,de,ge){const X=[];for(const B of this.renderedElements)B.index=ee+de&&X.push({index:B.index+ge-de,templateData:B.templateData});this.renderedElements=X}renderIndexes(ee){for(const{index:de,templateData:ge}of this.renderedElements)ee.indexOf(de)>-1&&this.trait.renderIndex(de,ge)}disposeTemplate(ee){const de=this.renderedElements.findIndex(ge=>ge.templateData===ee);de<0||this.renderedElements.splice(de,1)}}class f{get name(){return this._trait}get renderer(){return new C(this)}constructor(ee){this._trait=ee,this.indexes=[],this.sortedIndexes=[],this._onChange=new o.Emitter,this.onChange=this._onChange.event}splice(ee,de,ge){const X=ge.length-de,B=ee+de,$=[];let Q=0;for(;Q=B;)$.push(this.sortedIndexes[Q++]+X);this.renderer.splice(ee,de,ge.length),this._set($,$)}renderIndex(ee,de){de.classList.toggle(this._trait,this.contains(ee))}unrender(ee){ee.classList.remove(this._trait)}set(ee,de){return this._set(ee,[...ee].sort(J),de)}_set(ee,de,ge){const X=this.indexes,B=this.sortedIndexes;this.indexes=ee,this.sortedIndexes=de;const $=K(B,ee);return this.renderer.renderIndexes($),this._onChange.fire({indexes:ee,browserEvent:ge}),X}get(){return this.indexes}contains(ee){return(0,_.binarySearch)(this.sortedIndexes,ee,J)>=0}dispose(){(0,i.dispose)(this._onChange)}}ke([n.memoize],f.prototype,"renderer",null);class h extends f{constructor(ee){super("selected"),this.setAriaSelected=ee}renderIndex(ee,de){super.renderIndex(ee,de),this.setAriaSelected&&(this.contains(ee)?de.setAttribute("aria-selected","true"):de.setAttribute("aria-selected","false"))}}class v{constructor(ee,de,ge){this.trait=ee,this.view=de,this.identityProvider=ge}splice(ee,de,ge){if(!this.identityProvider)return this.trait.splice(ee,de,new Array(ge.length).fill(!1));const X=this.trait.get().map(Q=>this.identityProvider.getId(this.view.element(Q)).toString());if(X.length===0)return this.trait.splice(ee,de,new Array(ge.length).fill(!1));const B=new Set(X),$=ge.map(Q=>B.has(this.identityProvider.getId(Q).toString()));this.trait.splice(ee,de,$)}}function w(ae){return ae.tagName==="INPUT"||ae.tagName==="TEXTAREA"}function S(ae,ee){return ae.classList.contains(ee)?!0:ae.classList.contains("monaco-list")||!ae.parentElement?!1:S(ae.parentElement,ee)}function L(ae){return S(ae,"monaco-editor")}function D(ae){return S(ae,"monaco-custom-toggle")}function T(ae){return S(ae,"action-item")}function M(ae){return S(ae,"monaco-tree-sticky-row")}function A(ae){return ae.classList.contains("monaco-tree-sticky-container")}function P(ae){return ae.tagName==="A"&&ae.classList.contains("monaco-button")||ae.tagName==="DIV"&&ae.classList.contains("monaco-button-dropdown")?!0:ae.classList.contains("monaco-list")||!ae.parentElement?!1:P(ae.parentElement)}class N{get onKeyDown(){return o.Event.chain(this.disposables.add(new k.DomEmitter(this.view.domNode,"keydown")).event,ee=>ee.filter(de=>!w(de.target)).map(de=>new I.StandardKeyboardEvent(de)))}constructor(ee,de,ge){this.list=ee,this.view=de,this.disposables=new i.DisposableStore,this.multipleSelectionDisposables=new i.DisposableStore,this.multipleSelectionSupport=ge.multipleSelectionSupport,this.disposables.add(this.onKeyDown(X=>{switch(X.keyCode){case 3:return this.onEnter(X);case 16:return this.onUpArrow(X);case 18:return this.onDownArrow(X);case 11:return this.onPageUpArrow(X);case 12:return this.onPageDownArrow(X);case 9:return this.onEscape(X);case 31:this.multipleSelectionSupport&&(g.isMacintosh?X.metaKey:X.ctrlKey)&&this.onCtrlA(X)}}))}updateOptions(ee){ee.multipleSelectionSupport!==void 0&&(this.multipleSelectionSupport=ee.multipleSelectionSupport)}onEnter(ee){ee.preventDefault(),ee.stopPropagation(),this.list.setSelection(this.list.getFocus(),ee.browserEvent)}onUpArrow(ee){ee.preventDefault(),ee.stopPropagation(),this.list.focusPrevious(1,!1,ee.browserEvent);const de=this.list.getFocus()[0];this.list.setAnchor(de),this.list.reveal(de),this.view.domNode.focus()}onDownArrow(ee){ee.preventDefault(),ee.stopPropagation(),this.list.focusNext(1,!1,ee.browserEvent);const de=this.list.getFocus()[0];this.list.setAnchor(de),this.list.reveal(de),this.view.domNode.focus()}onPageUpArrow(ee){ee.preventDefault(),ee.stopPropagation(),this.list.focusPreviousPage(ee.browserEvent);const de=this.list.getFocus()[0];this.list.setAnchor(de),this.list.reveal(de),this.view.domNode.focus()}onPageDownArrow(ee){ee.preventDefault(),ee.stopPropagation(),this.list.focusNextPage(ee.browserEvent);const de=this.list.getFocus()[0];this.list.setAnchor(de),this.list.reveal(de),this.view.domNode.focus()}onCtrlA(ee){ee.preventDefault(),ee.stopPropagation(),this.list.setSelection((0,_.range)(this.list.length),ee.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus()}onEscape(ee){this.list.getSelection().length&&(ee.preventDefault(),ee.stopPropagation(),this.list.setSelection([],ee.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus())}dispose(){this.disposables.dispose(),this.multipleSelectionDisposables.dispose()}}ke([n.memoize],N.prototype,"onKeyDown",null);var O;(function(ae){ae[ae.Automatic=0]="Automatic",ae[ae.Trigger=1]="Trigger"})(O||(e.TypeNavigationMode=O={}));var F;(function(ae){ae[ae.Idle=0]="Idle",ae[ae.Typing=1]="Typing"})(F||(F={})),e.DefaultKeyboardNavigationDelegate=new class{mightProducePrintableCharacter(ae){return ae.ctrlKey||ae.metaKey||ae.altKey?!1:ae.keyCode>=31&&ae.keyCode<=56||ae.keyCode>=21&&ae.keyCode<=30||ae.keyCode>=98&&ae.keyCode<=107||ae.keyCode>=85&&ae.keyCode<=95}};class x{constructor(ee,de,ge,X,B){this.list=ee,this.view=de,this.keyboardNavigationLabelProvider=ge,this.keyboardNavigationEventFilter=X,this.delegate=B,this.enabled=!1,this.state=F.Idle,this.mode=O.Automatic,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new i.DisposableStore,this.disposables=new i.DisposableStore,this.updateOptions(ee.options)}updateOptions(ee){ee.typeNavigationEnabled??!0?this.enable():this.disable(),this.mode=ee.typeNavigationMode??O.Automatic}enable(){if(this.enabled)return;let ee=!1;const de=o.Event.chain(this.enabledDisposables.add(new k.DomEmitter(this.view.domNode,"keydown")).event,B=>B.filter($=>!w($.target)).filter(()=>this.mode===O.Automatic||this.triggered).map($=>new I.StandardKeyboardEvent($)).filter($=>ee||this.keyboardNavigationEventFilter($)).filter($=>this.delegate.mightProducePrintableCharacter($)).forEach($=>d.EventHelper.stop($,!0)).map($=>$.browserEvent.key)),ge=o.Event.debounce(de,()=>null,800,void 0,void 0,void 0,this.enabledDisposables);o.Event.reduce(o.Event.any(de,ge),(B,$)=>$===null?null:(B||"")+$,void 0,this.enabledDisposables)(this.onInput,this,this.enabledDisposables),ge(this.onClear,this,this.enabledDisposables),de(()=>ee=!0,void 0,this.enabledDisposables),ge(()=>ee=!1,void 0,this.enabledDisposables),this.enabled=!0,this.triggered=!1}disable(){this.enabled&&(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)}onClear(){const ee=this.list.getFocus();if(ee.length>0&&ee[0]===this.previouslyFocused){const de=this.list.options.accessibilityProvider?.getAriaLabel(this.list.element(ee[0]));typeof de=="string"?(0,y.alert)(de):de&&(0,y.alert)(de.get())}this.previouslyFocused=-1}onInput(ee){if(!ee){this.state=F.Idle,this.triggered=!1;return}const de=this.list.getFocus(),ge=de.length>0?de[0]:0,X=this.state===F.Idle?1:0;this.state=F.Typing;for(let B=0;B1&&te.length===1){this.previouslyFocused=ge,this.list.setFocus([$]),this.list.reveal($);return}}}else if(typeof Z>"u"||(0,t.matchesPrefix)(ee,Z)){this.previouslyFocused=ge,this.list.setFocus([$]),this.list.reveal($);return}}}dispose(){this.disable(),this.enabledDisposables.dispose(),this.disposables.dispose()}}class W{constructor(ee,de){this.list=ee,this.view=de,this.disposables=new i.DisposableStore;const ge=o.Event.chain(this.disposables.add(new k.DomEmitter(de.domNode,"keydown")).event,B=>B.filter($=>!w($.target)).map($=>new I.StandardKeyboardEvent($)));o.Event.chain(ge,B=>B.filter($=>$.keyCode===2&&!$.ctrlKey&&!$.metaKey&&!$.shiftKey&&!$.altKey))(this.onTab,this,this.disposables)}onTab(ee){if(ee.target!==this.view.domNode)return;const de=this.list.getFocus();if(de.length===0)return;const ge=this.view.domElement(de[0]);if(!ge)return;const X=ge.querySelector("[tabIndex]");if(!X||!(0,d.isHTMLElement)(X)||X.tabIndex===-1)return;const B=(0,d.getWindow)(X).getComputedStyle(X);B.visibility==="hidden"||B.display==="none"||(ee.preventDefault(),ee.stopPropagation(),X.focus())}dispose(){this.disposables.dispose()}}function V(ae){return g.isMacintosh?ae.browserEvent.metaKey:ae.browserEvent.ctrlKey}function q(ae){return ae.browserEvent.shiftKey}function H(ae){return(0,d.isMouseEvent)(ae)&&ae.button===2}const z={isSelectionSingleChangeEvent:V,isSelectionRangeChangeEvent:q};class U{constructor(ee){this.list=ee,this.disposables=new i.DisposableStore,this._onPointer=new o.Emitter,this.onPointer=this._onPointer.event,ee.options.multipleSelectionSupport!==!1&&(this.multipleSelectionController=this.list.options.multipleSelectionController||z),this.mouseSupport=typeof ee.options.mouseSupport>"u"||!!ee.options.mouseSupport,this.mouseSupport&&(ee.onMouseDown(this.onMouseDown,this,this.disposables),ee.onContextMenu(this.onContextMenu,this,this.disposables),ee.onMouseDblClick(this.onDoubleClick,this,this.disposables),ee.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(E.Gesture.addTarget(ee.getHTMLElement()))),o.Event.any(ee.onMouseClick,ee.onMouseMiddleClick,ee.onTap)(this.onViewPointer,this,this.disposables)}updateOptions(ee){ee.multipleSelectionSupport!==void 0&&(this.multipleSelectionController=void 0,ee.multipleSelectionSupport&&(this.multipleSelectionController=this.list.options.multipleSelectionController||z))}isSelectionSingleChangeEvent(ee){return this.multipleSelectionController?this.multipleSelectionController.isSelectionSingleChangeEvent(ee):!1}isSelectionRangeChangeEvent(ee){return this.multipleSelectionController?this.multipleSelectionController.isSelectionRangeChangeEvent(ee):!1}isSelectionChangeEvent(ee){return this.isSelectionSingleChangeEvent(ee)||this.isSelectionRangeChangeEvent(ee)}onMouseDown(ee){L(ee.browserEvent.target)||(0,d.getActiveElement)()!==ee.browserEvent.target&&this.list.domFocus()}onContextMenu(ee){if(w(ee.browserEvent.target)||L(ee.browserEvent.target))return;const de=typeof ee.index>"u"?[]:[ee.index];this.list.setFocus(de,ee.browserEvent)}onViewPointer(ee){if(!this.mouseSupport||w(ee.browserEvent.target)||L(ee.browserEvent.target)||ee.browserEvent.isHandledByList)return;ee.browserEvent.isHandledByList=!0;const de=ee.index;if(typeof de>"u"){this.list.setFocus([],ee.browserEvent),this.list.setSelection([],ee.browserEvent),this.list.setAnchor(void 0);return}if(this.isSelectionChangeEvent(ee))return this.changeSelection(ee);this.list.setFocus([de],ee.browserEvent),this.list.setAnchor(de),H(ee.browserEvent)||this.list.setSelection([de],ee.browserEvent),this._onPointer.fire(ee)}onDoubleClick(ee){if(w(ee.browserEvent.target)||L(ee.browserEvent.target)||this.isSelectionChangeEvent(ee)||ee.browserEvent.isHandledByList)return;ee.browserEvent.isHandledByList=!0;const de=this.list.getFocus();this.list.setSelection(de,ee.browserEvent)}changeSelection(ee){const de=ee.index;let ge=this.list.getAnchor();if(this.isSelectionRangeChangeEvent(ee)){typeof ge>"u"&&(ge=this.list.getFocus()[0]??de,this.list.setAnchor(ge));const X=Math.min(ge,de),B=Math.max(ge,de),$=(0,_.range)(X,B+1),Q=this.list.getSelection(),Z=G(K(Q,[ge]),ge);if(Z.length===0)return;const te=K($,R(Q,Z));this.list.setSelection(te,ee.browserEvent),this.list.setFocus([de],ee.browserEvent)}else if(this.isSelectionSingleChangeEvent(ee)){const X=this.list.getSelection(),B=X.filter($=>$!==de);this.list.setFocus([de]),this.list.setAnchor(de),X.length===B.length?this.list.setSelection([...B,de],ee.browserEvent):this.list.setSelection(B,ee.browserEvent)}}dispose(){this.disposables.dispose()}}e.MouseController=U;class j{constructor(ee,de){this.styleElement=ee,this.selectorSuffix=de}style(ee){const de=this.selectorSuffix&&`.${this.selectorSuffix}`,ge=[];ee.listBackground&&ge.push(`.monaco-list${de} .monaco-list-rows { background: ${ee.listBackground}; }`),ee.listFocusBackground&&(ge.push(`.monaco-list${de}:focus .monaco-list-row.focused { background-color: ${ee.listFocusBackground}; }`),ge.push(`.monaco-list${de}:focus .monaco-list-row.focused:hover { background-color: ${ee.listFocusBackground}; }`)),ee.listFocusForeground&&ge.push(`.monaco-list${de}:focus .monaco-list-row.focused { color: ${ee.listFocusForeground}; }`),ee.listActiveSelectionBackground&&(ge.push(`.monaco-list${de}:focus .monaco-list-row.selected { background-color: ${ee.listActiveSelectionBackground}; }`),ge.push(`.monaco-list${de}:focus .monaco-list-row.selected:hover { background-color: ${ee.listActiveSelectionBackground}; }`)),ee.listActiveSelectionForeground&&ge.push(`.monaco-list${de}:focus .monaco-list-row.selected { color: ${ee.listActiveSelectionForeground}; }`),ee.listActiveSelectionIconForeground&&ge.push(`.monaco-list${de}:focus .monaco-list-row.selected .codicon { color: ${ee.listActiveSelectionIconForeground}; }`),ee.listFocusAndSelectionBackground&&ge.push(` + .monaco-drag-image, + .monaco-list${de}:focus .monaco-list-row.selected.focused { background-color: ${ee.listFocusAndSelectionBackground}; } + `),ee.listFocusAndSelectionForeground&&ge.push(` + .monaco-drag-image, + .monaco-list${de}:focus .monaco-list-row.selected.focused { color: ${ee.listFocusAndSelectionForeground}; } + `),ee.listInactiveFocusForeground&&(ge.push(`.monaco-list${de} .monaco-list-row.focused { color: ${ee.listInactiveFocusForeground}; }`),ge.push(`.monaco-list${de} .monaco-list-row.focused:hover { color: ${ee.listInactiveFocusForeground}; }`)),ee.listInactiveSelectionIconForeground&&ge.push(`.monaco-list${de} .monaco-list-row.focused .codicon { color: ${ee.listInactiveSelectionIconForeground}; }`),ee.listInactiveFocusBackground&&(ge.push(`.monaco-list${de} .monaco-list-row.focused { background-color: ${ee.listInactiveFocusBackground}; }`),ge.push(`.monaco-list${de} .monaco-list-row.focused:hover { background-color: ${ee.listInactiveFocusBackground}; }`)),ee.listInactiveSelectionBackground&&(ge.push(`.monaco-list${de} .monaco-list-row.selected { background-color: ${ee.listInactiveSelectionBackground}; }`),ge.push(`.monaco-list${de} .monaco-list-row.selected:hover { background-color: ${ee.listInactiveSelectionBackground}; }`)),ee.listInactiveSelectionForeground&&ge.push(`.monaco-list${de} .monaco-list-row.selected { color: ${ee.listInactiveSelectionForeground}; }`),ee.listHoverBackground&&ge.push(`.monaco-list${de}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${ee.listHoverBackground}; }`),ee.listHoverForeground&&ge.push(`.monaco-list${de}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { color: ${ee.listHoverForeground}; }`);const X=(0,d.asCssValueWithDefault)(ee.listFocusAndSelectionOutline,(0,d.asCssValueWithDefault)(ee.listSelectionOutline,ee.listFocusOutline??""));X&&ge.push(`.monaco-list${de}:focus .monaco-list-row.focused.selected { outline: 1px solid ${X}; outline-offset: -1px;}`),ee.listFocusOutline&&ge.push(` + .monaco-drag-image, + .monaco-list${de}:focus .monaco-list-row.focused { outline: 1px solid ${ee.listFocusOutline}; outline-offset: -1px; } + .monaco-workbench.context-menu-visible .monaco-list${de}.last-focused .monaco-list-row.focused { outline: 1px solid ${ee.listFocusOutline}; outline-offset: -1px; } + `);const B=(0,d.asCssValueWithDefault)(ee.listSelectionOutline,ee.listInactiveFocusOutline??"");B&&ge.push(`.monaco-list${de} .monaco-list-row.focused.selected { outline: 1px dotted ${B}; outline-offset: -1px; }`),ee.listSelectionOutline&&ge.push(`.monaco-list${de} .monaco-list-row.selected { outline: 1px dotted ${ee.listSelectionOutline}; outline-offset: -1px; }`),ee.listInactiveFocusOutline&&ge.push(`.monaco-list${de} .monaco-list-row.focused { outline: 1px dotted ${ee.listInactiveFocusOutline}; outline-offset: -1px; }`),ee.listHoverOutline&&ge.push(`.monaco-list${de} .monaco-list-row:hover { outline: 1px dashed ${ee.listHoverOutline}; outline-offset: -1px; }`),ee.listDropOverBackground&&ge.push(` + .monaco-list${de}.drop-target, + .monaco-list${de} .monaco-list-rows.drop-target, + .monaco-list${de} .monaco-list-row.drop-target { background-color: ${ee.listDropOverBackground} !important; color: inherit !important; } + `),ee.listDropBetweenBackground&&(ge.push(` + .monaco-list${de} .monaco-list-rows.drop-target-before .monaco-list-row:first-child::before, + .monaco-list${de} .monaco-list-row.drop-target-before::before { + content: ""; position: absolute; top: 0px; left: 0px; width: 100%; height: 1px; + background-color: ${ee.listDropBetweenBackground}; + }`),ge.push(` + .monaco-list${de} .monaco-list-rows.drop-target-after .monaco-list-row:last-child::after, + .monaco-list${de} .monaco-list-row.drop-target-after::after { + content: ""; position: absolute; bottom: 0px; left: 0px; width: 100%; height: 1px; + background-color: ${ee.listDropBetweenBackground}; + }`)),ee.tableColumnsBorder&&ge.push(` + .monaco-table > .monaco-split-view2, + .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before, + .monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2, + .monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before { + border-color: ${ee.tableColumnsBorder}; + } + + .monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2, + .monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before { + border-color: transparent; + } + `),ee.tableOddRowsBackgroundColor&&ge.push(` + .monaco-table .monaco-list-row[data-parity=odd]:not(.focused):not(.selected):not(:hover) .monaco-table-tr, + .monaco-table .monaco-list:not(:focus) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr, + .monaco-table .monaco-list:not(.focused) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr { + background-color: ${ee.tableOddRowsBackgroundColor}; + } + `),this.styleElement.textContent=ge.join(` +`)}}e.DefaultStyleController=j,e.unthemedListStyles={listFocusBackground:"#7FB0D0",listActiveSelectionBackground:"#0E639C",listActiveSelectionForeground:"#FFFFFF",listActiveSelectionIconForeground:"#FFFFFF",listFocusAndSelectionOutline:"#90C2F9",listFocusAndSelectionBackground:"#094771",listFocusAndSelectionForeground:"#FFFFFF",listInactiveSelectionBackground:"#3F3F46",listInactiveSelectionIconForeground:"#FFFFFF",listHoverBackground:"#2A2D2E",listDropOverBackground:"#383B3D",listDropBetweenBackground:"#EEEEEE",treeIndentGuidesStroke:"#a9a9a9",treeInactiveIndentGuidesStroke:p.Color.fromHex("#a9a9a9").transparent(.4).toString(),tableColumnsBorder:p.Color.fromHex("#cccccc").transparent(.2).toString(),tableOddRowsBackgroundColor:p.Color.fromHex("#cccccc").transparent(.04).toString(),listBackground:void 0,listFocusForeground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusForeground:void 0,listInactiveFocusBackground:void 0,listHoverForeground:void 0,listFocusOutline:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listHoverOutline:void 0,treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:void 0};const Y={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}}};function G(ae,ee){const de=ae.indexOf(ee);if(de===-1)return[];const ge=[];let X=de-1;for(;X>=0&&ae[X]===ee-(de-X);)ge.push(ae[X--]);for(ge.reverse(),X=de;X=ae.length)de.push(ee[X++]);else if(X>=ee.length)de.push(ae[ge++]);else if(ae[ge]===ee[X]){de.push(ae[ge]),ge++,X++;continue}else ae[ge]=ae.length)de.push(ee[X++]);else if(X>=ee.length)de.push(ae[ge++]);else if(ae[ge]===ee[X]){ge++,X++;continue}else ae[ge]ae-ee;class ie{constructor(ee,de){this._templateId=ee,this.renderers=de}get templateId(){return this._templateId}renderTemplate(ee){return this.renderers.map(de=>de.renderTemplate(ee))}renderElement(ee,de,ge,X){let B=0;for(const $ of this.renderers)$.renderElement(ee,de,ge[B++],X)}disposeElement(ee,de,ge,X){let B=0;for(const $ of this.renderers)$.disposeElement?.(ee,de,ge[B],X),B+=1}disposeTemplate(ee){let de=0;for(const ge of this.renderers)ge.disposeTemplate(ee[de++])}}class ue{constructor(ee){this.accessibilityProvider=ee,this.templateId="a18n"}renderTemplate(ee){return{container:ee,disposables:new i.DisposableStore}}renderElement(ee,de,ge){const X=this.accessibilityProvider.getAriaLabel(ee),B=X&&typeof X!="string"?X:(0,u.constObservable)(X);ge.disposables.add((0,u.autorun)(Q=>{this.setAriaLabel(Q.readObservable(B),ge.container)}));const $=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(ee);typeof $=="number"?ge.container.setAttribute("aria-level",`${$}`):ge.container.removeAttribute("aria-level")}setAriaLabel(ee,de){ee?de.setAttribute("aria-label",ee):de.removeAttribute("aria-label")}disposeElement(ee,de,ge,X){ge.disposables.clear()}disposeTemplate(ee){ee.disposables.dispose()}}class he{constructor(ee,de){this.list=ee,this.dnd=de}getDragElements(ee){const de=this.list.getSelectedElements();return de.indexOf(ee)>-1?de:[ee]}getDragURI(ee){return this.dnd.getDragURI(ee)}getDragLabel(ee,de){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(ee,de)}onDragStart(ee,de){this.dnd.onDragStart?.(ee,de)}onDragOver(ee,de,ge,X,B){return this.dnd.onDragOver(ee,de,ge,X,B)}onDragLeave(ee,de,ge,X){this.dnd.onDragLeave?.(ee,de,ge,X)}onDragEnd(ee){this.dnd.onDragEnd?.(ee)}drop(ee,de,ge,X,B){this.dnd.drop(ee,de,ge,X,B)}dispose(){this.dnd.dispose()}}class pe{get onDidChangeFocus(){return o.Event.map(this.eventBufferer.wrapEvent(this.focus.onChange),ee=>this.toListEvent(ee),this.disposables)}get onDidChangeSelection(){return o.Event.map(this.eventBufferer.wrapEvent(this.selection.onChange),ee=>this.toListEvent(ee),this.disposables)}get domId(){return this.view.domId}get onDidScroll(){return this.view.onDidScroll}get onMouseClick(){return this.view.onMouseClick}get onMouseDblClick(){return this.view.onMouseDblClick}get onMouseMiddleClick(){return this.view.onMouseMiddleClick}get onPointer(){return this.mouseController.onPointer}get onMouseDown(){return this.view.onMouseDown}get onMouseOver(){return this.view.onMouseOver}get onMouseOut(){return this.view.onMouseOut}get onTouchStart(){return this.view.onTouchStart}get onTap(){return this.view.onTap}get onContextMenu(){let ee=!1;const de=o.Event.chain(this.disposables.add(new k.DomEmitter(this.view.domNode,"keydown")).event,B=>B.map($=>new I.StandardKeyboardEvent($)).filter($=>ee=$.keyCode===58||$.shiftKey&&$.keyCode===68).map($=>d.EventHelper.stop($,!0)).filter(()=>!1)),ge=o.Event.chain(this.disposables.add(new k.DomEmitter(this.view.domNode,"keyup")).event,B=>B.forEach(()=>ee=!1).map($=>new I.StandardKeyboardEvent($)).filter($=>$.keyCode===58||$.shiftKey&&$.keyCode===68).map($=>d.EventHelper.stop($,!0)).map(({browserEvent:$})=>{const Q=this.getFocus(),Z=Q.length?Q[0]:void 0,te=typeof Z<"u"?this.view.element(Z):void 0,re=typeof Z<"u"?this.view.domElement(Z):this.view.domNode;return{index:Z,element:te,anchor:re,browserEvent:$}})),X=o.Event.chain(this.view.onContextMenu,B=>B.filter($=>!ee).map(({element:$,index:Q,browserEvent:Z})=>({element:$,index:Q,anchor:new r.StandardMouseEvent((0,d.getWindow)(this.view.domNode),Z),browserEvent:Z})));return o.Event.any(de,ge,X)}get onKeyDown(){return this.disposables.add(new k.DomEmitter(this.view.domNode,"keydown")).event}get onDidFocus(){return o.Event.signal(this.disposables.add(new k.DomEmitter(this.view.domNode,"focus",!0)).event)}get onDidBlur(){return o.Event.signal(this.disposables.add(new k.DomEmitter(this.view.domNode,"blur",!0)).event)}constructor(ee,de,ge,X,B=Y){this.user=ee,this._options=B,this.focus=new f("focused"),this.anchor=new f("anchor"),this.eventBufferer=new o.EventBufferer,this._ariaLabel="",this.disposables=new i.DisposableStore,this._onDidDispose=new o.Emitter,this.onDidDispose=this._onDidDispose.event;const $=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?this._options.accessibilityProvider?.getWidgetRole():"list";this.selection=new h($!=="listbox");const Q=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=B.accessibilityProvider,this.accessibilityProvider&&(Q.push(new ue(this.accessibilityProvider)),this.accessibilityProvider.onDidChangeActiveDescendant?.(this.onDidChangeActiveDescendant,this,this.disposables)),X=X.map(te=>new ie(te.templateId,[...Q,te]));const Z={...B,dnd:B.dnd&&new he(this,B.dnd)};if(this.view=this.createListView(de,ge,X,Z),this.view.domNode.setAttribute("role",$),B.styleController)this.styleController=B.styleController(this.view.domId);else{const te=(0,d.createStyleSheet)(this.view.domNode);this.styleController=new j(te,this.view.domId)}if(this.spliceable=new m.CombinedSpliceable([new v(this.focus,this.view,B.identityProvider),new v(this.selection,this.view,B.identityProvider),new v(this.anchor,this.view,B.identityProvider),this.view]),this.disposables.add(this.focus),this.disposables.add(this.selection),this.disposables.add(this.anchor),this.disposables.add(this.view),this.disposables.add(this._onDidDispose),this.disposables.add(new W(this,this.view)),(typeof B.keyboardSupport!="boolean"||B.keyboardSupport)&&(this.keyboardController=new N(this,this.view,B),this.disposables.add(this.keyboardController)),B.keyboardNavigationLabelProvider){const te=B.keyboardNavigationDelegate||e.DefaultKeyboardNavigationDelegate;this.typeNavigationController=new x(this,this.view,B.keyboardNavigationLabelProvider,B.keyboardNavigationEventFilter??(()=>!0),te),this.disposables.add(this.typeNavigationController)}this.mouseController=this.createMouseController(B),this.disposables.add(this.mouseController),this.onDidChangeFocus(this._onFocusChange,this,this.disposables),this.onDidChangeSelection(this._onSelectionChange,this,this.disposables),this.accessibilityProvider&&(this.ariaLabel=this.accessibilityProvider.getWidgetAriaLabel()),this._options.multipleSelectionSupport!==!1&&this.view.domNode.setAttribute("aria-multiselectable","true")}createListView(ee,de,ge,X){return new a.ListView(ee,de,ge,X)}createMouseController(ee){return new U(this)}updateOptions(ee={}){this._options={...this._options,...ee},this.typeNavigationController?.updateOptions(this._options),this._options.multipleSelectionController!==void 0&&(this._options.multipleSelectionSupport?this.view.domNode.setAttribute("aria-multiselectable","true"):this.view.domNode.removeAttribute("aria-multiselectable")),this.mouseController.updateOptions(ee),this.keyboardController?.updateOptions(ee),this.view.updateOptions(ee)}get options(){return this._options}splice(ee,de,ge=[]){if(ee<0||ee>this.view.length)throw new l.ListError(this.user,`Invalid start index: ${ee}`);if(de<0)throw new l.ListError(this.user,`Invalid delete count: ${de}`);de===0&&ge.length===0||this.eventBufferer.bufferEvents(()=>this.spliceable.splice(ee,de,ge))}rerender(){this.view.rerender()}element(ee){return this.view.element(ee)}indexOf(ee){return this.view.indexOf(ee)}indexAt(ee){return this.view.indexAt(ee)}get length(){return this.view.length}get contentHeight(){return this.view.contentHeight}get onDidChangeContentHeight(){return this.view.onDidChangeContentHeight}get scrollTop(){return this.view.getScrollTop()}set scrollTop(ee){this.view.setScrollTop(ee)}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get firstVisibleIndex(){return this.view.firstVisibleIndex}get ariaLabel(){return this._ariaLabel}set ariaLabel(ee){this._ariaLabel=ee,this.view.domNode.setAttribute("aria-label",ee)}domFocus(){this.view.domNode.focus({preventScroll:!0})}layout(ee,de){this.view.layout(ee,de)}setSelection(ee,de){for(const ge of ee)if(ge<0||ge>=this.length)throw new l.ListError(this.user,`Invalid index ${ge}`);this.selection.set(ee,de)}getSelection(){return this.selection.get()}getSelectedElements(){return this.getSelection().map(ee=>this.view.element(ee))}setAnchor(ee){if(typeof ee>"u"){this.anchor.set([]);return}if(ee<0||ee>=this.length)throw new l.ListError(this.user,`Invalid index ${ee}`);this.anchor.set([ee])}getAnchor(){return(0,_.firstOrDefault)(this.anchor.get(),void 0)}getAnchorElement(){const ee=this.getAnchor();return typeof ee>"u"?void 0:this.element(ee)}setFocus(ee,de){for(const ge of ee)if(ge<0||ge>=this.length)throw new l.ListError(this.user,`Invalid index ${ge}`);this.focus.set(ee,de)}focusNext(ee=1,de=!1,ge,X){if(this.length===0)return;const B=this.focus.get(),$=this.findNextIndex(B.length>0?B[0]+ee:0,de,X);$>-1&&this.setFocus([$],ge)}focusPrevious(ee=1,de=!1,ge,X){if(this.length===0)return;const B=this.focus.get(),$=this.findPreviousIndex(B.length>0?B[0]-ee:0,de,X);$>-1&&this.setFocus([$],ge)}async focusNextPage(ee,de){let ge=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);ge=ge===0?0:ge-1;const X=this.getFocus()[0];if(X!==ge&&(X===void 0||ge>X)){const B=this.findPreviousIndex(ge,!1,de);B>-1&&X!==B?this.setFocus([B],ee):this.setFocus([ge],ee)}else{const B=this.view.getScrollTop();let $=B+this.view.renderHeight;ge>X&&($-=this.view.elementHeight(ge)),this.view.setScrollTop($),this.view.getScrollTop()!==B&&(this.setFocus([]),await(0,b.timeout)(0),await this.focusNextPage(ee,de))}}async focusPreviousPage(ee,de,ge=()=>0){let X;const B=ge(),$=this.view.getScrollTop()+B;$===0?X=this.view.indexAt($):X=this.view.indexAfter($-1);const Q=this.getFocus()[0];if(Q!==X&&(Q===void 0||Q>=X)){const Z=this.findNextIndex(X,!1,de);Z>-1&&Q!==Z?this.setFocus([Z],ee):this.setFocus([X],ee)}else{const Z=$;this.view.setScrollTop($-this.view.renderHeight-B),this.view.getScrollTop()+ge()!==Z&&(this.setFocus([]),await(0,b.timeout)(0),await this.focusPreviousPage(ee,de,ge))}}focusLast(ee,de){if(this.length===0)return;const ge=this.findPreviousIndex(this.length-1,!1,de);ge>-1&&this.setFocus([ge],ee)}focusFirst(ee,de){this.focusNth(0,ee,de)}focusNth(ee,de,ge){if(this.length===0)return;const X=this.findNextIndex(ee,!1,ge);X>-1&&this.setFocus([X],de)}findNextIndex(ee,de=!1,ge){for(let X=0;X=this.length&&!de)return-1;if(ee=ee%this.length,!ge||ge(this.element(ee)))return ee;ee++}return-1}findPreviousIndex(ee,de=!1,ge){for(let X=0;Xthis.view.element(ee))}reveal(ee,de,ge=0){if(ee<0||ee>=this.length)throw new l.ListError(this.user,`Invalid index ${ee}`);const X=this.view.getScrollTop(),B=this.view.elementTop(ee),$=this.view.elementHeight(ee);if((0,c.isNumber)(de)){const Q=$-this.view.renderHeight+ge;this.view.setScrollTop(Q*(0,s.clamp)(de,0,1)+B-ge)}else{const Q=B+$,Z=X+this.view.renderHeight;B=Z||(B=Z&&$>=this.view.renderHeight?this.view.setScrollTop(B-ge):Q>=Z&&this.view.setScrollTop(Q-this.view.renderHeight))}}getRelativeTop(ee,de=0){if(ee<0||ee>=this.length)throw new l.ListError(this.user,`Invalid index ${ee}`);const ge=this.view.getScrollTop(),X=this.view.elementTop(ee),B=this.view.elementHeight(ee);if(Xge+this.view.renderHeight)return null;const $=B-this.view.renderHeight+de;return Math.abs((ge+de-X)/$)}getHTMLElement(){return this.view.domNode}getScrollableElement(){return this.view.scrollableElementDomNode}getElementID(ee){return this.view.getElementDomId(ee)}getElementTop(ee){return this.view.elementTop(ee)}style(ee){this.styleController.style(ee)}toListEvent({indexes:ee,browserEvent:de}){return{indexes:ee,elements:ee.map(ge=>this.view.element(ge)),browserEvent:de}}_onFocusChange(){const ee=this.focus.get();this.view.domNode.classList.toggle("element-focused",ee.length>0),this.onDidChangeActiveDescendant()}onDidChangeActiveDescendant(){const ee=this.focus.get();if(ee.length>0){let de;this.accessibilityProvider?.getActiveDescendantId&&(de=this.accessibilityProvider.getActiveDescendantId(this.view.element(ee[0]))),this.view.domNode.setAttribute("aria-activedescendant",de||this.view.getElementDomId(ee[0]))}else this.view.domNode.removeAttribute("aria-activedescendant")}_onSelectionChange(){const ee=this.selection.get();this.view.domNode.classList.toggle("selection-none",ee.length===0),this.view.domNode.classList.toggle("selection-single",ee.length===1),this.view.domNode.classList.toggle("selection-multiple",ee.length>1)}dispose(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidDispose.dispose()}}e.List=pe,ke([n.memoize],pe.prototype,"onDidChangeFocus",null),ke([n.memoize],pe.prototype,"onDidChangeSelection",null),ke([n.memoize],pe.prototype,"onContextMenu",null),ke([n.memoize],pe.prototype,"onKeyDown",null),ke([n.memoize],pe.prototype,"onDidFocus",null),ke([n.memoize],pe.prototype,"onDidBlur",null)}),define(ne[637],se([1,0,13,18,6,2,115,305]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PagedList=void 0;class m{get templateId(){return this.renderer.templateId}constructor(o,t){this.renderer=o,this.modelProvider=t}renderTemplate(o){return{data:this.renderer.renderTemplate(o),disposable:E.Disposable.None}}renderElement(o,t,i,s){if(i.disposable?.dispose(),!i.data)return;const g=this.modelProvider();if(g.isResolved(o))return this.renderer.renderElement(g.get(o),o,i.data,s);const c=new k.CancellationTokenSource,l=g.resolve(o,c.token);i.disposable={dispose:()=>c.cancel()},this.renderer.renderPlaceholder(o,i.data),l.then(a=>this.renderer.renderElement(a,o,i.data,s))}disposeTemplate(o){o.disposable&&(o.disposable.dispose(),o.disposable=void 0),o.data&&(this.renderer.disposeTemplate(o.data),o.data=void 0)}}class _{constructor(o,t){this.modelProvider=o,this.accessibilityProvider=t}getWidgetAriaLabel(){return this.accessibilityProvider.getWidgetAriaLabel()}getAriaLabel(o){const t=this.modelProvider();return t.isResolved(o)?this.accessibilityProvider.getAriaLabel(t.get(o)):null}}function b(n,o){return{...o,accessibilityProvider:o.accessibilityProvider&&new _(n,o.accessibilityProvider)}}class p{constructor(o,t,i,s,g={}){const c=()=>this.model,l=s.map(a=>new m(a,c));this.list=new y.List(o,t,i,l,b(c,g))}updateOptions(o){this.list.updateOptions(o)}getHTMLElement(){return this.list.getHTMLElement()}get onDidFocus(){return this.list.onDidFocus}get widget(){return this.list}get onDidDispose(){return this.list.onDidDispose}get onMouseDblClick(){return I.Event.map(this.list.onMouseDblClick,({element:o,index:t,browserEvent:i})=>({element:o===void 0?void 0:this._model.get(o),index:t,browserEvent:i}))}get onPointer(){return I.Event.map(this.list.onPointer,({element:o,index:t,browserEvent:i})=>({element:o===void 0?void 0:this._model.get(o),index:t,browserEvent:i}))}get onDidChangeSelection(){return I.Event.map(this.list.onDidChangeSelection,({elements:o,indexes:t,browserEvent:i})=>({elements:o.map(s=>this._model.get(s)),indexes:t,browserEvent:i}))}get model(){return this._model}set model(o){this._model=o,this.list.splice(0,this.list.length,(0,d.range)(o.length))}getFocus(){return this.list.getFocus()}getSelection(){return this.list.getSelection()}getSelectedElements(){return this.getSelection().map(o=>this.model.get(o))}style(o){this.list.style(o)}dispose(){this.list.dispose()}}e.PagedList=p}),define(ne[357],se([1,0,5,93,173,86,13,33,6,2,141,163,19,474]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SplitView=e.Sizing=void 0;const t={separatorBorder:m.Color.transparent};class i{set size(u){this._size=u}get size(){return this._size}get visible(){return typeof this._cachedVisibleSize>"u"}setVisible(u,C){if(u!==this.visible){u?(this.size=(0,p.clamp)(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize=typeof C=="number"?C:this.size,this.size=0),this.container.classList.toggle("visible",u);try{this.view.setVisible?.(u)}catch(f){console.error("Splitview: Failed to set visible view"),console.error(f)}}}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get proportionalLayout(){return this.view.proportionalLayout??!0}get snap(){return!!this.view.snap}set enabled(u){this.container.style.pointerEvents=u?"":"none"}constructor(u,C,f,h){this.container=u,this.view=C,this.disposable=h,this._cachedVisibleSize=void 0,typeof f=="number"?(this._size=f,this._cachedVisibleSize=void 0,u.classList.add("visible")):(this._size=0,this._cachedVisibleSize=f.cachedVisibleSize)}layout(u,C){this.layoutContainer(u);try{this.view.layout(this.size,u,C)}catch(f){console.error("Splitview: Failed to layout view"),console.error(f)}}dispose(){this.disposable.dispose()}}class s extends i{layoutContainer(u){this.container.style.top=`${u}px`,this.container.style.height=`${this.size}px`}}class g extends i{layoutContainer(u){this.container.style.left=`${u}px`,this.container.style.width=`${this.size}px`}}var c;(function(r){r[r.Idle=0]="Idle",r[r.Busy=1]="Busy"})(c||(c={}));var l;(function(r){r.Distribute={type:"distribute"};function u(h){return{type:"split",index:h}}r.Split=u;function C(h){return{type:"auto",index:h}}r.Auto=C;function f(h){return{type:"invisible",cachedVisibleSize:h}}r.Invisible=f})(l||(e.Sizing=l={}));class a extends b.Disposable{get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}get startSnappingEnabled(){return this._startSnappingEnabled}get endSnappingEnabled(){return this._endSnappingEnabled}set orthogonalStartSash(u){for(const C of this.sashItems)C.sash.orthogonalStartSash=u;this._orthogonalStartSash=u}set orthogonalEndSash(u){for(const C of this.sashItems)C.sash.orthogonalEndSash=u;this._orthogonalEndSash=u}set startSnappingEnabled(u){this._startSnappingEnabled!==u&&(this._startSnappingEnabled=u,this.updateSashEnablement())}set endSnappingEnabled(u){this._endSnappingEnabled!==u&&(this._endSnappingEnabled=u,this.updateSashEnablement())}constructor(u,C={}){super(),this.size=0,this._contentSize=0,this.proportions=void 0,this.viewItems=[],this.sashItems=[],this.state=c.Idle,this._onDidSashChange=this._register(new _.Emitter),this._onDidSashReset=this._register(new _.Emitter),this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this.onDidSashChange=this._onDidSashChange.event,this.onDidSashReset=this._onDidSashReset.event,this.orientation=C.orientation??0,this.inverseAltBehavior=C.inverseAltBehavior??!1,this.proportionalLayout=C.proportionalLayout??!0,this.getSashOrthogonalSize=C.getSashOrthogonalSize,this.el=document.createElement("div"),this.el.classList.add("monaco-split-view2"),this.el.classList.add(this.orientation===0?"vertical":"horizontal"),u.appendChild(this.el),this.sashContainer=(0,d.append)(this.el,(0,d.$)(".sash-container")),this.viewContainer=(0,d.$)(".split-view-container"),this.scrollable=this._register(new n.Scrollable({forceIntegerValues:!0,smoothScrollDuration:125,scheduleAtNextAnimationFrame:h=>(0,d.scheduleAtNextAnimationFrame)((0,d.getWindow)(this.el),h)})),this.scrollableElement=this._register(new E.SmoothScrollableElement(this.viewContainer,{vertical:this.orientation===0?C.scrollbarVisibility??1:2,horizontal:this.orientation===1?C.scrollbarVisibility??1:2},this.scrollable));const f=this._register(new k.DomEmitter(this.viewContainer,"scroll")).event;this._register(f(h=>{const v=this.scrollableElement.getScrollPosition(),w=Math.abs(this.viewContainer.scrollLeft-v.scrollLeft)<=1?void 0:this.viewContainer.scrollLeft,S=Math.abs(this.viewContainer.scrollTop-v.scrollTop)<=1?void 0:this.viewContainer.scrollTop;(w!==void 0||S!==void 0)&&this.scrollableElement.setScrollPosition({scrollLeft:w,scrollTop:S})})),this.onDidScroll=this.scrollableElement.onScroll,this._register(this.onDidScroll(h=>{h.scrollTopChanged&&(this.viewContainer.scrollTop=h.scrollTop),h.scrollLeftChanged&&(this.viewContainer.scrollLeft=h.scrollLeft)})),(0,d.append)(this.el,this.scrollableElement.getDomNode()),this.style(C.styles||t),C.descriptor&&(this.size=C.descriptor.size,C.descriptor.views.forEach((h,v)=>{const w=o.isUndefined(h.visible)||h.visible?h.size:{type:"invisible",cachedVisibleSize:h.size},S=h.view;this.doAddView(S,w,v,!0)}),this._contentSize=this.viewItems.reduce((h,v)=>h+v.size,0),this.saveProportions())}style(u){u.separatorBorder.isTransparent()?(this.el.classList.remove("separator-border"),this.el.style.removeProperty("--separator-border")):(this.el.classList.add("separator-border"),this.el.style.setProperty("--separator-border",u.separatorBorder.toString()))}addView(u,C,f=this.viewItems.length,h){this.doAddView(u,C,f,h)}layout(u,C){const f=Math.max(this.size,this._contentSize);if(this.size=u,this.layoutContext=C,this.proportions){let h=0;for(let v=0;v0&&(w.size=(0,p.clamp)(Math.round(S*u/h),w.minimumSize,w.maximumSize))}}else{const h=(0,y.range)(this.viewItems.length),v=h.filter(S=>this.viewItems[S].priority===1),w=h.filter(S=>this.viewItems[S].priority===2);this.resize(this.viewItems.length-1,u-f,void 0,v,w)}this.distributeEmptySpace(),this.layoutViews()}saveProportions(){this.proportionalLayout&&this._contentSize>0&&(this.proportions=this.viewItems.map(u=>u.proportionalLayout&&u.visible?u.size/this._contentSize:void 0))}onSashStart({sash:u,start:C,alt:f}){for(const S of this.viewItems)S.enabled=!1;const h=this.sashItems.findIndex(S=>S.sash===u),v=(0,b.combinedDisposable)((0,d.addDisposableListener)(this.el.ownerDocument.body,"keydown",S=>w(this.sashDragState.current,S.altKey)),(0,d.addDisposableListener)(this.el.ownerDocument.body,"keyup",()=>w(this.sashDragState.current,!1))),w=(S,L)=>{const D=this.viewItems.map(N=>N.size);let T=Number.NEGATIVE_INFINITY,M=Number.POSITIVE_INFINITY;if(this.inverseAltBehavior&&(L=!L),L)if(h===this.sashItems.length-1){const O=this.viewItems[h];T=(O.minimumSize-O.size)/2,M=(O.maximumSize-O.size)/2}else{const O=this.viewItems[h+1];T=(O.size-O.maximumSize)/2,M=(O.size-O.minimumSize)/2}let A,P;if(!L){const N=(0,y.range)(h,-1),O=(0,y.range)(h+1,this.viewItems.length),F=N.reduce((j,Y)=>j+(this.viewItems[Y].minimumSize-D[Y]),0),x=N.reduce((j,Y)=>j+(this.viewItems[Y].viewMaximumSize-D[Y]),0),W=O.length===0?Number.POSITIVE_INFINITY:O.reduce((j,Y)=>j+(D[Y]-this.viewItems[Y].minimumSize),0),V=O.length===0?Number.NEGATIVE_INFINITY:O.reduce((j,Y)=>j+(D[Y]-this.viewItems[Y].viewMaximumSize),0),q=Math.max(F,V),H=Math.min(W,x),z=this.findFirstSnapIndex(N),U=this.findFirstSnapIndex(O);if(typeof z=="number"){const j=this.viewItems[z],Y=Math.floor(j.viewMinimumSize/2);A={index:z,limitDelta:j.visible?q-Y:q+Y,size:j.size}}if(typeof U=="number"){const j=this.viewItems[U],Y=Math.floor(j.viewMinimumSize/2);P={index:U,limitDelta:j.visible?H+Y:H-Y,size:j.size}}}this.sashDragState={start:S,current:S,index:h,sizes:D,minDelta:T,maxDelta:M,alt:L,snapBefore:A,snapAfter:P,disposable:v}};w(C,f)}onSashChange({current:u}){const{index:C,start:f,sizes:h,alt:v,minDelta:w,maxDelta:S,snapBefore:L,snapAfter:D}=this.sashDragState;this.sashDragState.current=u;const T=u-f,M=this.resize(C,T,h,void 0,void 0,w,S,L,D);if(v){const A=C===this.sashItems.length-1,P=this.viewItems.map(V=>V.size),N=A?C:C+1,O=this.viewItems[N],F=O.size-O.maximumSize,x=O.size-O.minimumSize,W=A?C-1:C+1;this.resize(W,-M,P,void 0,void 0,F,x)}this.distributeEmptySpace(),this.layoutViews()}onSashEnd(u){this._onDidSashChange.fire(u),this.sashDragState.disposable.dispose(),this.saveProportions();for(const C of this.viewItems)C.enabled=!0}onViewChange(u,C){const f=this.viewItems.indexOf(u);f<0||f>=this.viewItems.length||(C=typeof C=="number"?C:u.size,C=(0,p.clamp)(C,u.minimumSize,u.maximumSize),this.inverseAltBehavior&&f>0?(this.resize(f-1,Math.floor((u.size-C)/2)),this.distributeEmptySpace(),this.layoutViews()):(u.size=C,this.relayout([f],void 0)))}resizeView(u,C){if(!(u<0||u>=this.viewItems.length)){if(this.state!==c.Idle)throw new Error("Cant modify splitview");this.state=c.Busy;try{const f=(0,y.range)(this.viewItems.length).filter(S=>S!==u),h=[...f.filter(S=>this.viewItems[S].priority===1),u],v=f.filter(S=>this.viewItems[S].priority===2),w=this.viewItems[u];C=Math.round(C),C=(0,p.clamp)(C,w.minimumSize,Math.min(w.maximumSize,this.size)),w.size=C,this.relayout(h,v)}finally{this.state=c.Idle}}}distributeViewSizes(){const u=[];let C=0;for(const S of this.viewItems)S.maximumSize-S.minimumSize>0&&(u.push(S),C+=S.size);const f=Math.floor(C/u.length);for(const S of u)S.size=(0,p.clamp)(f,S.minimumSize,S.maximumSize);const h=(0,y.range)(this.viewItems.length),v=h.filter(S=>this.viewItems[S].priority===1),w=h.filter(S=>this.viewItems[S].priority===2);this.relayout(v,w)}getViewSize(u){return u<0||u>=this.viewItems.length?-1:this.viewItems[u].size}doAddView(u,C,f=this.viewItems.length,h){if(this.state!==c.Idle)throw new Error("Cant modify splitview");this.state=c.Busy;try{const v=(0,d.$)(".split-view-view");f===this.viewItems.length?this.viewContainer.appendChild(v):this.viewContainer.insertBefore(v,this.viewContainer.children.item(f));const w=u.onDidChange(A=>this.onViewChange(T,A)),S=(0,b.toDisposable)(()=>v.remove()),L=(0,b.combinedDisposable)(w,S);let D;typeof C=="number"?D=C:(C.type==="auto"&&(this.areViewsDistributed()?C={type:"distribute"}:C={type:"split",index:C.index}),C.type==="split"?D=this.getViewSize(C.index)/2:C.type==="invisible"?D={cachedVisibleSize:C.cachedVisibleSize}:D=u.minimumSize);const T=this.orientation===0?new s(v,u,D,L):new g(v,u,D,L);if(this.viewItems.splice(f,0,T),this.viewItems.length>1){const A={orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash},P=this.orientation===0?new I.Sash(this.sashContainer,{getHorizontalSashTop:j=>this.getSashPosition(j),getHorizontalSashWidth:this.getSashOrthogonalSize},{...A,orientation:1}):new I.Sash(this.sashContainer,{getVerticalSashLeft:j=>this.getSashPosition(j),getVerticalSashHeight:this.getSashOrthogonalSize},{...A,orientation:0}),N=this.orientation===0?j=>({sash:P,start:j.startY,current:j.currentY,alt:j.altKey}):j=>({sash:P,start:j.startX,current:j.currentX,alt:j.altKey}),F=_.Event.map(P.onDidStart,N)(this.onSashStart,this),W=_.Event.map(P.onDidChange,N)(this.onSashChange,this),q=_.Event.map(P.onDidEnd,()=>this.sashItems.findIndex(j=>j.sash===P))(this.onSashEnd,this),H=P.onDidReset(()=>{const j=this.sashItems.findIndex(J=>J.sash===P),Y=(0,y.range)(j,-1),G=(0,y.range)(j+1,this.viewItems.length),K=this.findFirstSnapIndex(Y),R=this.findFirstSnapIndex(G);typeof K=="number"&&!this.viewItems[K].visible||typeof R=="number"&&!this.viewItems[R].visible||this._onDidSashReset.fire(j)}),z=(0,b.combinedDisposable)(F,W,q,H,P),U={sash:P,disposable:z};this.sashItems.splice(f-1,0,U)}v.appendChild(u.element);let M;typeof C!="number"&&C.type==="split"&&(M=[C.index]),h||this.relayout([f],M),!h&&typeof C!="number"&&C.type==="distribute"&&this.distributeViewSizes()}finally{this.state=c.Idle}}relayout(u,C){const f=this.viewItems.reduce((h,v)=>h+v.size,0);this.resize(this.viewItems.length-1,this.size-f,void 0,u,C),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}resize(u,C,f=this.viewItems.map(T=>T.size),h,v,w=Number.NEGATIVE_INFINITY,S=Number.POSITIVE_INFINITY,L,D){if(u<0||u>=this.viewItems.length)return 0;const T=(0,y.range)(u,-1),M=(0,y.range)(u+1,this.viewItems.length);if(v)for(const U of v)(0,y.pushToStart)(T,U),(0,y.pushToStart)(M,U);if(h)for(const U of h)(0,y.pushToEnd)(T,U),(0,y.pushToEnd)(M,U);const A=T.map(U=>this.viewItems[U]),P=T.map(U=>f[U]),N=M.map(U=>this.viewItems[U]),O=M.map(U=>f[U]),F=T.reduce((U,j)=>U+(this.viewItems[j].minimumSize-f[j]),0),x=T.reduce((U,j)=>U+(this.viewItems[j].maximumSize-f[j]),0),W=M.length===0?Number.POSITIVE_INFINITY:M.reduce((U,j)=>U+(f[j]-this.viewItems[j].minimumSize),0),V=M.length===0?Number.NEGATIVE_INFINITY:M.reduce((U,j)=>U+(f[j]-this.viewItems[j].maximumSize),0),q=Math.max(F,V,w),H=Math.min(W,x,S);let z=!1;if(L){const U=this.viewItems[L.index],j=C>=L.limitDelta;z=j!==U.visible,U.setVisible(j,L.size)}if(!z&&D){const U=this.viewItems[D.index],j=CS+L.size,0);let f=this.size-C;const h=(0,y.range)(this.viewItems.length-1,-1),v=h.filter(S=>this.viewItems[S].priority===1),w=h.filter(S=>this.viewItems[S].priority===2);for(const S of w)(0,y.pushToStart)(h,S);for(const S of v)(0,y.pushToEnd)(h,S);typeof u=="number"&&(0,y.pushToEnd)(h,u);for(let S=0;f!==0&&SC+f.size,0);let u=0;for(const C of this.viewItems)C.layout(u,this.layoutContext),u+=C.size;this.sashItems.forEach(C=>C.sash.layout()),this.updateSashEnablement(),this.updateScrollableElement()}updateScrollableElement(){this.orientation===0?this.scrollableElement.setScrollDimensions({height:this.size,scrollHeight:this._contentSize}):this.scrollableElement.setScrollDimensions({width:this.size,scrollWidth:this._contentSize})}updateSashEnablement(){let u=!1;const C=this.viewItems.map(L=>u=L.size-L.minimumSize>0||u);u=!1;const f=this.viewItems.map(L=>u=L.maximumSize-L.size>0||u),h=[...this.viewItems].reverse();u=!1;const v=h.map(L=>u=L.size-L.minimumSize>0||u).reverse();u=!1;const w=h.map(L=>u=L.maximumSize-L.size>0||u).reverse();let S=0;for(let L=0;L0||this.startSnappingEnabled)?D.state=1:W&&C[L]&&(S0)return;if(!f.visible&&f.snap)return C}}areViewsDistributed(){let u,C;for(const f of this.viewItems)if(u=u===void 0?f.size:Math.min(u,f.size),C=C===void 0?f.size:Math.max(C,f.size),C-u>2)return!1;return!0}dispose(){this.sashDragState?.disposable.dispose(),(0,b.dispose)(this.viewItems),this.viewItems=[],this.sashItems.forEach(u=>u.disposable.dispose()),this.sashItems=[],super.dispose()}}e.SplitView=a}),define(ne[638],se([1,0,5,81,44,115,357,6,2,475]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Table=void 0;class b{static{this.TemplateId="row"}constructor(i,s,g){this.columns=i,this.getColumnSize=g,this.templateId=b.TemplateId,this.renderedTemplates=new Set;const c=new Map(s.map(l=>[l.templateId,l]));this.renderers=[];for(const l of i){const a=c.get(l.templateId);if(!a)throw new Error(`Table cell renderer for template id ${l.templateId} not found.`);this.renderers.push(a)}}renderTemplate(i){const s=(0,d.append)(i,(0,d.$)(".monaco-table-tr")),g=[],c=[];for(let a=0;athis.disposables.add(new n(f,h))),u={size:r.reduce((f,h)=>f+h.column.weight,0),views:r.map(f=>({size:f.column.weight,view:f}))};this.splitview=this.disposables.add(new y.SplitView(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:()=>this.cachedHeight,descriptor:u})),this.splitview.el.style.height=`${g.headerRowHeight}px`,this.splitview.el.style.lineHeight=`${g.headerRowHeight}px`;const C=new b(c,l,f=>this.splitview.getViewSize(f));this.list=this.disposables.add(new E.List(i,this.domNode,p(g),[C],a)),m.Event.any(...r.map(f=>f.onDidLayout))(([f,h])=>C.layoutColumn(f,h),null,this.disposables),this.splitview.onDidSashReset(f=>{const h=c.reduce((w,S)=>w+S.weight,0),v=c[f].weight/h*this.cachedWidth;this.splitview.resizeView(f,v)},null,this.disposables),this.styleElement=(0,d.createStyleSheet)(this.domNode),this.style(E.unthemedListStyles)}updateOptions(i){this.list.updateOptions(i)}splice(i,s,g=[]){this.list.splice(i,s,g)}getHTMLElement(){return this.domNode}style(i){const s=[];s.push(`.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before { + top: ${this.virtualDelegate.headerRowHeight+1}px; + height: calc(100% - ${this.virtualDelegate.headerRowHeight}px); + }`),this.styleElement.textContent=s.join(` +`),this.list.style(i)}getSelectedElements(){return this.list.getSelectedElements()}getSelection(){return this.list.getSelection()}getFocus(){return this.list.getFocus()}dispose(){this.disposables.dispose()}}e.Table=o}),define(ne[175],se([1,0,85,30,6,44,81,476]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Toggle=e.unthemedToggleStyles=void 0,e.unthemedToggleStyles={inputActiveOptionBorder:"#007ACC00",inputActiveOptionForeground:"#FFFFFF",inputActiveOptionBackground:"#0E639C50"};class m extends d.Widget{constructor(b){super(),this._onChange=this._register(new I.Emitter),this.onChange=this._onChange.event,this._onKeyDown=this._register(new I.Emitter),this.onKeyDown=this._onKeyDown.event,this._opts=b,this._checked=this._opts.isChecked;const p=["monaco-custom-toggle"];this._opts.icon&&(this._icon=this._opts.icon,p.push(...k.ThemeIcon.asClassNameArray(this._icon))),this._opts.actionClassName&&p.push(...this._opts.actionClassName.split(" ")),this._checked&&p.push("checked"),this.domNode=document.createElement("div"),this._hover=this._register((0,y.getBaseLayerHoverDelegate)().setupManagedHover(b.hoverDelegate??(0,E.getDefaultHoverDelegate)("mouse"),this.domNode,this._opts.title)),this.domNode.classList.add(...p),this._opts.notFocusable||(this.domNode.tabIndex=0),this.domNode.setAttribute("role","checkbox"),this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.setAttribute("aria-label",this._opts.title),this.applyStyles(),this.onclick(this.domNode,n=>{this.enabled&&(this.checked=!this._checked,this._onChange.fire(!1),n.preventDefault())}),this._register(this.ignoreGesture(this.domNode)),this.onkeydown(this.domNode,n=>{if(n.keyCode===10||n.keyCode===3){this.checked=!this._checked,this._onChange.fire(!0),n.preventDefault(),n.stopPropagation();return}this._onKeyDown.fire(n)})}get enabled(){return this.domNode.getAttribute("aria-disabled")!=="true"}focus(){this.domNode.focus()}get checked(){return this._checked}set checked(b){this._checked=b,this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked),this.applyStyles()}width(){return 22}applyStyles(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder||"",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground||"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground||"")}enable(){this.domNode.setAttribute("aria-disabled",String(!1))}disable(){this.domNode.setAttribute("aria-disabled",String(!0))}}e.Toggle=m}),define(ne[358],se([1,0,44,175,26,3]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RegexToggle=e.WholeWordsToggle=e.CaseSensitiveToggle=void 0;const y=E.localize(2,"Match Case"),m=E.localize(3,"Match Whole Word"),_=E.localize(4,"Use Regular Expression");class b extends k.Toggle{constructor(t){super({icon:I.Codicon.caseSensitive,title:y+t.appendTitle,isChecked:t.isChecked,hoverDelegate:t.hoverDelegate??(0,d.getDefaultHoverDelegate)("element"),inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionForeground:t.inputActiveOptionForeground,inputActiveOptionBackground:t.inputActiveOptionBackground})}}e.CaseSensitiveToggle=b;class p extends k.Toggle{constructor(t){super({icon:I.Codicon.wholeWord,title:m+t.appendTitle,isChecked:t.isChecked,hoverDelegate:t.hoverDelegate??(0,d.getDefaultHoverDelegate)("element"),inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionForeground:t.inputActiveOptionForeground,inputActiveOptionBackground:t.inputActiveOptionBackground})}}e.WholeWordsToggle=p;class n extends k.Toggle{constructor(t){super({icon:I.Codicon.regex,title:_+t.appendTitle,isChecked:t.isChecked,hoverDelegate:t.hoverDelegate??(0,d.getDefaultHoverDelegate)("element"),inputActiveOptionBorder:t.inputActiveOptionBorder,inputActiveOptionForeground:t.inputActiveOptionForeground,inputActiveOptionBackground:t.inputActiveOptionBackground})}}e.RegexToggle=n}),define(ne[48],se([1,0,251,42,99,16,11,22]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DataUri=e.addTrailingPathSeparator=e.removeTrailingPathSeparator=e.hasTrailingPathSeparator=e.isEqualAuthority=e.isAbsolutePath=e.resolvePath=e.relativePath=e.normalizePath=e.joinPath=e.dirname=e.extname=e.basename=e.basenameOrAuthority=e.getComparisonKey=e.isEqualOrParent=e.isEqual=e.extUriIgnorePathCase=e.extUriBiasedIgnorePathCase=e.extUri=e.ExtUri=void 0,e.originalFSPath=_;function _(n){return(0,m.uriToFsPath)(n,!0)}class b{constructor(o){this._ignorePathCasing=o}compare(o,t,i=!1){return o===t?0:(0,y.compare)(this.getComparisonKey(o,i),this.getComparisonKey(t,i))}isEqual(o,t,i=!1){return o===t?!0:!o||!t?!1:this.getComparisonKey(o,i)===this.getComparisonKey(t,i)}getComparisonKey(o,t=!1){return o.with({path:this._ignorePathCasing(o)?o.path.toLowerCase():void 0,fragment:t?null:void 0}).toString()}isEqualOrParent(o,t,i=!1){if(o.scheme===t.scheme){if(o.scheme===k.Schemas.file)return d.isEqualOrParent(_(o),_(t),this._ignorePathCasing(o))&&o.query===t.query&&(i||o.fragment===t.fragment);if((0,e.isEqualAuthority)(o.authority,t.authority))return d.isEqualOrParent(o.path,t.path,this._ignorePathCasing(o),"/")&&o.query===t.query&&(i||o.fragment===t.fragment)}return!1}joinPath(o,...t){return m.URI.joinPath(o,...t)}basenameOrAuthority(o){return(0,e.basename)(o)||o.authority}basename(o){return I.posix.basename(o.path)}extname(o){return I.posix.extname(o.path)}dirname(o){if(o.path.length===0)return o;let t;return o.scheme===k.Schemas.file?t=m.URI.file(I.dirname(_(o))).path:(t=I.posix.dirname(o.path),o.authority&&t.length&&t.charCodeAt(0)!==47&&(console.error(`dirname("${o.toString})) resulted in a relative path`),t="/")),o.with({path:t})}normalizePath(o){if(!o.path.length)return o;let t;return o.scheme===k.Schemas.file?t=m.URI.file(I.normalize(_(o))).path:t=I.posix.normalize(o.path),o.with({path:t})}relativePath(o,t){if(o.scheme!==t.scheme||!(0,e.isEqualAuthority)(o.authority,t.authority))return;if(o.scheme===k.Schemas.file){const g=I.relative(_(o),_(t));return E.isWindows?d.toSlashes(g):g}let i=o.path||"/";const s=t.path||"/";if(this._ignorePathCasing(o)){let g=0;for(const c=Math.min(i.length,s.length);gd.getRoot(i).length&&i[i.length-1]===t}else{const i=o.path;return i.length>1&&i.charCodeAt(i.length-1)===47&&!/^[a-zA-Z]:(\/$|\\$)/.test(o.fsPath)}}removeTrailingPathSeparator(o,t=I.sep){return(0,e.hasTrailingPathSeparator)(o,t)?o.with({path:o.path.substr(0,o.path.length-1)}):o}addTrailingPathSeparator(o,t=I.sep){let i=!1;if(o.scheme===k.Schemas.file){const s=_(o);i=s!==void 0&&s.length===d.getRoot(s).length&&s[s.length-1]===t}else{t="/";const s=o.path;i=s.length===1&&s.charCodeAt(s.length-1)===47}return!i&&!(0,e.hasTrailingPathSeparator)(o,t)?o.with({path:o.path+"/"}):o}}e.ExtUri=b,e.extUri=new b(()=>!1),e.extUriBiasedIgnorePathCase=new b(n=>n.scheme===k.Schemas.file?!E.isLinux:!0),e.extUriIgnorePathCase=new b(n=>!0),e.isEqual=e.extUri.isEqual.bind(e.extUri),e.isEqualOrParent=e.extUri.isEqualOrParent.bind(e.extUri),e.getComparisonKey=e.extUri.getComparisonKey.bind(e.extUri),e.basenameOrAuthority=e.extUri.basenameOrAuthority.bind(e.extUri),e.basename=e.extUri.basename.bind(e.extUri),e.extname=e.extUri.extname.bind(e.extUri),e.dirname=e.extUri.dirname.bind(e.extUri),e.joinPath=e.extUri.joinPath.bind(e.extUri),e.normalizePath=e.extUri.normalizePath.bind(e.extUri),e.relativePath=e.extUri.relativePath.bind(e.extUri),e.resolvePath=e.extUri.resolvePath.bind(e.extUri),e.isAbsolutePath=e.extUri.isAbsolutePath.bind(e.extUri),e.isEqualAuthority=e.extUri.isEqualAuthority.bind(e.extUri),e.hasTrailingPathSeparator=e.extUri.hasTrailingPathSeparator.bind(e.extUri),e.removeTrailingPathSeparator=e.extUri.removeTrailingPathSeparator.bind(e.extUri),e.addTrailingPathSeparator=e.extUri.addTrailingPathSeparator.bind(e.extUri);var p;(function(n){n.META_DATA_LABEL="label",n.META_DATA_DESCRIPTION="description",n.META_DATA_SIZE="size",n.META_DATA_MIME="mime";function o(t){const i=new Map;t.path.substring(t.path.indexOf(";")+1,t.path.lastIndexOf(";")).split(";").forEach(c=>{const[l,a]=c.split(":");l&&a&&i.set(l,a)});const g=t.path.substring(0,t.path.indexOf(";"));return g&&i.set(n.META_DATA_MIME,g),i}n.parseMetaData=o})(p||(e.DataUri=p={}))}),define(ne[57],se([1,0,8,142,48,11,22]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarkdownString=void 0,e.isEmptyMarkdownString=_,e.isMarkdownString=b,e.markdownStringEqual=p,e.escapeMarkdownSyntaxTokens=n,e.appendEscapedMarkdownCodeBlockFence=o,e.escapeDoubleQuotes=t,e.removeMarkdownEscapes=i,e.parseHrefAndDimensions=s;class m{constructor(c="",l=!1){if(this.value=c,typeof this.value!="string")throw(0,d.illegalArgument)("value");typeof l=="boolean"?(this.isTrusted=l,this.supportThemeIcons=!1,this.supportHtml=!1):(this.isTrusted=l.isTrusted??void 0,this.supportThemeIcons=l.supportThemeIcons??!1,this.supportHtml=l.supportHtml??!1)}appendText(c,l=0){return this.value+=n(this.supportThemeIcons?(0,k.escapeIcons)(c):c).replace(/([ \t]+)/g,(a,r)=>" ".repeat(r.length)).replace(/\>/gm,"\\>").replace(/\n/g,l===1?`\\ +`:` + +`),this}appendMarkdown(c){return this.value+=c,this}appendCodeblock(c,l){return this.value+=` +${o(l,c)} +`,this}appendLink(c,l,a){return this.value+="[",this.value+=this._escape(l,"]"),this.value+="](",this.value+=this._escape(String(c),")"),a&&(this.value+=` "${this._escape(this._escape(a,'"'),")")}"`),this.value+=")",this}_escape(c,l){const a=new RegExp((0,E.escapeRegExpCharacters)(l),"g");return c.replace(a,(r,u)=>c.charAt(u-1)!=="\\"?`\\${r}`:r)}}e.MarkdownString=m;function _(g){return b(g)?!g.value:Array.isArray(g)?g.every(_):!0}function b(g){return g instanceof m?!0:g&&typeof g=="object"?typeof g.value=="string"&&(typeof g.isTrusted=="boolean"||typeof g.isTrusted=="object"||g.isTrusted===void 0)&&(typeof g.supportThemeIcons=="boolean"||g.supportThemeIcons===void 0):!1}function p(g,c){return g===c?!0:!g||!c?!1:g.value===c.value&&g.isTrusted===c.isTrusted&&g.supportThemeIcons===c.supportThemeIcons&&g.supportHtml===c.supportHtml&&(g.baseUri===c.baseUri||!!g.baseUri&&!!c.baseUri&&(0,I.isEqual)(y.URI.from(g.baseUri),y.URI.from(c.baseUri)))}function n(g){return g.replace(/[\\`*_{}[\]()#+\-!~]/g,"\\$&")}function o(g,c){const l=g.match(/^`+/gm)?.reduce((r,u)=>r.length>u.length?r:u).length??0,a=l>=3?l+1:3;return[`${"`".repeat(a)}${c}`,g,`${"`".repeat(a)}`].join(` +`)}function t(g){return g.replace(/"/g,""")}function i(g){return g&&g.replace(/\\([\\`*_{}[\]()#+\-.!~])/g,"$1")}function s(g){const c=[],l=g.split("|").map(r=>r.trim());g=l[0];const a=l[1];if(a){const r=/height=(\d+)/.exec(a),u=/width=(\d+)/.exec(a),C=r?r[1]:"",f=u?u[1]:"",h=isFinite(parseInt(f)),v=isFinite(parseInt(C));h&&c.push(`width="${f}"`),v&&c.push(`height="${C}"`)}return{href:g,dimensions:c}}}),define(ne[207],se([1,0,5,351,93,352,47,77,114,8,6,57,142,187,98,2,447,252,42,60,48,11,22]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.allowedMarkdownAttr=void 0,e.renderMarkdown=h,e.renderStringAsPlaintext=T,e.renderMarkdownAsPlaintext=M,e.fillInIncompleteTokens=z;const f=Object.freeze({image:({href:ee,title:de,text:ge})=>{let X=[],B=[];return ee&&({href:ee,dimensions:X}=(0,n.parseHrefAndDimensions)(ee),B.push(`src="${(0,n.escapeDoubleQuotes)(ee)}"`)),ge&&B.push(`alt="${(0,n.escapeDoubleQuotes)(ge)}"`),de&&B.push(`title="${(0,n.escapeDoubleQuotes)(de)}"`),X.length&&(B=B.concat(X)),""},paragraph({tokens:ee}){return`

    ${this.parser.parseInline(ee)}

    `},link({href:ee,title:de,tokens:ge}){let X=this.parser.parseInline(ge);return typeof ee!="string"?"":(ee===X&&(X=(0,n.removeMarkdownEscapes)(X)),de=typeof de=="string"?(0,n.escapeDoubleQuotes)((0,n.removeMarkdownEscapes)(de)):"",ee=(0,n.removeMarkdownEscapes)(ee),ee=ee.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),`
    ${X}`)}});function h(ee,de={},ge={}){const X=new s.DisposableStore;let B=!1;const $=(0,E.createElement)(de),Q=function(Ee){let Me;try{Me=(0,c.parse)(decodeURIComponent(Ee))}catch{}return Me?(Me=(0,a.cloneAndChange)(Me,Ae=>{if(ee.uris&&ee.uris[Ae])return C.URI.revive(ee.uris[Ae])}),encodeURIComponent(JSON.stringify(Me))):Ee},Z=function(Ee,Me){const Ae=ee.uris&&ee.uris[Ee];let Ne=C.URI.revive(Ae);return Me?Ee.startsWith(l.Schemas.data+":")?Ee:(Ne||(Ne=C.URI.parse(Ee)),l.FileAccess.uriToBrowserUri(Ne).toString(!0)):!Ne||C.URI.parse(Ee).toString()===Ne.toString()?Ee:(Ne.query&&(Ne=Ne.with({query:Q(Ne.query)})),Ne.toString())},te=new g.Renderer;te.image=f.image,te.link=f.link,te.paragraph=f.paragraph;const re=[],le=[];if(de.codeBlockRendererSync?te.code=({text:Ee,lang:Me})=>{const Ae=t.defaultGenerator.nextId(),Ne=de.codeBlockRendererSync(v(Me),Ee);return le.push([Ae,Ne]),`
    ${(0,u.escape)(Ee)}
    `}:de.codeBlockRenderer&&(te.code=({text:Ee,lang:Me})=>{const Ae=t.defaultGenerator.nextId(),Ne=de.codeBlockRenderer(v(Me),Ee);return re.push(Ne.then(Ke=>[Ae,Ke])),`
    ${(0,u.escape)(Ee)}
    `}),de.actionHandler){const Ee=function(Ne){let Ke=Ne.target;if(!(Ke.tagName!=="A"&&(Ke=Ke.parentElement,!Ke||Ke.tagName!=="A")))try{let ze=Ke.dataset.href;ze&&(ee.baseUri&&(ze=w(C.URI.from(ee.baseUri),ze)),de.actionHandler.callback(ze,Ne))}catch(ze){(0,b.onUnexpectedError)(ze)}finally{Ne.preventDefault()}},Me=de.actionHandler.disposables.add(new I.DomEmitter($,"click")),Ae=de.actionHandler.disposables.add(new I.DomEmitter($,"auxclick"));de.actionHandler.disposables.add(p.Event.any(Me.event,Ae.event)(Ne=>{const Ke=new m.StandardMouseEvent(d.getWindow($),Ne);!Ke.leftButton&&!Ke.middleButton||Ee(Ke)})),de.actionHandler.disposables.add(d.addDisposableListener($,"keydown",Ne=>{const Ke=new y.StandardKeyboardEvent(Ne);!Ke.equals(10)&&!Ke.equals(3)||Ee(Ke)}))}ee.supportHtml||(te.html=({text:Ee})=>de.sanitizerOptions?.replaceWithPlaintext?(0,u.escape)(Ee):(ee.isTrusted?Ee.match(/^(]+>)|(<\/\s*span>)$/):void 0)?Ee:""),ge.renderer=te;let me=ee.value??"";me.length>1e5&&(me=`${me.substr(0,1e5)}\u2026`),ee.supportThemeIcons&&(me=(0,o.markdownEscapeEscapedIcons)(me));let Ce;if(de.fillInIncompleteTokens){const Ee={...g.defaults,...ge},Me=g.lexer(me,Ee),Ae=z(Me);Ce=g.parser(Ae,Ee)}else Ce=g.parse(me,{...ge,async:!1});ee.supportThemeIcons&&(Ce=(0,_.renderLabelWithIcons)(Ce).map(Me=>typeof Me=="string"?Me:Me.outerHTML).join(""));const Le=new DOMParser().parseFromString(L({isTrusted:ee.isTrusted,...de.sanitizerOptions},Ce),"text/html");if(Le.body.querySelectorAll("img, audio, video, source").forEach(Ee=>{const Me=Ee.getAttribute("src");if(Me){let Ae=Me;try{ee.baseUri&&(Ae=w(C.URI.from(ee.baseUri),Ae))}catch{}if(Ee.setAttribute("src",Z(Ae,!0)),de.remoteImageIsAllowed){const Ne=C.URI.parse(Ae);Ne.scheme!==l.Schemas.file&&Ne.scheme!==l.Schemas.data&&!de.remoteImageIsAllowed(Ne)&&Ee.replaceWith(d.$("",void 0,Ee.outerHTML))}}}),Le.body.querySelectorAll("a").forEach(Ee=>{const Me=Ee.getAttribute("href");if(Ee.setAttribute("href",""),!Me||/^data:|javascript:/i.test(Me)||/^command:/i.test(Me)&&!ee.isTrusted||/^command:(\/\/\/)?_workbench\.downloadResource/i.test(Me))Ee.replaceWith(...Ee.childNodes);else{let Ae=Z(Me,!1);ee.baseUri&&(Ae=w(C.URI.from(ee.baseUri),Me)),Ee.dataset.href=Ae}}),$.innerHTML=L({isTrusted:ee.isTrusted,...de.sanitizerOptions},Le.body.innerHTML),re.length>0)Promise.all(re).then(Ee=>{if(B)return;const Me=new Map(Ee),Ae=$.querySelectorAll("div[data-code]");for(const Ne of Ae){const Ke=Me.get(Ne.dataset.code??"");Ke&&d.reset(Ne,Ke)}de.asyncRenderCallback?.()});else if(le.length>0){const Ee=new Map(le),Me=$.querySelectorAll("div[data-code]");for(const Ae of Me){const Ne=Ee.get(Ae.dataset.code??"");Ne&&d.reset(Ae,Ne)}}if(de.asyncRenderCallback)for(const Ee of $.getElementsByTagName("img")){const Me=X.add(d.addDisposableListener(Ee,"load",()=>{Me.dispose(),de.asyncRenderCallback()}))}return{element:$,dispose:()=>{B=!0,X.dispose()}}}function v(ee){if(!ee)return"";const de=ee.split(/[\s+|:|,|\{|\?]/,1);return de.length?de[0]:ee}function w(ee,de){return/^\w[\w\d+.-]*:/.test(de)?de:ee.path.endsWith("/")?(0,r.resolvePath)(ee,de).toString():(0,r.resolvePath)((0,r.dirname)(ee),de).toString()}const S=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function L(ee,de){const{config:ge,allowedSchemes:X}=D(ee),B=new s.DisposableStore;B.add(ae("uponSanitizeAttribute",($,Q)=>{if(Q.attrName==="style"||Q.attrName==="class"){if($.tagName==="SPAN"){if(Q.attrName==="style"){Q.keepAttr=/^(color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?(background-color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?(border-radius:[0-9]+px;)?$/.test(Q.attrValue);return}else if(Q.attrName==="class"){Q.keepAttr=/^codicon codicon-[a-z\-]+( codicon-modifier-[a-z\-]+)?$/.test(Q.attrValue);return}}Q.keepAttr=!1;return}else if($.tagName==="INPUT"&&$.attributes.getNamedItem("type")?.value==="checkbox"){if(Q.attrName==="type"&&Q.attrValue==="checkbox"||Q.attrName==="disabled"||Q.attrName==="checked"){Q.keepAttr=!0;return}Q.keepAttr=!1}})),B.add(ae("uponSanitizeElement",($,Q)=>{if(Q.tagName==="input"&&($.attributes.getNamedItem("type")?.value==="checkbox"?$.setAttribute("disabled",""):ee.replaceWithPlaintext||$.remove()),ee.replaceWithPlaintext&&!Q.allowedTags[Q.tagName]&&Q.tagName!=="body"&&$.parentElement){let Z,te;if(Q.tagName==="#comment")Z=``;else{const Ce=S.includes(Q.tagName),ye=$.attributes.length?" "+Array.from($.attributes).map(Le=>`${Le.name}="${Le.value}"`).join(" "):"";Z=`<${Q.tagName}${ye}>`,Ce||(te=``)}const re=document.createDocumentFragment(),le=$.parentElement.ownerDocument.createTextNode(Z);re.appendChild(le);const me=te?$.parentElement.ownerDocument.createTextNode(te):void 0;for(;$.firstChild;)re.appendChild($.firstChild);me&&re.appendChild(me),$.nodeType===Node.COMMENT_NODE?$.parentElement.insertBefore(re,$):$.parentElement.replaceChild(re,$)}})),B.add(d.hookDomPurifyHrefAndSrcSanitizer(X));try{return k.sanitize(de,{...ge,RETURN_TRUSTED_TYPE:!0})}finally{B.dispose()}}e.allowedMarkdownAttr=["align","autoplay","alt","checked","class","colspan","controls","data-code","data-href","disabled","draggable","height","href","loop","muted","playsinline","poster","rowspan","src","style","target","title","type","width","start"];function D(ee){const de=[l.Schemas.http,l.Schemas.https,l.Schemas.mailto,l.Schemas.data,l.Schemas.file,l.Schemas.vscodeFileResource,l.Schemas.vscodeRemote,l.Schemas.vscodeRemoteResource];return ee.isTrusted&&de.push(l.Schemas.command),{config:{ALLOWED_TAGS:ee.allowedTags??[...d.basicMarkupHtmlTags],ALLOWED_ATTR:e.allowedMarkdownAttr,ALLOW_UNKNOWN_PROTOCOLS:!0},allowedSchemes:de}}function T(ee){return typeof ee=="string"?ee:M(ee)}function M(ee,de){let ge=ee.value??"";ge.length>1e5&&(ge=`${ge.substr(0,1e5)}\u2026`);const X=g.parse(ge,{async:!1,renderer:de?O.value:N.value}).replace(/&(#\d+|[a-zA-Z]+);/g,B=>A.get(B)??B);return L({isTrusted:!1},X).toString()}const A=new Map([[""",'"'],[" "," "],["&","&"],["'","'"],["<","<"],[">",">"]]);function P(){const ee=new g.Renderer;return ee.code=({text:de})=>de,ee.blockquote=({text:de})=>de+` +`,ee.html=de=>"",ee.heading=function({tokens:de}){return this.parser.parseInline(de)+` +`},ee.hr=()=>"",ee.list=function({items:de}){return de.map(ge=>this.listitem(ge)).join(` +`)+` +`},ee.listitem=({text:de})=>de+` +`,ee.paragraph=function({tokens:de}){return this.parser.parseInline(de)+` +`},ee.table=function({header:de,rows:ge}){return de.map(X=>this.tablecell(X)).join(" ")+` +`+ge.map(X=>X.map(B=>this.tablecell(B)).join(" ")).join(` +`)+` +`},ee.tablerow=({text:de})=>de,ee.tablecell=function({tokens:de}){return this.parser.parseInline(de)},ee.strong=({text:de})=>de,ee.em=({text:de})=>de,ee.codespan=({text:de})=>de,ee.br=de=>` +`,ee.del=({text:de})=>de,ee.image=de=>"",ee.text=({text:de})=>de,ee.link=({text:de})=>de,ee}const N=new i.Lazy(ee=>P()),O=new i.Lazy(()=>{const ee=P();return ee.code=({text:de})=>` +\`\`\` +${de} +\`\`\` +`,ee});function F(ee){let de="";return ee.forEach(ge=>{de+=ge.raw}),de}function x(ee){if(ee.tokens)for(let de=ee.tokens.length-1;de>=0;de--){const ge=ee.tokens[de];if(ge.type==="text"){const X=ge.raw.split(` +`),B=X[X.length-1];if(B.includes("`"))return j(ee);if(B.includes("**"))return ie(ee);if(B.match(/\*\w/))return Y(ee);if(B.match(/(^|\s)__\w/))return ue(ee);if(B.match(/(^|\s)_\w/))return G(ee);if(W(B)||V(B)&&ee.tokens.slice(0,de).some($=>$.type==="text"&&$.raw.match(/\[[^\]]*$/))){const $=ee.tokens.slice(de+1);return $[0]?.type==="link"&&$[1]?.type==="text"&&$[1].raw.match(/^ *"[^"]*$/)||B.match(/^[^"]* +"[^"]*$/)?R(ee):K(ee)}else if(B.match(/(^|\s)\[\w*/))return J(ee)}}}function W(ee){return!!ee.match(/(^|\s)\[.*\]\(\w*/)}function V(ee){return!!ee.match(/^[^\[]*\]\([^\)]*$/)}function q(ee){const de=ee.items[ee.items.length-1],ge=de.tokens?de.tokens[de.tokens.length-1]:void 0;let X;if(ge?.type==="text"&&!("inRawBlock"in de)&&(X=x(ge)),!X||X.type!=="paragraph")return;const B=F(ee.items.slice(0,-1)),$=de.raw.match(/^(\s*(-|\d+\.|\*) +)/)?.[0];if(!$)return;const Q=$+F(de.tokens.slice(0,-1))+X.raw,Z=g.lexer(B+Q)[0];if(Z.type==="list")return Z}const H=3;function z(ee){for(let de=0;de"u"&&Q.match(/^\s*\|/)){const Z=Q.match(/(\|[^\|]+)(?=\||$)/g);Z&&(X=Z.length)}else if(typeof X=="number")if(Q.match(/^\s*\|/)){if($!==ge.length-1)return;B=!0}else return}if(typeof X=="number"&&X>0){const $=B?ge.slice(0,-1).join(` +`):de,Q=!!$.match(/\|\s*$/),Z=$+(Q?"":"|")+` +|${" --- |".repeat(X)}`;return g.lexer(Z)}}function ae(ee,de){return k.addHook(ee,de),(0,s.toDisposable)(()=>k.removeHook(ee))}}),define(ne[258],se([1,0,5,351,47,207,69,44,114,33,6,57,2,30,81,459]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Button=e.unthemedButtonStyles=void 0,e.unthemedButtonStyles={buttonBackground:"#0E639C",buttonHoverBackground:"#006BB3",buttonSeparator:b.Color.white.toString(),buttonForeground:b.Color.white.toString(),buttonBorder:void 0,buttonSecondaryBackground:void 0,buttonSecondaryForeground:void 0,buttonSecondaryHoverBackground:void 0};class s extends o.Disposable{get onDidClick(){return this._onDidClick.event}constructor(c,l){super(),this._label="",this._onDidClick=this._register(new p.Emitter),this._onDidEscape=this._register(new p.Emitter),this.options=l,this._element=document.createElement("a"),this._element.classList.add("monaco-button"),this._element.tabIndex=0,this._element.setAttribute("role","button"),this._element.classList.toggle("secondary",!!l.secondary);const a=l.secondary?l.buttonSecondaryBackground:l.buttonBackground,r=l.secondary?l.buttonSecondaryForeground:l.buttonForeground;this._element.style.color=r||"",this._element.style.backgroundColor=a||"",l.supportShortLabel&&(this._labelShortElement=document.createElement("div"),this._labelShortElement.classList.add("monaco-button-label-short"),this._element.appendChild(this._labelShortElement),this._labelElement=document.createElement("div"),this._labelElement.classList.add("monaco-button-label"),this._element.appendChild(this._labelElement),this._element.classList.add("monaco-text-button-with-short-label")),typeof l.title=="string"&&this.setTitle(l.title),typeof l.ariaLabel=="string"&&this._element.setAttribute("aria-label",l.ariaLabel),c.appendChild(this._element),this._register(y.Gesture.addTarget(this._element)),[d.EventType.CLICK,y.EventType.Tap].forEach(u=>{this._register((0,d.addDisposableListener)(this._element,u,C=>{if(!this.enabled){d.EventHelper.stop(C);return}this._onDidClick.fire(C)}))}),this._register((0,d.addDisposableListener)(this._element,d.EventType.KEY_DOWN,u=>{const C=new I.StandardKeyboardEvent(u);let f=!1;this.enabled&&(C.equals(3)||C.equals(10))?(this._onDidClick.fire(u),f=!0):C.equals(9)&&(this._onDidEscape.fire(u),this._element.blur(),f=!0),f&&d.EventHelper.stop(C,!0)})),this._register((0,d.addDisposableListener)(this._element,d.EventType.MOUSE_OVER,u=>{this._element.classList.contains("disabled")||this.updateBackground(!0)})),this._register((0,d.addDisposableListener)(this._element,d.EventType.MOUSE_OUT,u=>{this.updateBackground(!1)})),this.focusTracker=this._register((0,d.trackFocus)(this._element)),this._register(this.focusTracker.onDidFocus(()=>{this.enabled&&this.updateBackground(!0)})),this._register(this.focusTracker.onDidBlur(()=>{this.enabled&&this.updateBackground(!1)}))}dispose(){super.dispose(),this._element.remove()}getContentElements(c){const l=[];for(let a of(0,_.renderLabelWithIcons)(c))if(typeof a=="string"){if(a=a.trim(),a==="")continue;const r=document.createElement("span");r.textContent=a,l.push(r)}else l.push(a);return l}updateBackground(c){let l;this.options.secondary?l=c?this.options.buttonSecondaryHoverBackground:this.options.buttonSecondaryBackground:l=c?this.options.buttonHoverBackground:this.options.buttonBackground,l&&(this._element.style.backgroundColor=l)}get element(){return this._element}set label(c){if(this._label===c||(0,n.isMarkdownString)(this._label)&&(0,n.isMarkdownString)(c)&&(0,n.markdownStringEqual)(this._label,c))return;this._element.classList.add("monaco-text-button");const l=this.options.supportShortLabel?this._labelElement:this._element;if((0,n.isMarkdownString)(c)){const r=(0,E.renderMarkdown)(c,{inline:!0});r.dispose();const u=r.element.querySelector("p")?.innerHTML;if(u){const C=(0,k.sanitize)(u,{ADD_TAGS:["b","i","u","code","span"],ALLOWED_ATTR:["class"],RETURN_TRUSTED_TYPE:!0});l.innerHTML=C}else(0,d.reset)(l)}else this.options.supportIcons?(0,d.reset)(l,...this.getContentElements(c)):l.textContent=c;let a="";typeof this.options.title=="string"?a=this.options.title:this.options.title&&(a=(0,E.renderStringAsPlaintext)(c)),this.setTitle(a),typeof this.options.ariaLabel=="string"?this._element.setAttribute("aria-label",this.options.ariaLabel):this.options.ariaLabel&&this._element.setAttribute("aria-label",a),this._label=c}get label(){return this._label}set icon(c){this._element.classList.add(...t.ThemeIcon.asClassNameArray(c))}set enabled(c){c?(this._element.classList.remove("disabled"),this._element.setAttribute("aria-disabled",String(!1)),this._element.tabIndex=0):(this._element.classList.add("disabled"),this._element.setAttribute("aria-disabled",String(!0)))}get enabled(){return!this._element.classList.contains("disabled")}setTitle(c){!this._hover&&c!==""?this._hover=this._register((0,i.getBaseLayerHoverDelegate)().setupManagedHover(this.options.hoverDelegate??(0,m.getDefaultHoverDelegate)("mouse"),this._element,c)):this._hover&&this._hover.update(c)}}e.Button=s}),define(ne[639],se([1,0,5,93,47,207,81,44,115,13,6,72,2,16,3,473]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectBoxList=void 0;const s=d.$,g="selectOption.entry.template";class c{get templateId(){return g}renderTemplate(r){const u=Object.create(null);return u.root=r,u.text=d.append(r,s(".option-text")),u.detail=d.append(r,s(".option-detail")),u.decoratorRight=d.append(r,s(".option-decorator-right")),u}renderElement(r,u,C){const f=C,h=r.text,v=r.detail,w=r.decoratorRight,S=r.isDisabled;f.text.textContent=h,f.detail.textContent=v||"",f.decoratorRight.innerText=w||"",S?f.root.classList.add("option-disabled"):f.root.classList.remove("option-disabled")}disposeTemplate(r){}}class l extends o.Disposable{static{this.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN=32}static{this.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN=2}static{this.DEFAULT_MINIMUM_VISIBLE_OPTIONS=3}constructor(r,u,C,f,h){super(),this.options=[],this._currentSelection=0,this._hasDetails=!1,this._skipLayout=!1,this._sticky=!1,this._isVisible=!1,this.styles=f,this.selectBoxOptions=h||Object.create(null),typeof this.selectBoxOptions.minBottomMargin!="number"?this.selectBoxOptions.minBottomMargin=l.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN:this.selectBoxOptions.minBottomMargin<0&&(this.selectBoxOptions.minBottomMargin=0),this.selectElement=document.createElement("select"),this.selectElement.className="monaco-select-box monaco-select-box-dropdown-padding",typeof this.selectBoxOptions.ariaLabel=="string"&&this.selectElement.setAttribute("aria-label",this.selectBoxOptions.ariaLabel),typeof this.selectBoxOptions.ariaDescription=="string"&&this.selectElement.setAttribute("aria-description",this.selectBoxOptions.ariaDescription),this._onDidSelect=new p.Emitter,this._register(this._onDidSelect),this.registerListeners(),this.constructSelectDropDown(C),this.selected=u||0,r&&this.setOptions(r,u),this.initStyleSheet()}setTitle(r){!this._hover&&r?this._hover=this._register((0,y.getBaseLayerHoverDelegate)().setupManagedHover((0,m.getDefaultHoverDelegate)("mouse"),this.selectElement,r)):this._hover&&this._hover.update(r)}getHeight(){return 22}getTemplateId(){return g}constructSelectDropDown(r){this.contextViewProvider=r,this.selectDropDownContainer=d.$(".monaco-select-box-dropdown-container"),this.selectDropDownContainer.classList.add("monaco-select-box-dropdown-padding"),this.selectionDetailsPane=d.append(this.selectDropDownContainer,s(".select-box-details-pane"));const u=d.append(this.selectDropDownContainer,s(".select-box-dropdown-container-width-control")),C=d.append(u,s(".width-control-div"));this.widthControlElement=document.createElement("span"),this.widthControlElement.className="option-text-width-control",d.append(C,this.widthControlElement),this._dropDownPosition=0,this.styleElement=d.createStyleSheet(this.selectDropDownContainer),this.selectDropDownContainer.setAttribute("draggable","true"),this._register(d.addDisposableListener(this.selectDropDownContainer,d.EventType.DRAG_START,f=>{d.EventHelper.stop(f,!0)}))}registerListeners(){this._register(d.addStandardDisposableListener(this.selectElement,"change",u=>{this.selected=u.target.selectedIndex,this._onDidSelect.fire({index:u.target.selectedIndex,selected:u.target.value}),this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)})),this._register(d.addDisposableListener(this.selectElement,d.EventType.CLICK,u=>{d.EventHelper.stop(u),this._isVisible?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(d.addDisposableListener(this.selectElement,d.EventType.MOUSE_DOWN,u=>{d.EventHelper.stop(u)}));let r;this._register(d.addDisposableListener(this.selectElement,"touchstart",u=>{r=this._isVisible})),this._register(d.addDisposableListener(this.selectElement,"touchend",u=>{d.EventHelper.stop(u),r?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(d.addDisposableListener(this.selectElement,d.EventType.KEY_DOWN,u=>{const C=new I.StandardKeyboardEvent(u);let f=!1;t.isMacintosh?(C.keyCode===18||C.keyCode===16||C.keyCode===10||C.keyCode===3)&&(f=!0):(C.keyCode===18&&C.altKey||C.keyCode===16&&C.altKey||C.keyCode===10||C.keyCode===3)&&(f=!0),f&&(this.showSelectDropDown(),d.EventHelper.stop(u,!0))}))}get onDidSelect(){return this._onDidSelect.event}setOptions(r,u){b.equals(this.options,r)||(this.options=r,this.selectElement.options.length=0,this._hasDetails=!1,this._cachedMaxDetailsHeight=void 0,this.options.forEach((C,f)=>{this.selectElement.add(this.createOption(C.text,f,C.isDisabled)),typeof C.description=="string"&&(this._hasDetails=!0)})),u!==void 0&&(this.select(u),this._currentSelection=this.selected)}setOptionsList(){this.selectList?.splice(0,this.selectList.length,this.options)}select(r){r>=0&&rthis.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.options[this.selected]&&this.options[this.selected].text&&this.setTitle(this.options[this.selected].text)}focus(){this.selectElement&&(this.selectElement.tabIndex=0,this.selectElement.focus())}blur(){this.selectElement&&(this.selectElement.tabIndex=-1,this.selectElement.blur())}setFocusable(r){this.selectElement.tabIndex=r?0:-1}render(r){this.container=r,r.classList.add("select-container"),r.appendChild(this.selectElement),this.styleSelectElement()}initStyleSheet(){const r=[];this.styles.listFocusBackground&&r.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { background-color: ${this.styles.listFocusBackground} !important; }`),this.styles.listFocusForeground&&r.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { color: ${this.styles.listFocusForeground} !important; }`),this.styles.decoratorRightForeground&&r.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.focused) .option-decorator-right { color: ${this.styles.decoratorRightForeground}; }`),this.styles.selectBackground&&this.styles.selectBorder&&this.styles.selectBorder!==this.styles.selectBackground?(r.push(`.monaco-select-box-dropdown-container { border: 1px solid ${this.styles.selectBorder} } `),r.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectBorder} } `),r.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectBorder} } `)):this.styles.selectListBorder&&(r.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectListBorder} } `),r.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectListBorder} } `)),this.styles.listHoverForeground&&r.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { color: ${this.styles.listHoverForeground} !important; }`),this.styles.listHoverBackground&&r.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { background-color: ${this.styles.listHoverBackground} !important; }`),this.styles.listFocusOutline&&r.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { outline: 1.6px dotted ${this.styles.listFocusOutline} !important; outline-offset: -1.6px !important; }`),this.styles.listHoverOutline&&r.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { outline: 1.6px dashed ${this.styles.listHoverOutline} !important; outline-offset: -1.6px !important; }`),r.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled.focused { background-color: transparent !important; color: inherit !important; outline: none !important; }"),r.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled:hover { background-color: transparent !important; color: inherit !important; outline: none !important; }"),this.styleElement.textContent=r.join(` +`)}styleSelectElement(){const r=this.styles.selectBackground??"",u=this.styles.selectForeground??"",C=this.styles.selectBorder??"";this.selectElement.style.backgroundColor=r,this.selectElement.style.color=u,this.selectElement.style.borderColor=C}styleList(){const r=this.styles.selectBackground??"",u=d.asCssValueWithDefault(this.styles.selectListBackground,r);this.selectDropDownListContainer.style.backgroundColor=u,this.selectionDetailsPane.style.backgroundColor=u;const C=this.styles.focusBorder??"";this.selectDropDownContainer.style.outlineColor=C,this.selectDropDownContainer.style.outlineOffset="-1px",this.selectList.style(this.styles)}createOption(r,u,C){const f=document.createElement("option");return f.value=r,f.text=r,f.disabled=!!C,f}showSelectDropDown(){this.selectionDetailsPane.innerText="",!(!this.contextViewProvider||this._isVisible)&&(this.createSelectList(this.selectDropDownContainer),this.setOptionsList(),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:r=>this.renderSelectDropDown(r,!0),layout:()=>{this.layoutSelectDropDown()},onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._isVisible=!0,this.hideSelectDropDown(!1),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:r=>this.renderSelectDropDown(r),layout:()=>this.layoutSelectDropDown(),onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._currentSelection=this.selected,this._isVisible=!0,this.selectElement.setAttribute("aria-expanded","true"))}hideSelectDropDown(r){!this.contextViewProvider||!this._isVisible||(this._isVisible=!1,this.selectElement.setAttribute("aria-expanded","false"),r&&this.selectElement.focus(),this.contextViewProvider.hideContextView())}renderSelectDropDown(r,u){return r.appendChild(this.selectDropDownContainer),this.layoutSelectDropDown(u),{dispose:()=>{this.selectDropDownContainer.remove()}}}measureMaxDetailsHeight(){let r=0;return this.options.forEach((u,C)=>{this.updateDetail(C),this.selectionDetailsPane.offsetHeight>r&&(r=this.selectionDetailsPane.offsetHeight)}),r}layoutSelectDropDown(r){if(this._skipLayout)return!1;if(this.selectList){this.selectDropDownContainer.classList.add("visible");const u=d.getWindow(this.selectElement),C=d.getDomNodePagePosition(this.selectElement),f=d.getWindow(this.selectElement).getComputedStyle(this.selectElement),h=parseFloat(f.getPropertyValue("--dropdown-padding-top"))+parseFloat(f.getPropertyValue("--dropdown-padding-bottom")),v=u.innerHeight-C.top-C.height-(this.selectBoxOptions.minBottomMargin||0),w=C.top-l.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN,S=this.selectElement.offsetWidth,L=this.setWidthControlElement(this.widthControlElement),D=Math.max(L,Math.round(S)).toString()+"px";this.selectDropDownContainer.style.width=D,this.selectList.getHTMLElement().style.height="",this.selectList.layout();let T=this.selectList.contentHeight;this._hasDetails&&this._cachedMaxDetailsHeight===void 0&&(this._cachedMaxDetailsHeight=this.measureMaxDetailsHeight());const M=this._hasDetails?this._cachedMaxDetailsHeight:0,A=T+h+M,P=Math.floor((v-h-M)/this.getHeight()),N=Math.floor((w-h-M)/this.getHeight());if(r)return C.top+C.height>u.innerHeight-22||C.topP&&this.options.length>P?(this._dropDownPosition=1,this.selectDropDownListContainer.remove(),this.selectionDetailsPane.remove(),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectionDetailsPane.classList.remove("border-top"),this.selectionDetailsPane.classList.add("border-bottom")):(this._dropDownPosition=0,this.selectDropDownListContainer.remove(),this.selectionDetailsPane.remove(),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectionDetailsPane.classList.remove("border-bottom"),this.selectionDetailsPane.classList.add("border-top")),!0);if(C.top+C.height>u.innerHeight-22||C.topv&&(T=P*this.getHeight())}else A>w&&(T=N*this.getHeight());return this.selectList.layout(T),this.selectList.domFocus(),this.selectList.length>0&&(this.selectList.setFocus([this.selected||0]),this.selectList.reveal(this.selectList.getFocus()[0]||0)),this._hasDetails?(this.selectList.getHTMLElement().style.height=T+h+"px",this.selectDropDownContainer.style.height=""):this.selectDropDownContainer.style.height=T+h+"px",this.updateDetail(this.selected),this.selectDropDownContainer.style.width=D,this.selectDropDownListContainer.setAttribute("tabindex","0"),this.selectElement.classList.add("synthetic-focus"),this.selectDropDownContainer.classList.add("synthetic-focus"),!0}else return!1}setWidthControlElement(r){let u=0;if(r){let C=0,f=0;this.options.forEach((h,v)=>{const w=h.detail?h.detail.length:0,S=h.decoratorRight?h.decoratorRight.length:0,L=h.text.length+w+S;L>f&&(C=v,f=L)}),r.textContent=this.options[C].text+(this.options[C].decoratorRight?this.options[C].decoratorRight+" ":""),u=d.getTotalWidth(r)}return u}createSelectList(r){if(this.selectList)return;this.selectDropDownListContainer=d.append(r,s(".select-box-dropdown-list-container")),this.listRenderer=new c,this.selectList=this._register(new _.List("SelectBoxCustom",this.selectDropDownListContainer,this,[this.listRenderer],{useShadows:!1,verticalScrollMode:3,keyboardSupport:!1,mouseSupport:!1,accessibilityProvider:{getAriaLabel:f=>{let h=f.text;return f.detail&&(h+=`. ${f.detail}`),f.decoratorRight&&(h+=`. ${f.decoratorRight}`),f.description&&(h+=`. ${f.description}`),h},getWidgetAriaLabel:()=>(0,i.localize)(16,"Select Box"),getRole:()=>t.isMacintosh?"":"option",getWidgetRole:()=>"listbox"}})),this.selectBoxOptions.ariaLabel&&(this.selectList.ariaLabel=this.selectBoxOptions.ariaLabel);const u=this._register(new k.DomEmitter(this.selectDropDownListContainer,"keydown")),C=p.Event.chain(u.event,f=>f.filter(()=>this.selectList.length>0).map(h=>new I.StandardKeyboardEvent(h)));this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===3))(this.onEnter,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===2))(this.onEnter,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===9))(this.onEscape,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===16))(this.onUpArrow,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===18))(this.onDownArrow,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===12))(this.onPageDown,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===11))(this.onPageUp,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===14))(this.onHome,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode===13))(this.onEnd,this)),this._register(p.Event.chain(C,f=>f.filter(h=>h.keyCode>=21&&h.keyCode<=56||h.keyCode>=85&&h.keyCode<=113))(this.onCharacter,this)),this._register(d.addDisposableListener(this.selectList.getHTMLElement(),d.EventType.POINTER_UP,f=>this.onPointerUp(f))),this._register(this.selectList.onMouseOver(f=>typeof f.index<"u"&&this.selectList.setFocus([f.index]))),this._register(this.selectList.onDidChangeFocus(f=>this.onListFocus(f))),this._register(d.addDisposableListener(this.selectDropDownContainer,d.EventType.FOCUS_OUT,f=>{!this._isVisible||d.isAncestor(f.relatedTarget,this.selectDropDownContainer)||this.onListBlur()})),this.selectList.getHTMLElement().setAttribute("aria-label",this.selectBoxOptions.ariaLabel||""),this.selectList.getHTMLElement().setAttribute("aria-expanded","true"),this.styleList()}onPointerUp(r){if(!this.selectList.length)return;d.EventHelper.stop(r);const u=r.target;if(!u||u.classList.contains("slider"))return;const C=u.closest(".monaco-list-row");if(!C)return;const f=Number(C.getAttribute("data-index")),h=C.classList.contains("option-disabled");f>=0&&f{for(let v=0;vthis.selected+2)this.selected+=2;else{if(u)return;this.selected++}this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0])}}onUpArrow(r){this.selected>0&&(d.EventHelper.stop(r,!0),this.options[this.selected-1].isDisabled&&this.selected>1?this.selected-=2:this.selected--,this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0]))}onPageUp(r){d.EventHelper.stop(r),this.selectList.focusPreviousPage(),setTimeout(()=>{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected>0&&(this.selected--,this.selectList.setFocus([this.selected])),this.selectList.reveal(this.selected),this.select(this.selected)},1)}onHome(r){d.EventHelper.stop(r),!(this.options.length<2)&&(this.selected=0,this.options[this.selected].isDisabled&&this.selected>1&&this.selected++,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onEnd(r){d.EventHelper.stop(r),!(this.options.length<2)&&(this.selected=this.options.length-1,this.options[this.selected].isDisabled&&this.selected>1&&this.selected--,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onCharacter(r){const u=n.KeyCodeUtils.toString(r.keyCode);let C=-1;for(let f=0;f{this.element&&this.handleActionChangeEvent(u)}))}handleActionChangeEvent(l){l.enabled!==void 0&&this.updateEnabled(),l.checked!==void 0&&this.updateChecked(),l.class!==void 0&&this.updateClass(),l.label!==void 0&&(this.updateLabel(),this.updateTooltip()),l.tooltip!==void 0&&this.updateTooltip()}get actionRunner(){return this._actionRunner||(this._actionRunner=this._register(new _.ActionRunner)),this._actionRunner}set actionRunner(l){this._actionRunner=l}isEnabled(){return this._action.enabled}setActionContext(l){this._context=l}render(l){const a=this.element=l;this._register(E.Gesture.addTarget(l));const r=this.options&&this.options.draggable;r&&(l.draggable=!0,d.isFirefox&&this._register((0,I.addDisposableListener)(l,I.EventType.DRAG_START,u=>u.dataTransfer?.setData(k.DataTransfers.TEXT,this._action.label)))),this._register((0,I.addDisposableListener)(a,E.EventType.Tap,u=>this.onClick(u,!0))),this._register((0,I.addDisposableListener)(a,I.EventType.MOUSE_DOWN,u=>{r||I.EventHelper.stop(u,!0),this._action.enabled&&u.button===0&&a.classList.add("active")})),p.isMacintosh&&this._register((0,I.addDisposableListener)(a,I.EventType.CONTEXT_MENU,u=>{u.button===0&&u.ctrlKey===!0&&this.onClick(u)})),this._register((0,I.addDisposableListener)(a,I.EventType.CLICK,u=>{I.EventHelper.stop(u,!0),this.options&&this.options.isMenu||this.onClick(u)})),this._register((0,I.addDisposableListener)(a,I.EventType.DBLCLICK,u=>{I.EventHelper.stop(u,!0)})),[I.EventType.MOUSE_UP,I.EventType.MOUSE_OUT].forEach(u=>{this._register((0,I.addDisposableListener)(a,u,C=>{I.EventHelper.stop(C),a.classList.remove("active")}))})}onClick(l,a=!1){I.EventHelper.stop(l,!0);const r=n.isUndefinedOrNull(this._context)?this.options?.useEventAsContext?l:{preserveFocus:a}:this._context;this.actionRunner.run(this._action,r)}focus(){this.element&&(this.element.tabIndex=0,this.element.focus(),this.element.classList.add("focused"))}blur(){this.element&&(this.element.blur(),this.element.tabIndex=-1,this.element.classList.remove("focused"))}setFocusable(l){this.element&&(this.element.tabIndex=l?0:-1)}get trapsArrowNavigation(){return!1}updateEnabled(){}updateLabel(){}getClass(){return this.action.class}getTooltip(){return this.action.tooltip}updateTooltip(){if(!this.element)return;const l=this.getTooltip()??"";if(this.updateAriaLabel(),this.options.hoverDelegate?.showNativeHover)this.element.title=l;else if(!this.customHover&&l!==""){const a=this.options.hoverDelegate??(0,y.getDefaultHoverDelegate)("element");this.customHover=this._store.add((0,t.getBaseLayerHoverDelegate)().setupManagedHover(a,this.element,l))}else this.customHover&&this.customHover.update(l)}updateAriaLabel(){if(this.element){const l=this.getTooltip()??"";this.element.setAttribute("aria-label",l)}}updateClass(){}updateChecked(){}dispose(){this.element&&(this.element.remove(),this.element=void 0),this._context=void 0,super.dispose()}}e.BaseActionViewItem=i;class s extends i{constructor(l,a,r){super(l,a,r),this.options=r,this.options.icon=r.icon!==void 0?r.icon:!1,this.options.label=r.label!==void 0?r.label:!0,this.cssClass=""}render(l){super.render(l),n.assertType(this.element);const a=document.createElement("a");if(a.classList.add("action-label"),a.setAttribute("role",this.getDefaultAriaRole()),this.label=a,this.element.appendChild(a),this.options.label&&this.options.keybinding){const r=document.createElement("span");r.classList.add("keybinding"),r.textContent=this.options.keybinding,this.element.appendChild(r)}this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}getDefaultAriaRole(){return this._action.id===_.Separator.ID?"presentation":this.options.isMenu?"menuitem":this.options.isTabList?"tab":"button"}focus(){this.label&&(this.label.tabIndex=0,this.label.focus())}blur(){this.label&&(this.label.tabIndex=-1)}setFocusable(l){this.label&&(this.label.tabIndex=l?0:-1)}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this.action.label)}getTooltip(){let l=null;return this.action.tooltip?l=this.action.tooltip:!this.options.label&&this.action.label&&this.options.icon&&(l=this.action.label,this.options.keybinding&&(l=o.localize(0,"{0} ({1})",l,this.options.keybinding))),l??void 0}updateClass(){this.cssClass&&this.label&&this.label.classList.remove(...this.cssClass.split(" ")),this.options.icon?(this.cssClass=this.getClass(),this.label&&(this.label.classList.add("codicon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" "))),this.updateEnabled()):this.label?.classList.remove("codicon")}updateEnabled(){this.action.enabled?(this.label&&(this.label.removeAttribute("aria-disabled"),this.label.classList.remove("disabled")),this.element?.classList.remove("disabled")):(this.label&&(this.label.setAttribute("aria-disabled","true"),this.label.classList.add("disabled")),this.element?.classList.add("disabled"))}updateAriaLabel(){if(this.label){const l=this.getTooltip()??"";this.label.setAttribute("aria-label",l)}}updateChecked(){this.label&&(this.action.checked!==void 0?(this.label.classList.toggle("checked",this.action.checked),this.options.isTabList?this.label.setAttribute("aria-selected",this.action.checked?"true":"false"):(this.label.setAttribute("aria-checked",this.action.checked?"true":"false"),this.label.setAttribute("role","checkbox"))):(this.label.classList.remove("checked"),this.label.removeAttribute(this.options.isTabList?"aria-selected":"aria-checked"),this.label.setAttribute("role",this.getDefaultAriaRole())))}}e.ActionViewItem=s;class g extends i{constructor(l,a,r,u,C,f,h){super(l,a),this.selectBox=new m.SelectBox(r,u,C,f,h),this.selectBox.setFocusable(!1),this._register(this.selectBox),this.registerListeners()}select(l){this.selectBox.select(l)}registerListeners(){this._register(this.selectBox.onDidSelect(l=>this.runAction(l.selected,l.index)))}runAction(l,a){this.actionRunner.run(this._action,this.getActionContext(l,a))}getActionContext(l,a){return l}setFocusable(l){this.selectBox.setFocusable(l)}focus(){this.selectBox?.focus()}blur(){this.selectBox?.blur()}render(l){this.selectBox.render(l)}}e.SelectActionViewItem=g}),define(ne[87],se([1,0,5,47,151,44,41,6,2,19,302]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ActionBar=void 0;class p extends _.Disposable{constructor(o,t={}){super(),this._actionRunnerDisposables=this._register(new _.DisposableStore),this.viewItemDisposables=this._register(new _.DisposableMap),this.triggerKeyDown=!1,this.focusable=!0,this._onDidBlur=this._register(new m.Emitter),this.onDidBlur=this._onDidBlur.event,this._onDidCancel=this._register(new m.Emitter({onWillAddFirstListener:()=>this.cancelHasListener=!0})),this.onDidCancel=this._onDidCancel.event,this.cancelHasListener=!1,this._onDidRun=this._register(new m.Emitter),this.onDidRun=this._onDidRun.event,this._onWillRun=this._register(new m.Emitter),this.onWillRun=this._onWillRun.event,this.options=t,this._context=t.context??null,this._orientation=this.options.orientation??0,this._triggerKeys={keyDown:this.options.triggerKeys?.keyDown??!1,keys:this.options.triggerKeys?.keys??[3,10]},this._hoverDelegate=t.hoverDelegate??this._register((0,E.createInstantHoverDelegate)()),this.options.actionRunner?this._actionRunner=this.options.actionRunner:(this._actionRunner=new y.ActionRunner,this._actionRunnerDisposables.add(this._actionRunner)),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(g=>this._onDidRun.fire(g))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(g=>this._onWillRun.fire(g))),this.viewItems=[],this.focusedItem=void 0,this.domNode=document.createElement("div"),this.domNode.className="monaco-action-bar";let i,s;switch(this._orientation){case 0:i=[15],s=[17];break;case 1:i=[16],s=[18],this.domNode.className+=" vertical";break}this._register(d.addDisposableListener(this.domNode,d.EventType.KEY_DOWN,g=>{const c=new k.StandardKeyboardEvent(g);let l=!0;const a=typeof this.focusedItem=="number"?this.viewItems[this.focusedItem]:void 0;i&&(c.equals(i[0])||c.equals(i[1]))?l=this.focusPrevious():s&&(c.equals(s[0])||c.equals(s[1]))?l=this.focusNext():c.equals(9)&&this.cancelHasListener?this._onDidCancel.fire():c.equals(14)?l=this.focusFirst():c.equals(13)?l=this.focusLast():c.equals(2)&&a instanceof I.BaseActionViewItem&&a.trapsArrowNavigation?l=this.focusNext(void 0,!0):this.isTriggerKeyEvent(c)?this._triggerKeys.keyDown?this.doTrigger(c):this.triggerKeyDown=!0:l=!1,l&&(c.preventDefault(),c.stopPropagation())})),this._register(d.addDisposableListener(this.domNode,d.EventType.KEY_UP,g=>{const c=new k.StandardKeyboardEvent(g);this.isTriggerKeyEvent(c)?(!this._triggerKeys.keyDown&&this.triggerKeyDown&&(this.triggerKeyDown=!1,this.doTrigger(c)),c.preventDefault(),c.stopPropagation()):(c.equals(2)||c.equals(1026)||c.equals(16)||c.equals(18)||c.equals(15)||c.equals(17))&&this.updateFocusedItem()})),this.focusTracker=this._register(d.trackFocus(this.domNode)),this._register(this.focusTracker.onDidBlur(()=>{(d.getActiveElement()===this.domNode||!d.isAncestor(d.getActiveElement(),this.domNode))&&(this._onDidBlur.fire(),this.previouslyFocusedItem=this.focusedItem,this.focusedItem=void 0,this.triggerKeyDown=!1)})),this._register(this.focusTracker.onDidFocus(()=>this.updateFocusedItem())),this.actionsList=document.createElement("ul"),this.actionsList.className="actions-container",this.options.highlightToggledItems&&this.actionsList.classList.add("highlight-toggled"),this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"),this.options.ariaLabel&&this.actionsList.setAttribute("aria-label",this.options.ariaLabel),this.domNode.appendChild(this.actionsList),o.appendChild(this.domNode)}refreshRole(){this.length()>=1?this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"):this.actionsList.setAttribute("role","presentation")}setFocusable(o){if(this.focusable=o,this.focusable){const t=this.viewItems.find(i=>i instanceof I.BaseActionViewItem&&i.isEnabled());t instanceof I.BaseActionViewItem&&t.setFocusable(!0)}else this.viewItems.forEach(t=>{t instanceof I.BaseActionViewItem&&t.setFocusable(!1)})}isTriggerKeyEvent(o){let t=!1;return this._triggerKeys.keys.forEach(i=>{t=t||o.equals(i)}),t}updateFocusedItem(){for(let o=0;ot.setActionContext(o))}get actionRunner(){return this._actionRunner}set actionRunner(o){this._actionRunner=o,this._actionRunnerDisposables.clear(),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(t=>this._onDidRun.fire(t))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(t=>this._onWillRun.fire(t))),this.viewItems.forEach(t=>t.actionRunner=o)}getContainer(){return this.domNode}getAction(o){if(typeof o=="number")return this.viewItems[o]?.action;if(d.isHTMLElement(o)){for(;o.parentElement!==this.actionsList;){if(!o.parentElement)return;o=o.parentElement}for(let t=0;t{const c=document.createElement("li");c.className="action-item",c.setAttribute("role","presentation");let l;const a={hoverDelegate:this._hoverDelegate,...t,isTabList:this.options.ariaRole==="tablist"};this.options.actionViewItemProvider&&(l=this.options.actionViewItemProvider(g,a)),l||(l=new I.ActionViewItem(this.context,g,a)),this.options.allowContextMenu||this.viewItemDisposables.set(l,d.addDisposableListener(c,d.EventType.CONTEXT_MENU,r=>{d.EventHelper.stop(r,!0)})),l.actionRunner=this._actionRunner,l.setActionContext(this.context),l.render(c),this.focusable&&l instanceof I.BaseActionViewItem&&this.viewItems.length===0&&l.setFocusable(!0),s===null||s<0||s>=this.actionsList.children.length?(this.actionsList.appendChild(c),this.viewItems.push(l)):(this.actionsList.insertBefore(c,this.actionsList.children[s]),this.viewItems.splice(s,0,l),s++)}),typeof this.focusedItem=="number"&&this.focus(this.focusedItem),this.refreshRole()}clear(){this.isEmpty()||(this.viewItems=(0,_.dispose)(this.viewItems),this.viewItemDisposables.clearAndDisposeAll(),d.clearNode(this.actionsList),this.refreshRole())}length(){return this.viewItems.length}isEmpty(){return this.viewItems.length===0}focus(o){let t=!1,i;if(o===void 0?t=!0:typeof o=="number"?i=o:typeof o=="boolean"&&(t=o),t&&typeof this.focusedItem>"u"){const s=this.viewItems.findIndex(g=>g.isEnabled());this.focusedItem=s===-1?void 0:s,this.updateFocus(void 0,void 0,!0)}else i!==void 0&&(this.focusedItem=i),this.updateFocus(void 0,void 0,!0)}focusFirst(){return this.focusedItem=this.length()-1,this.focusNext(!0)}focusLast(){return this.focusedItem=0,this.focusPrevious(!0)}focusNext(o,t){if(typeof this.focusedItem>"u")this.focusedItem=this.viewItems.length-1;else if(this.viewItems.length<=1)return!1;const i=this.focusedItem;let s;do{if(!o&&this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=i,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,s=this.viewItems[this.focusedItem]}while(this.focusedItem!==i&&(this.options.focusOnlyEnabledItems&&!s.isEnabled()||s.action.id===y.Separator.ID));return this.updateFocus(void 0,void 0,t),!0}focusPrevious(o){if(typeof this.focusedItem>"u")this.focusedItem=0;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(this.focusedItem=this.focusedItem-1,this.focusedItem<0){if(!o&&this.options.preventLoopNavigation)return this.focusedItem=t,!1;this.focusedItem=this.viewItems.length-1}i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===y.Separator.ID));return this.updateFocus(!0),!0}updateFocus(o,t,i=!1){typeof this.focusedItem>"u"&&this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem!==void 0&&this.previouslyFocusedItem!==this.focusedItem&&this.viewItems[this.previouslyFocusedItem]?.blur();const s=this.focusedItem!==void 0?this.viewItems[this.focusedItem]:void 0;if(s){let g=!0;b.isFunction(s.focus)||(g=!1),this.options.focusOnlyEnabledItems&&b.isFunction(s.isEnabled)&&!s.isEnabled()&&(g=!1),s.action.id===y.Separator.ID&&(g=!1),g?(i||this.previouslyFocusedItem!==this.focusedItem)&&(s.focus(o),this.previouslyFocusedItem=this.focusedItem):(this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem=void 0),g&&s.showHover?.()}}doTrigger(o){if(typeof this.focusedItem>"u")return;const t=this.viewItems[this.focusedItem];if(t instanceof I.BaseActionViewItem){const i=t._context===null||t._context===void 0?o:t._context;this.run(t._action,i)}}async run(o,t){await this._actionRunner.run(o,t)}dispose(){this._context=void 0,this.viewItems=(0,_.dispose)(this.viewItems),this.getContainer().remove(),super.dispose()}}e.ActionBar=p}),define(ne[359],se([1,0,5,151,631,6,44,81,303]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DropdownMenuActionViewItem=void 0;class _ extends k.BaseActionViewItem{constructor(p,n,o,t=Object.create(null)){super(null,p,t),this.actionItem=null,this._onDidChangeVisibility=this._register(new E.Emitter),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this.menuActionsOrProvider=n,this.contextMenuProvider=o,this.options=t,this.options.actionRunner&&(this.actionRunner=this.options.actionRunner)}render(p){this.actionItem=p;const n=i=>{this.element=(0,d.append)(i,(0,d.$)("a.action-label"));let s=[];return typeof this.options.classNames=="string"?s=this.options.classNames.split(/\s+/g).filter(g=>!!g):this.options.classNames&&(s=this.options.classNames),s.find(g=>g==="icon")||s.push("codicon"),this.element.classList.add(...s),this.element.setAttribute("role","button"),this.element.setAttribute("aria-haspopup","true"),this.element.setAttribute("aria-expanded","false"),this._action.label&&this._register((0,m.getBaseLayerHoverDelegate)().setupManagedHover(this.options.hoverDelegate??(0,y.getDefaultHoverDelegate)("mouse"),this.element,this._action.label)),this.element.ariaLabel=this._action.label||"",null},o=Array.isArray(this.menuActionsOrProvider),t={contextMenuProvider:this.contextMenuProvider,labelRenderer:n,menuAsChild:this.options.menuAsChild,actions:o?this.menuActionsOrProvider:void 0,actionProvider:o?void 0:this.menuActionsOrProvider,skipTelemetry:this.options.skipTelemetry};if(this.dropdownMenu=this._register(new I.DropdownMenu(p,t)),this._register(this.dropdownMenu.onDidChangeVisibility(i=>{this.element?.setAttribute("aria-expanded",`${i}`),this._onDidChangeVisibility.fire(i)})),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){const i=this;this.dropdownMenu.menuOptions={...this.dropdownMenu.menuOptions,get anchorAlignment(){return i.options.anchorAlignmentProvider()}}}this.updateTooltip(),this.updateEnabled()}getTooltip(){let p=null;return this.action.tooltip?p=this.action.tooltip:this.action.label&&(p=this.action.label),p??void 0}setActionContext(p){super.setActionContext(p),this.dropdownMenu&&(this.dropdownMenu.menuOptions?this.dropdownMenu.menuOptions.context=p:this.dropdownMenu.menuOptions={context:p})}show(){this.dropdownMenu?.show()}updateEnabled(){const p=!this.action.enabled;this.actionItem?.classList.toggle("disabled",p),this.element?.classList.toggle("disabled",p)}}e.DropdownMenuActionViewItem=_}),define(ne[259],se([1,0,5,93,352,87,46,81,44,86,85,6,450,60,3,466]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HistoryInputBox=e.InputBox=e.unthemedInboxStyles=void 0;const s=d.$;e.unthemedInboxStyles={inputBackground:"#3C3C3C",inputForeground:"#CCCCCC",inputValidationInfoBorder:"#55AAFF",inputValidationInfoBackground:"#063B49",inputValidationWarningBorder:"#B89500",inputValidationWarningBackground:"#352A05",inputValidationErrorBorder:"#BE1100",inputValidationErrorBackground:"#5A1D1D",inputBorder:void 0,inputValidationErrorForeground:void 0,inputValidationInfoForeground:void 0,inputValidationWarningForeground:void 0};class g extends p.Widget{constructor(a,r,u){super(),this.state="idle",this.maxHeight=Number.POSITIVE_INFINITY,this._onDidChange=this._register(new n.Emitter),this.onDidChange=this._onDidChange.event,this._onDidHeightChange=this._register(new n.Emitter),this.onDidHeightChange=this._onDidHeightChange.event,this.contextViewProvider=r,this.options=u,this.message=null,this.placeholder=this.options.placeholder||"",this.tooltip=this.options.tooltip??(this.placeholder||""),this.ariaLabel=this.options.ariaLabel||"",this.options.validationOptions&&(this.validation=this.options.validationOptions.validation),this.element=d.append(a,s(".monaco-inputbox.idle"));const C=this.options.flexibleHeight?"textarea":"input",f=d.append(this.element,s(".ibwrapper"));if(this.input=d.append(f,s(C+".input.empty")),this.input.setAttribute("autocorrect","off"),this.input.setAttribute("autocapitalize","off"),this.input.setAttribute("spellcheck","false"),this.onfocus(this.input,()=>this.element.classList.add("synthetic-focus")),this.onblur(this.input,()=>this.element.classList.remove("synthetic-focus")),this.options.flexibleHeight){this.maxHeight=typeof this.options.flexibleMaxHeight=="number"?this.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,this.mirror=d.append(f,s("div.mirror")),this.mirror.innerText="\xA0",this.scrollableElement=new b.ScrollableElement(this.element,{vertical:1}),this.options.flexibleWidth&&(this.input.setAttribute("wrap","off"),this.mirror.style.whiteSpace="pre",this.mirror.style.wordWrap="initial"),d.append(a,this.scrollableElement.getDomNode()),this._register(this.scrollableElement),this._register(this.scrollableElement.onScroll(w=>this.input.scrollTop=w.scrollTop));const h=this._register(new k.DomEmitter(a.ownerDocument,"selectionchange")),v=n.Event.filter(h.event,()=>a.ownerDocument.getSelection()?.anchorNode===f);this._register(v(this.updateScrollDimensions,this)),this._register(this.onDidHeightChange(this.updateScrollDimensions,this))}else this.input.type=this.options.type||"text",this.input.setAttribute("wrap","off");this.ariaLabel&&this.input.setAttribute("aria-label",this.ariaLabel),this.placeholder&&!this.options.showPlaceholderOnFocus&&this.setPlaceHolder(this.placeholder),this.tooltip&&this.setTooltip(this.tooltip),this.oninput(this.input,()=>this.onValueChange()),this.onblur(this.input,()=>this.onBlur()),this.onfocus(this.input,()=>this.onFocus()),this._register(this.ignoreGesture(this.input)),setTimeout(()=>this.updateMirror(),0),this.options.actions&&(this.actionbar=this._register(new E.ActionBar(this.element)),this.actionbar.push(this.options.actions,{icon:!0,label:!1})),this.applyStyles()}onBlur(){this._hideMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder","")}onFocus(){this._showMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder",this.placeholder||"")}setPlaceHolder(a){this.placeholder=a,this.input.setAttribute("placeholder",a)}setTooltip(a){this.tooltip=a,this.hover?this.hover.update(a):this.hover=this._register((0,m.getBaseLayerHoverDelegate)().setupManagedHover((0,_.getDefaultHoverDelegate)("mouse"),this.input,a))}get inputElement(){return this.input}get value(){return this.input.value}set value(a){this.input.value!==a&&(this.input.value=a,this.onValueChange())}get height(){return typeof this.cachedHeight=="number"?this.cachedHeight:d.getTotalHeight(this.element)}focus(){this.input.focus()}blur(){this.input.blur()}hasFocus(){return d.isActiveElement(this.input)}select(a=null){this.input.select(),a&&(this.input.setSelectionRange(a.start,a.end),a.end===this.input.value.length&&(this.input.scrollLeft=this.input.scrollWidth))}isSelectionAtEnd(){return this.input.selectionEnd===this.input.value.length&&this.input.selectionStart===this.input.selectionEnd}getSelection(){const a=this.input.selectionStart;if(a===null)return null;const r=this.input.selectionEnd??a;return{start:a,end:r}}enable(){this.input.removeAttribute("disabled")}disable(){this.blur(),this.input.disabled=!0,this._hideMessage()}set paddingRight(a){this.input.style.width=`calc(100% - ${a}px)`,this.mirror&&(this.mirror.style.paddingRight=a+"px")}updateScrollDimensions(){if(typeof this.cachedContentHeight!="number"||typeof this.cachedHeight!="number"||!this.scrollableElement)return;const a=this.cachedContentHeight,r=this.cachedHeight,u=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:a,height:r}),this.scrollableElement.setScrollPosition({scrollTop:u})}showMessage(a,r){if(this.state==="open"&&(0,t.equals)(this.message,a))return;this.message=a,this.element.classList.remove("idle"),this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add(this.classForType(a.type));const u=this.stylesForType(this.message.type);this.element.style.border=`1px solid ${d.asCssValueWithDefault(u.border,"transparent")}`,this.message.content&&(this.hasFocus()||r)&&this._showMessage()}hideMessage(){this.message=null,this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add("idle"),this._hideMessage(),this.applyStyles()}validate(){let a=null;return this.validation&&(a=this.validation(this.value),a?(this.inputElement.setAttribute("aria-invalid","true"),this.showMessage(a)):this.inputElement.hasAttribute("aria-invalid")&&(this.inputElement.removeAttribute("aria-invalid"),this.hideMessage())),a?.type}stylesForType(a){const r=this.options.inputBoxStyles;switch(a){case 1:return{border:r.inputValidationInfoBorder,background:r.inputValidationInfoBackground,foreground:r.inputValidationInfoForeground};case 2:return{border:r.inputValidationWarningBorder,background:r.inputValidationWarningBackground,foreground:r.inputValidationWarningForeground};default:return{border:r.inputValidationErrorBorder,background:r.inputValidationErrorBackground,foreground:r.inputValidationErrorForeground}}}classForType(a){switch(a){case 1:return"info";case 2:return"warning";default:return"error"}}_showMessage(){if(!this.contextViewProvider||!this.message)return;let a;const r=()=>a.style.width=d.getTotalWidth(this.element)+"px";this.contextViewProvider.showContextView({getAnchor:()=>this.element,anchorAlignment:1,render:C=>{if(!this.message)return null;a=d.append(C,s(".monaco-inputbox-container")),r();const f={inline:!0,className:"monaco-inputbox-message"},h=this.message.formatContent?(0,I.renderFormattedText)(this.message.content,f):(0,I.renderText)(this.message.content,f);h.classList.add(this.classForType(this.message.type));const v=this.stylesForType(this.message.type);return h.style.backgroundColor=v.background??"",h.style.color=v.foreground??"",h.style.border=v.border?`1px solid ${v.border}`:"",d.append(a,h),null},onHide:()=>{this.state="closed"},layout:r});let u;this.message.type===3?u=i.localize(9,"Error: {0}",this.message.content):this.message.type===2?u=i.localize(10,"Warning: {0}",this.message.content):u=i.localize(11,"Info: {0}",this.message.content),y.alert(u),this.state="open"}_hideMessage(){this.contextViewProvider&&(this.state==="open"&&this.contextViewProvider.hideContextView(),this.state="idle")}onValueChange(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),this.input.classList.toggle("empty",!this.value),this.state==="open"&&this.contextViewProvider&&this.contextViewProvider.layout()}updateMirror(){if(!this.mirror)return;const a=this.value,u=a.charCodeAt(a.length-1)===10?" ":"";(a+u).replace(/\u000c/g,"")?this.mirror.textContent=a+u:this.mirror.innerText="\xA0",this.layout()}applyStyles(){const a=this.options.inputBoxStyles,r=a.inputBackground??"",u=a.inputForeground??"",C=a.inputBorder??"";this.element.style.backgroundColor=r,this.element.style.color=u,this.input.style.backgroundColor="inherit",this.input.style.color=u,this.element.style.border=`1px solid ${d.asCssValueWithDefault(C,"transparent")}`}layout(){if(!this.mirror)return;const a=this.cachedContentHeight;this.cachedContentHeight=d.getTotalHeight(this.mirror),a!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+"px",this._onDidHeightChange.fire(this.cachedContentHeight))}insertAtCursor(a){const r=this.inputElement,u=r.selectionStart,C=r.selectionEnd,f=r.value;u!==null&&C!==null&&(this.value=f.substr(0,u)+a+f.substr(C),r.setSelectionRange(u+1,u+1),this.layout())}dispose(){this._hideMessage(),this.message=null,this.actionbar?.dispose(),super.dispose()}}e.InputBox=g;class c extends g{constructor(a,r,u){const C=i.localize(12," or {0} for history","\u21C5"),f=i.localize(13," ({0} for history)","\u21C5");super(a,r,u),this._onDidFocus=this._register(new n.Emitter),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new n.Emitter),this.onDidBlur=this._onDidBlur.event,this.history=new o.HistoryNavigator(u.history,100);const h=()=>{if(u.showHistoryHint&&u.showHistoryHint()&&!this.placeholder.endsWith(C)&&!this.placeholder.endsWith(f)&&this.history.getHistory().length){const v=this.placeholder.endsWith(")")?C:f,w=this.placeholder+v;u.showPlaceholderOnFocus&&!d.isActiveElement(this.input)?this.placeholder=w:this.setPlaceHolder(w)}};this.observer=new MutationObserver((v,w)=>{v.forEach(S=>{S.target.textContent||h()})}),this.observer.observe(this.input,{attributeFilter:["class"]}),this.onfocus(this.input,()=>h()),this.onblur(this.input,()=>{const v=w=>{if(this.placeholder.endsWith(w)){const S=this.placeholder.slice(0,this.placeholder.length-w.length);return u.showPlaceholderOnFocus?this.placeholder=S:this.setPlaceHolder(S),!0}else return!1};v(f)||v(C)})}dispose(){super.dispose(),this.observer&&(this.observer.disconnect(),this.observer=void 0)}addToHistory(a){this.value&&(a||this.value!==this.getCurrentValue())&&this.history.add(this.value)}isAtLastInHistory(){return this.history.isLast()}isNowhereInHistory(){return this.history.isNowhere()}showNextValue(){this.history.has(this.value)||this.addToHistory();let a=this.getNextValue();a&&(a=a===this.value?this.getNextValue():a),this.value=a??"",y.status(this.value?this.value:i.localize(14,"Cleared Input"))}showPreviousValue(){this.history.has(this.value)||this.addToHistory();let a=this.getPreviousValue();a&&(a=a===this.value?this.getPreviousValue():a),a&&(this.value=a,y.status(this.value))}setPlaceHolder(a){super.setPlaceHolder(a),this.setTooltip(a)}onBlur(){super.onBlur(),this._onDidBlur.fire()}onFocus(){super.onFocus(),this._onDidFocus.fire()}getCurrentValue(){let a=this.history.current();return a||(a=this.history.last(),this.history.next()),a}getPreviousValue(){return this.history.previous()||this.history.first()}getNextValue(){return this.history.next()}}e.HistoryInputBox=c}),define(ne[260],se([1,0,5,358,259,85,6,3,2,44,304]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FindInput=void 0;const p=m.localize(1,"input");class n extends E.Widget{constructor(t,i,s){super(),this.fixFocusOnOptionClickEnabled=!0,this.imeSessionInProgress=!1,this.additionalTogglesDisposables=this._register(new _.MutableDisposable),this.additionalToggles=[],this._onDidOptionChange=this._register(new y.Emitter),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new y.Emitter),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new y.Emitter),this.onMouseDown=this._onMouseDown.event,this._onInput=this._register(new y.Emitter),this._onKeyUp=this._register(new y.Emitter),this._onCaseSensitiveKeyDown=this._register(new y.Emitter),this.onCaseSensitiveKeyDown=this._onCaseSensitiveKeyDown.event,this._onRegexKeyDown=this._register(new y.Emitter),this.onRegexKeyDown=this._onRegexKeyDown.event,this._lastHighlightFindOptions=0,this.placeholder=s.placeholder||"",this.validation=s.validation,this.label=s.label||p,this.showCommonFindToggles=!!s.showCommonFindToggles;const g=s.appendCaseSensitiveLabel||"",c=s.appendWholeWordsLabel||"",l=s.appendRegexLabel||"",a=s.history||[],r=!!s.flexibleHeight,u=!!s.flexibleWidth,C=s.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new I.HistoryInputBox(this.domNode,i,{placeholder:this.placeholder||"",ariaLabel:this.label||"",validationOptions:{validation:this.validation},history:a,showHistoryHint:s.showHistoryHint,flexibleHeight:r,flexibleWidth:u,flexibleMaxHeight:C,inputBoxStyles:s.inputBoxStyles}));const f=this._register((0,b.createInstantHoverDelegate)());if(this.showCommonFindToggles){this.regex=this._register(new k.RegexToggle({appendTitle:l,isChecked:!1,hoverDelegate:f,...s.toggleStyles})),this._register(this.regex.onChange(v=>{this._onDidOptionChange.fire(v),!v&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.regex.onKeyDown(v=>{this._onRegexKeyDown.fire(v)})),this.wholeWords=this._register(new k.WholeWordsToggle({appendTitle:c,isChecked:!1,hoverDelegate:f,...s.toggleStyles})),this._register(this.wholeWords.onChange(v=>{this._onDidOptionChange.fire(v),!v&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this.caseSensitive=this._register(new k.CaseSensitiveToggle({appendTitle:g,isChecked:!1,hoverDelegate:f,...s.toggleStyles})),this._register(this.caseSensitive.onChange(v=>{this._onDidOptionChange.fire(v),!v&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.caseSensitive.onKeyDown(v=>{this._onCaseSensitiveKeyDown.fire(v)}));const h=[this.caseSensitive.domNode,this.wholeWords.domNode,this.regex.domNode];this.onkeydown(this.domNode,v=>{if(v.equals(15)||v.equals(17)||v.equals(9)){const w=h.indexOf(this.domNode.ownerDocument.activeElement);if(w>=0){let S=-1;v.equals(17)?S=(w+1)%h.length:v.equals(15)&&(w===0?S=h.length-1:S=w-1),v.equals(9)?(h[w].blur(),this.inputBox.focus()):S>=0&&h[S].focus(),d.EventHelper.stop(v,!0)}}})}this.controls=document.createElement("div"),this.controls.className="controls",this.controls.style.display=this.showCommonFindToggles?"":"none",this.caseSensitive&&this.controls.append(this.caseSensitive.domNode),this.wholeWords&&this.controls.appendChild(this.wholeWords.domNode),this.regex&&this.controls.appendChild(this.regex.domNode),this.setAdditionalToggles(s?.additionalToggles),this.controls&&this.domNode.appendChild(this.controls),t?.appendChild(this.domNode),this._register(d.addDisposableListener(this.inputBox.inputElement,"compositionstart",h=>{this.imeSessionInProgress=!0})),this._register(d.addDisposableListener(this.inputBox.inputElement,"compositionend",h=>{this.imeSessionInProgress=!1,this._onInput.fire()})),this.onkeydown(this.inputBox.inputElement,h=>this._onKeyDown.fire(h)),this.onkeyup(this.inputBox.inputElement,h=>this._onKeyUp.fire(h)),this.oninput(this.inputBox.inputElement,h=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,h=>this._onMouseDown.fire(h))}get onDidChange(){return this.inputBox.onDidChange}layout(t){this.inputBox.layout(),this.updateInputBoxPadding(t.collapsedFindWidget)}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.regex?.enable(),this.wholeWords?.enable(),this.caseSensitive?.enable();for(const t of this.additionalToggles)t.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.regex?.disable(),this.wholeWords?.disable(),this.caseSensitive?.disable();for(const t of this.additionalToggles)t.disable()}setFocusInputOnOptionClick(t){this.fixFocusOnOptionClickEnabled=t}setEnabled(t){t?this.enable():this.disable()}setAdditionalToggles(t){for(const i of this.additionalToggles)i.domNode.remove();this.additionalToggles=[],this.additionalTogglesDisposables.value=new _.DisposableStore;for(const i of t??[])this.additionalTogglesDisposables.value.add(i),this.controls.appendChild(i.domNode),this.additionalTogglesDisposables.value.add(i.onChange(s=>{this._onDidOptionChange.fire(s),!s&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus()})),this.additionalToggles.push(i);this.additionalToggles.length>0&&(this.controls.style.display=""),this.updateInputBoxPadding()}updateInputBoxPadding(t=!1){t?this.inputBox.paddingRight=0:this.inputBox.paddingRight=(this.caseSensitive?.width()??0)+(this.wholeWords?.width()??0)+(this.regex?.width()??0)+this.additionalToggles.reduce((i,s)=>i+s.width(),0)}getValue(){return this.inputBox.value}setValue(t){this.inputBox.value!==t&&(this.inputBox.value=t)}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getCaseSensitive(){return this.caseSensitive?.checked??!1}setCaseSensitive(t){this.caseSensitive&&(this.caseSensitive.checked=t)}getWholeWords(){return this.wholeWords?.checked??!1}setWholeWords(t){this.wholeWords&&(this.wholeWords.checked=t)}getRegex(){return this.regex?.checked??!1}setRegex(t){this.regex&&(this.regex.checked=t,this.validate())}focusOnCaseSensitive(){this.caseSensitive?.focus()}highlightFindOptions(){this.domNode.classList.remove("highlight-"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,this.domNode.classList.add("highlight-"+this._lastHighlightFindOptions)}validate(){this.inputBox.validate()}showMessage(t){this.inputBox.showMessage(t)}clearMessage(){this.inputBox.hideMessage()}}e.FindInput=n}),define(ne[641],se([1,0,5,175,259,85,26,6,3,44,304]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReplaceInput=void 0;const p=_.localize(5,"input"),n=_.localize(6,"Preserve Case");class o extends k.Toggle{constructor(s){super({icon:y.Codicon.preserveCase,title:n+s.appendTitle,isChecked:s.isChecked,hoverDelegate:s.hoverDelegate??(0,b.getDefaultHoverDelegate)("element"),inputActiveOptionBorder:s.inputActiveOptionBorder,inputActiveOptionForeground:s.inputActiveOptionForeground,inputActiveOptionBackground:s.inputActiveOptionBackground})}}class t extends E.Widget{constructor(s,g,c,l){super(),this._showOptionButtons=c,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new m.Emitter),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new m.Emitter),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new m.Emitter),this._onInput=this._register(new m.Emitter),this._onKeyUp=this._register(new m.Emitter),this._onPreserveCaseKeyDown=this._register(new m.Emitter),this.onPreserveCaseKeyDown=this._onPreserveCaseKeyDown.event,this.contextViewProvider=g,this.placeholder=l.placeholder||"",this.validation=l.validation,this.label=l.label||p;const a=l.appendPreserveCaseLabel||"",r=l.history||[],u=!!l.flexibleHeight,C=!!l.flexibleWidth,f=l.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new I.HistoryInputBox(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:r,showHistoryHint:l.showHistoryHint,flexibleHeight:u,flexibleWidth:C,flexibleMaxHeight:f,inputBoxStyles:l.inputBoxStyles})),this.preserveCase=this._register(new o({appendTitle:a,isChecked:!1,...l.toggleStyles})),this._register(this.preserveCase.onChange(w=>{this._onDidOptionChange.fire(w),!w&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(w=>{this._onPreserveCaseKeyDown.fire(w)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;const h=[this.preserveCase.domNode];this.onkeydown(this.domNode,w=>{if(w.equals(15)||w.equals(17)||w.equals(9)){const S=h.indexOf(this.domNode.ownerDocument.activeElement);if(S>=0){let L=-1;w.equals(17)?L=(S+1)%h.length:w.equals(15)&&(S===0?L=h.length-1:L=S-1),w.equals(9)?(h[S].blur(),this.inputBox.focus()):L>=0&&h[L].focus(),d.EventHelper.stop(w,!0)}}});const v=document.createElement("div");v.className="controls",v.style.display=this._showOptionButtons?"block":"none",v.appendChild(this.preserveCase.domNode),this.domNode.appendChild(v),s?.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,w=>this._onKeyDown.fire(w)),this.onkeyup(this.inputBox.inputElement,w=>this._onKeyUp.fire(w)),this.oninput(this.inputBox.inputElement,w=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,w=>this._onMouseDown.fire(w))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(s){s?this.enable():this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(s){this.preserveCase.checked=s}focusOnPreserve(){this.preserveCase.focus()}validate(){this.inputBox?.validate()}set width(s){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=s+"px"}dispose(){super.dispose()}}e.ReplaceInput=t}),define(ne[642],se([1,0,64,69,5,47,77,87,151,353,86,41,14,26,191,30,142,2,16,11]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Menu=e.VerticalDirection=e.HorizontalDirection=e.MENU_ESCAPED_MNEMONIC_REGEX=e.MENU_MNEMONIC_REGEX=void 0,e.cleanMnemonic=w,e.formatRule=S,e.MENU_MNEMONIC_REGEX=/\(&([^\s&])\)|(^|[^&])&([^\s&])/,e.MENU_ESCAPED_MNEMONIC_REGEX=/(&)?(&)([^\s&])/g;var r;(function(D){D[D.Right=0]="Right",D[D.Left=1]="Left"})(r||(e.HorizontalDirection=r={}));var u;(function(D){D[D.Above=0]="Above",D[D.Below=1]="Below"})(u||(e.VerticalDirection=u={}));class C extends m.ActionBar{constructor(T,M,A,P){T.classList.add("monaco-menu-container"),T.setAttribute("role","presentation");const N=document.createElement("div");N.classList.add("monaco-menu"),N.setAttribute("role","presentation"),super(N,{orientation:1,actionViewItemProvider:W=>this.doGetActionViewItem(W,A,O),context:A.context,actionRunner:A.actionRunner,ariaLabel:A.ariaLabel,ariaRole:"menu",focusOnlyEnabledItems:!0,triggerKeys:{keys:[3,...l.isMacintosh||l.isLinux?[10]:[]],keyDown:!0}}),this.menuStyles=P,this.menuElement=N,this.actionsList.tabIndex=0,this.initializeOrUpdateStyleSheet(T,P),this._register(k.Gesture.addTarget(N)),this._register((0,I.addDisposableListener)(N,I.EventType.KEY_DOWN,W=>{new E.StandardKeyboardEvent(W).equals(2)&&W.preventDefault()})),A.enableMnemonics&&this._register((0,I.addDisposableListener)(N,I.EventType.KEY_DOWN,W=>{const V=W.key.toLocaleLowerCase();if(this.mnemonics.has(V)){I.EventHelper.stop(W,!0);const q=this.mnemonics.get(V);if(q.length===1&&(q[0]instanceof h&&q[0].container&&this.focusItemByElement(q[0].container),q[0].onClick(W)),q.length>1){const H=q.shift();H&&H.container&&(this.focusItemByElement(H.container),q.push(H)),this.mnemonics.set(V,q)}}})),l.isLinux&&this._register((0,I.addDisposableListener)(N,I.EventType.KEY_DOWN,W=>{const V=new E.StandardKeyboardEvent(W);V.equals(14)||V.equals(11)?(this.focusedItem=this.viewItems.length-1,this.focusNext(),I.EventHelper.stop(W,!0)):(V.equals(13)||V.equals(12))&&(this.focusedItem=0,this.focusPrevious(),I.EventHelper.stop(W,!0))})),this._register((0,I.addDisposableListener)(this.domNode,I.EventType.MOUSE_OUT,W=>{const V=W.relatedTarget;(0,I.isAncestor)(V,this.domNode)||(this.focusedItem=void 0,this.updateFocus(),W.stopPropagation())})),this._register((0,I.addDisposableListener)(this.actionsList,I.EventType.MOUSE_OVER,W=>{let V=W.target;if(!(!V||!(0,I.isAncestor)(V,this.actionsList)||V===this.actionsList)){for(;V.parentElement!==this.actionsList&&V.parentElement!==null;)V=V.parentElement;if(V.classList.contains("action-item")){const q=this.focusedItem;this.setFocusedItem(V),q!==this.focusedItem&&this.updateFocus()}}})),this._register(k.Gesture.addTarget(this.actionsList)),this._register((0,I.addDisposableListener)(this.actionsList,k.EventType.Tap,W=>{let V=W.initialTarget;if(!(!V||!(0,I.isAncestor)(V,this.actionsList)||V===this.actionsList)){for(;V.parentElement!==this.actionsList&&V.parentElement!==null;)V=V.parentElement;if(V.classList.contains("action-item")){const q=this.focusedItem;this.setFocusedItem(V),q!==this.focusedItem&&this.updateFocus()}}}));const O={parent:this};this.mnemonics=new Map,this.scrollableElement=this._register(new p.DomScrollableElement(N,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));const F=this.scrollableElement.getDomNode();F.style.position="",this.styleScrollElement(F,P),this._register((0,I.addDisposableListener)(N,k.EventType.Change,W=>{I.EventHelper.stop(W,!0);const V=this.scrollableElement.getScrollPosition().scrollTop;this.scrollableElement.setScrollPosition({scrollTop:V-W.translationY})})),this._register((0,I.addDisposableListener)(F,I.EventType.MOUSE_UP,W=>{W.preventDefault()}));const x=(0,I.getWindow)(T);N.style.maxHeight=`${Math.max(10,x.innerHeight-T.getBoundingClientRect().top-35)}px`,M=M.filter((W,V)=>A.submenuIds?.has(W.id)?(console.warn(`Found submenu cycle: ${W.id}`),!1):!(W instanceof n.Separator&&(V===M.length-1||V===0||M[V-1]instanceof n.Separator))),this.push(M,{icon:!0,label:!0,isMenu:!0}),T.appendChild(this.scrollableElement.getDomNode()),this.scrollableElement.scanDomNode(),this.viewItems.filter(W=>!(W instanceof v)).forEach((W,V,q)=>{W.updatePositionInSet(V+1,q.length)})}initializeOrUpdateStyleSheet(T,M){this.styleSheet||((0,I.isInShadowDOM)(T)?this.styleSheet=(0,I.createStyleSheet)(T):(C.globalStyleSheet||(C.globalStyleSheet=(0,I.createStyleSheet)()),this.styleSheet=C.globalStyleSheet)),this.styleSheet.textContent=L(M,(0,I.isInShadowDOM)(T))}styleScrollElement(T,M){const A=M.foregroundColor??"",P=M.backgroundColor??"",N=M.borderColor?`1px solid ${M.borderColor}`:"",O="5px",F=M.shadowColor?`0 2px 8px ${M.shadowColor}`:"";T.style.outline=N,T.style.borderRadius=O,T.style.color=A,T.style.backgroundColor=P,T.style.boxShadow=F}getContainer(){return this.scrollableElement.getDomNode()}get onScroll(){return this.scrollableElement.onScroll}focusItemByElement(T){const M=this.focusedItem;this.setFocusedItem(T),M!==this.focusedItem&&this.updateFocus()}setFocusedItem(T){for(let M=0;M{this.element&&(this._register((0,I.addDisposableListener)(this.element,I.EventType.MOUSE_UP,N=>{if(I.EventHelper.stop(N,!0),d.isFirefox){if(new y.StandardMouseEvent((0,I.getWindow)(this.element),N).rightButton)return;this.onClick(N)}else setTimeout(()=>{this.onClick(N)},0)})),this._register((0,I.addDisposableListener)(this.element,I.EventType.CONTEXT_MENU,N=>{I.EventHelper.stop(N,!0)})))},100),this._register(this.runOnceToEnableMouseUp)}render(T){super.render(T),this.element&&(this.container=T,this.item=(0,I.append)(this.element,(0,I.$)("a.action-menu-item")),this._action.id===n.Separator.ID?this.item.setAttribute("role","presentation"):(this.item.setAttribute("role","menuitem"),this.mnemonic&&this.item.setAttribute("aria-keyshortcuts",`${this.mnemonic}`)),this.check=(0,I.append)(this.item,(0,I.$)("span.menu-item-check"+s.ThemeIcon.asCSSSelector(t.Codicon.menuSelection))),this.check.setAttribute("role","none"),this.label=(0,I.append)(this.item,(0,I.$)("span.action-label")),this.options.label&&this.options.keybinding&&((0,I.append)(this.item,(0,I.$)("span.keybinding")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked(),this.applyStyle())}blur(){super.blur(),this.applyStyle()}focus(){super.focus(),this.item?.focus(),this.applyStyle()}updatePositionInSet(T,M){this.item&&(this.item.setAttribute("aria-posinset",`${T}`),this.item.setAttribute("aria-setsize",`${M}`))}updateLabel(){if(this.label&&this.options.label){(0,I.clearNode)(this.label);let T=(0,g.stripIcons)(this.action.label);if(T){const M=w(T);this.options.enableMnemonics||(T=M),this.label.setAttribute("aria-label",M.replace(/&&/g,"&"));const A=e.MENU_MNEMONIC_REGEX.exec(T);if(A){T=a.escape(T),e.MENU_ESCAPED_MNEMONIC_REGEX.lastIndex=0;let P=e.MENU_ESCAPED_MNEMONIC_REGEX.exec(T);for(;P&&P[1];)P=e.MENU_ESCAPED_MNEMONIC_REGEX.exec(T);const N=O=>O.replace(/&&/g,"&");P?this.label.append(a.ltrim(N(T.substr(0,P.index))," "),(0,I.$)("u",{"aria-hidden":"true"},P[3]),a.rtrim(N(T.substr(P.index+P[0].length))," ")):this.label.innerText=N(T).trim(),this.item?.setAttribute("aria-keyshortcuts",(A[1]?A[1]:A[3]).toLocaleLowerCase())}else this.label.innerText=T.replace(/&&/g,"&").trim()}}}updateTooltip(){}updateClass(){this.cssClass&&this.item&&this.item.classList.remove(...this.cssClass.split(" ")),this.options.icon&&this.label?(this.cssClass=this.action.class||"",this.label.classList.add("icon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" ")),this.updateEnabled()):this.label&&this.label.classList.remove("icon")}updateEnabled(){this.action.enabled?(this.element&&(this.element.classList.remove("disabled"),this.element.removeAttribute("aria-disabled")),this.item&&(this.item.classList.remove("disabled"),this.item.removeAttribute("aria-disabled"),this.item.tabIndex=0)):(this.element&&(this.element.classList.add("disabled"),this.element.setAttribute("aria-disabled","true")),this.item&&(this.item.classList.add("disabled"),this.item.setAttribute("aria-disabled","true")))}updateChecked(){if(!this.item)return;const T=this.action.checked;this.item.classList.toggle("checked",!!T),T!==void 0?(this.item.setAttribute("role","menuitemcheckbox"),this.item.setAttribute("aria-checked",T?"true":"false")):(this.item.setAttribute("role","menuitem"),this.item.setAttribute("aria-checked",""))}getMnemonic(){return this.mnemonic}applyStyle(){const T=this.element&&this.element.classList.contains("focused"),M=T&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,A=T&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,P=T&&this.menuStyle.selectionBorderColor?`1px solid ${this.menuStyle.selectionBorderColor}`:"",N=T&&this.menuStyle.selectionBorderColor?"-1px":"";this.item&&(this.item.style.color=M??"",this.item.style.backgroundColor=A??"",this.item.style.outline=P,this.item.style.outlineOffset=N),this.check&&(this.check.style.color=M??"")}}class h extends f{constructor(T,M,A,P,N){super(T,T,P,N),this.submenuActions=M,this.parentData=A,this.submenuOptions=P,this.mysubmenu=null,this.submenuDisposables=this._register(new c.DisposableStore),this.mouseOver=!1,this.expandDirection=P&&P.expandDirection!==void 0?P.expandDirection:{horizontal:r.Right,vertical:u.Below},this.showScheduler=new o.RunOnceScheduler(()=>{this.mouseOver&&(this.cleanupExistingSubmenu(!1),this.createSubmenu(!1))},250),this.hideScheduler=new o.RunOnceScheduler(()=>{this.element&&!(0,I.isAncestor)((0,I.getActiveElement)(),this.element)&&this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))},750)}render(T){super.render(T),this.element&&(this.item&&(this.item.classList.add("monaco-submenu-item"),this.item.tabIndex=0,this.item.setAttribute("aria-haspopup","true"),this.updateAriaExpanded("false"),this.submenuIndicator=(0,I.append)(this.item,(0,I.$)("span.submenu-indicator"+s.ThemeIcon.asCSSSelector(t.Codicon.menuSubmenu))),this.submenuIndicator.setAttribute("aria-hidden","true")),this._register((0,I.addDisposableListener)(this.element,I.EventType.KEY_UP,M=>{const A=new E.StandardKeyboardEvent(M);(A.equals(17)||A.equals(3))&&(I.EventHelper.stop(M,!0),this.createSubmenu(!0))})),this._register((0,I.addDisposableListener)(this.element,I.EventType.KEY_DOWN,M=>{const A=new E.StandardKeyboardEvent(M);(0,I.getActiveElement)()===this.item&&(A.equals(17)||A.equals(3))&&I.EventHelper.stop(M,!0)})),this._register((0,I.addDisposableListener)(this.element,I.EventType.MOUSE_OVER,M=>{this.mouseOver||(this.mouseOver=!0,this.showScheduler.schedule())})),this._register((0,I.addDisposableListener)(this.element,I.EventType.MOUSE_LEAVE,M=>{this.mouseOver=!1})),this._register((0,I.addDisposableListener)(this.element,I.EventType.FOCUS_OUT,M=>{this.element&&!(0,I.isAncestor)((0,I.getActiveElement)(),this.element)&&this.hideScheduler.schedule()})),this._register(this.parentData.parent.onScroll(()=>{this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))})))}updateEnabled(){}onClick(T){I.EventHelper.stop(T,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)}cleanupExistingSubmenu(T){if(this.parentData.submenu&&(T||this.parentData.submenu!==this.mysubmenu)){try{this.parentData.submenu.dispose()}catch{}this.parentData.submenu=void 0,this.updateAriaExpanded("false"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}calculateSubmenuMenuLayout(T,M,A,P){const N={top:0,left:0};return N.left=(0,b.layout)(T.width,M.width,{position:P.horizontal===r.Right?0:1,offset:A.left,size:A.width}),N.left>=A.left&&N.left{new E.StandardKeyboardEvent(V).equals(15)&&(I.EventHelper.stop(V,!0),this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0))})),this.submenuDisposables.add((0,I.addDisposableListener)(this.submenuContainer,I.EventType.KEY_DOWN,V=>{new E.StandardKeyboardEvent(V).equals(15)&&I.EventHelper.stop(V,!0)})),this.submenuDisposables.add(this.parentData.submenu.onDidCancel(()=>{this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0)})),this.parentData.submenu.focus(T),this.mysubmenu=this.parentData.submenu}}updateAriaExpanded(T){this.item&&this.item?.setAttribute("aria-expanded",T)}applyStyle(){super.applyStyle();const M=this.element&&this.element.classList.contains("focused")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=M??"")}dispose(){super.dispose(),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)}}class v extends _.ActionViewItem{constructor(T,M,A,P){super(T,M,A),this.menuStyles=P}render(T){super.render(T),this.label&&(this.label.style.borderBottomColor=this.menuStyles.separatorColor?`${this.menuStyles.separatorColor}`:"")}}function w(D){const T=e.MENU_MNEMONIC_REGEX,M=T.exec(D);if(!M)return D;const A=!M[1];return D.replace(T,A?"$2$3":"").trim()}function S(D){const T=(0,i.getCodiconFontCharacters)()[D.id];return`.codicon-${D.id}:before { content: '\\${T.toString(16)}'; }`}function L(D,T){let M=` +.monaco-menu { + font-size: 13px; + border-radius: 5px; + min-width: 160px; +} + +${S(t.Codicon.menuSelection)} +${S(t.Codicon.menuSubmenu)} + +.monaco-menu .monaco-action-bar { + text-align: right; + overflow: hidden; + white-space: nowrap; +} + +.monaco-menu .monaco-action-bar .actions-container { + display: flex; + margin: 0 auto; + padding: 0; + width: 100%; + justify-content: flex-end; +} + +.monaco-menu .monaco-action-bar.vertical .actions-container { + display: inline-block; +} + +.monaco-menu .monaco-action-bar.reverse .actions-container { + flex-direction: row-reverse; +} + +.monaco-menu .monaco-action-bar .action-item { + cursor: pointer; + display: inline-block; + transition: transform 50ms ease; + position: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */ +} + +.monaco-menu .monaco-action-bar .action-item.disabled { + cursor: default; +} + +.monaco-menu .monaco-action-bar .action-item .icon, +.monaco-menu .monaco-action-bar .action-item .codicon { + display: inline-block; +} + +.monaco-menu .monaco-action-bar .action-item .codicon { + display: flex; + align-items: center; +} + +.monaco-menu .monaco-action-bar .action-label { + font-size: 11px; + margin-right: 4px; +} + +.monaco-menu .monaco-action-bar .action-item.disabled .action-label, +.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover { + color: var(--vscode-disabledForeground); +} + +/* Vertical actions */ + +.monaco-menu .monaco-action-bar.vertical { + text-align: left; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + display: block; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator { + display: block; + border-bottom: 1px solid var(--vscode-menu-separatorBackground); + padding-top: 1px; + padding: 30px; +} + +.monaco-menu .secondary-actions .monaco-action-bar .action-label { + margin-left: 6px; +} + +/* Action Items */ +.monaco-menu .monaco-action-bar .action-item.select-container { + overflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */ + flex: 1; + max-width: 170px; + min-width: 60px; + display: flex; + align-items: center; + justify-content: center; + margin-right: 10px; +} + +.monaco-menu .monaco-action-bar.vertical { + margin-left: 0; + overflow: visible; +} + +.monaco-menu .monaco-action-bar.vertical .actions-container { + display: block; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + padding: 0; + transform: none; + display: flex; +} + +.monaco-menu .monaco-action-bar.vertical .action-item.active { + transform: none; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item { + flex: 1 1 auto; + display: flex; + height: 2em; + align-items: center; + position: relative; + margin: 0 4px; + border-radius: 4px; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .keybinding, +.monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .keybinding { + opacity: unset; +} + +.monaco-menu .monaco-action-bar.vertical .action-label { + flex: 1 1 auto; + text-decoration: none; + padding: 0 1em; + background: none; + font-size: 12px; + line-height: 1; +} + +.monaco-menu .monaco-action-bar.vertical .keybinding, +.monaco-menu .monaco-action-bar.vertical .submenu-indicator { + display: inline-block; + flex: 2 1 auto; + padding: 0 1em; + text-align: right; + font-size: 12px; + line-height: 1; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator { + height: 100%; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon { + font-size: 16px !important; + display: flex; + align-items: center; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before { + margin-left: auto; + margin-right: -20px; +} + +.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding, +.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator { + opacity: 0.4; +} + +.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) { + display: inline-block; + box-sizing: border-box; + margin: 0; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + position: static; + overflow: visible; +} + +.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu { + position: absolute; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator { + width: 100%; + height: 0px !important; + opacity: 1; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator.text { + padding: 0.7em 1em 0.1em 1em; + font-weight: bold; + opacity: 1; +} + +.monaco-menu .monaco-action-bar.vertical .action-label:hover { + color: inherit; +} + +.monaco-menu .monaco-action-bar.vertical .menu-item-check { + position: absolute; + visibility: hidden; + width: 1em; + height: 100%; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check { + visibility: visible; + display: flex; + align-items: center; + justify-content: center; +} + +/* Context Menu */ + +.context-view.monaco-menu-container { + outline: 0; + border: none; + animation: fadeIn 0.083s linear; + -webkit-app-region: no-drag; +} + +.context-view.monaco-menu-container :focus, +.context-view.monaco-menu-container .monaco-action-bar.vertical:focus, +.context-view.monaco-menu-container .monaco-action-bar.vertical :focus { + outline: 0; +} + +.hc-black .context-view.monaco-menu-container, +.hc-light .context-view.monaco-menu-container, +:host-context(.hc-black) .context-view.monaco-menu-container, +:host-context(.hc-light) .context-view.monaco-menu-container { + box-shadow: none; +} + +.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused, +.hc-light .monaco-menu .monaco-action-bar.vertical .action-item.focused, +:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused, +:host-context(.hc-light) .monaco-menu .monaco-action-bar.vertical .action-item.focused { + background: none; +} + +/* Vertical Action Bar Styles */ + +.monaco-menu .monaco-action-bar.vertical { + padding: 4px 0; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item { + height: 2em; +} + +.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator), +.monaco-menu .monaco-action-bar.vertical .keybinding { + font-size: inherit; + padding: 0 2em; + max-height: 100%; +} + +.monaco-menu .monaco-action-bar.vertical .menu-item-check { + font-size: inherit; + width: 2em; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator { + font-size: inherit; + margin: 5px 0 !important; + padding: 0; + border-radius: 0; +} + +.linux .monaco-menu .monaco-action-bar.vertical .action-label.separator, +:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator { + margin-left: 0; + margin-right: 0; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator { + font-size: 60%; + padding: 0 1.8em; +} + +.linux .monaco-menu .monaco-action-bar.vertical .submenu-indicator, +:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator { + height: 100%; + mask-size: 10px 10px; + -webkit-mask-size: 10px 10px; +} + +.monaco-menu .action-item { + cursor: default; +}`;if(T){M+=` + /* Arrows */ + .monaco-scrollable-element > .scrollbar > .scra { + cursor: pointer; + font-size: 11px !important; + } + + .monaco-scrollable-element > .visible { + opacity: 1; + + /* Background rule added for IE9 - to allow clicks on dom node */ + background:rgba(0,0,0,0); + + transition: opacity 100ms linear; + } + .monaco-scrollable-element > .invisible { + opacity: 0; + pointer-events: none; + } + .monaco-scrollable-element > .invisible.fade { + transition: opacity 800ms linear; + } + + /* Scrollable Content Inset Shadow */ + .monaco-scrollable-element > .shadow { + position: absolute; + display: none; + } + .monaco-scrollable-element > .shadow.top { + display: block; + top: 0; + left: 3px; + height: 3px; + width: 100%; + } + .monaco-scrollable-element > .shadow.left { + display: block; + top: 3px; + left: 0; + height: 100%; + width: 3px; + } + .monaco-scrollable-element > .shadow.top-left-corner { + display: block; + top: 0; + left: 0; + height: 3px; + width: 3px; + } + `;const A=D.scrollbarShadow;A&&(M+=` + .monaco-scrollable-element > .shadow.top { + box-shadow: ${A} 0 6px 6px -6px inset; + } + + .monaco-scrollable-element > .shadow.left { + box-shadow: ${A} 6px 0 6px -6px inset; + } + + .monaco-scrollable-element > .shadow.top.left { + box-shadow: ${A} 6px 6px 6px -6px inset; + } + `);const P=D.scrollbarSliderBackground;P&&(M+=` + .monaco-scrollable-element > .scrollbar > .slider { + background: ${P}; + } + `);const N=D.scrollbarSliderHoverBackground;N&&(M+=` + .monaco-scrollable-element > .scrollbar > .slider:hover { + background: ${N}; + } + `);const O=D.scrollbarSliderActiveBackground;O&&(M+=` + .monaco-scrollable-element > .scrollbar > .slider.active { + background: ${O}; + } + `)}return M}}),define(ne[643],se([1,0,87,359,41,26,30,6,2,3,44,477]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ToggleMenuAction=e.ToolBar=void 0;class n extends _.Disposable{constructor(i,s,g={orientation:0}){super(),this.submenuActionViewItems=[],this.hasSecondaryActions=!1,this._onDidChangeDropdownVisibility=this._register(new m.EventMultiplexer),this.onDidChangeDropdownVisibility=this._onDidChangeDropdownVisibility.event,this.disposables=this._register(new _.DisposableStore),g.hoverDelegate=g.hoverDelegate??this._register((0,p.createInstantHoverDelegate)()),this.options=g,this.toggleMenuAction=this._register(new o(()=>this.toggleMenuActionViewItem?.show(),g.toggleMenuTitle)),this.element=document.createElement("div"),this.element.className="monaco-toolbar",i.appendChild(this.element),this.actionBar=this._register(new d.ActionBar(this.element,{orientation:g.orientation,ariaLabel:g.ariaLabel,actionRunner:g.actionRunner,allowContextMenu:g.allowContextMenu,highlightToggledItems:g.highlightToggledItems,hoverDelegate:g.hoverDelegate,actionViewItemProvider:(c,l)=>{if(c.id===o.ID)return this.toggleMenuActionViewItem=new k.DropdownMenuActionViewItem(c,c.menuActions,s,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:y.ThemeIcon.asClassNameArray(g.moreIcon??E.Codicon.toolBarMore),anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,isMenu:!0,hoverDelegate:this.options.hoverDelegate}),this.toggleMenuActionViewItem.setActionContext(this.actionBar.context),this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility)),this.toggleMenuActionViewItem;if(g.actionViewItemProvider){const a=g.actionViewItemProvider(c,l);if(a)return a}if(c instanceof I.SubmenuAction){const a=new k.DropdownMenuActionViewItem(c,c.actions,s,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:c.class,anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,hoverDelegate:this.options.hoverDelegate});return a.setActionContext(this.actionBar.context),this.submenuActionViewItems.push(a),this.disposables.add(this._onDidChangeDropdownVisibility.add(a.onDidChangeVisibility)),a}}}))}set actionRunner(i){this.actionBar.actionRunner=i}get actionRunner(){return this.actionBar.actionRunner}getElement(){return this.element}getItemAction(i){return this.actionBar.getAction(i)}setActions(i,s){this.clear();const g=i?i.slice(0):[];this.hasSecondaryActions=!!(s&&s.length>0),this.hasSecondaryActions&&s&&(this.toggleMenuAction.menuActions=s.slice(0),g.push(this.toggleMenuAction)),g.forEach(c=>{this.actionBar.push(c,{icon:this.options.icon??!0,label:this.options.label??!1,keybinding:this.getKeybindingLabel(c)})})}getKeybindingLabel(i){return this.options.getKeyBinding?.(i)?.getLabel()??void 0}clear(){this.submenuActionViewItems=[],this.disposables.clear(),this.actionBar.clear()}dispose(){this.clear(),this.disposables.dispose(),super.dispose()}}e.ToolBar=n;class o extends I.Action{static{this.ID="toolbar.toggle.more"}constructor(i,s){s=s||b.localize(17,"More Actions..."),super(o.ID,s,void 0,!0),this._menuActions=[],this.toggleDropdownMenu=i}async run(){this.toggleDropdownMenu()}get menuActions(){return this._menuActions}set menuActions(i){this._menuActions=i}}e.ToggleMenuAction=o}),define(ne[176],se([1,0,5,93,47,87,260,259,257,115,175,249,159,41,13,14,26,30,45,6,82,2,141,19,3,44,21,46,478]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractTree=e.TreeFindMatchType=e.TreeFindMode=e.FuzzyToggle=e.ModeToggle=e.TreeRenderer=e.RenderIndentGuides=e.ComposedTreeDelegate=void 0;class L extends _.ElementsDragAndDropData{constructor(B){super(B.elements.map($=>$.element)),this.data=B}}function D(X){return X instanceof _.ElementsDragAndDropData?new L(X):X}class T{constructor(B,$){this.modelProvider=B,this.dnd=$,this.autoExpandDisposable=u.Disposable.None,this.disposables=new u.DisposableStore}getDragURI(B){return this.dnd.getDragURI(B.element)}getDragLabel(B,$){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(B.map(Q=>Q.element),$)}onDragStart(B,$){this.dnd.onDragStart?.(D(B),$)}onDragOver(B,$,Q,Z,te,re=!0){const le=this.dnd.onDragOver(D(B),$&&$.element,Q,Z,te),me=this.autoExpandNode!==$;if(me&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=$),typeof $>"u")return le;if(me&&typeof le!="boolean"&&le.autoExpand&&(this.autoExpandDisposable=(0,s.disposableTimeout)(()=>{const Me=this.modelProvider(),Ae=Me.getNodeLocation($);Me.isCollapsed(Ae)&&Me.setCollapsed(Ae,!1),this.autoExpandNode=void 0},500,this.disposables)),typeof le=="boolean"||!le.accept||typeof le.bubble>"u"||le.feedback){if(!re){const Me=typeof le=="boolean"?le:le.accept,Ae=typeof le=="boolean"?void 0:le.effect;return{accept:Me,effect:Ae,feedback:[Q]}}return le}if(le.bubble===1){const Me=this.modelProvider(),Ae=Me.getNodeLocation($),Ne=Me.getParentNodeLocation(Ae),Ke=Me.getNode(Ne),ze=Ne&&Me.getListIndex(Ne);return this.onDragOver(B,Ke,ze,Z,te,!1)}const Ce=this.modelProvider(),ye=Ce.getNodeLocation($),Le=Ce.getListIndex(ye),Ee=Ce.getListRenderCount(ye);return{...le,feedback:(0,i.range)(Le,Le+Ee)}}drop(B,$,Q,Z,te){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(D(B),$&&$.element,Q,Z,te)}onDragEnd(B){this.dnd.onDragEnd?.(B)}dispose(){this.disposables.dispose(),this.dnd.dispose()}}function M(X,B){return B&&{...B,identityProvider:B.identityProvider&&{getId($){return B.identityProvider.getId($.element)}},dnd:B.dnd&&new T(X,B.dnd),multipleSelectionController:B.multipleSelectionController&&{isSelectionSingleChangeEvent($){return B.multipleSelectionController.isSelectionSingleChangeEvent({...$,element:$.element})},isSelectionRangeChangeEvent($){return B.multipleSelectionController.isSelectionRangeChangeEvent({...$,element:$.element})}},accessibilityProvider:B.accessibilityProvider&&{...B.accessibilityProvider,getSetSize($){const Q=X(),Z=Q.getNodeLocation($),te=Q.getParentNodeLocation(Z);return Q.getNode(te).visibleChildrenCount},getPosInSet($){return $.visibleChildIndex+1},isChecked:B.accessibilityProvider&&B.accessibilityProvider.isChecked?$=>B.accessibilityProvider.isChecked($.element):void 0,getRole:B.accessibilityProvider&&B.accessibilityProvider.getRole?$=>B.accessibilityProvider.getRole($.element):()=>"treeitem",getAriaLabel($){return B.accessibilityProvider.getAriaLabel($.element)},getWidgetAriaLabel(){return B.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:B.accessibilityProvider&&B.accessibilityProvider.getWidgetRole?()=>B.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:B.accessibilityProvider&&B.accessibilityProvider.getAriaLevel?$=>B.accessibilityProvider.getAriaLevel($.element):$=>$.depth,getActiveDescendantId:B.accessibilityProvider.getActiveDescendantId&&($=>B.accessibilityProvider.getActiveDescendantId($.element))},keyboardNavigationLabelProvider:B.keyboardNavigationLabelProvider&&{...B.keyboardNavigationLabelProvider,getKeyboardNavigationLabel($){return B.keyboardNavigationLabelProvider.getKeyboardNavigationLabel($.element)}}}}class A{constructor(B){this.delegate=B}getHeight(B){return this.delegate.getHeight(B.element)}getTemplateId(B){return this.delegate.getTemplateId(B.element)}hasDynamicHeight(B){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(B.element)}setDynamicHeight(B,$){this.delegate.setDynamicHeight?.(B.element,$)}}e.ComposedTreeDelegate=A;var P;(function(X){X.None="none",X.OnHover="onHover",X.Always="always"})(P||(e.RenderIndentGuides=P={}));class N{get elements(){return this._elements}constructor(B,$=[]){this._elements=$,this.disposables=new u.DisposableStore,this.onDidChange=a.Event.forEach(B,Q=>this._elements=Q,this.disposables)}dispose(){this.disposables.dispose()}}class O{static{this.DefaultIndent=8}constructor(B,$,Q,Z,te,re={}){this.renderer=B,this.modelProvider=$,this.activeNodes=Z,this.renderedIndentGuides=te,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=O.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.activeIndentNodes=new Set,this.indentGuidesDisposable=u.Disposable.None,this.disposables=new u.DisposableStore,this.templateId=B.templateId,this.updateOptions(re),a.Event.map(Q,le=>le.node)(this.onDidChangeNodeTwistieState,this,this.disposables),B.onDidChangeTwistieState?.(this.onDidChangeTwistieState,this,this.disposables)}updateOptions(B={}){if(typeof B.indent<"u"){const $=(0,C.clamp)(B.indent,0,40);if($!==this.indent){this.indent=$;for(const[Q,Z]of this.renderedNodes)this.renderTreeElement(Q,Z)}}if(typeof B.renderIndentGuides<"u"){const $=B.renderIndentGuides!==P.None;if($!==this.shouldRenderIndentGuides){this.shouldRenderIndentGuides=$;for(const[Q,Z]of this.renderedNodes)this._renderIndentGuides(Q,Z);if(this.indentGuidesDisposable.dispose(),$){const Q=new u.DisposableStore;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,Q),this.indentGuidesDisposable=Q,this._onDidChangeActiveNodes(this.activeNodes.elements)}}}typeof B.hideTwistiesOfChildlessElements<"u"&&(this.hideTwistiesOfChildlessElements=B.hideTwistiesOfChildlessElements)}renderTemplate(B){const $=(0,d.append)(B,(0,d.$)(".monaco-tl-row")),Q=(0,d.append)($,(0,d.$)(".monaco-tl-indent")),Z=(0,d.append)($,(0,d.$)(".monaco-tl-twistie")),te=(0,d.append)($,(0,d.$)(".monaco-tl-contents")),re=this.renderer.renderTemplate(te);return{container:B,indent:Q,twistie:Z,indentGuidesDisposable:u.Disposable.None,templateData:re}}renderElement(B,$,Q,Z){this.renderedNodes.set(B,Q),this.renderedElements.set(B.element,B),this.renderTreeElement(B,Q),this.renderer.renderElement(B,$,Q.templateData,Z)}disposeElement(B,$,Q,Z){Q.indentGuidesDisposable.dispose(),this.renderer.disposeElement?.(B,$,Q.templateData,Z),typeof Z=="number"&&(this.renderedNodes.delete(B),this.renderedElements.delete(B.element))}disposeTemplate(B){this.renderer.disposeTemplate(B.templateData)}onDidChangeTwistieState(B){const $=this.renderedElements.get(B);$&&this.onDidChangeNodeTwistieState($)}onDidChangeNodeTwistieState(B){const $=this.renderedNodes.get(B);$&&(this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderTreeElement(B,$))}renderTreeElement(B,$){const Q=O.DefaultIndent+(B.depth-1)*this.indent;$.twistie.style.paddingLeft=`${Q}px`,$.indent.style.width=`${Q+this.indent-16}px`,B.collapsible?$.container.setAttribute("aria-expanded",String(!B.collapsed)):$.container.removeAttribute("aria-expanded"),$.twistie.classList.remove(...c.ThemeIcon.asClassNameArray(g.Codicon.treeItemExpanded));let Z=!1;this.renderer.renderTwistie&&(Z=this.renderer.renderTwistie(B.element,$.twistie)),B.collapsible&&(!this.hideTwistiesOfChildlessElements||B.visibleChildrenCount>0)?(Z||$.twistie.classList.add(...c.ThemeIcon.asClassNameArray(g.Codicon.treeItemExpanded)),$.twistie.classList.add("collapsible"),$.twistie.classList.toggle("collapsed",B.collapsed)):$.twistie.classList.remove("collapsible","collapsed"),this._renderIndentGuides(B,$)}_renderIndentGuides(B,$){if((0,d.clearNode)($.indent),$.indentGuidesDisposable.dispose(),!this.shouldRenderIndentGuides)return;const Q=new u.DisposableStore,Z=this.modelProvider();for(;;){const te=Z.getNodeLocation(B),re=Z.getParentNodeLocation(te);if(!re)break;const le=Z.getNode(re),me=(0,d.$)(".indent-guide",{style:`width: ${this.indent}px`});this.activeIndentNodes.has(le)&&me.classList.add("active"),$.indent.childElementCount===0?$.indent.appendChild(me):$.indent.insertBefore(me,$.indent.firstElementChild),this.renderedIndentGuides.add(le,me),Q.add((0,u.toDisposable)(()=>this.renderedIndentGuides.delete(le,me))),B=le}$.indentGuidesDisposable=Q}_onDidChangeActiveNodes(B){if(!this.shouldRenderIndentGuides)return;const $=new Set,Q=this.modelProvider();B.forEach(Z=>{const te=Q.getNodeLocation(Z);try{const re=Q.getParentNodeLocation(te);Z.collapsible&&Z.children.length>0&&!Z.collapsed?$.add(Z):re&&$.add(Q.getNode(re))}catch{}}),this.activeIndentNodes.forEach(Z=>{$.has(Z)||this.renderedIndentGuides.forEach(Z,te=>te.classList.remove("active"))}),$.forEach(Z=>{this.activeIndentNodes.has(Z)||this.renderedIndentGuides.forEach(Z,te=>te.classList.add("active"))}),this.activeIndentNodes=$}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),(0,u.dispose)(this.disposables)}}e.TreeRenderer=O;class F{get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}constructor(B,$,Q){this.tree=B,this.keyboardNavigationLabelProvider=$,this._filter=Q,this._totalCount=0,this._matchCount=0,this._pattern="",this._lowercasePattern="",this.disposables=new u.DisposableStore,B.onWillRefilter(this.reset,this,this.disposables)}filter(B,$){let Q=1;if(this._filter){const re=this._filter.filter(B,$);if(typeof re=="boolean"?Q=re?1:0:(0,n.isFilterResult)(re)?Q=(0,n.getVisibleState)(re.visibility):Q=re,Q===0)return!1}if(this._totalCount++,!this._pattern)return this._matchCount++,{data:r.FuzzyScore.Default,visibility:Q};const Z=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(B),te=Array.isArray(Z)?Z:[Z];for(const re of te){const le=re&&re.toString();if(typeof le>"u")return{data:r.FuzzyScore.Default,visibility:Q};let me;if(this.tree.findMatchType===H.Contiguous){const Ce=le.toLowerCase().indexOf(this._lowercasePattern);if(Ce>-1){me=[Number.MAX_SAFE_INTEGER,0];for(let ye=this._lowercasePattern.length;ye>0;ye--)me.push(Ce+ye-1)}}else me=(0,r.fuzzyScore)(this._pattern,this._lowercasePattern,0,le,le.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(me)return this._matchCount++,te.length===1?{data:me,visibility:Q}:{data:{label:le,score:me},visibility:Q}}return this.tree.findMode===q.Filter?typeof this.tree.options.defaultFindVisibility=="number"?this.tree.options.defaultFindVisibility:this.tree.options.defaultFindVisibility?this.tree.options.defaultFindVisibility(B):2:{data:r.FuzzyScore.Default,visibility:Q}}reset(){this._totalCount=0,this._matchCount=0}dispose(){(0,u.dispose)(this.disposables)}}class x extends p.Toggle{constructor(B){super({icon:g.Codicon.listFilter,title:(0,h.localize)(18,"Filter"),isChecked:B.isChecked??!1,hoverDelegate:B.hoverDelegate??(0,v.getDefaultHoverDelegate)("element"),inputActiveOptionBorder:B.inputActiveOptionBorder,inputActiveOptionForeground:B.inputActiveOptionForeground,inputActiveOptionBackground:B.inputActiveOptionBackground})}}e.ModeToggle=x;class W extends p.Toggle{constructor(B){super({icon:g.Codicon.searchFuzzy,title:(0,h.localize)(19,"Fuzzy Match"),isChecked:B.isChecked??!1,hoverDelegate:B.hoverDelegate??(0,v.getDefaultHoverDelegate)("element"),inputActiveOptionBorder:B.inputActiveOptionBorder,inputActiveOptionForeground:B.inputActiveOptionForeground,inputActiveOptionBackground:B.inputActiveOptionBackground})}}e.FuzzyToggle=W;const V={inputBoxStyles:m.unthemedInboxStyles,toggleStyles:p.unthemedToggleStyles,listFilterWidgetBackground:void 0,listFilterWidgetNoMatchesOutline:void 0,listFilterWidgetOutline:void 0,listFilterWidgetShadow:void 0};var q;(function(X){X[X.Highlight=0]="Highlight",X[X.Filter=1]="Filter"})(q||(e.TreeFindMode=q={}));var H;(function(X){X[X.Fuzzy=0]="Fuzzy",X[X.Contiguous=1]="Contiguous"})(H||(e.TreeFindMatchType=H={}));class z extends u.Disposable{set mode(B){this.modeToggle.checked=B===q.Filter,this.findInput.inputBox.setPlaceHolder(B===q.Filter?(0,h.localize)(20,"Type to filter"):(0,h.localize)(21,"Type to search"))}set matchType(B){this.matchTypeToggle.checked=B===H.Fuzzy}constructor(B,$,Q,Z,te,re){super(),this.tree=$,this.elements=(0,d.h)(".monaco-tree-type-filter",[(0,d.h)(".monaco-tree-type-filter-grab.codicon.codicon-debug-gripper@grab",{tabIndex:0}),(0,d.h)(".monaco-tree-type-filter-input@findInput"),(0,d.h)(".monaco-tree-type-filter-actionbar@actionbar")]),this.width=0,this.right=0,this.top=0,this._onDidDisable=new a.Emitter,B.appendChild(this.elements.root),this._register((0,u.toDisposable)(()=>this.elements.root.remove()));const le=re?.styles??V;le.listFilterWidgetBackground&&(this.elements.root.style.backgroundColor=le.listFilterWidgetBackground),le.listFilterWidgetShadow&&(this.elements.root.style.boxShadow=`0 0 8px 2px ${le.listFilterWidgetShadow}`);const me=this._register((0,v.createInstantHoverDelegate)());this.modeToggle=this._register(new x({...le.toggleStyles,isChecked:Z===q.Filter,hoverDelegate:me})),this.matchTypeToggle=this._register(new W({...le.toggleStyles,isChecked:te===H.Fuzzy,hoverDelegate:me})),this.onDidChangeMode=a.Event.map(this.modeToggle.onChange,()=>this.modeToggle.checked?q.Filter:q.Highlight,this._store),this.onDidChangeMatchType=a.Event.map(this.matchTypeToggle.onChange,()=>this.matchTypeToggle.checked?H.Fuzzy:H.Contiguous,this._store),this.findInput=this._register(new y.FindInput(this.elements.findInput,Q,{label:(0,h.localize)(22,"Type to search"),additionalToggles:[this.modeToggle,this.matchTypeToggle],showCommonFindToggles:!1,inputBoxStyles:le.inputBoxStyles,toggleStyles:le.toggleStyles,history:re?.history})),this.actionbar=this._register(new E.ActionBar(this.elements.actionbar)),this.mode=Z;const Ce=this._register(new k.DomEmitter(this.findInput.inputBox.inputElement,"keydown")),ye=a.Event.chain(Ce.event,Ae=>Ae.map(Ne=>new I.StandardKeyboardEvent(Ne)));this._register(ye(Ae=>{if(Ae.equals(3)){Ae.preventDefault(),Ae.stopPropagation(),this.findInput.inputBox.addToHistory(),this.tree.domFocus();return}if(Ae.equals(18)){Ae.preventDefault(),Ae.stopPropagation(),this.findInput.inputBox.isAtLastInHistory()||this.findInput.inputBox.isNowhereInHistory()?(this.findInput.inputBox.addToHistory(),this.tree.domFocus()):this.findInput.inputBox.showNextValue();return}if(Ae.equals(16)){Ae.preventDefault(),Ae.stopPropagation(),this.findInput.inputBox.showPreviousValue();return}}));const Le=this._register(new t.Action("close",(0,h.localize)(23,"Close"),"codicon codicon-close",!0,()=>this.dispose()));this.actionbar.push(Le,{icon:!0,label:!1});const Ee=this._register(new k.DomEmitter(this.elements.grab,"mousedown"));this._register(Ee.event(Ae=>{const Ne=new u.DisposableStore,Ke=Ne.add(new k.DomEmitter((0,d.getWindow)(Ae),"mousemove")),ze=Ne.add(new k.DomEmitter((0,d.getWindow)(Ae),"mouseup")),Ge=this.right,it=Ae.pageX,Oe=this.top,Fe=Ae.pageY;this.elements.grab.classList.add("grabbing");const fe=this.elements.root.style.transition;this.elements.root.style.transition="unset";const _e=xe=>{const be=xe.pageX-it;this.right=Ge-be;const ve=xe.pageY-Fe;this.top=Oe+ve,this.layout()};Ne.add(Ke.event(_e)),Ne.add(ze.event(xe=>{_e(xe),this.elements.grab.classList.remove("grabbing"),this.elements.root.style.transition=fe,Ne.dispose()}))}));const Me=a.Event.chain(this._register(new k.DomEmitter(this.elements.grab,"keydown")).event,Ae=>Ae.map(Ne=>new I.StandardKeyboardEvent(Ne)));this._register(Me(Ae=>{let Ne,Ke;if(Ae.keyCode===15?Ne=Number.POSITIVE_INFINITY:Ae.keyCode===17?Ne=0:Ae.keyCode===10&&(Ne=this.right===0?Number.POSITIVE_INFINITY:0),Ae.keyCode===16?Ke=0:Ae.keyCode===18&&(Ke=Number.POSITIVE_INFINITY),Ne!==void 0&&(Ae.preventDefault(),Ae.stopPropagation(),this.right=Ne,this.layout()),Ke!==void 0){Ae.preventDefault(),Ae.stopPropagation(),this.top=Ke;const ze=this.elements.root.style.transition;this.elements.root.style.transition="unset",this.layout(),setTimeout(()=>{this.elements.root.style.transition=ze},0)}})),this.onDidChangeValue=this.findInput.onDidChange}layout(B=this.width){this.width=B,this.right=(0,C.clamp)(this.right,0,Math.max(0,B-212)),this.elements.root.style.right=`${this.right}px`,this.top=(0,C.clamp)(this.top,0,24),this.elements.root.style.top=`${this.top}px`}showMessage(B){this.findInput.showMessage(B)}clearMessage(){this.findInput.clearMessage()}async dispose(){this._onDidDisable.fire(),this.elements.root.classList.add("disabled"),await(0,s.timeout)(300),super.dispose()}}class U{get pattern(){return this._pattern}get mode(){return this._mode}set mode(B){B!==this._mode&&(this._mode=B,this.widget&&(this.widget.mode=this._mode),this.tree.refilter(),this.render(),this._onDidChangeMode.fire(B))}get matchType(){return this._matchType}set matchType(B){B!==this._matchType&&(this._matchType=B,this.widget&&(this.widget.matchType=this._matchType),this.tree.refilter(),this.render(),this._onDidChangeMatchType.fire(B))}constructor(B,$,Q,Z,te,re={}){this.tree=B,this.view=Q,this.filter=Z,this.contextViewProvider=te,this.options=re,this._pattern="",this.width=0,this._onDidChangeMode=new a.Emitter,this.onDidChangeMode=this._onDidChangeMode.event,this._onDidChangeMatchType=new a.Emitter,this.onDidChangeMatchType=this._onDidChangeMatchType.event,this._onDidChangePattern=new a.Emitter,this._onDidChangeOpenState=new a.Emitter,this.onDidChangeOpenState=this._onDidChangeOpenState.event,this.enabledDisposables=new u.DisposableStore,this.disposables=new u.DisposableStore,this._mode=B.options.defaultFindMode??q.Highlight,this._matchType=B.options.defaultFindMatchType??H.Fuzzy,$.onDidSplice(this.onDidSpliceModel,this,this.disposables)}updateOptions(B={}){B.defaultFindMode!==void 0&&(this.mode=B.defaultFindMode),B.defaultFindMatchType!==void 0&&(this.matchType=B.defaultFindMatchType)}onDidSpliceModel(){!this.widget||this.pattern.length===0||(this.tree.refilter(),this.render())}render(){const B=this.filter.totalCount>0&&this.filter.matchCount===0;this.pattern&&B?((0,S.alert)((0,h.localize)(24,"No results")),this.tree.options.showNotFoundMessage??!0?this.widget?.showMessage({type:2,content:(0,h.localize)(25,"No elements found.")}):this.widget?.showMessage({type:2})):(this.widget?.clearMessage(),this.pattern&&(0,S.alert)((0,h.localize)(26,"{0} results",this.filter.matchCount)))}shouldAllowFocus(B){return!this.widget||!this.pattern||this.filter.totalCount>0&&this.filter.matchCount<=1?!0:!r.FuzzyScore.isDefault(B.filterData)}layout(B){this.width=B,this.widget?.layout(B)}dispose(){this._history=void 0,this._onDidChangePattern.dispose(),this.enabledDisposables.dispose(),this.disposables.dispose()}}function j(X,B){return X.position===B.position&&Y(X,B)}function Y(X,B){return X.node.element===B.node.element&&X.startIndex===B.startIndex&&X.height===B.height&&X.endIndex===B.endIndex}class G{constructor(B=[]){this.stickyNodes=B}get count(){return this.stickyNodes.length}equal(B){return(0,i.equals)(this.stickyNodes,B.stickyNodes,j)}lastNodePartiallyVisible(){if(this.count===0)return!1;const B=this.stickyNodes[this.count-1];if(this.count===1)return B.position!==0;const $=this.stickyNodes[this.count-2];return $.position+$.height!==B.position}animationStateChanged(B){if(!(0,i.equals)(this.stickyNodes,B.stickyNodes,Y)||this.count===0)return!1;const $=this.stickyNodes[this.count-1],Q=B.stickyNodes[B.count-1];return $.position!==Q.position}}class K{constrainStickyScrollNodes(B,$,Q){for(let Z=0;ZQ||Z>=$)return B.slice(0,Z)}return B}}class R extends u.Disposable{constructor(B,$,Q,Z,te,re={}){super(),this.tree=B,this.model=$,this.view=Q,this.treeDelegate=te,this.maxWidgetViewRatio=.4;const le=this.validateStickySettings(re);this.stickyScrollMaxItemCount=le.stickyScrollMaxItemCount,this.stickyScrollDelegate=re.stickyScrollDelegate??new K,this._widget=this._register(new J(Q.getScrollableElement(),Q,B,Z,te,re.accessibilityProvider)),this.onDidChangeHasFocus=this._widget.onDidChangeHasFocus,this.onContextMenu=this._widget.onContextMenu,this._register(Q.onDidScroll(()=>this.update())),this._register(Q.onDidChangeContentHeight(()=>this.update())),this._register(B.onDidChangeCollapseState(()=>this.update())),this.update()}get height(){return this._widget.height}getNodeAtHeight(B){let $;if(B===0?$=this.view.firstVisibleIndex:$=this.view.indexAt(B+this.view.scrollTop),!($<0||$>=this.view.length))return this.view.element($)}update(){const B=this.getNodeAtHeight(0);if(!B||this.tree.scrollTop===0){this._widget.setState(void 0);return}const $=this.findStickyState(B);this._widget.setState($)}findStickyState(B){const $=[];let Q=B,Z=0,te=this.getNextStickyNode(Q,void 0,Z);for(;te&&($.push(te),Z+=te.height,!($.length<=this.stickyScrollMaxItemCount&&(Q=this.getNextVisibleNode(te),!Q)));)te=this.getNextStickyNode(Q,te.node,Z);const re=this.constrainStickyNodes($);return re.length?new G(re):void 0}getNextVisibleNode(B){return this.getNodeAtHeight(B.position+B.height)}getNextStickyNode(B,$,Q){const Z=this.getAncestorUnderPrevious(B,$);if(Z&&!(Z===B&&(!this.nodeIsUncollapsedParent(B)||this.nodeTopAlignsWithStickyNodesBottom(B,Q))))return this.createStickyScrollNode(Z,Q)}nodeTopAlignsWithStickyNodesBottom(B,$){const Q=this.getNodeIndex(B),Z=this.view.getElementTop(Q),te=$;return this.view.scrollTop===Z-te}createStickyScrollNode(B,$){const Q=this.treeDelegate.getHeight(B),{startIndex:Z,endIndex:te}=this.getNodeRange(B),re=this.calculateStickyNodePosition(te,$,Q);return{node:B,position:re,height:Q,startIndex:Z,endIndex:te}}getAncestorUnderPrevious(B,$=void 0){let Q=B,Z=this.getParentNode(Q);for(;Z;){if(Z===$)return Q;Q=Z,Z=this.getParentNode(Q)}if($===void 0)return Q}calculateStickyNodePosition(B,$,Q){let Z=this.view.getRelativeTop(B);if(Z===null&&this.view.firstVisibleIndex===B&&B+1me&&$<=me?me-Q:$}constrainStickyNodes(B){if(B.length===0)return[];const $=this.view.renderHeight*this.maxWidgetViewRatio,Q=B[B.length-1];if(B.length<=this.stickyScrollMaxItemCount&&Q.position+Q.height<=$)return B;const Z=this.stickyScrollDelegate.constrainStickyScrollNodes(B,this.stickyScrollMaxItemCount,$);if(!Z.length)return[];const te=Z[Z.length-1];if(Z.length>this.stickyScrollMaxItemCount||te.position+te.height>$)throw new Error("stickyScrollDelegate violates constraints");return Z}getParentNode(B){const $=this.model.getNodeLocation(B),Q=this.model.getParentNodeLocation($);return Q?this.model.getNode(Q):void 0}nodeIsUncollapsedParent(B){const $=this.model.getNodeLocation(B);return this.model.getListRenderCount($)>1}getNodeIndex(B){const $=this.model.getNodeLocation(B);return this.model.getListIndex($)}getNodeRange(B){const $=this.model.getNodeLocation(B),Q=this.model.getListIndex($);if(Q<0)throw new Error("Node not found in tree");const Z=this.model.getListRenderCount($),te=Q+Z-1;return{startIndex:Q,endIndex:te}}nodePositionTopBelowWidget(B){const $=[];let Q=this.getParentNode(B);for(;Q;)$.push(Q),Q=this.getParentNode(Q);let Z=0;for(let te=0;te<$.length&&te0,Q=!!B&&B.count>0;if(!$&&!Q||$&&Q&&this._previousState.equal(B))return;if($!==Q&&this.setVisible(Q),!Q){this._previousState=void 0,this._previousElements=[],this._previousStateDisposables.clear();return}const Z=B.stickyNodes[B.count-1];if(this._previousState&&B.animationStateChanged(this._previousState))this._previousElements[this._previousState.count-1].style.top=`${Z.position}px`;else{this._previousStateDisposables.clear();const te=Array(B.count);for(let re=B.count-1;re>=0;re--){const le=B.stickyNodes[re],{element:me,disposable:Ce}=this.createElement(le,re,B.count);te[re]=me,this._rootDomNode.appendChild(me),this._previousStateDisposables.add(Ce)}this.stickyScrollFocus.updateElements(te,B),this._previousElements=te}this._previousState=B,this._rootDomNode.style.height=`${Z.position+Z.height}px`}createElement(B,$,Q){const Z=B.startIndex,te=document.createElement("div");te.style.top=`${B.position}px`,this.tree.options.setRowHeight!==!1&&(te.style.height=`${B.height}px`),this.tree.options.setRowLineHeight!==!1&&(te.style.lineHeight=`${B.height}px`),te.classList.add("monaco-tree-sticky-row"),te.classList.add("monaco-list-row"),te.setAttribute("data-index",`${Z}`),te.setAttribute("data-parity",Z%2===0?"even":"odd"),te.setAttribute("id",this.view.getElementID(Z));const re=this.setAccessibilityAttributes(te,B.node.element,$,Q),le=this.treeDelegate.getTemplateId(B.node),me=this.treeRenderers.find(Ee=>Ee.templateId===le);if(!me)throw new Error(`No renderer found for template id ${le}`);let Ce=B.node;Ce===this.tree.getNode(this.tree.getNodeLocation(B.node))&&(Ce=new Proxy(B.node,{}));const ye=me.renderTemplate(te);me.renderElement(Ce,B.startIndex,ye,B.height);const Le=(0,u.toDisposable)(()=>{re.dispose(),me.disposeElement(Ce,B.startIndex,ye,B.height),me.disposeTemplate(ye),te.remove()});return{element:te,disposable:Le}}setAccessibilityAttributes(B,$,Q,Z){if(!this.accessibilityProvider)return u.Disposable.None;this.accessibilityProvider.getSetSize&&B.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize($,Q,Z))),this.accessibilityProvider.getPosInSet&&B.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet($,Q))),this.accessibilityProvider.getRole&&B.setAttribute("role",this.accessibilityProvider.getRole($)??"treeitem");const te=this.accessibilityProvider.getAriaLabel($),re=te&&typeof te!="string"?te:(0,w.constObservable)(te),le=(0,w.autorun)(Ce=>{const ye=Ce.readObservable(re);ye?B.setAttribute("aria-label",ye):B.removeAttribute("aria-label")});typeof te=="string"||te&&B.setAttribute("aria-label",te.get());const me=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel($);return typeof me=="number"&&B.setAttribute("aria-level",`${me}`),B.setAttribute("aria-selected",String(!1)),le}setVisible(B){this._rootDomNode.classList.toggle("empty",!B),B||this.stickyScrollFocus.updateElements([],void 0)}domFocus(){this.stickyScrollFocus.domFocus()}focusedLast(){return this.stickyScrollFocus.focusedLast()}dispose(){this.stickyScrollFocus.dispose(),this._previousStateDisposables.dispose(),this._rootDomNode.remove()}}class ie extends u.Disposable{get domHasFocus(){return this._domHasFocus}set domHasFocus(B){B!==this._domHasFocus&&(this._onDidChangeHasFocus.fire(B),this._domHasFocus=B)}constructor(B,$){super(),this.container=B,this.view=$,this.focusedIndex=-1,this.elements=[],this._onDidChangeHasFocus=new a.Emitter,this.onDidChangeHasFocus=this._onDidChangeHasFocus.event,this._onContextMenu=new a.Emitter,this.onContextMenu=this._onContextMenu.event,this._domHasFocus=!1,this._register((0,d.addDisposableListener)(this.container,"focus",()=>this.onFocus())),this._register((0,d.addDisposableListener)(this.container,"blur",()=>this.onBlur())),this._register(this.view.onDidFocus(()=>this.toggleStickyScrollFocused(!1))),this._register(this.view.onKeyDown(Q=>this.onKeyDown(Q))),this._register(this.view.onMouseDown(Q=>this.onMouseDown(Q))),this._register(this.view.onContextMenu(Q=>this.handleContextMenu(Q)))}handleContextMenu(B){const $=B.browserEvent.target;if(!(0,b.isStickyScrollContainer)($)&&!(0,b.isStickyScrollElement)($)){this.focusedLast()&&this.view.domFocus();return}if(!(0,d.isKeyboardEvent)(B.browserEvent)){if(!this.state)throw new Error("Context menu should not be triggered when state is undefined");const re=this.state.stickyNodes.findIndex(le=>le.node.element===B.element?.element);if(re===-1)throw new Error("Context menu should not be triggered when element is not in sticky scroll widget");this.container.focus(),this.setFocus(re);return}if(!this.state||this.focusedIndex<0)throw new Error("Context menu key should not be triggered when focus is not in sticky scroll widget");const Z=this.state.stickyNodes[this.focusedIndex].node.element,te=this.elements[this.focusedIndex];this._onContextMenu.fire({element:Z,anchor:te,browserEvent:B.browserEvent,isStickyScroll:!0})}onKeyDown(B){if(this.domHasFocus&&this.state){if(B.key==="ArrowUp")this.setFocusedElement(Math.max(0,this.focusedIndex-1)),B.preventDefault(),B.stopPropagation();else if(B.key==="ArrowDown"||B.key==="ArrowRight"){if(this.focusedIndex>=this.state.count-1){const $=this.state.stickyNodes[this.state.count-1].startIndex+1;this.view.domFocus(),this.view.setFocus([$]),this.scrollNodeUnderWidget($,this.state)}else this.setFocusedElement(this.focusedIndex+1);B.preventDefault(),B.stopPropagation()}}}onMouseDown(B){const $=B.browserEvent.target;!(0,b.isStickyScrollContainer)($)&&!(0,b.isStickyScrollElement)($)||(B.browserEvent.preventDefault(),B.browserEvent.stopPropagation())}updateElements(B,$){if($&&$.count===0)throw new Error("Sticky scroll state must be undefined when there are no sticky nodes");if($&&$.count!==B.length)throw new Error("Sticky scroll focus received illigel state");const Q=this.focusedIndex;if(this.removeFocus(),this.elements=B,this.state=$,$){const Z=(0,C.clamp)(Q,0,$.count-1);this.setFocus(Z)}else this.domHasFocus&&this.view.domFocus();this.container.tabIndex=$?0:-1}setFocusedElement(B){const $=this.state;if(!$)throw new Error("Cannot set focus when state is undefined");if(this.setFocus(B),!(B<$.count-1)&&$.lastNodePartiallyVisible()){const Q=$.stickyNodes[B];this.scrollNodeUnderWidget(Q.endIndex+1,$)}}scrollNodeUnderWidget(B,$){const Q=$.stickyNodes[$.count-1],Z=$.count>1?$.stickyNodes[$.count-2]:void 0,te=this.view.getElementTop(B),re=Z?Z.position+Z.height+Q.height:Q.height;this.view.scrollTop=te-re}domFocus(){if(!this.state)throw new Error("Cannot focus when state is undefined");this.container.focus()}focusedLast(){return this.state?this.view.getHTMLElement().classList.contains("sticky-scroll-focused"):!1}removeFocus(){this.focusedIndex!==-1&&(this.toggleElementFocus(this.elements[this.focusedIndex],!1),this.focusedIndex=-1)}setFocus(B){if(0>B)throw new Error("addFocus() can not remove focus");if(!this.state&&B>=0)throw new Error("Cannot set focus index when state is undefined");if(this.state&&B>=this.state.count)throw new Error("Cannot set focus index to an index that does not exist");const $=this.focusedIndex;$>=0&&this.toggleElementFocus(this.elements[$],!1),B>=0&&this.toggleElementFocus(this.elements[B],!0),this.focusedIndex=B}toggleElementFocus(B,$){this.toggleElementActiveFocus(B,$&&this.domHasFocus),this.toggleElementPassiveFocus(B,$)}toggleCurrentElementActiveFocus(B){this.focusedIndex!==-1&&this.toggleElementActiveFocus(this.elements[this.focusedIndex],B)}toggleElementActiveFocus(B,$){B.classList.toggle("focused",$)}toggleElementPassiveFocus(B,$){B.classList.toggle("passive-focused",$)}toggleStickyScrollFocused(B){this.view.getHTMLElement().classList.toggle("sticky-scroll-focused",B)}onFocus(){if(!this.state||this.elements.length===0)throw new Error("Cannot focus when state is undefined or elements are empty");this.domHasFocus=!0,this.toggleStickyScrollFocused(!0),this.toggleCurrentElementActiveFocus(!0),this.focusedIndex===-1&&this.setFocus(0)}onBlur(){this.domHasFocus=!1,this.toggleCurrentElementActiveFocus(!1)}dispose(){this.toggleStickyScrollFocused(!1),this._onDidChangeHasFocus.fire(!1),super.dispose()}}function ue(X){let B=o.TreeMouseEventTarget.Unknown;return(0,d.hasParentWithClass)(X.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?B=o.TreeMouseEventTarget.Twistie:(0,d.hasParentWithClass)(X.browserEvent.target,"monaco-tl-contents","monaco-tl-row")?B=o.TreeMouseEventTarget.Element:(0,d.hasParentWithClass)(X.browserEvent.target,"monaco-tree-type-filter","monaco-list")&&(B=o.TreeMouseEventTarget.Filter),{browserEvent:X.browserEvent,element:X.element?X.element.element:null,target:B}}function he(X){const B=(0,b.isStickyScrollContainer)(X.browserEvent.target);return{element:X.element?X.element.element:null,browserEvent:X.browserEvent,anchor:X.anchor,isStickyScroll:B}}function pe(X,B){B(X),X.children.forEach($=>pe($,B))}class ae{get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}constructor(B,$){this.getFirstViewElementWithTrait=B,this.identityProvider=$,this.nodes=[],this._onDidChange=new a.Emitter,this.onDidChange=this._onDidChange.event}set(B,$){!$?.__forceEvent&&(0,i.equals)(this.nodes,B)||this._set(B,!1,$)}_set(B,$,Q){if(this.nodes=[...B],this.elements=void 0,this._nodeSet=void 0,!$){const Z=this;this._onDidChange.fire({get elements(){return Z.get()},browserEvent:Q})}}get(){return this.elements||(this.elements=this.nodes.map(B=>B.element)),[...this.elements]}getNodes(){return this.nodes}has(B){return this.nodeSet.has(B)}onDidModelSplice({insertedNodes:B,deletedNodes:$}){if(!this.identityProvider){const me=this.createNodeSet(),Ce=ye=>me.delete(ye);$.forEach(ye=>pe(ye,Ce)),this.set([...me.values()]);return}const Q=new Set,Z=me=>Q.add(this.identityProvider.getId(me.element).toString());$.forEach(me=>pe(me,Z));const te=new Map,re=me=>te.set(this.identityProvider.getId(me.element).toString(),me);B.forEach(me=>pe(me,re));const le=[];for(const me of this.nodes){const Ce=this.identityProvider.getId(me.element).toString();if(!Q.has(Ce))le.push(me);else{const Le=te.get(Ce);Le&&Le.visible&&le.push(Le)}}if(this.nodes.length>0&&le.length===0){const me=this.getFirstViewElementWithTrait();me&&le.push(me)}this._set(le,!0)}createNodeSet(){const B=new Set;for(const $ of this.nodes)B.add($);return B}}class ee extends b.MouseController{constructor(B,$,Q){super(B),this.tree=$,this.stickyScrollProvider=Q}onViewPointer(B){if((0,b.isButton)(B.browserEvent.target)||(0,b.isInputElement)(B.browserEvent.target)||(0,b.isMonacoEditor)(B.browserEvent.target)||B.browserEvent.isHandledByList)return;const $=B.element;if(!$)return super.onViewPointer(B);if(this.isSelectionRangeChangeEvent(B)||this.isSelectionSingleChangeEvent(B))return super.onViewPointer(B);const Q=B.browserEvent.target,Z=Q.classList.contains("monaco-tl-twistie")||Q.classList.contains("monaco-icon-label")&&Q.classList.contains("folder-icon")&&B.browserEvent.offsetX<16,te=(0,b.isStickyScrollElement)(B.browserEvent.target);let re=!1;if(te?re=!0:typeof this.tree.expandOnlyOnTwistieClick=="function"?re=this.tree.expandOnlyOnTwistieClick($.element):re=!!this.tree.expandOnlyOnTwistieClick,te)this.handleStickyScrollMouseEvent(B,$);else{if(re&&!Z&&B.browserEvent.detail!==2)return super.onViewPointer(B);if(!this.tree.expandOnDoubleClick&&B.browserEvent.detail===2)return super.onViewPointer(B)}if($.collapsible&&(!te||Z)){const le=this.tree.getNodeLocation($),me=B.browserEvent.altKey;if(this.tree.setFocus([le]),this.tree.toggleCollapsed(le,me),Z){B.browserEvent.isHandledByList=!0;return}}te||super.onViewPointer(B)}handleStickyScrollMouseEvent(B,$){if((0,b.isMonacoCustomToggle)(B.browserEvent.target)||(0,b.isActionItem)(B.browserEvent.target))return;const Q=this.stickyScrollProvider();if(!Q)throw new Error("Sticky scroll controller not found");const Z=this.list.indexOf($),te=this.list.getElementTop(Z),re=Q.nodePositionTopBelowWidget($);this.tree.scrollTop=te-re,this.list.domFocus(),this.list.setFocus([Z]),this.list.setSelection([Z])}onDoubleClick(B){B.browserEvent.target.classList.contains("monaco-tl-twistie")||!this.tree.expandOnDoubleClick||B.browserEvent.isHandledByList||super.onDoubleClick(B)}onMouseDown(B){const $=B.browserEvent.target;if(!(0,b.isStickyScrollContainer)($)&&!(0,b.isStickyScrollElement)($)){super.onMouseDown(B);return}}onContextMenu(B){const $=B.browserEvent.target;if(!(0,b.isStickyScrollContainer)($)&&!(0,b.isStickyScrollElement)($)){super.onContextMenu(B);return}}}class de extends b.List{constructor(B,$,Q,Z,te,re,le,me){super(B,$,Q,Z,me),this.focusTrait=te,this.selectionTrait=re,this.anchorTrait=le}createMouseController(B){return new ee(this,B.tree,B.stickyScrollProvider)}splice(B,$,Q=[]){if(super.splice(B,$,Q),Q.length===0)return;const Z=[],te=[];let re;Q.forEach((le,me)=>{this.focusTrait.has(le)&&Z.push(B+me),this.selectionTrait.has(le)&&te.push(B+me),this.anchorTrait.has(le)&&(re=B+me)}),Z.length>0&&super.setFocus((0,i.distinct)([...super.getFocus(),...Z])),te.length>0&&super.setSelection((0,i.distinct)([...super.getSelection(),...te])),typeof re=="number"&&super.setAnchor(re)}setFocus(B,$,Q=!1){super.setFocus(B,$),Q||this.focusTrait.set(B.map(Z=>this.element(Z)),$)}setSelection(B,$,Q=!1){super.setSelection(B,$),Q||this.selectionTrait.set(B.map(Z=>this.element(Z)),$)}setAnchor(B,$=!1){super.setAnchor(B),$||(typeof B>"u"?this.anchorTrait.set([]):this.anchorTrait.set([this.element(B)]))}}class ge{get onDidScroll(){return this.view.onDidScroll}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return a.Event.filter(a.Event.map(this.view.onMouseDblClick,ue),B=>B.target!==o.TreeMouseEventTarget.Filter)}get onMouseOver(){return a.Event.map(this.view.onMouseOver,ue)}get onMouseOut(){return a.Event.map(this.view.onMouseOut,ue)}get onContextMenu(){return a.Event.any(a.Event.filter(a.Event.map(this.view.onContextMenu,he),B=>!B.isStickyScroll),this.stickyScrollController?.onContextMenu??a.Event.None)}get onPointer(){return a.Event.map(this.view.onPointer,ue)}get onKeyDown(){return this.view.onKeyDown}get onDidFocus(){return this.view.onDidFocus}get onDidChangeModel(){return a.Event.signal(this.model.onDidSplice)}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get findMode(){return this.findController?.mode??q.Highlight}set findMode(B){this.findController&&(this.findController.mode=B)}get findMatchType(){return this.findController?.matchType??H.Fuzzy}set findMatchType(B){this.findController&&(this.findController.matchType=B)}get expandOnDoubleClick(){return typeof this._options.expandOnDoubleClick>"u"?!0:this._options.expandOnDoubleClick}get expandOnlyOnTwistieClick(){return typeof this._options.expandOnlyOnTwistieClick>"u"?!0:this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}constructor(B,$,Q,Z,te={}){this._user=B,this._options=te,this.eventBufferer=new a.EventBufferer,this.onDidChangeFindOpenState=a.Event.None,this.onDidChangeStickyScrollFocused=a.Event.None,this.disposables=new u.DisposableStore,this._onWillRefilter=new a.Emitter,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new a.Emitter,this.treeDelegate=new A(Q);const re=new a.Relay,le=new a.Relay,me=this.disposables.add(new N(le.event)),Ce=new l.SetMap;this.renderers=Z.map(Ae=>new O(Ae,()=>this.model,re.event,me,Ce,te));for(const Ae of this.renderers)this.disposables.add(Ae);let ye;te.keyboardNavigationLabelProvider&&(ye=new F(this,te.keyboardNavigationLabelProvider,te.filter),te={...te,filter:ye},this.disposables.add(ye)),this.focus=new ae(()=>this.view.getFocusedElements()[0],te.identityProvider),this.selection=new ae(()=>this.view.getSelectedElements()[0],te.identityProvider),this.anchor=new ae(()=>this.view.getAnchorElement(),te.identityProvider),this.view=new de(B,$,this.treeDelegate,this.renderers,this.focus,this.selection,this.anchor,{...M(()=>this.model,te),tree:this,stickyScrollProvider:()=>this.stickyScrollController}),this.model=this.createModel(B,this.view,te),re.input=this.model.onDidChangeCollapseState;const Le=a.Event.forEach(this.model.onDidSplice,Ae=>{this.eventBufferer.bufferEvents(()=>{this.focus.onDidModelSplice(Ae),this.selection.onDidModelSplice(Ae)})},this.disposables);Le(()=>null,null,this.disposables);const Ee=this.disposables.add(new a.Emitter),Me=this.disposables.add(new s.Delayer(0));if(this.disposables.add(a.Event.any(Le,this.focus.onDidChange,this.selection.onDidChange)(()=>{Me.trigger(()=>{const Ae=new Set;for(const Ne of this.focus.getNodes())Ae.add(Ne);for(const Ne of this.selection.getNodes())Ae.add(Ne);Ee.fire([...Ae.values()])})})),le.input=Ee.event,te.keyboardSupport!==!1){const Ae=a.Event.chain(this.view.onKeyDown,Ne=>Ne.filter(Ke=>!(0,b.isInputElement)(Ke.target)).map(Ke=>new I.StandardKeyboardEvent(Ke)));a.Event.chain(Ae,Ne=>Ne.filter(Ke=>Ke.keyCode===15))(this.onLeftArrow,this,this.disposables),a.Event.chain(Ae,Ne=>Ne.filter(Ke=>Ke.keyCode===17))(this.onRightArrow,this,this.disposables),a.Event.chain(Ae,Ne=>Ne.filter(Ke=>Ke.keyCode===10))(this.onSpace,this,this.disposables)}if((te.findWidgetEnabled??!0)&&te.keyboardNavigationLabelProvider&&te.contextViewProvider){const Ae=this.options.findWidgetStyles?{styles:this.options.findWidgetStyles}:void 0;this.findController=new U(this,this.model,this.view,ye,te.contextViewProvider,Ae),this.focusNavigationFilter=Ne=>this.findController.shouldAllowFocus(Ne),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.disposables.add(this.findController),this.onDidChangeFindMode=this.findController.onDidChangeMode,this.onDidChangeFindMatchType=this.findController.onDidChangeMatchType}else this.onDidChangeFindMode=a.Event.None,this.onDidChangeFindMatchType=a.Event.None;te.enableStickyScroll&&(this.stickyScrollController=new R(this,this.model,this.view,this.renderers,this.treeDelegate,te),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus),this.styleElement=(0,d.createStyleSheet)(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===P.Always)}updateOptions(B={}){this._options={...this._options,...B};for(const $ of this.renderers)$.updateOptions(B);this.view.updateOptions(this._options),this.findController?.updateOptions(B),this.updateStickyScroll(B),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===P.Always)}get options(){return this._options}updateStickyScroll(B){!this.stickyScrollController&&this._options.enableStickyScroll?(this.stickyScrollController=new R(this,this.model,this.view,this.renderers,this.treeDelegate,this._options),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus):this.stickyScrollController&&!this._options.enableStickyScroll&&(this.onDidChangeStickyScrollFocused=a.Event.None,this.stickyScrollController.dispose(),this.stickyScrollController=void 0),this.stickyScrollController?.updateOptions(B)}getHTMLElement(){return this.view.getHTMLElement()}get scrollTop(){return this.view.scrollTop}set scrollTop(B){this.view.scrollTop=B}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get ariaLabel(){return this.view.ariaLabel}set ariaLabel(B){this.view.ariaLabel=B}domFocus(){this.stickyScrollController?.focusedLast()?this.stickyScrollController.domFocus():this.view.domFocus()}layout(B,$){this.view.layout(B,$),(0,f.isNumber)($)&&this.findController?.layout($)}style(B){const $=`.${this.view.domId}`,Q=[];B.treeIndentGuidesStroke&&(Q.push(`.monaco-list${$}:hover .monaco-tl-indent > .indent-guide, .monaco-list${$}.always .monaco-tl-indent > .indent-guide { border-color: ${B.treeInactiveIndentGuidesStroke}; }`),Q.push(`.monaco-list${$} .monaco-tl-indent > .indent-guide.active { border-color: ${B.treeIndentGuidesStroke}; }`));const Z=B.treeStickyScrollBackground??B.listBackground;Z&&(Q.push(`.monaco-list${$} .monaco-scrollable-element .monaco-tree-sticky-container { background-color: ${Z}; }`),Q.push(`.monaco-list${$} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row { background-color: ${Z}; }`)),B.treeStickyScrollBorder&&Q.push(`.monaco-list${$} .monaco-scrollable-element .monaco-tree-sticky-container { border-bottom: 1px solid ${B.treeStickyScrollBorder}; }`),B.treeStickyScrollShadow&&Q.push(`.monaco-list${$} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow { box-shadow: ${B.treeStickyScrollShadow} 0 6px 6px -6px inset; height: 3px; }`),B.listFocusForeground&&(Q.push(`.monaco-list${$}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { color: ${B.listFocusForeground}; }`),Q.push(`.monaco-list${$}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { color: inherit; }`));const te=(0,d.asCssValueWithDefault)(B.listFocusAndSelectionOutline,(0,d.asCssValueWithDefault)(B.listSelectionOutline,B.listFocusOutline??""));te&&(Q.push(`.monaco-list${$}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused.selected { outline: 1px solid ${te}; outline-offset: -1px;}`),Q.push(`.monaco-list${$}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused.selected { outline: inherit;}`)),B.listFocusOutline&&(Q.push(`.monaco-list${$}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { outline: 1px solid ${B.listFocusOutline}; outline-offset: -1px; }`),Q.push(`.monaco-list${$}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { outline: inherit; }`),Q.push(`.monaco-workbench.context-menu-visible .monaco-list${$}.last-focused.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.passive-focused { outline: 1px solid ${B.listFocusOutline}; outline-offset: -1px; }`),Q.push(`.monaco-workbench.context-menu-visible .monaco-list${$}.last-focused.sticky-scroll-focused .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`),Q.push(`.monaco-workbench.context-menu-visible .monaco-list${$}.last-focused:not(.sticky-scroll-focused) .monaco-tree-sticky-container .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`)),this.styleElement.textContent=Q.join(` +`),this.view.style(B)}getParentElement(B){const $=this.model.getParentNodeLocation(B);return this.model.getNode($).element}getFirstElementChild(B){return this.model.getFirstElementChild(B)}getNode(B){return this.model.getNode(B)}getNodeLocation(B){return this.model.getNodeLocation(B)}collapse(B,$=!1){return this.model.setCollapsed(B,!0,$)}expand(B,$=!1){return this.model.setCollapsed(B,!1,$)}toggleCollapsed(B,$=!1){return this.model.setCollapsed(B,void 0,$)}isCollapsible(B){return this.model.isCollapsible(B)}setCollapsible(B,$){return this.model.setCollapsible(B,$)}isCollapsed(B){return this.model.isCollapsed(B)}refilter(){this._onWillRefilter.fire(void 0),this.model.refilter()}setSelection(B,$){this.eventBufferer.bufferEvents(()=>{const Q=B.map(te=>this.model.getNode(te));this.selection.set(Q,$);const Z=B.map(te=>this.model.getListIndex(te)).filter(te=>te>-1);this.view.setSelection(Z,$,!0)})}getSelection(){return this.selection.get()}setFocus(B,$){this.eventBufferer.bufferEvents(()=>{const Q=B.map(te=>this.model.getNode(te));this.focus.set(Q,$);const Z=B.map(te=>this.model.getListIndex(te)).filter(te=>te>-1);this.view.setFocus(Z,$,!0)})}focusNext(B=1,$=!1,Q,Z=(0,d.isKeyboardEvent)(Q)&&Q.altKey?void 0:this.focusNavigationFilter){this.view.focusNext(B,$,Q,Z)}focusPrevious(B=1,$=!1,Q,Z=(0,d.isKeyboardEvent)(Q)&&Q.altKey?void 0:this.focusNavigationFilter){this.view.focusPrevious(B,$,Q,Z)}focusNextPage(B,$=(0,d.isKeyboardEvent)(B)&&B.altKey?void 0:this.focusNavigationFilter){return this.view.focusNextPage(B,$)}focusPreviousPage(B,$=(0,d.isKeyboardEvent)(B)&&B.altKey?void 0:this.focusNavigationFilter){return this.view.focusPreviousPage(B,$,()=>this.stickyScrollController?.height??0)}focusLast(B,$=(0,d.isKeyboardEvent)(B)&&B.altKey?void 0:this.focusNavigationFilter){this.view.focusLast(B,$)}focusFirst(B,$=(0,d.isKeyboardEvent)(B)&&B.altKey?void 0:this.focusNavigationFilter){this.view.focusFirst(B,$)}getFocus(){return this.focus.get()}reveal(B,$){this.model.expandTo(B);const Q=this.model.getListIndex(B);if(Q!==-1)if(!this.stickyScrollController)this.view.reveal(Q,$);else{const Z=this.stickyScrollController.nodePositionTopBelowWidget(this.getNode(B));this.view.reveal(Q,$,Z)}}onLeftArrow(B){B.preventDefault(),B.stopPropagation();const $=this.view.getFocusedElements();if($.length===0)return;const Q=$[0],Z=this.model.getNodeLocation(Q);if(!this.model.setCollapsed(Z,!0)){const re=this.model.getParentNodeLocation(Z);if(!re)return;const le=this.model.getListIndex(re);this.view.reveal(le),this.view.setFocus([le])}}onRightArrow(B){B.preventDefault(),B.stopPropagation();const $=this.view.getFocusedElements();if($.length===0)return;const Q=$[0],Z=this.model.getNodeLocation(Q);if(!this.model.setCollapsed(Z,!1)){if(!Q.children.some(me=>me.visible))return;const[re]=this.view.getFocus(),le=re+1;this.view.reveal(le),this.view.setFocus([le])}}onSpace(B){B.preventDefault(),B.stopPropagation();const $=this.view.getFocusedElements();if($.length===0)return;const Q=$[0],Z=this.model.getNodeLocation(Q),te=B.browserEvent.altKey;this.model.setCollapsed(Z,void 0,te)}dispose(){(0,u.dispose)(this.disposables),this.stickyScrollController?.dispose(),this.view.dispose()}}e.AbstractTree=ge}),define(ne[644],se([1,0,176,250]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DataTree=void 0;class I extends d.AbstractTree{constructor(y,m,_,b,p,n={}){super(y,m,_,b,n),this.user=y,this.dataSource=p,this.identityProvider=n.identityProvider}createModel(y,m,_){return new k.ObjectTreeModel(y,m,_)}}e.DataTree=I}),define(ne[360],se([1,0,176,627,250,126,53]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CompressibleObjectTree=e.ObjectTree=void 0;class m extends d.AbstractTree{get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}constructor(t,i,s,g,c={}){super(t,i,s,g,c),this.user=t}setChildren(t,i=y.Iterable.empty(),s){this.model.setChildren(t,i,s)}rerender(t){if(t===void 0){this.view.rerender();return}this.model.rerender(t)}hasElement(t){return this.model.has(t)}createModel(t,i,s){return new I.ObjectTreeModel(t,i,s)}}e.ObjectTree=m;class _{get compressedTreeNodeProvider(){return this._compressedTreeNodeProvider()}constructor(t,i,s){this._compressedTreeNodeProvider=t,this.stickyScrollDelegate=i,this.renderer=s,this.templateId=s.templateId,s.onDidChangeTwistieState&&(this.onDidChangeTwistieState=s.onDidChangeTwistieState)}renderTemplate(t){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(t)}}renderElement(t,i,s,g){let c=this.stickyScrollDelegate.getCompressedNode(t);c||(c=this.compressedTreeNodeProvider.getCompressedTreeNode(t.element)),c.element.elements.length===1?(s.compressedTreeNode=void 0,this.renderer.renderElement(t,i,s.data,g)):(s.compressedTreeNode=c,this.renderer.renderCompressedElements(c,i,s.data,g))}disposeElement(t,i,s,g){s.compressedTreeNode?this.renderer.disposeCompressedElements?.(s.compressedTreeNode,i,s.data,g):this.renderer.disposeElement?.(t,i,s.data,g)}disposeTemplate(t){this.renderer.disposeTemplate(t.data)}renderTwistie(t,i){return this.renderer.renderTwistie?this.renderer.renderTwistie(t,i):!1}}ke([E.memoize],_.prototype,"compressedTreeNodeProvider",null);class b{constructor(t){this.modelProvider=t,this.compressedStickyNodes=new Map}getCompressedNode(t){return this.compressedStickyNodes.get(t)}constrainStickyScrollNodes(t,i,s){if(this.compressedStickyNodes.clear(),t.length===0)return[];for(let g=0;gs||g>=i-1&&ithis,a=new b(()=>this.model),r=g.map(u=>new _(l,a,u));super(t,i,s,r,{...p(l,c),stickyScrollDelegate:a})}setChildren(t,i=y.Iterable.empty(),s){this.model.setChildren(t,i,s)}createModel(t,i,s){return new k.CompressibleObjectTreeModel(t,i,s)}updateOptions(t={}){super.updateOptions(t),typeof t.compressionEnabled<"u"&&this.model.setCompressionEnabled(t.compressionEnabled)}getCompressedTreeNode(t=null){return this.model.getCompressedTreeNode(t)}}e.CompressibleObjectTree=n}),define(ne[645],se([1,0,257,176,249,360,159,14,26,30,8,6,53,2,19]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CompressibleAsyncDataTree=e.AsyncDataTree=void 0;function s(P){return{...P,children:[],refreshPromise:void 0,stale:!0,slow:!1,forceExpanded:!1}}function g(P,N){return N.parent?N.parent===P?!0:g(P,N.parent):!1}function c(P,N){return P===N||g(P,N)||g(N,P)}class l{get element(){return this.node.element.element}get children(){return this.node.children.map(N=>new l(N))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(N){this.node=N}}class a{constructor(N,O,F){this.renderer=N,this.nodeMapper=O,this.onDidChangeTwistieState=F,this.renderedNodes=new Map,this.templateId=N.templateId}renderTemplate(N){return{templateData:this.renderer.renderTemplate(N)}}renderElement(N,O,F,x){this.renderer.renderElement(this.nodeMapper.map(N),O,F.templateData,x)}renderTwistie(N,O){return N.slow?(O.classList.add(...b.ThemeIcon.asClassNameArray(_.Codicon.treeItemLoading)),!0):(O.classList.remove(...b.ThemeIcon.asClassNameArray(_.Codicon.treeItemLoading)),!1)}disposeElement(N,O,F,x){this.renderer.disposeElement?.(this.nodeMapper.map(N),O,F.templateData,x)}disposeTemplate(N){this.renderer.disposeTemplate(N.templateData)}dispose(){this.renderedNodes.clear()}}function r(P){return{browserEvent:P.browserEvent,elements:P.elements.map(N=>N.element)}}function u(P){return{browserEvent:P.browserEvent,element:P.element&&P.element.element,target:P.target}}class C extends d.ElementsDragAndDropData{constructor(N){super(N.elements.map(O=>O.element)),this.data=N}}function f(P){return P instanceof d.ElementsDragAndDropData?new C(P):P}class h{constructor(N){this.dnd=N}getDragURI(N){return this.dnd.getDragURI(N.element)}getDragLabel(N,O){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(N.map(F=>F.element),O)}onDragStart(N,O){this.dnd.onDragStart?.(f(N),O)}onDragOver(N,O,F,x,W,V=!0){return this.dnd.onDragOver(f(N),O&&O.element,F,x,W)}drop(N,O,F,x,W){this.dnd.drop(f(N),O&&O.element,F,x,W)}onDragEnd(N){this.dnd.onDragEnd?.(N)}dispose(){this.dnd.dispose()}}function v(P){return P&&{...P,collapseByDefault:!0,identityProvider:P.identityProvider&&{getId(N){return P.identityProvider.getId(N.element)}},dnd:P.dnd&&new h(P.dnd),multipleSelectionController:P.multipleSelectionController&&{isSelectionSingleChangeEvent(N){return P.multipleSelectionController.isSelectionSingleChangeEvent({...N,element:N.element})},isSelectionRangeChangeEvent(N){return P.multipleSelectionController.isSelectionRangeChangeEvent({...N,element:N.element})}},accessibilityProvider:P.accessibilityProvider&&{...P.accessibilityProvider,getPosInSet:void 0,getSetSize:void 0,getRole:P.accessibilityProvider.getRole?N=>P.accessibilityProvider.getRole(N.element):()=>"treeitem",isChecked:P.accessibilityProvider.isChecked?N=>!!P.accessibilityProvider?.isChecked(N.element):void 0,getAriaLabel(N){return P.accessibilityProvider.getAriaLabel(N.element)},getWidgetAriaLabel(){return P.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:P.accessibilityProvider.getWidgetRole?()=>P.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:P.accessibilityProvider.getAriaLevel&&(N=>P.accessibilityProvider.getAriaLevel(N.element)),getActiveDescendantId:P.accessibilityProvider.getActiveDescendantId&&(N=>P.accessibilityProvider.getActiveDescendantId(N.element))},filter:P.filter&&{filter(N,O){return P.filter.filter(N.element,O)}},keyboardNavigationLabelProvider:P.keyboardNavigationLabelProvider&&{...P.keyboardNavigationLabelProvider,getKeyboardNavigationLabel(N){return P.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(N.element)}},sorter:void 0,expandOnlyOnTwistieClick:typeof P.expandOnlyOnTwistieClick>"u"?void 0:typeof P.expandOnlyOnTwistieClick!="function"?P.expandOnlyOnTwistieClick:N=>P.expandOnlyOnTwistieClick(N.element),defaultFindVisibility:N=>N.hasChildren&&N.stale?1:typeof P.defaultFindVisibility=="number"?P.defaultFindVisibility:typeof P.defaultFindVisibility>"u"?2:P.defaultFindVisibility(N.element)}}function w(P,N){N(P),P.children.forEach(O=>w(O,N))}class S{get onDidScroll(){return this.tree.onDidScroll}get onDidChangeFocus(){return n.Event.map(this.tree.onDidChangeFocus,r)}get onDidChangeSelection(){return n.Event.map(this.tree.onDidChangeSelection,r)}get onMouseDblClick(){return n.Event.map(this.tree.onMouseDblClick,u)}get onPointer(){return n.Event.map(this.tree.onPointer,u)}get onDidFocus(){return this.tree.onDidFocus}get onDidChangeModel(){return this.tree.onDidChangeModel}get onDidChangeCollapseState(){return this.tree.onDidChangeCollapseState}get onDidChangeFindOpenState(){return this.tree.onDidChangeFindOpenState}get onDidChangeStickyScrollFocused(){return this.tree.onDidChangeStickyScrollFocused}get onDidDispose(){return this.tree.onDidDispose}constructor(N,O,F,x,W,V={}){this.user=N,this.dataSource=W,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new n.Emitter,this._onDidChangeNodeSlowState=new n.Emitter,this.nodeMapper=new y.WeakMapper(q=>new l(q)),this.disposables=new t.DisposableStore,this.identityProvider=V.identityProvider,this.autoExpandSingleChildren=typeof V.autoExpandSingleChildren>"u"?!1:V.autoExpandSingleChildren,this.sorter=V.sorter,this.getDefaultCollapseState=q=>V.collapseByDefault?V.collapseByDefault(q)?y.ObjectTreeElementCollapseState.PreserveOrCollapsed:y.ObjectTreeElementCollapseState.PreserveOrExpanded:void 0,this.tree=this.createTree(N,O,F,x,V),this.onDidChangeFindMode=this.tree.onDidChangeFindMode,this.onDidChangeFindMatchType=this.tree.onDidChangeFindMatchType,this.root=s({element:void 0,parent:null,hasChildren:!0,defaultCollapseState:void 0}),this.identityProvider&&(this.root={...this.root,id:null}),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}createTree(N,O,F,x,W){const V=new k.ComposedTreeDelegate(F),q=x.map(z=>new a(z,this.nodeMapper,this._onDidChangeNodeSlowState.event)),H=v(W)||{};return new E.ObjectTree(N,O,V,q,H)}updateOptions(N={}){this.tree.updateOptions(N)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(N){this.tree.scrollTop=N}get scrollHeight(){return this.tree.scrollHeight}get renderHeight(){return this.tree.renderHeight}domFocus(){this.tree.domFocus()}layout(N,O){this.tree.layout(N,O)}style(N){this.tree.style(N)}getInput(){return this.root.element}async setInput(N,O){this.refreshPromises.forEach(x=>x.cancel()),this.refreshPromises.clear(),this.root.element=N;const F=O&&{viewState:O,focus:[],selection:[]};await this._updateChildren(N,!0,!1,F),F&&(this.tree.setFocus(F.focus),this.tree.setSelection(F.selection)),O&&typeof O.scrollTop=="number"&&(this.scrollTop=O.scrollTop)}async _updateChildren(N=this.root.element,O=!0,F=!1,x,W){if(typeof this.root.element>"u")throw new y.TreeError(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await n.Event.toPromise(this._onDidRender.event));const V=this.getDataNode(N);if(await this.refreshAndRenderNode(V,O,x,W),F)try{this.tree.rerender(V)}catch{}}rerender(N){if(N===void 0||N===this.root.element){this.tree.rerender();return}const O=this.getDataNode(N);this.tree.rerender(O)}getNode(N=this.root.element){const O=this.getDataNode(N),F=this.tree.getNode(O===this.root?null:O);return this.nodeMapper.map(F)}collapse(N,O=!1){const F=this.getDataNode(N);return this.tree.collapse(F===this.root?null:F,O)}async expand(N,O=!1){if(typeof this.root.element>"u")throw new y.TreeError(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await n.Event.toPromise(this._onDidRender.event));const F=this.getDataNode(N);if(this.tree.hasElement(F)&&!this.tree.isCollapsible(F)||(F.refreshPromise&&(await this.root.refreshPromise,await n.Event.toPromise(this._onDidRender.event)),F!==this.root&&!F.refreshPromise&&!this.tree.isCollapsed(F)))return!1;const x=this.tree.expand(F===this.root?null:F,O);return F.refreshPromise&&(await this.root.refreshPromise,await n.Event.toPromise(this._onDidRender.event)),x}setSelection(N,O){const F=N.map(x=>this.getDataNode(x));this.tree.setSelection(F,O)}getSelection(){return this.tree.getSelection().map(O=>O.element)}setFocus(N,O){const F=N.map(x=>this.getDataNode(x));this.tree.setFocus(F,O)}getFocus(){return this.tree.getFocus().map(O=>O.element)}reveal(N,O){this.tree.reveal(this.getDataNode(N),O)}getParentElement(N){const O=this.tree.getParentElement(this.getDataNode(N));return O&&O.element}getFirstElementChild(N=this.root.element){const O=this.getDataNode(N),F=this.tree.getFirstElementChild(O===this.root?null:O);return F&&F.element}getDataNode(N){const O=this.nodes.get(N===this.root.element?null:N);if(!O)throw new y.TreeError(this.user,`Data tree node not found: ${N}`);return O}async refreshAndRenderNode(N,O,F,x){await this.refreshNode(N,O,F),!this.disposables.isDisposed&&this.render(N,F,x)}async refreshNode(N,O,F){let x;if(this.subTreeRefreshPromises.forEach((W,V)=>{!x&&c(V,N)&&(x=W.then(()=>this.refreshNode(N,O,F)))}),x)return x;if(N!==this.root&&this.tree.getNode(N).collapsed){N.hasChildren=!!this.dataSource.hasChildren(N.element),N.stale=!0,this.setChildren(N,[],O,F);return}return this.doRefreshSubTree(N,O,F)}async doRefreshSubTree(N,O,F){let x;N.refreshPromise=new Promise(W=>x=W),this.subTreeRefreshPromises.set(N,N.refreshPromise),N.refreshPromise.finally(()=>{N.refreshPromise=void 0,this.subTreeRefreshPromises.delete(N)});try{const W=await this.doRefreshNode(N,O,F);N.stale=!1,await m.Promises.settled(W.map(V=>this.doRefreshSubTree(V,O,F)))}finally{x()}}async doRefreshNode(N,O,F){N.hasChildren=!!this.dataSource.hasChildren(N.element);let x;if(!N.hasChildren)x=Promise.resolve(o.Iterable.empty());else{const W=this.doGetChildren(N);if((0,i.isIterable)(W))x=Promise.resolve(W);else{const V=(0,m.timeout)(800);V.then(()=>{N.slow=!0,this._onDidChangeNodeSlowState.fire(N)},q=>null),x=W.finally(()=>V.cancel())}}try{const W=await x;return this.setChildren(N,W,O,F)}catch(W){if(N!==this.root&&this.tree.hasElement(N)&&this.tree.collapse(N),(0,p.isCancellationError)(W))return[];throw W}finally{N.slow&&(N.slow=!1,this._onDidChangeNodeSlowState.fire(N))}}doGetChildren(N){let O=this.refreshPromises.get(N);if(O)return O;const F=this.dataSource.getChildren(N.element);return(0,i.isIterable)(F)?this.processChildren(F):(O=(0,m.createCancelablePromise)(async()=>this.processChildren(await F)),this.refreshPromises.set(N,O),O.finally(()=>{this.refreshPromises.delete(N)}))}_onDidChangeCollapseState({node:N,deep:O}){N.element!==null&&!N.collapsed&&N.element.stale&&(O?this.collapse(N.element.element):this.refreshAndRenderNode(N.element,!1).catch(p.onUnexpectedError))}setChildren(N,O,F,x){const W=[...O];if(N.children.length===0&&W.length===0)return[];const V=new Map,q=new Map;for(const U of N.children)V.set(U.element,U),this.identityProvider&&q.set(U.id,{node:U,collapsed:this.tree.hasElement(U)&&this.tree.isCollapsed(U)});const H=[],z=W.map(U=>{const j=!!this.dataSource.hasChildren(U);if(!this.identityProvider){const R=s({element:U,parent:N,hasChildren:j,defaultCollapseState:this.getDefaultCollapseState(U)});return j&&R.defaultCollapseState===y.ObjectTreeElementCollapseState.PreserveOrExpanded&&H.push(R),R}const Y=this.identityProvider.getId(U).toString(),G=q.get(Y);if(G){const R=G.node;return V.delete(R.element),this.nodes.delete(R.element),this.nodes.set(U,R),R.element=U,R.hasChildren=j,F?G.collapsed?(R.children.forEach(J=>w(J,ie=>this.nodes.delete(ie.element))),R.children.splice(0,R.children.length),R.stale=!0):H.push(R):j&&!G.collapsed&&H.push(R),R}const K=s({element:U,parent:N,id:Y,hasChildren:j,defaultCollapseState:this.getDefaultCollapseState(U)});return x&&x.viewState.focus&&x.viewState.focus.indexOf(Y)>-1&&x.focus.push(K),x&&x.viewState.selection&&x.viewState.selection.indexOf(Y)>-1&&x.selection.push(K),(x&&x.viewState.expanded&&x.viewState.expanded.indexOf(Y)>-1||j&&K.defaultCollapseState===y.ObjectTreeElementCollapseState.PreserveOrExpanded)&&H.push(K),K});for(const U of V.values())w(U,j=>this.nodes.delete(j.element));for(const U of z)this.nodes.set(U.element,U);return N.children.splice(0,N.children.length,...z),N!==this.root&&this.autoExpandSingleChildren&&z.length===1&&H.length===0&&(z[0].forceExpanded=!0,H.push(z[0])),H}render(N,O,F){const x=N.children.map(V=>this.asTreeElement(V,O)),W=F&&{...F,diffIdentityProvider:F.diffIdentityProvider&&{getId(V){return F.diffIdentityProvider.getId(V.element)}}};this.tree.setChildren(N===this.root?null:N,x,W),N!==this.root&&this.tree.setCollapsible(N,N.hasChildren),this._onDidRender.fire()}asTreeElement(N,O){if(N.stale)return{element:N,collapsible:N.hasChildren,collapsed:!0};let F;return O&&O.viewState.expanded&&N.id&&O.viewState.expanded.indexOf(N.id)>-1?F=!1:N.forceExpanded?(F=!1,N.forceExpanded=!1):F=N.defaultCollapseState,{element:N,children:N.hasChildren?o.Iterable.map(N.children,x=>this.asTreeElement(x,O)):[],collapsible:N.hasChildren,collapsed:F}}processChildren(N){return this.sorter&&(N=[...N].sort(this.sorter.compare.bind(this.sorter))),N}dispose(){this.disposables.dispose(),this.tree.dispose()}}e.AsyncDataTree=S;class L{get element(){return{elements:this.node.element.elements.map(N=>N.element),incompressible:this.node.element.incompressible}}get children(){return this.node.children.map(N=>new L(N))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(N){this.node=N}}class D{constructor(N,O,F,x){this.renderer=N,this.nodeMapper=O,this.compressibleNodeMapperProvider=F,this.onDidChangeTwistieState=x,this.renderedNodes=new Map,this.disposables=[],this.templateId=N.templateId}renderTemplate(N){return{templateData:this.renderer.renderTemplate(N)}}renderElement(N,O,F,x){this.renderer.renderElement(this.nodeMapper.map(N),O,F.templateData,x)}renderCompressedElements(N,O,F,x){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(N),O,F.templateData,x)}renderTwistie(N,O){return N.slow?(O.classList.add(...b.ThemeIcon.asClassNameArray(_.Codicon.treeItemLoading)),!0):(O.classList.remove(...b.ThemeIcon.asClassNameArray(_.Codicon.treeItemLoading)),!1)}disposeElement(N,O,F,x){this.renderer.disposeElement?.(this.nodeMapper.map(N),O,F.templateData,x)}disposeCompressedElements(N,O,F,x){this.renderer.disposeCompressedElements?.(this.compressibleNodeMapperProvider().map(N),O,F.templateData,x)}disposeTemplate(N){this.renderer.disposeTemplate(N.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=(0,t.dispose)(this.disposables)}}function T(P){const N=P&&v(P);return N&&{...N,keyboardNavigationLabelProvider:N.keyboardNavigationLabelProvider&&{...N.keyboardNavigationLabelProvider,getCompressedNodeKeyboardNavigationLabel(O){return P.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(O.map(F=>F.element))}}}}class M extends S{constructor(N,O,F,x,W,V,q={}){super(N,O,F,W,V,q),this.compressionDelegate=x,this.compressibleNodeMapper=new y.WeakMapper(H=>new L(H)),this.filter=q.filter}createTree(N,O,F,x,W){const V=new k.ComposedTreeDelegate(F),q=x.map(z=>new D(z,this.nodeMapper,()=>this.compressibleNodeMapper,this._onDidChangeNodeSlowState.event)),H=T(W)||{};return new E.CompressibleObjectTree(N,O,V,q,H)}asTreeElement(N,O){return{incompressible:this.compressionDelegate.isIncompressible(N.element),...super.asTreeElement(N,O)}}updateOptions(N={}){this.tree.updateOptions(N)}render(N,O,F){if(!this.identityProvider)return super.render(N,O);const x=G=>this.identityProvider.getId(G).toString(),W=G=>{const K=new Set;for(const R of G){const J=this.tree.getCompressedTreeNode(R===this.root?null:R);if(J.element)for(const ie of J.element.elements)K.add(x(ie.element))}return K},V=W(this.tree.getSelection()),q=W(this.tree.getFocus());super.render(N,O,F);const H=this.getSelection();let z=!1;const U=this.getFocus();let j=!1;const Y=G=>{const K=G.element;if(K)for(let R=0;R{const F=this.filter.filter(O,1),x=A(F);if(x===2)throw new Error("Recursive tree visibility not supported in async data compressed trees");return x===1})),super.processChildren(N)}}e.CompressibleAsyncDataTree=M;function A(P){return typeof P=="boolean"?P?1:0:(0,I.isFilterResult)(P)?(0,I.getVisibleState)(P.visibility):(0,I.getVisibleState)(P)}}),define(ne[361],se([1,0,8,6,2,42,16,11]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SimpleWorkerServer=e.SimpleWorkerClient=void 0,e.logOnceWebWorkerWarning=o,e.create=f;const _=!1,b="default",p="$initialize";let n=!1;function o(h){y.isWeb&&(n||(n=!0,console.warn("Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq")),console.warn(h.message))}class t{constructor(v,w,S,L,D){this.vsWorker=v,this.req=w,this.channel=S,this.method=L,this.args=D,this.type=0}}class i{constructor(v,w,S,L){this.vsWorker=v,this.seq=w,this.res=S,this.err=L,this.type=1}}class s{constructor(v,w,S,L,D){this.vsWorker=v,this.req=w,this.channel=S,this.eventName=L,this.arg=D,this.type=2}}class g{constructor(v,w,S){this.vsWorker=v,this.req=w,this.event=S,this.type=3}}class c{constructor(v,w){this.vsWorker=v,this.req=w,this.type=4}}class l{constructor(v){this._workerId=-1,this._handler=v,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(v){this._workerId=v}sendMessage(v,w,S){const L=String(++this._lastSentReq);return new Promise((D,T)=>{this._pendingReplies[L]={resolve:D,reject:T},this._send(new t(this._workerId,L,v,w,S))})}listen(v,w,S){let L=null;const D=new k.Emitter({onWillAddFirstListener:()=>{L=String(++this._lastSentReq),this._pendingEmitters.set(L,D),this._send(new s(this._workerId,L,v,w,S))},onDidRemoveLastListener:()=>{this._pendingEmitters.delete(L),this._send(new c(this._workerId,L)),L=null}});return D.event}handleMessage(v){!v||!v.vsWorker||this._workerId!==-1&&v.vsWorker!==this._workerId||this._handleMessage(v)}createProxyToRemoteChannel(v,w){const S={get:(L,D)=>(typeof D=="string"&&!L[D]&&(u(D)?L[D]=T=>this.listen(v,D,T):r(D)?L[D]=this.listen(v,D,void 0):D.charCodeAt(0)===36&&(L[D]=async(...T)=>(await w?.(),this.sendMessage(v,D,T)))),L[D])};return new Proxy(Object.create(null),S)}_handleMessage(v){switch(v.type){case 1:return this._handleReplyMessage(v);case 0:return this._handleRequestMessage(v);case 2:return this._handleSubscribeEventMessage(v);case 3:return this._handleEventMessage(v);case 4:return this._handleUnsubscribeEventMessage(v)}}_handleReplyMessage(v){if(!this._pendingReplies[v.seq]){console.warn("Got reply to unknown seq");return}const w=this._pendingReplies[v.seq];if(delete this._pendingReplies[v.seq],v.err){let S=v.err;v.err.$isError&&(S=new Error,S.name=v.err.name,S.message=v.err.message,S.stack=v.err.stack),w.reject(S);return}w.resolve(v.res)}_handleRequestMessage(v){const w=v.req;this._handler.handleMessage(v.channel,v.method,v.args).then(L=>{this._send(new i(this._workerId,w,L,void 0))},L=>{L.detail instanceof Error&&(L.detail=(0,d.transformErrorForSerialization)(L.detail)),this._send(new i(this._workerId,w,void 0,(0,d.transformErrorForSerialization)(L)))})}_handleSubscribeEventMessage(v){const w=v.req,S=this._handler.handleEvent(v.channel,v.eventName,v.arg)(L=>{this._send(new g(this._workerId,w,L))});this._pendingEvents.set(w,S)}_handleEventMessage(v){if(!this._pendingEmitters.has(v.req)){console.warn("Got event for unknown req");return}this._pendingEmitters.get(v.req).fire(v.event)}_handleUnsubscribeEventMessage(v){if(!this._pendingEvents.has(v.req)){console.warn("Got unsubscribe for unknown req");return}this._pendingEvents.get(v.req).dispose(),this._pendingEvents.delete(v.req)}_send(v){const w=[];if(v.type===0)for(let S=0;S{this._protocol.handleMessage(D)},D=>{(0,d.onUnexpectedError)(D)})),this._protocol=new l({sendMessage:(D,T)=>{this._worker.postMessage(D,T)},handleMessage:(D,T,M)=>this._handleMessage(D,T,M),handleEvent:(D,T,M)=>this._handleEvent(D,T,M)}),this._protocol.setWorkerId(this._worker.getId());let S=null;const L=globalThis.require;typeof L<"u"&&typeof L.getConfig=="function"?S=L.getConfig():typeof globalThis.requirejs<"u"&&(S=globalThis.requirejs.s.contexts._.config),this._onModuleLoaded=this._protocol.sendMessage(b,p,[this._worker.getId(),JSON.parse(JSON.stringify(S)),w.amdModuleId]),this.proxy=this._protocol.createProxyToRemoteChannel(b,async()=>{await this._onModuleLoaded}),this._onModuleLoaded.catch(D=>{this._onError("Worker failed to load "+w.amdModuleId,D)})}_handleMessage(v,w,S){const L=this._localChannels.get(v);if(!L)return Promise.reject(new Error(`Missing channel ${v} on main thread`));if(typeof L[w]!="function")return Promise.reject(new Error(`Missing method ${w} on main thread channel ${v}`));try{return Promise.resolve(L[w].apply(L,S))}catch(D){return Promise.reject(D)}}_handleEvent(v,w,S){const L=this._localChannels.get(v);if(!L)throw new Error(`Missing channel ${v} on main thread`);if(u(w)){const D=L[w].call(L,S);if(typeof D!="function")throw new Error(`Missing dynamic event ${w} on main thread channel ${v}.`);return D}if(r(w)){const D=L[w];if(typeof D!="function")throw new Error(`Missing event ${w} on main thread channel ${v}.`);return D}throw new Error(`Malformed event name ${w}`)}setChannel(v,w){this._localChannels.set(v,w)}_onError(v,w){console.error(v),console.info(w)}}e.SimpleWorkerClient=a;function r(h){return h[0]==="o"&&h[1]==="n"&&m.isUpperAsciiLetter(h.charCodeAt(2))}function u(h){return/^onDynamic/.test(h)&&m.isUpperAsciiLetter(h.charCodeAt(9))}class C{constructor(v,w){this._localChannels=new Map,this._remoteChannels=new Map,this._requestHandlerFactory=w,this._requestHandler=null,this._protocol=new l({sendMessage:(S,L)=>{v(S,L)},handleMessage:(S,L,D)=>this._handleMessage(S,L,D),handleEvent:(S,L,D)=>this._handleEvent(S,L,D)})}onmessage(v){this._protocol.handleMessage(v)}_handleMessage(v,w,S){if(v===b&&w===p)return this.initialize(S[0],S[1],S[2]);const L=v===b?this._requestHandler:this._localChannels.get(v);if(!L)return Promise.reject(new Error(`Missing channel ${v} on worker thread`));if(typeof L[w]!="function")return Promise.reject(new Error(`Missing method ${w} on worker thread channel ${v}`));try{return Promise.resolve(L[w].apply(L,S))}catch(D){return Promise.reject(D)}}_handleEvent(v,w,S){const L=v===b?this._requestHandler:this._localChannels.get(v);if(!L)throw new Error(`Missing channel ${v} on worker thread`);if(u(w)){const D=L[w].call(L,S);if(typeof D!="function")throw new Error(`Missing dynamic event ${w} on request handler.`);return D}if(r(w)){const D=L[w];if(typeof D!="function")throw new Error(`Missing event ${w} on request handler.`);return D}throw new Error(`Malformed event name ${w}`)}getChannel(v){if(!this._remoteChannels.has(v)){const w=this._protocol.createProxyToRemoteChannel(v);this._remoteChannels.set(v,w)}return this._remoteChannels.get(v)}async initialize(v,w,S){if(this._protocol.setWorkerId(v),this._requestHandlerFactory){this._requestHandler=this._requestHandlerFactory(this);return}if(w&&(typeof w.baseUrl<"u"&&delete w.baseUrl,typeof w.paths<"u"&&typeof w.paths.vs<"u"&&delete w.paths.vs,typeof w.trustedTypesPolicy<"u"&&delete w.trustedTypesPolicy,w.catchError=!0,globalThis.require.config(w)),_){const L=E.FileAccess.asBrowserUri(`${S}.js`).toString(!0);return new Promise((D,T)=>{oe([`${L}`],D,T)}).then(D=>{if(this._requestHandler=D.create(this),!this._requestHandler)throw new Error("No RequestHandler!")})}return new Promise((L,D)=>{(globalThis.require||oe)([S],M=>{if(this._requestHandler=M.create(this),!this._requestHandler){D(new Error("No RequestHandler!"));return}L()},D)})}}e.SimpleWorkerServer=C;function f(h){return new C(h,null)}}),define(ne[646],se([1,0,103,8,42,361,2,13,3]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WorkerDescriptor=void 0,e.createWebWorker=l;const b=!1;let p;typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope"&&globalThis.workerttPolicy!==void 0?p=globalThis.workerttPolicy:p=(0,d.createTrustedTypesPolicy)("defaultWorkerFactory",{createScriptURL:a=>a});function n(a,r){const u=globalThis.MonacoEnvironment;if(u){if(typeof u.getWorker=="function")return u.getWorker("workerMain.js",r);if(typeof u.getWorkerUrl=="function"){const C=u.getWorkerUrl("workerMain.js",r);return new Worker(p?p.createScriptURL(C):C,{name:r,type:b?"module":void 0})}}if(typeof oe=="function"){const C=oe.toUrl("vs/base/worker/workerMain.js"),f="vs/base/worker/defaultWorkerFactory.js",h=oe.toUrl(f).slice(0,-f.length),v=o(r,C,h);return new Worker(p?p.createScriptURL(v):v,{name:r,type:b?"module":void 0})}if(a){const C=o(r,a.toString(!0)),f=new Worker(p?p.createScriptURL(C):C,{name:r,type:b?"module":void 0});return b?t(f):f}throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function o(a,r,u){const C=/^((http:)|(https:)|(file:)|(vscode-file:))/.test(r);if(!(C&&r.substring(0,globalThis.origin.length)!==globalThis.origin)){const h=r.lastIndexOf("?"),v=r.lastIndexOf("#",h),w=h>0?new URLSearchParams(r.substring(h+1,~v?v:void 0)):new URLSearchParams;I.COI.addSearchParam(w,!0,!0),w.toString()?r=`${r}?${w.toString()}#${a}`:r=`${r}#${a}`}!b&&!C&&(r=new URL(r,globalThis.origin).toString());const f=new Blob([(0,m.coalesce)([`/*${a}*/`,u?`globalThis.MonacoEnvironment = { baseUrl: '${u}' };`:void 0,`globalThis._VSCODE_NLS_MESSAGES = ${JSON.stringify((0,_.getNLSMessages)())};`,`globalThis._VSCODE_NLS_LANGUAGE = ${JSON.stringify((0,_.getNLSLanguage)())};`,`globalThis._VSCODE_FILE_ROOT = '${globalThis._VSCODE_FILE_ROOT}';`,"const ttPolicy = globalThis.trustedTypes?.createPolicy('defaultWorkerFactory', { createScriptURL: value => value });","globalThis.workerttPolicy = ttPolicy;",b?`await import(ttPolicy?.createScriptURL('${r}') ?? '${r}');`:`importScripts(ttPolicy?.createScriptURL('${r}') ?? '${r}');`,b?"globalThis.postMessage({ type: 'vscode-worker-ready' });":void 0,`/*${a}*/`]).join("")],{type:"application/javascript"});return URL.createObjectURL(f)}function t(a){return new Promise((r,u)=>{a.onmessage=function(C){C.data.type==="vscode-worker-ready"&&(a.onmessage=null,r(a))},a.onerror=u})}function i(a){return typeof a.then=="function"}class s extends y.Disposable{constructor(r,u,C,f,h,v){super(),this.id=C,this.label=f;const w=n(r,f);i(w)?this.worker=w:this.worker=Promise.resolve(w),this.postMessage(u,[]),this.worker.then(S=>{S.onmessage=function(L){h(L.data)},S.onmessageerror=v,typeof S.addEventListener=="function"&&S.addEventListener("error",v)}),this._register((0,y.toDisposable)(()=>{this.worker?.then(S=>{S.onmessage=null,S.onmessageerror=null,S.removeEventListener("error",v),S.terminate()}),this.worker=null}))}getId(){return this.id}postMessage(r,u){this.worker?.then(C=>{try{C.postMessage(r,u)}catch(f){(0,k.onUnexpectedError)(f),(0,k.onUnexpectedError)(new Error(`FAILED to post message to '${this.label}'-worker`,{cause:f}))}})}}class g{constructor(r,u){this.amdModuleId=r,this.label=u,this.esmModuleLocation=b?I.FileAccess.asBrowserUri(`${r}.esm.js`):void 0}}e.WorkerDescriptor=g;class c{static{this.LAST_WORKER_ID=0}constructor(){this._webWorkerFailedBeforeError=!1}create(r,u,C){const f=++c.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new s(r.esmModuleLocation,r.amdModuleId,f,r.label||"anonymous"+f,u,h=>{(0,E.logOnceWebWorkerWarning)(h),this._webWorkerFailedBeforeError=h,C(h)})}}function l(a,r){const u=typeof a=="string"?new g(a,r):a;return new E.SimpleWorkerClient(new c,u)}}),define(ne[647],se([1,0,14,6,2,252,19]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InMemoryStorageDatabase=e.Storage=e.StorageState=e.StorageHint=void 0;var m;(function(n){n[n.STORAGE_DOES_NOT_EXIST=0]="STORAGE_DOES_NOT_EXIST",n[n.STORAGE_IN_MEMORY=1]="STORAGE_IN_MEMORY"})(m||(e.StorageHint=m={}));var _;(function(n){n[n.None=0]="None",n[n.Initialized=1]="Initialized",n[n.Closed=2]="Closed"})(_||(e.StorageState=_={}));class b extends I.Disposable{static{this.DEFAULT_FLUSH_DELAY=100}constructor(o,t=Object.create(null)){super(),this.database=o,this.options=t,this._onDidChangeStorage=this._register(new k.PauseableEmitter),this.onDidChangeStorage=this._onDidChangeStorage.event,this.state=_.None,this.cache=new Map,this.flushDelayer=this._register(new d.ThrottledDelayer(b.DEFAULT_FLUSH_DELAY)),this.pendingDeletes=new Set,this.pendingInserts=new Map,this.whenFlushedCallbacks=[],this.registerListeners()}registerListeners(){this._register(this.database.onDidChangeItemsExternal(o=>this.onDidChangeItemsExternal(o)))}onDidChangeItemsExternal(o){this._onDidChangeStorage.pause();try{o.changed?.forEach((t,i)=>this.acceptExternal(i,t)),o.deleted?.forEach(t=>this.acceptExternal(t,void 0))}finally{this._onDidChangeStorage.resume()}}acceptExternal(o,t){if(this.state===_.Closed)return;let i=!1;(0,y.isUndefinedOrNull)(t)?i=this.cache.delete(o):this.cache.get(o)!==t&&(this.cache.set(o,t),i=!0),i&&this._onDidChangeStorage.fire({key:o,external:!0})}get(o,t){const i=this.cache.get(o);return(0,y.isUndefinedOrNull)(i)?t:i}getBoolean(o,t){const i=this.get(o);return(0,y.isUndefinedOrNull)(i)?t:i==="true"}getNumber(o,t){const i=this.get(o);return(0,y.isUndefinedOrNull)(i)?t:parseInt(i,10)}async set(o,t,i=!1){if(this.state===_.Closed)return;if((0,y.isUndefinedOrNull)(t))return this.delete(o,i);const s=(0,y.isObject)(t)||Array.isArray(t)?(0,E.stringify)(t):String(t);if(this.cache.get(o)!==s)return this.cache.set(o,s),this.pendingInserts.set(o,s),this.pendingDeletes.delete(o),this._onDidChangeStorage.fire({key:o,external:i}),this.doFlush()}async delete(o,t=!1){if(!(this.state===_.Closed||!this.cache.delete(o)))return this.pendingDeletes.has(o)||this.pendingDeletes.add(o),this.pendingInserts.delete(o),this._onDidChangeStorage.fire({key:o,external:t}),this.doFlush()}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}async flushPending(){if(!this.hasPending)return;const o={insert:this.pendingInserts,delete:this.pendingDeletes};return this.pendingDeletes=new Set,this.pendingInserts=new Map,this.database.updateItems(o).finally(()=>{if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)this.whenFlushedCallbacks.pop()?.()})}async doFlush(o){return this.options.hint===m.STORAGE_IN_MEMORY?this.flushPending():this.flushDelayer.trigger(()=>this.flushPending(),o)}}e.Storage=b;class p{constructor(){this.onDidChangeItemsExternal=k.Event.None,this.items=new Map}async updateItems(o){o.insert?.forEach((t,i)=>this.items.set(i,t)),o.delete?.forEach(t=>this.items.delete(t))}}e.InMemoryStorageDatabase=p}),define(ne[362],se([1,0,2,6,5]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ElementSizeObserver=void 0;class E extends d.Disposable{constructor(m,_){super(),this._onDidChange=this._register(new k.Emitter),this.onDidChange=this._onDidChange.event,this._referenceDomElement=m,this._width=-1,this._height=-1,this._resizeObserver=null,this.measureReferenceDomElement(!1,_)}dispose(){this.stopObserving(),super.dispose()}getWidth(){return this._width}getHeight(){return this._height}startObserving(){if(!this._resizeObserver&&this._referenceDomElement){let m=null;const _=()=>{m?this.observe({width:m.width,height:m.height}):this.observe()};let b=!1,p=!1;const n=()=>{if(b&&!p)try{b=!1,p=!0,_()}finally{(0,I.scheduleAtNextAnimationFrame)((0,I.getWindow)(this._referenceDomElement),()=>{p=!1,n()})}};this._resizeObserver=new ResizeObserver(o=>{o&&o[0]&&o[0].contentRect?m={width:o[0].contentRect.width,height:o[0].contentRect.height}:m=null,b=!0,n()}),this._resizeObserver.observe(this._referenceDomElement)}}stopObserving(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)}observe(m){this.measureReferenceDomElement(!0,m)}measureReferenceDomElement(m,_){let b=0,p=0;_?(b=_.width,p=_.height):this._referenceDomElement&&(b=this._referenceDomElement.clientWidth,p=this._referenceDomElement.clientHeight),b=Math.max(5,b),p=Math.max(5,p),(this._width!==b||this._height!==p)&&(this._width=b,this._height=p,m&&this._onDidChange.fire())}}e.ElementSizeObserver=E}),define(ne[648],se([1,0,5,18,57,19,3]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ManagedHoverWidget=void 0;class m{constructor(b,p,n){this.hoverDelegate=b,this.target=p,this.fadeInAnimation=n}async update(b,p,n){if(this._cancellationTokenSource&&(this._cancellationTokenSource.dispose(!0),this._cancellationTokenSource=void 0),this.isDisposed)return;let o;if(b===void 0||(0,E.isString)(b)||(0,d.isHTMLElement)(b))o=b;else if(!(0,E.isFunction)(b.markdown))o=b.markdown??b.markdownNotSupportedFallback;else{this._hoverWidget||this.show((0,y.localize)(69,"Loading..."),p,n),this._cancellationTokenSource=new k.CancellationTokenSource;const t=this._cancellationTokenSource.token;if(o=await b.markdown(t),o===void 0&&(o=b.markdownNotSupportedFallback),this.isDisposed||t.isCancellationRequested)return}this.show(o,p,n)}show(b,p,n){const o=this._hoverWidget;if(this.hasContent(b)){const t={content:b,target:this.target,actions:n?.actions,linkHandler:n?.linkHandler,trapFocus:n?.trapFocus,appearance:{showPointer:this.hoverDelegate.placement==="element",skipFadeInAnimation:!this.fadeInAnimation||!!o,showHoverHint:n?.appearance?.showHoverHint},position:{hoverPosition:2}};this._hoverWidget=this.hoverDelegate.showHover(t,p)}o?.dispose()}hasContent(b){return b?(0,I.isMarkdownString)(b)?!!b.value:!0:!1}get isDisposed(){return this._hoverWidget?.isDisposed}dispose(){this._hoverWidget?.dispose(),this._cancellationTokenSource?.dispose(!0),this._cancellationTokenSource=void 0}}e.ManagedHoverWidget=m}),define(ne[649],se([1,0,5,39,56]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewContentWidgets=void 0;class E extends I.ViewPart{constructor(o,t){super(o),this._viewDomNode=t,this._widgets={},this.domNode=(0,k.createFastDomNode)(document.createElement("div")),I.PartFingerprints.write(this.domNode,1),this.domNode.setClassName("contentWidgets"),this.domNode.setPosition("absolute"),this.domNode.setTop(0),this.overflowingContentWidgetsDomNode=(0,k.createFastDomNode)(document.createElement("div")),I.PartFingerprints.write(this.overflowingContentWidgetsDomNode,2),this.overflowingContentWidgetsDomNode.setClassName("overflowingContentWidgets")}dispose(){super.dispose(),this._widgets={}}onConfigurationChanged(o){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].onConfigurationChanged(o);return!0}onDecorationsChanged(o){return!0}onFlushed(o){return!0}onLineMappingChanged(o){return this._updateAnchorsViewPositions(),!0}onLinesChanged(o){return this._updateAnchorsViewPositions(),!0}onLinesDeleted(o){return this._updateAnchorsViewPositions(),!0}onLinesInserted(o){return this._updateAnchorsViewPositions(),!0}onScrollChanged(o){return!0}onZonesChanged(o){return!0}_updateAnchorsViewPositions(){const o=Object.keys(this._widgets);for(const t of o)this._widgets[t].updateAnchorViewPosition()}addWidget(o){const t=new y(this._context,this._viewDomNode,o);this._widgets[t.id]=t,t.allowEditorOverflow?this.overflowingContentWidgetsDomNode.appendChild(t.domNode):this.domNode.appendChild(t.domNode),this.setShouldRender()}setWidgetPosition(o,t,i,s,g){this._widgets[o.getId()].setPosition(t,i,s,g),this.setShouldRender()}removeWidget(o){const t=o.getId();if(this._widgets.hasOwnProperty(t)){const i=this._widgets[t];delete this._widgets[t];const s=i.domNode.domNode;s.remove(),s.removeAttribute("monaco-visible-content-widget"),this.setShouldRender()}}shouldSuppressMouseDownOnWidget(o){return this._widgets.hasOwnProperty(o)?this._widgets[o].suppressMouseDown:!1}onBeforeRender(o){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].onBeforeRender(o)}prepareRender(o){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].prepareRender(o)}render(o){const t=Object.keys(this._widgets);for(const i of t)this._widgets[i].render(o)}}e.ViewContentWidgets=E;class y{constructor(o,t,i){this._primaryAnchor=new m(null,null),this._secondaryAnchor=new m(null,null),this._context=o,this._viewDomNode=t,this._actual=i,this.domNode=(0,k.createFastDomNode)(this._actual.getDomNode()),this.id=this._actual.getId(),this.allowEditorOverflow=this._actual.allowEditorOverflow||!1,this.suppressMouseDown=this._actual.suppressMouseDown||!1;const s=this._context.configuration.options,g=s.get(146);this._fixedOverflowWidgets=s.get(42),this._contentWidth=g.contentWidth,this._contentLeft=g.contentLeft,this._lineHeight=s.get(67),this._affinity=null,this._preference=[],this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?"fixed":"absolute"),this.domNode.setDisplay("none"),this.domNode.setVisibility("hidden"),this.domNode.setAttribute("widgetId",this.id),this.domNode.setMaxWidth(this._maxWidth)}onConfigurationChanged(o){const t=this._context.configuration.options;if(this._lineHeight=t.get(67),o.hasChanged(146)){const i=t.get(146);this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._maxWidth=this._getMaxWidth()}}updateAnchorViewPosition(){this._setPosition(this._affinity,this._primaryAnchor.modelPosition,this._secondaryAnchor.modelPosition)}_setPosition(o,t,i){this._affinity=o,this._primaryAnchor=s(t,this._context.viewModel,this._affinity),this._secondaryAnchor=s(i,this._context.viewModel,this._affinity);function s(g,c,l){if(!g)return new m(null,null);const a=c.model.validatePosition(g);if(c.coordinatesConverter.modelPositionIsVisible(a)){const r=c.coordinatesConverter.convertModelPositionToViewPosition(a,l??void 0);return new m(g,r)}return new m(g,null)}}_getMaxWidth(){const o=this.domNode.domNode.ownerDocument,t=o.defaultView;return this.allowEditorOverflow?t?.innerWidth||o.documentElement.offsetWidth||o.body.offsetWidth:this._contentWidth}setPosition(o,t,i,s){this._setPosition(s,o,t),this._preference=i,this._primaryAnchor.viewPosition&&this._preference&&this._preference.length>0?this.domNode.setDisplay("block"):this.domNode.setDisplay("none"),this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1}_layoutBoxInViewport(o,t,i,s){const g=o.top,c=g,l=o.top+o.height,a=s.viewportHeight-l,r=g-i,u=c>=i,C=l,f=a>=i;let h=o.left;return h+t>s.scrollLeft+s.viewportWidth&&(h=s.scrollLeft+s.viewportWidth-t),ha){const f=C-(a-s);C-=f,i-=f}if(C=w,D=C+i<=f.height-S;return this._fixedOverflowWidgets?{fitsAbove:L,aboveTop:Math.max(u,w),fitsBelow:D,belowTop:C,left:v}:{fitsAbove:L,aboveTop:g,fitsBelow:D,belowTop:c,left:h}}_prepareRenderWidgetAtExactPositionOverflowing(o){return new _(o.top,o.left+this._contentLeft)}_getAnchorsCoordinates(o){const t=g(this._primaryAnchor.viewPosition,this._affinity,this._lineHeight),i=this._secondaryAnchor.viewPosition?.lineNumber===this._primaryAnchor.viewPosition?.lineNumber?this._secondaryAnchor.viewPosition:null,s=g(i,this._affinity,this._lineHeight);return{primary:t,secondary:s};function g(c,l,a){if(!c)return null;const r=o.visibleRangeForPosition(c);if(!r)return null;const u=c.column===1&&l===3?0:r.left,C=o.getVerticalOffsetForLineNumber(c.lineNumber)-o.scrollTop;return new b(C,u,a)}}_reduceAnchorCoordinates(o,t,i){if(!t)return o;const s=this._context.configuration.options.get(50);let g=t.left;return go.endLineNumber||this.domNode.setMaxWidth(this._maxWidth)}prepareRender(o){this._renderData=this._prepareRenderWidget(o)}render(o){if(!this._renderData||this._renderData.kind==="offViewport"){this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,this._renderData?.kind==="offViewport"&&this._renderData.preserveFocus?this.domNode.setTop(-1e3):this.domNode.setVisibility("hidden")),typeof this._actual.afterRender=="function"&&p(this._actual.afterRender,this._actual,null);return}this.allowEditorOverflow?(this.domNode.setTop(this._renderData.coordinate.top),this.domNode.setLeft(this._renderData.coordinate.left)):(this.domNode.setTop(this._renderData.coordinate.top+o.scrollTop-o.bigNumbersDelta),this.domNode.setLeft(this._renderData.coordinate.left)),this._isVisible||(this.domNode.setVisibility("inherit"),this.domNode.setAttribute("monaco-visible-content-widget","true"),this._isVisible=!0),typeof this._actual.afterRender=="function"&&p(this._actual.afterRender,this._actual,this._renderData.position)}}class m{constructor(o,t){this.modelPosition=o,this.viewPosition=t}}class _{constructor(o,t){this.top=o,this.left=t,this._coordinateBrand=void 0}}class b{constructor(o,t,i){this.top=o,this.left=t,this.height=i,this._anchorCoordinateBrand=void 0}}function p(n,o,...t){try{return n.call(o,...t)}catch{return null}}}),define(ne[650],se([1,0,39,56,5,492]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewOverlayWidgets=void 0;class E extends k.ViewPart{constructor(m,_){super(m),this._viewDomNode=_;const p=this._context.configuration.options.get(146);this._widgets={},this._verticalScrollbarWidth=p.verticalScrollbarWidth,this._minimapWidth=p.minimap.minimapWidth,this._horizontalScrollbarHeight=p.horizontalScrollbarHeight,this._editorHeight=p.height,this._editorWidth=p.width,this._viewDomNodeRect={top:0,left:0,width:0,height:0},this._domNode=(0,d.createFastDomNode)(document.createElement("div")),k.PartFingerprints.write(this._domNode,4),this._domNode.setClassName("overlayWidgets"),this.overflowingOverlayWidgetsDomNode=(0,d.createFastDomNode)(document.createElement("div")),k.PartFingerprints.write(this.overflowingOverlayWidgetsDomNode,5),this.overflowingOverlayWidgetsDomNode.setClassName("overflowingOverlayWidgets")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(m){const b=this._context.configuration.options.get(146);return this._verticalScrollbarWidth=b.verticalScrollbarWidth,this._minimapWidth=b.minimap.minimapWidth,this._horizontalScrollbarHeight=b.horizontalScrollbarHeight,this._editorHeight=b.height,this._editorWidth=b.width,!0}addWidget(m){const _=(0,d.createFastDomNode)(m.getDomNode());this._widgets[m.getId()]={widget:m,preference:null,domNode:_},_.setPosition("absolute"),_.setAttribute("widgetId",m.getId()),m.allowEditorOverflow?this.overflowingOverlayWidgetsDomNode.appendChild(_):this._domNode.appendChild(_),this.setShouldRender(),this._updateMaxMinWidth()}setWidgetPosition(m,_){const b=this._widgets[m.getId()],p=_?_.preference:null,n=_?.stackOridinal;return b.preference===p&&b.stack===n?(this._updateMaxMinWidth(),!1):(b.preference=p,b.stack=n,this.setShouldRender(),this._updateMaxMinWidth(),!0)}removeWidget(m){const _=m.getId();if(this._widgets.hasOwnProperty(_)){const p=this._widgets[_].domNode.domNode;delete this._widgets[_],p.remove(),this.setShouldRender(),this._updateMaxMinWidth()}}_updateMaxMinWidth(){let m=0;const _=Object.keys(this._widgets);for(let b=0,p=_.length;b0);_.sort((p,n)=>(this._widgets[p].stack||0)-(this._widgets[n].stack||0));for(let p=0,n=_.length;p{this._instantiateSome(1)})),this._register((0,d.runWhenWindowIdle)((0,d.getWindow)(this._editor.getDomNode()),()=>{this._instantiateSome(2)})),this._register((0,d.runWhenWindowIdle)((0,d.getWindow)(this._editor.getDomNode()),()=>{this._instantiateSome(3)},5e3))}saveViewState(){const m={};for(const[_,b]of this._instances)typeof b.saveViewState=="function"&&(m[_]=b.saveViewState());return m}restoreViewState(m){for(const[_,b]of this._instances)typeof b.restoreViewState=="function"&&b.restoreViewState(m[_])}get(m){return this._instantiateById(m),this._instances.get(m)||null}onBeforeInteractionEvent(){this._instantiateSome(2)}onAfterModelAttached(){return(0,d.runWhenWindowIdle)((0,d.getWindow)(this._editor?.getDomNode()),()=>{this._instantiateSome(1)},50)}_instantiateSome(m){if(this._finishedInstantiation[m])return;this._finishedInstantiation[m]=!0;const _=this._findPendingContributionsByInstantiation(m);for(const b of _)this._instantiateById(b.id)}_findPendingContributionsByInstantiation(m){const _=[];for(const[,b]of this._pending)b.instantiation===m&&_.push(b);return _}_instantiateById(m){const _=this._pending.get(m);if(_){if(this._pending.delete(m),!this._instantiationService||!this._editor)throw new Error("Cannot instantiate contributions before being initialized!");try{const b=this._instantiationService.createInstance(_.ctor,this._editor);this._instances.set(_.id,b),typeof b.restoreViewState=="function"&&_.instantiation!==0&&console.warn(`Editor contribution '${_.id}' should be eager instantiated because it uses saveViewState / restoreViewState.`)}catch(b){(0,k.onUnexpectedError)(b)}}}}e.CodeEditorContributions=E}),define(ne[363],se([1,0,173,2,21,65]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorSash=e.SashLayout=void 0;class y{resetSash(){this._sashRatio.set(void 0,void 0)}constructor(b,p){this._options=b,this.dimensions=p,this.sashLeft=(0,E.derivedWithSetter)(this,n=>{const o=this._sashRatio.read(n)??this._options.splitViewDefaultRatio.read(n);return this._computeSashLeft(o,n)},(n,o)=>{const t=this.dimensions.width.get();this._sashRatio.set(n/t,o)}),this._sashRatio=(0,I.observableValue)(this,void 0)}_computeSashLeft(b,p){const n=this.dimensions.width.read(p),o=Math.floor(this._options.splitViewDefaultRatio.read(p)*n),t=this._options.enableSplitViewResizing.read(p)?Math.floor(b*n):o,i=100;return n<=i*2?o:tn-i?n-i:t}}e.SashLayout=y;class m extends k.Disposable{constructor(b,p,n,o,t,i){super(),this._domNode=b,this._dimensions=p,this._enabled=n,this._boundarySashes=o,this.sashLeft=t,this._resetSash=i,this._sash=this._register(new d.Sash(this._domNode,{getVerticalSashTop:s=>0,getVerticalSashLeft:s=>this.sashLeft.get(),getVerticalSashHeight:s=>this._dimensions.height.get()},{orientation:0})),this._startSashPosition=void 0,this._register(this._sash.onDidStart(()=>{this._startSashPosition=this.sashLeft.get()})),this._register(this._sash.onDidChange(s=>{this.sashLeft.set(this._startSashPosition+(s.currentX-s.startX),void 0)})),this._register(this._sash.onDidEnd(()=>this._sash.layout())),this._register(this._sash.onDidReset(()=>this._resetSash())),this._register((0,I.autorun)(s=>{const g=this._boundarySashes.read(s);g&&(this._sash.orthogonalEndSash=g.bottom)})),this._register((0,I.autorun)(s=>{const g=this._enabled.read(s);this._sash.state=g?3:0,this.sashLeft.read(s),this._dimensions.height.read(s),this._sash.layout()}))}}e.DiffEditorSash=m}),define(ne[652],se([1,0,5,41,26,2,16,30,3]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineDiffDeletedCodeMargin=void 0;class b extends E.Disposable{get visibility(){return this._visibility}set visibility(n){this._visibility!==n&&(this._visibility=n,this._diffActions.style.visibility=n?"visible":"hidden")}constructor(n,o,t,i,s,g,c,l,a){super(),this._getViewZoneId=n,this._marginDomNode=o,this._modifiedEditor=t,this._diff=i,this._editor=s,this._viewLineCounts=g,this._originalTextModel=c,this._contextMenuService=l,this._clipboardService=a,this._visibility=!1,this._marginDomNode.style.zIndex="10",this._diffActions=document.createElement("div"),this._diffActions.className=m.ThemeIcon.asClassName(I.Codicon.lightBulb)+" lightbulb-glyph",this._diffActions.style.position="absolute";const r=this._modifiedEditor.getOption(67);this._diffActions.style.right="0px",this._diffActions.style.visibility="hidden",this._diffActions.style.height=`${r}px`,this._diffActions.style.lineHeight=`${r}px`,this._marginDomNode.appendChild(this._diffActions);let u=0;const C=t.getOption(128)&&!y.isIOS,f=(h,v)=>{this._contextMenuService.showContextMenu({domForShadowRoot:C?t.getDomNode()??void 0:void 0,getAnchor:()=>({x:h,y:v}),getActions:()=>{const w=[],S=i.modified.isEmpty;return w.push(new k.Action("diff.clipboard.copyDeletedContent",S?i.original.length>1?(0,_.localize)(99,"Copy deleted lines"):(0,_.localize)(100,"Copy deleted line"):i.original.length>1?(0,_.localize)(101,"Copy changed lines"):(0,_.localize)(102,"Copy changed line"),void 0,!0,async()=>{const D=this._originalTextModel.getValueInRange(i.original.toExclusiveRange());await this._clipboardService.writeText(D)})),i.original.length>1&&w.push(new k.Action("diff.clipboard.copyDeletedLineContent",S?(0,_.localize)(103,"Copy deleted line ({0})",i.original.startLineNumber+u):(0,_.localize)(104,"Copy changed line ({0})",i.original.startLineNumber+u),void 0,!0,async()=>{let D=this._originalTextModel.getLineContent(i.original.startLineNumber+u);D===""&&(D=this._originalTextModel.getEndOfLineSequence()===0?` +`:`\r +`),await this._clipboardService.writeText(D)})),t.getOption(92)||w.push(new k.Action("diff.inline.revertChange",(0,_.localize)(105,"Revert this change"),void 0,!0,async()=>{this._editor.revert(this._diff)})),w},autoSelectFirstItem:!0})};this._register((0,d.addStandardDisposableListener)(this._diffActions,"mousedown",h=>{if(!h.leftButton)return;const{top:v,height:w}=(0,d.getDomNodePagePosition)(this._diffActions),S=Math.floor(r/3);h.preventDefault(),f(h.posx,v+w+S)})),this._register(t.onMouseMove(h=>{(h.target.type===8||h.target.type===5)&&h.target.detail.viewZoneId===this._getViewZoneId()?(u=this._updateLightBulbPosition(this._marginDomNode,h.event.browserEvent.y,r),this.visibility=!0):this.visibility=!1})),this._register(t.onMouseDown(h=>{h.event.leftButton&&(h.target.type===8||h.target.type===5)&&h.target.detail.viewZoneId===this._getViewZoneId()&&(h.event.preventDefault(),u=this._updateLightBulbPosition(this._marginDomNode,h.event.browserEvent.y,r),f(h.event.posx,h.event.posy+r))}))}_updateLightBulbPosition(n,o,t){const{top:i}=(0,d.getDomNodePagePosition)(n),s=o-i,g=Math.floor(s/t),c=g*t;if(this._diffActions.style.top=`${c}px`,this._viewLineCounts){let l=0;for(let a=0;a{const C=this._diffModel.read(r)?.diff.read(r);if(!C)return o;const f=this._editors.modifiedSelections.read(r);if(f.every(S=>S.isEmpty()))return o;const h=new m.LineRangeSet(f.map(S=>m.LineRange.fromRangeInclusive(S))),w=C.mappings.filter(S=>S.lineRangeMapping.innerChanges&&h.intersects(S.lineRangeMapping.modified)).map(S=>({mapping:S,rangeMappings:S.lineRangeMapping.innerChanges.filter(L=>f.some(D=>_.Range.areIntersecting(L.modifiedRange,D)))}));return w.length===0||w.every(S=>S.rangeMappings.length===0)?o:w}),this._register((0,y.autorunWithStore)((r,u)=>{if(!this._options.shouldRenderOldRevertArrows.read(r))return;const C=this._diffModel.read(r),f=C?.diff.read(r);if(!C||!f||C.movedTextToCompare.read(r))return;const h=[],v=this._selectedDiffs.read(r),w=new Set(v.map(S=>S.mapping));if(v.length>0){const S=this._editors.modifiedSelections.read(r),L=u.add(new i(S[S.length-1].positionLineNumber,this._widget,v.flatMap(D=>D.rangeMappings),!0));this._editors.modified.addGlyphMarginWidget(L),h.push(L)}for(const S of f.mappings)if(!w.has(S)&&!S.lineRangeMapping.modified.isEmpty&&S.lineRangeMapping.innerChanges){const L=u.add(new i(S.lineRangeMapping.modified.startLineNumber,this._widget,S.lineRangeMapping,!1));this._editors.modified.addGlyphMarginWidget(L),h.push(L)}u.add((0,E.toDisposable)(()=>{for(const S of h)this._editors.modified.removeGlyphMarginWidget(S)}))}))}}e.RevertButtonsFeature=t;class i extends E.Disposable{static{this.counter=0}getId(){return this._id}constructor(g,c,l,a){super(),this._lineNumber=g,this._widget=c,this._diffs=l,this._revertSelection=a,this._id=`revertButton${i.counter++}`,this._domNode=(0,d.h)("div.revertButton",{title:this._revertSelection?(0,n.localize)(122,"Revert Selected Changes"):(0,n.localize)(123,"Revert Change")},[(0,k.renderIcon)(I.Codicon.arrowRight)]).root,this._register((0,d.addDisposableListener)(this._domNode,d.EventType.MOUSE_DOWN,r=>{r.button!==2&&(r.stopPropagation(),r.preventDefault())})),this._register((0,d.addDisposableListener)(this._domNode,d.EventType.MOUSE_UP,r=>{r.stopPropagation(),r.preventDefault()})),this._register((0,d.addDisposableListener)(this._domNode,d.EventType.CLICK,r=>{this._diffs instanceof b.LineRangeMapping?this._widget.revert(this._diffs):this._widget.revertRangeMappings(this._diffs),r.stopPropagation(),r.preventDefault()}))}getDomNode(){return this._domNode}getPosition(){return{lane:p.GlyphMarginLane.Right,range:{startColumn:1,startLineNumber:this._lineNumber,endColumn:1,endLineNumber:this._lineNumber},zIndex:10001}}}e.RevertButton=i}),define(ne[88],se([1,0,67,18,2,21,362,9,4,113]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RefCounted=e.DisposableCancellationTokenSource=e.ManagedOverlayWidget=e.PlaceholderViewZone=e.ViewZoneOverlayWidget=e.ObservableElementSizeObserver=void 0,e.joinCombine=p,e.applyObservableDecorations=n,e.appendRemoveOnDispose=o,e.prependRemoveOnDispose=t,e.animatedObservable=s,e.applyStyle=r,e.applyViewZones=u,e.translatePosition=f,e.filterWithPrevious=v;function p(D,T,M,A){if(D.length===0)return T;if(T.length===0)return D;const P=[];let N=0,O=0;for(;NV?(P.push(x),O++):(P.push(A(F,x)),N++,O++)}for(;N`Apply decorations from ${T.debugName}`},P=>{const N=T.read(P);A.set(N)})),M.add({dispose:()=>{A.clear()}}),M}function o(D,T){return D.appendChild(T),(0,I.toDisposable)(()=>{T.remove()})}function t(D,T){return D.prepend(T),(0,I.toDisposable)(()=>{T.remove()})}class i extends I.Disposable{get width(){return this._width}get height(){return this._height}get automaticLayout(){return this._automaticLayout}constructor(T,M){super(),this._automaticLayout=!1,this.elementSizeObserver=this._register(new y.ElementSizeObserver(T,M)),this._width=(0,E.observableValue)(this,this.elementSizeObserver.getWidth()),this._height=(0,E.observableValue)(this,this.elementSizeObserver.getHeight()),this._register(this.elementSizeObserver.onDidChange(A=>(0,E.transaction)(P=>{this._width.set(this.elementSizeObserver.getWidth(),P),this._height.set(this.elementSizeObserver.getHeight(),P)})))}observe(T){this.elementSizeObserver.observe(T)}setAutomaticLayout(T){this._automaticLayout=T,T?this.elementSizeObserver.startObserving():this.elementSizeObserver.stopObserving()}}e.ObservableElementSizeObserver=i;function s(D,T,M){let A=T.get(),P=A,N=A;const O=(0,E.observableValue)("animatedValue",A);let F=-1;const x=300;let W;M.add((0,E.autorunHandleChanges)({createEmptyChangeSummary:()=>({animate:!1}),handleChange:(q,H)=>(q.didChange(T)&&(H.animate=H.animate||q.change),!0)},(q,H)=>{W!==void 0&&(D.cancelAnimationFrame(W),W=void 0),P=N,A=T.read(q),F=Date.now()-(H.animate?0:x),V()}));function V(){const q=Date.now()-F;N=Math.floor(g(q,P,A-P,x)),q{this._actualTop.set(A,void 0)},this.onComputedHeight=A=>{this._actualHeight.set(A,void 0)}}}e.PlaceholderViewZone=l;class a{static{this._counter=0}constructor(T,M){this._editor=T,this._domElement=M,this._overlayWidgetId=`managedOverlayWidget-${a._counter++}`,this._overlayWidget={getId:()=>this._overlayWidgetId,getDomNode:()=>this._domElement,getPosition:()=>null},this._editor.addOverlayWidget(this._overlayWidget)}dispose(){this._editor.removeOverlayWidget(this._overlayWidget)}}e.ManagedOverlayWidget=a;function r(D,T){return(0,E.autorun)(M=>{for(let[A,P]of Object.entries(T))P&&typeof P=="object"&&"read"in P&&(P=P.read(M)),typeof P=="number"&&(P=`${P}px`),A=A.replace(/[A-Z]/g,N=>"-"+N.toLowerCase()),D.style[A]=P})}function u(D,T,M,A){const P=new I.DisposableStore,N=[];return P.add((0,E.autorunWithStore)((O,F)=>{const x=T.read(O),W=new Map,V=new Map;M&&M(!0),D.changeViewZones(q=>{for(const H of N)q.removeZone(H),A?.delete(H);N.length=0;for(const H of x){const z=q.addZone(H);H.setZoneId&&H.setZoneId(z),N.push(z),A?.add(z),W.set(H,z)}}),M&&M(!1),F.add((0,E.autorunHandleChanges)({createEmptyChangeSummary(){return{zoneIds:[]}},handleChange(q,H){const z=V.get(q.changedObservable);return z!==void 0&&H.zoneIds.push(z),!0}},(q,H)=>{for(const z of x)z.onChange&&(V.set(z.onChange,W.get(z)),z.onChange.read(q));M&&M(!0),D.changeViewZones(z=>{for(const U of H.zoneIds)z.layoutZone(U)}),M&&M(!1)}))})),P.add({dispose(){M&&M(!0),D.changeViewZones(O=>{for(const F of N)O.removeZone(F)}),A?.clear(),M&&M(!1)}}),P}class C extends k.CancellationTokenSource{dispose(){super.dispose(!0)}}e.DisposableCancellationTokenSource=C;function f(D,T){const M=(0,d.findLast)(T,P=>P.original.startLineNumber<=D.lineNumber);if(!M)return _.Range.fromPositions(D);if(M.original.endLineNumberExclusive<=D.lineNumber){const P=D.lineNumber-M.original.endLineNumberExclusive+M.modified.endLineNumberExclusive;return _.Range.fromPositions(new m.Position(P,D.column))}if(!M.innerChanges)return _.Range.fromPositions(new m.Position(M.modified.startLineNumber,1));const A=(0,d.findLast)(M.innerChanges,P=>P.originalRange.getStartPosition().isBeforeOrEqual(D));if(!A){const P=D.lineNumber-M.original.startLineNumber+M.modified.startLineNumber;return _.Range.fromPositions(new m.Position(P,D.column))}if(A.originalRange.containsPosition(D))return A.modifiedRange;{const P=h(A.originalRange.getEndPosition(),D);return _.Range.fromPositions(P.addToPosition(A.modifiedRange.getEndPosition()))}}function h(D,T){return D.lineNumber===T.lineNumber?new b.TextLength(0,T.column-D.column):new b.TextLength(T.lineNumber-D.lineNumber,T.column-1)}function v(D,T){let M;return D.filter(A=>{const P=T(A,M);return M=A,P})}class w{static create(T,M=void 0){return new S(T,T,M)}static createWithDisposable(T,M,A=void 0){const P=new I.DisposableStore;return P.add(M),P.add(T),new S(T,P,A)}}e.RefCounted=w;class S extends w{constructor(T,M,A){super(),this.object=T,this._disposable=M,this._debugOwner=A,this._refCount=1,this._isDisposed=!1,this._owners=[],A&&this._addOwner(A)}_addOwner(T){T&&this._owners.push(T)}createNewRef(T){return this._refCount++,T&&this._addOwner(T),new L(this,T)}dispose(){this._isDisposed||(this._isDisposed=!0,this._decreaseRefCount(this._debugOwner))}_decreaseRefCount(T){if(this._refCount--,this._refCount===0&&this._disposable.dispose(),T){const M=this._owners.indexOf(T);M!==-1&&this._owners.splice(M,1)}}}class L extends w{constructor(T,M){super(),this._base=T,this._debugOwner=M,this._isDisposed=!1}get object(){return this._base.object}createNewRef(T){return this._base.createNewRef(T)}dispose(){this._isDisposed||(this._isDisposed=!0,this._base._decreaseRefCount(this._debugOwner))}}}),define(ne[364],se([1,0,5,87,41,13,67,26,2,21,30,88,68,3]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MovedBlocksLinesFeature=void 0;class i extends _.Disposable{static{this.movedCodeBlockPadding=4}constructor(l,a,r,u,C){super(),this._rootElement=l,this._diffModel=a,this._originalEditorLayoutInfo=r,this._modifiedEditorLayoutInfo=u,this._editors=C,this._originalScrollTop=(0,b.observableFromEvent)(this,this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=(0,b.observableFromEvent)(this,this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._viewZonesChanged=(0,b.observableSignalFromEvent)("onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this.width=(0,b.observableValue)(this,0),this._modifiedViewZonesChangedSignal=(0,b.observableSignalFromEvent)("modified.onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this._originalViewZonesChangedSignal=(0,b.observableSignalFromEvent)("original.onDidChangeViewZones",this._editors.original.onDidChangeViewZones),this._state=(0,b.derivedWithStore)(this,(S,L)=>{this._element.replaceChildren();const D=this._diffModel.read(S),T=D?.diff.read(S)?.movedTexts;if(!T||T.length===0){this.width.set(0,void 0);return}this._viewZonesChanged.read(S);const M=this._originalEditorLayoutInfo.read(S),A=this._modifiedEditorLayoutInfo.read(S);if(!M||!A){this.width.set(0,void 0);return}this._modifiedViewZonesChangedSignal.read(S),this._originalViewZonesChangedSignal.read(S);const P=T.map(q=>{function H(ie,ue){const he=ue.getTopForLineNumber(ie.startLineNumber,!0),pe=ue.getTopForLineNumber(ie.endLineNumberExclusive,!0);return(he+pe)/2}const z=H(q.lineRangeMapping.original,this._editors.original),U=this._originalScrollTop.read(S),j=H(q.lineRangeMapping.modified,this._editors.modified),Y=this._modifiedScrollTop.read(S),G=z-U,K=j-Y,R=Math.min(z,j),J=Math.max(z,j);return{range:new o.OffsetRange(R,J),from:G,to:K,fromWithoutScroll:z,toWithoutScroll:j,move:q}});P.sort((0,E.tieBreakComparators)((0,E.compareBy)(q=>q.fromWithoutScroll>q.toWithoutScroll,E.booleanComparator),(0,E.compareBy)(q=>q.fromWithoutScroll>q.toWithoutScroll?q.fromWithoutScroll:-q.toWithoutScroll,E.numberComparator)));const N=s.compute(P.map(q=>q.range)),O=10,F=M.verticalScrollbarWidth,x=(N.getTrackCount()-1)*10+O*2,W=F+x+(A.contentLeft-i.movedCodeBlockPadding);let V=0;for(const q of P){const H=N.getTrack(V),z=F+O+H*10,U=15,j=15,Y=W,G=A.glyphMarginWidth+A.lineNumbersWidth,K=18,R=document.createElementNS("http://www.w3.org/2000/svg","rect");R.classList.add("arrow-rectangle"),R.setAttribute("x",`${Y-G}`),R.setAttribute("y",`${q.to-K/2}`),R.setAttribute("width",`${G}`),R.setAttribute("height",`${K}`),this._element.appendChild(R);const J=document.createElementNS("http://www.w3.org/2000/svg","g"),ie=document.createElementNS("http://www.w3.org/2000/svg","path");ie.setAttribute("d",`M 0 ${q.from} L ${z} ${q.from} L ${z} ${q.to} L ${Y-j} ${q.to}`),ie.setAttribute("fill","none"),J.appendChild(ie);const ue=document.createElementNS("http://www.w3.org/2000/svg","polygon");ue.classList.add("arrow"),L.add((0,b.autorun)(he=>{ie.classList.toggle("currentMove",q.move===D.activeMovedText.read(he)),ue.classList.toggle("currentMove",q.move===D.activeMovedText.read(he))})),ue.setAttribute("points",`${Y-j},${q.to-U/2} ${Y},${q.to} ${Y-j},${q.to+U/2}`),J.appendChild(ue),this._element.appendChild(J),V++}this.width.set(x,void 0)}),this._element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("class","moved-blocks-lines"),this._rootElement.appendChild(this._element),this._register((0,_.toDisposable)(()=>this._element.remove())),this._register((0,b.autorun)(S=>{const L=this._originalEditorLayoutInfo.read(S),D=this._modifiedEditorLayoutInfo.read(S);!L||!D||(this._element.style.left=`${L.width-L.verticalScrollbarWidth}px`,this._element.style.height=`${L.height}px`,this._element.style.width=`${L.verticalScrollbarWidth+L.contentLeft-i.movedCodeBlockPadding+this.width.read(S)}px`)})),this._register((0,b.recomputeInitiallyAndOnChange)(this._state));const f=(0,b.derived)(S=>{const D=this._diffModel.read(S)?.diff.read(S);return D?D.movedTexts.map(T=>({move:T,original:new n.PlaceholderViewZone((0,b.constObservable)(T.lineRangeMapping.original.startLineNumber-1),18),modified:new n.PlaceholderViewZone((0,b.constObservable)(T.lineRangeMapping.modified.startLineNumber-1),18)})):[]});this._register((0,n.applyViewZones)(this._editors.original,f.map(S=>S.map(L=>L.original)))),this._register((0,n.applyViewZones)(this._editors.modified,f.map(S=>S.map(L=>L.modified)))),this._register((0,b.autorunWithStore)((S,L)=>{const D=f.read(S);for(const T of D)L.add(new g(this._editors.original,T.original,T.move,"original",this._diffModel.get())),L.add(new g(this._editors.modified,T.modified,T.move,"modified",this._diffModel.get()))}));const h=(0,b.observableSignalFromEvent)("original.onDidFocusEditorWidget",S=>this._editors.original.onDidFocusEditorWidget(()=>setTimeout(()=>S(void 0),0))),v=(0,b.observableSignalFromEvent)("modified.onDidFocusEditorWidget",S=>this._editors.modified.onDidFocusEditorWidget(()=>setTimeout(()=>S(void 0),0)));let w="modified";this._register((0,b.autorunHandleChanges)({createEmptyChangeSummary:()=>{},handleChange:(S,L)=>(S.didChange(h)&&(w="original"),S.didChange(v)&&(w="modified"),!0)},S=>{h.read(S),v.read(S);const L=this._diffModel.read(S);if(!L)return;const D=L.diff.read(S);let T;if(D&&w==="original"){const M=this._editors.originalCursor.read(S);M&&(T=D.movedTexts.find(A=>A.lineRangeMapping.original.contains(M.lineNumber)))}if(D&&w==="modified"){const M=this._editors.modifiedCursor.read(S);M&&(T=D.movedTexts.find(A=>A.lineRangeMapping.modified.contains(M.lineNumber)))}T!==L.movedTextToCompare.get()&&L.movedTextToCompare.set(void 0,void 0),L.setActiveMovedText(T)}))}}e.MovedBlocksLinesFeature=i;class s{static compute(l){const a=[],r=[];for(const u of l){let C=a.findIndex(f=>!f.intersectsStrict(u));C===-1&&(a.length>=6?C=(0,y.findMaxIdx)(a,(0,E.compareBy)(h=>h.intersectWithRangeLength(u),E.numberComparator)):(C=a.length,a.push(new o.OffsetRangeSet))),a[C].addRange(u),r.push(C)}return new s(a.length,r)}constructor(l,a){this._trackCount=l,this.trackPerLineIdx=a}getTrack(l){return this.trackPerLineIdx[l]}getTrackCount(){return this._trackCount}}class g extends n.ViewZoneOverlayWidget{constructor(l,a,r,u,C){const f=(0,d.h)("div.diff-hidden-lines-widget");super(l,a,f.root),this._editor=l,this._move=r,this._kind=u,this._diffModel=C,this._nodes=(0,d.h)("div.diff-moved-code-block",{style:{marginRight:"4px"}},[(0,d.h)("div.text-content@textContent"),(0,d.h)("div.action-bar@actionBar")]),f.root.appendChild(this._nodes.root);const h=(0,b.observableFromEvent)(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._register((0,n.applyStyle)(this._nodes.root,{paddingRight:h.map(D=>D.verticalScrollbarWidth)}));let v;r.changes.length>0?v=this._kind==="original"?(0,t.localize)(118,"Code moved with changes to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):(0,t.localize)(119,"Code moved with changes from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1):v=this._kind==="original"?(0,t.localize)(120,"Code moved to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):(0,t.localize)(121,"Code moved from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1);const w=this._register(new k.ActionBar(this._nodes.actionBar,{highlightToggledItems:!0})),S=new I.Action("",v,"",!1);w.push(S,{icon:!1,label:!0});const L=new I.Action("","Compare",p.ThemeIcon.asClassName(m.Codicon.compareChanges),!0,()=>{this._editor.focus(),this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get()===r?void 0:this._move,void 0)});this._register((0,b.autorun)(D=>{const T=this._diffModel.movedTextToCompare.read(D)===r;L.checked=T})),w.push(L,{icon:!1,label:!0})}}}),define(ne[654],se([1,0,5,2,21,55,68]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorGutter=void 0;class m extends k.Disposable{constructor(p,n,o){super(),this._editor=p,this._domNode=n,this.itemProvider=o,this.scrollTop=(0,I.observableFromEvent)(this,this._editor.onDidScrollChange,s=>this._editor.getScrollTop()),this.isScrollTopZero=this.scrollTop.map(s=>s===0),this.modelAttached=(0,I.observableFromEvent)(this,this._editor.onDidChangeModel,s=>this._editor.hasModel()),this.editorOnDidChangeViewZones=(0,I.observableSignalFromEvent)("onDidChangeViewZones",this._editor.onDidChangeViewZones),this.editorOnDidContentSizeChange=(0,I.observableSignalFromEvent)("onDidContentSizeChange",this._editor.onDidContentSizeChange),this.domNodeSizeChanged=(0,I.observableSignal)("domNodeSizeChanged"),this.views=new Map,this._domNode.className="gutter monaco-editor";const t=this._domNode.appendChild((0,d.h)("div.scroll-decoration",{role:"presentation",ariaHidden:"true",style:{width:"100%"}}).root),i=new ResizeObserver(()=>{(0,I.transaction)(s=>{this.domNodeSizeChanged.trigger(s)})});i.observe(this._domNode),this._register((0,k.toDisposable)(()=>i.disconnect())),this._register((0,I.autorun)(s=>{t.className=this.isScrollTopZero.read(s)?"":"scroll-decoration"})),this._register((0,I.autorun)(s=>this.render(s)))}dispose(){super.dispose(),(0,d.reset)(this._domNode)}render(p){if(!this.modelAttached.read(p))return;this.domNodeSizeChanged.read(p),this.editorOnDidChangeViewZones.read(p),this.editorOnDidContentSizeChange.read(p);const n=this.scrollTop.read(p),o=this._editor.getVisibleRanges(),t=new Set(this.views.keys()),i=y.OffsetRange.ofStartAndLength(0,this._domNode.clientHeight);if(!i.isEmpty)for(const s of o){const g=new E.LineRange(s.startLineNumber,s.endLineNumber+1),c=this.itemProvider.getIntersectingGutterItems(g,p);(0,I.transaction)(l=>{for(const a of c){if(!a.range.intersect(g))continue;t.delete(a.id);let r=this.views.get(a.id);if(r)r.item.set(a,l);else{const h=document.createElement("div");this._domNode.appendChild(h);const v=(0,I.observableValue)("item",a),w=this.itemProvider.createView(v,h);r=new _(v,w,h),this.views.set(a.id,r)}const u=a.range.startLineNumber<=this._editor.getModel().getLineCount()?this._editor.getTopForLineNumber(a.range.startLineNumber,!0)-n:this._editor.getBottomForLineNumber(a.range.startLineNumber-1,!1)-n,f=(a.range.endLineNumberExclusive===1?Math.max(u,this._editor.getTopForLineNumber(a.range.startLineNumber,!1)-n):Math.max(u,this._editor.getBottomForLineNumber(a.range.endLineNumberExclusive-1,!0)-n))-u;r.domNode.style.top=`${u}px`,r.domNode.style.height=`${f}px`,r.gutterItemView.layout(y.OffsetRange.ofStartAndLength(u,f),i)}})}for(const s of t){const g=this.views.get(s);g.gutterItemView.dispose(),g.domNode.remove(),this.views.delete(s)}}}e.EditorGutter=m;class _{constructor(p,n,o){this.item=p,this.gutterItemView=n,this.domNode=o}}}),define(ne[365],se([1,0,41]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ActionRunnerWithContext=void 0;class k extends d.ActionRunner{constructor(E){super(),this._getContext=E}runAction(E,y){const m=this._getContext();return super.runAction(E,m)}}e.ActionRunnerWithContext=k}),define(ne[37],se([1,0,13,60,16,197,147,3]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorOptions=e.editorOptionsRegistry=e.EDITOR_FONT_DEFAULTS=e.unicodeHighlightConfigKeys=e.inUntrustedWorkspace=e.ShowLightbulbIconMode=e.EditorLayoutInfoComputer=e.EditorFontVariations=e.EditorFontLigatures=e.TextEditorCursorStyle=e.ApplyUpdateResult=e.ComputeOptionsMemory=e.ConfigurationChangedEvent=e.MINIMAP_GUTTER_WIDTH=void 0,e.boolean=s,e.clampedInt=c,e.clampedFloat=a,e.stringSet=C,e.filterValidationDecorations=ge,e.MINIMAP_GUTTER_WIDTH=8;class _{constructor(fe){this._values=fe}hasChanged(fe){return this._values[fe]}}e.ConfigurationChangedEvent=_;class b{constructor(){this.stableMinimapLayoutInput=null,this.stableFitMaxMinimapScale=0,this.stableFitRemainingWidth=0}}e.ComputeOptionsMemory=b;class p{constructor(fe,_e,xe,be){this.id=fe,this.name=_e,this.defaultValue=xe,this.schema=be}applyUpdate(fe,_e){return o(fe,_e)}compute(fe,_e,xe){return xe}}class n{constructor(fe,_e){this.newValue=fe,this.didChange=_e}}e.ApplyUpdateResult=n;function o(Fe,fe){if(typeof Fe!="object"||typeof fe!="object"||!Fe||!fe)return new n(fe,Fe!==fe);if(Array.isArray(Fe)||Array.isArray(fe)){const xe=Array.isArray(Fe)&&Array.isArray(fe)&&d.equals(Fe,fe);return new n(fe,!xe)}let _e=!1;for(const xe in fe)if(fe.hasOwnProperty(xe)){const be=o(Fe[xe],fe[xe]);be.didChange&&(Fe[xe]=be.newValue,_e=!0)}return new n(Fe,_e)}class t{constructor(fe){this.schema=void 0,this.id=fe,this.name="_never_",this.defaultValue=void 0}applyUpdate(fe,_e){return o(fe,_e)}validate(fe){return this.defaultValue}}class i{constructor(fe,_e,xe,be){this.id=fe,this.name=_e,this.defaultValue=xe,this.schema=be}applyUpdate(fe,_e){return o(fe,_e)}validate(fe){return typeof fe>"u"?this.defaultValue:fe}compute(fe,_e,xe){return xe}}function s(Fe,fe){return typeof Fe>"u"?fe:Fe==="false"?!1:!!Fe}class g extends i{constructor(fe,_e,xe,be=void 0){typeof be<"u"&&(be.type="boolean",be.default=xe),super(fe,_e,xe,be)}validate(fe){return s(fe,this.defaultValue)}}function c(Fe,fe,_e,xe){if(typeof Fe>"u")return fe;let be=parseInt(Fe,10);return isNaN(be)?fe:(be=Math.max(_e,be),be=Math.min(xe,be),be|0)}class l extends i{static clampedInt(fe,_e,xe,be){return c(fe,_e,xe,be)}constructor(fe,_e,xe,be,ve,we=void 0){typeof we<"u"&&(we.type="integer",we.default=xe,we.minimum=be,we.maximum=ve),super(fe,_e,xe,we),this.minimum=be,this.maximum=ve}validate(fe){return l.clampedInt(fe,this.defaultValue,this.minimum,this.maximum)}}function a(Fe,fe,_e,xe){if(typeof Fe>"u")return fe;const be=r.float(Fe,fe);return r.clamp(be,_e,xe)}class r extends i{static clamp(fe,_e,xe){return fe<_e?_e:fe>xe?xe:fe}static float(fe,_e){if(typeof fe=="number")return fe;if(typeof fe>"u")return _e;const xe=parseFloat(fe);return isNaN(xe)?_e:xe}constructor(fe,_e,xe,be,ve){typeof ve<"u"&&(ve.type="number",ve.default=xe),super(fe,_e,xe,ve),this.validationFn=be}validate(fe){return this.validationFn(r.float(fe,this.defaultValue))}}class u extends i{static string(fe,_e){return typeof fe!="string"?_e:fe}constructor(fe,_e,xe,be=void 0){typeof be<"u"&&(be.type="string",be.default=xe),super(fe,_e,xe,be)}validate(fe){return u.string(fe,this.defaultValue)}}function C(Fe,fe,_e,xe){return typeof Fe!="string"?fe:xe&&Fe in xe?xe[Fe]:_e.indexOf(Fe)===-1?fe:Fe}class f extends i{constructor(fe,_e,xe,be,ve=void 0){typeof ve<"u"&&(ve.type="string",ve.enum=be,ve.default=xe),super(fe,_e,xe,ve),this._allowedValues=be}validate(fe){return C(fe,this.defaultValue,this._allowedValues)}}class h extends p{constructor(fe,_e,xe,be,ve,we,Te=void 0){typeof Te<"u"&&(Te.type="string",Te.enum=ve,Te.default=be),super(fe,_e,xe,Te),this._allowedValues=ve,this._convert=we}validate(fe){return typeof fe!="string"?this.defaultValue:this._allowedValues.indexOf(fe)===-1?this.defaultValue:this._convert(fe)}}function v(Fe){switch(Fe){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}class w extends p{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[m.localize(183,"Use platform APIs to detect when a Screen Reader is attached."),m.localize(184,"Optimize for usage with a Screen Reader."),m.localize(185,"Assume a screen reader is not attached.")],default:"auto",tags:["accessibility"],description:m.localize(186,"Controls if the UI should run in a mode where it is optimized for screen readers.")})}validate(fe){switch(fe){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(fe,_e,xe){return xe===0?fe.accessibilitySupport:xe}}class S extends p{constructor(){const fe={insertSpace:!0,ignoreEmptyLines:!0};super(23,"comments",fe,{"editor.comments.insertSpace":{type:"boolean",default:fe.insertSpace,description:m.localize(187,"Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:fe.ignoreEmptyLines,description:m.localize(188,"Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{insertSpace:s(_e.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:s(_e.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}function L(Fe){switch(Fe){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}var D;(function(Fe){Fe[Fe.Line=1]="Line",Fe[Fe.Block=2]="Block",Fe[Fe.Underline=3]="Underline",Fe[Fe.LineThin=4]="LineThin",Fe[Fe.BlockOutline=5]="BlockOutline",Fe[Fe.UnderlineThin=6]="UnderlineThin"})(D||(e.TextEditorCursorStyle=D={}));function T(Fe){switch(Fe){case"line":return D.Line;case"block":return D.Block;case"underline":return D.Underline;case"line-thin":return D.LineThin;case"block-outline":return D.BlockOutline;case"underline-thin":return D.UnderlineThin}}class M extends t{constructor(){super(143)}compute(fe,_e,xe){const be=["monaco-editor"];return _e.get(39)&&be.push(_e.get(39)),fe.extraEditorClassName&&be.push(fe.extraEditorClassName),_e.get(74)==="default"?be.push("mouse-default"):_e.get(74)==="copy"&&be.push("mouse-copy"),_e.get(112)&&be.push("showUnused"),_e.get(141)&&be.push("showDeprecated"),be.join(" ")}}class A extends g{constructor(){super(37,"emptySelectionClipboard",!0,{description:m.localize(189,"Controls whether copying without a selection copies the current line.")})}compute(fe,_e,xe){return xe&&fe.emptySelectionClipboard}}class P extends p{constructor(){const fe={cursorMoveOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0};super(41,"find",fe,{"editor.find.cursorMoveOnType":{type:"boolean",default:fe.cursorMoveOnType,description:m.localize(190,"Controls whether the cursor should jump to find matches while typing.")},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:fe.seedSearchStringFromSelection,enumDescriptions:[m.localize(191,"Never seed search string from the editor selection."),m.localize(192,"Always seed search string from the editor selection, including word at cursor position."),m.localize(193,"Only seed search string from the editor selection.")],description:m.localize(194,"Controls whether the search string in the Find Widget is seeded from the editor selection.")},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:fe.autoFindInSelection,enumDescriptions:[m.localize(195,"Never turn on Find in Selection automatically (default)."),m.localize(196,"Always turn on Find in Selection automatically."),m.localize(197,"Turn on Find in Selection automatically when multiple lines of content are selected.")],description:m.localize(198,"Controls the condition for turning on Find in Selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:fe.globalFindClipboard,description:m.localize(199,"Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:I.isMacintosh},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:fe.addExtraSpaceOnTop,description:m.localize(200,"Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")},"editor.find.loop":{type:"boolean",default:fe.loop,description:m.localize(201,"Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{cursorMoveOnType:s(_e.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:typeof fe.seedSearchStringFromSelection=="boolean"?fe.seedSearchStringFromSelection?"always":"never":C(_e.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:typeof fe.autoFindInSelection=="boolean"?fe.autoFindInSelection?"always":"never":C(_e.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:s(_e.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:s(_e.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:s(_e.loop,this.defaultValue.loop)}}}class N extends p{static{this.OFF='"liga" off, "calt" off'}static{this.ON='"liga" on, "calt" on'}constructor(){super(51,"fontLigatures",N.OFF,{anyOf:[{type:"boolean",description:m.localize(202,"Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.")},{type:"string",description:m.localize(203,"Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:m.localize(204,"Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property."),default:!1})}validate(fe){return typeof fe>"u"?this.defaultValue:typeof fe=="string"?fe==="false"||fe.length===0?N.OFF:fe==="true"?N.ON:fe:fe?N.ON:N.OFF}}e.EditorFontLigatures=N;class O extends p{static{this.OFF="normal"}static{this.TRANSLATE="translate"}constructor(){super(54,"fontVariations",O.OFF,{anyOf:[{type:"boolean",description:m.localize(205,"Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.")},{type:"string",description:m.localize(206,"Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.")}],description:m.localize(207,"Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property."),default:!1})}validate(fe){return typeof fe>"u"?this.defaultValue:typeof fe=="string"?fe==="false"?O.OFF:fe==="true"?O.TRANSLATE:fe:fe?O.TRANSLATE:O.OFF}compute(fe,_e,xe){return fe.fontInfo.fontVariationSettings}}e.EditorFontVariations=O;class F extends t{constructor(){super(50)}compute(fe,_e,xe){return fe.fontInfo}}class x extends i{constructor(){super(52,"fontSize",e.EDITOR_FONT_DEFAULTS.fontSize,{type:"number",minimum:6,maximum:100,default:e.EDITOR_FONT_DEFAULTS.fontSize,description:m.localize(208,"Controls the font size in pixels.")})}validate(fe){const _e=r.float(fe,this.defaultValue);return _e===0?e.EDITOR_FONT_DEFAULTS.fontSize:r.clamp(_e,6,100)}compute(fe,_e,xe){return fe.fontInfo.fontSize}}class W extends p{static{this.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"]}static{this.MINIMUM_VALUE=1}static{this.MAXIMUM_VALUE=1e3}constructor(){super(53,"fontWeight",e.EDITOR_FONT_DEFAULTS.fontWeight,{anyOf:[{type:"number",minimum:W.MINIMUM_VALUE,maximum:W.MAXIMUM_VALUE,errorMessage:m.localize(209,'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.')},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:W.SUGGESTION_VALUES}],default:e.EDITOR_FONT_DEFAULTS.fontWeight,description:m.localize(210,'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}validate(fe){return fe==="normal"||fe==="bold"?fe:String(l.clampedInt(fe,e.EDITOR_FONT_DEFAULTS.fontWeight,W.MINIMUM_VALUE,W.MAXIMUM_VALUE))}}class V extends p{constructor(){const fe={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",multipleTests:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:"",alternativeTestsCommand:""},_e={type:"string",enum:["peek","gotoAndPeek","goto"],default:fe.multiple,enumDescriptions:[m.localize(211,"Show Peek view of the results (default)"),m.localize(212,"Go to the primary result and show a Peek view"),m.localize(213,"Go to the primary result and enable Peek-less navigation to others")]},xe=["","editor.action.referenceSearch.trigger","editor.action.goToReferences","editor.action.peekImplementation","editor.action.goToImplementation","editor.action.peekTypeDefinition","editor.action.goToTypeDefinition","editor.action.peekDeclaration","editor.action.revealDeclaration","editor.action.peekDefinition","editor.action.revealDefinitionAside","editor.action.revealDefinition"];super(58,"gotoLocation",fe,{"editor.gotoLocation.multiple":{deprecationMessage:m.localize(214,"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":{description:m.localize(215,"Controls the behavior the 'Go to Definition'-command when multiple target locations exist."),..._e},"editor.gotoLocation.multipleTypeDefinitions":{description:m.localize(216,"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist."),..._e},"editor.gotoLocation.multipleDeclarations":{description:m.localize(217,"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist."),..._e},"editor.gotoLocation.multipleImplementations":{description:m.localize(218,"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist."),..._e},"editor.gotoLocation.multipleReferences":{description:m.localize(219,"Controls the behavior the 'Go to References'-command when multiple target locations exist."),..._e},"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:fe.alternativeDefinitionCommand,enum:xe,description:m.localize(220,"Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:fe.alternativeTypeDefinitionCommand,enum:xe,description:m.localize(221,"Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:fe.alternativeDeclarationCommand,enum:xe,description:m.localize(222,"Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:fe.alternativeImplementationCommand,enum:xe,description:m.localize(223,"Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:fe.alternativeReferenceCommand,enum:xe,description:m.localize(224,"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{multiple:C(_e.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:_e.multipleDefinitions??C(_e.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:_e.multipleTypeDefinitions??C(_e.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:_e.multipleDeclarations??C(_e.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:_e.multipleImplementations??C(_e.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:_e.multipleReferences??C(_e.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),multipleTests:_e.multipleTests??C(_e.multipleTests,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:u.string(_e.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:u.string(_e.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:u.string(_e.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:u.string(_e.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:u.string(_e.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand),alternativeTestsCommand:u.string(_e.alternativeTestsCommand,this.defaultValue.alternativeTestsCommand)}}}class q extends p{constructor(){const fe={enabled:!0,delay:300,hidingDelay:300,sticky:!0,above:!0};super(60,"hover",fe,{"editor.hover.enabled":{type:"boolean",default:fe.enabled,description:m.localize(225,"Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:fe.delay,minimum:0,maximum:1e4,description:m.localize(226,"Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:fe.sticky,description:m.localize(227,"Controls whether the hover should remain visible when mouse is moved over it.")},"editor.hover.hidingDelay":{type:"integer",minimum:0,default:fe.hidingDelay,description:m.localize(228,"Controls the delay in milliseconds after which the hover is hidden. Requires `editor.hover.sticky` to be enabled.")},"editor.hover.above":{type:"boolean",default:fe.above,description:m.localize(229,"Prefer showing hovers above the line, if there's space.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),delay:l.clampedInt(_e.delay,this.defaultValue.delay,0,1e4),sticky:s(_e.sticky,this.defaultValue.sticky),hidingDelay:l.clampedInt(_e.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:s(_e.above,this.defaultValue.above)}}}class H extends t{constructor(){super(146)}compute(fe,_e,xe){return H.computeLayout(_e,{memory:fe.memory,outerWidth:fe.outerWidth,outerHeight:fe.outerHeight,isDominatedByLongLines:fe.isDominatedByLongLines,lineHeight:fe.fontInfo.lineHeight,viewLineCount:fe.viewLineCount,lineNumbersDigitCount:fe.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:fe.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:fe.fontInfo.maxDigitWidth,pixelRatio:fe.pixelRatio,glyphMarginDecorationLaneCount:fe.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(fe){const _e=fe.height/fe.lineHeight,xe=Math.floor(fe.paddingTop/fe.lineHeight);let be=Math.floor(fe.paddingBottom/fe.lineHeight);fe.scrollBeyondLastLine&&(be=Math.max(be,_e-1));const ve=(xe+fe.viewLineCount+be)/(fe.pixelRatio*fe.height),we=Math.floor(fe.viewLineCount/ve);return{typicalViewportLineCount:_e,extraLinesBeforeFirstLine:xe,extraLinesBeyondLastLine:be,desiredRatio:ve,minimapLineCount:we}}static _computeMinimapLayout(fe,_e){const xe=fe.outerWidth,be=fe.outerHeight,ve=fe.pixelRatio;if(!fe.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(ve*be),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:be};const we=_e.stableMinimapLayoutInput,Te=we&&fe.outerHeight===we.outerHeight&&fe.lineHeight===we.lineHeight&&fe.typicalHalfwidthCharacterWidth===we.typicalHalfwidthCharacterWidth&&fe.pixelRatio===we.pixelRatio&&fe.scrollBeyondLastLine===we.scrollBeyondLastLine&&fe.paddingTop===we.paddingTop&&fe.paddingBottom===we.paddingBottom&&fe.minimap.enabled===we.minimap.enabled&&fe.minimap.side===we.minimap.side&&fe.minimap.size===we.minimap.size&&fe.minimap.showSlider===we.minimap.showSlider&&fe.minimap.renderCharacters===we.minimap.renderCharacters&&fe.minimap.maxColumn===we.minimap.maxColumn&&fe.minimap.scale===we.minimap.scale&&fe.verticalScrollbarWidth===we.verticalScrollbarWidth&&fe.isViewportWrapping===we.isViewportWrapping,Pe=fe.lineHeight,Be=fe.typicalHalfwidthCharacterWidth,He=fe.scrollBeyondLastLine,$e=fe.minimap.renderCharacters;let je=ve>=2?Math.round(fe.minimap.scale*2):fe.minimap.scale;const Xe=fe.minimap.maxColumn,et=fe.minimap.size,dt=fe.minimap.side,at=fe.verticalScrollbarWidth,st=fe.viewLineCount,pt=fe.remainingWidth,bt=fe.isViewportWrapping,De=$e?2:3;let Ie=Math.floor(ve*be);const Re=Ie/ve;let Se=!1,We=!1,qe=De*je,Ue=je/ve,Je=1;if(et==="fill"||et==="fit"){const{typicalViewportLineCount:Ve,extraLinesBeforeFirstLine:Ye,extraLinesBeyondLastLine:Ze,desiredRatio:nt,minimapLineCount:ct}=H.computeContainedMinimapLineCount({viewLineCount:st,scrollBeyondLastLine:He,paddingTop:fe.paddingTop,paddingBottom:fe.paddingBottom,height:be,lineHeight:Pe,pixelRatio:ve});if(st/ct>1)Se=!0,We=!0,je=1,qe=1,Ue=je/ve;else{let ft=!1,gt=je+1;if(et==="fit"){const mt=Math.ceil((Ye+st+Ze)*qe);bt&&Te&&pt<=_e.stableFitRemainingWidth?(ft=!0,gt=_e.stableFitMaxMinimapScale):ft=mt>Ie}if(et==="fill"||ft){Se=!0;const mt=je;qe=Math.min(Pe*ve,Math.max(1,Math.floor(1/nt))),bt&&Te&&pt<=_e.stableFitRemainingWidth&&(gt=_e.stableFitMaxMinimapScale),je=Math.min(gt,Math.max(1,Math.floor(qe/De))),je>mt&&(Je=Math.min(2,je/mt)),Ue=je/ve/Je,Ie=Math.ceil(Math.max(Ve,Ye+st+Ze)*qe),bt?(_e.stableMinimapLayoutInput=fe,_e.stableFitRemainingWidth=pt,_e.stableFitMaxMinimapScale=je):(_e.stableMinimapLayoutInput=null,_e.stableFitRemainingWidth=0)}}}const tt=Math.floor(Xe*Ue),Qe=Math.min(tt,Math.max(0,Math.floor((pt-at-2)*Ue/(Be+Ue)))+e.MINIMAP_GUTTER_WIDTH);let rt=Math.floor(ve*Qe);const Ct=rt/ve;rt=Math.floor(rt*Je);const ut=$e?1:2,ot=dt==="left"?0:xe-Qe-at;return{renderMinimap:ut,minimapLeft:ot,minimapWidth:Qe,minimapHeightIsEditorHeight:Se,minimapIsSampling:We,minimapScale:je,minimapLineHeight:qe,minimapCanvasInnerWidth:rt,minimapCanvasInnerHeight:Ie,minimapCanvasOuterWidth:Ct,minimapCanvasOuterHeight:Re}}static computeLayout(fe,_e){const xe=_e.outerWidth|0,be=_e.outerHeight|0,ve=_e.lineHeight|0,we=_e.lineNumbersDigitCount|0,Te=_e.typicalHalfwidthCharacterWidth,Pe=_e.maxDigitWidth,Be=_e.pixelRatio,He=_e.viewLineCount,$e=fe.get(138),je=$e==="inherit"?fe.get(137):$e,Xe=je==="inherit"?fe.get(133):je,et=fe.get(136),dt=_e.isDominatedByLongLines,at=fe.get(57),st=fe.get(68).renderType!==0,pt=fe.get(69),bt=fe.get(106),De=fe.get(84),Ie=fe.get(73),Re=fe.get(104),Se=Re.verticalScrollbarSize,We=Re.verticalHasArrows,qe=Re.arrowSize,Ue=Re.horizontalScrollbarSize,Je=fe.get(43),tt=fe.get(111)!=="never";let Qe=fe.get(66);Je&&tt&&(Qe+=16);let rt=0;if(st){const Dt=Math.max(we,pt);rt=Math.round(Dt*Pe)}let Ct=0;at&&(Ct=ve*_e.glyphMarginDecorationLaneCount);let ut=0,ot=ut+Ct,Ve=ot+rt,Ye=Ve+Qe;const Ze=xe-Ct-rt-Qe;let nt=!1,ct=!1,ht=-1;je==="inherit"&&dt?(nt=!0,ct=!0):Xe==="on"||Xe==="bounded"?ct=!0:Xe==="wordWrapColumn"&&(ht=et);const ft=H._computeMinimapLayout({outerWidth:xe,outerHeight:be,lineHeight:ve,typicalHalfwidthCharacterWidth:Te,pixelRatio:Be,scrollBeyondLastLine:bt,paddingTop:De.top,paddingBottom:De.bottom,minimap:Ie,verticalScrollbarWidth:Se,viewLineCount:He,remainingWidth:Ze,isViewportWrapping:ct},_e.memory||new b);ft.renderMinimap!==0&&ft.minimapLeft===0&&(ut+=ft.minimapWidth,ot+=ft.minimapWidth,Ve+=ft.minimapWidth,Ye+=ft.minimapWidth);const gt=Ze-ft.minimapWidth,mt=Math.max(1,Math.floor((gt-Se-2)/Te)),vt=We?qe:0;return ct&&(ht=Math.max(1,mt),Xe==="bounded"&&(ht=Math.min(ht,et))),{width:xe,height:be,glyphMarginLeft:ut,glyphMarginWidth:Ct,glyphMarginDecorationLaneCount:_e.glyphMarginDecorationLaneCount,lineNumbersLeft:ot,lineNumbersWidth:rt,decorationsLeft:Ve,decorationsWidth:Qe,contentLeft:Ye,contentWidth:gt,minimap:ft,viewportColumn:mt,isWordWrapMinified:nt,isViewportWrapping:ct,wrappingColumn:ht,verticalScrollbarWidth:Se,horizontalScrollbarHeight:Ue,overviewRuler:{top:vt,width:Se,height:be-2*vt,right:0}}}}e.EditorLayoutInfoComputer=H;class z extends p{constructor(){super(140,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[m.localize(230,"Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width."),m.localize(231,"Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.")],type:"string",enum:["simple","advanced"],default:"simple",description:m.localize(232,"Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.")}})}validate(fe){return C(fe,"simple",["simple","advanced"])}compute(fe,_e,xe){return _e.get(2)===2?"advanced":xe}}var U;(function(Fe){Fe.Off="off",Fe.OnCode="onCode",Fe.On="on"})(U||(e.ShowLightbulbIconMode=U={}));class j extends p{constructor(){const fe={enabled:U.OnCode};super(65,"lightbulb",fe,{"editor.lightbulb.enabled":{type:"string",tags:["experimental"],enum:[U.Off,U.OnCode,U.On],default:fe.enabled,enumDescriptions:[m.localize(233,"Disable the code action menu."),m.localize(234,"Show the code action menu when the cursor is on lines with code."),m.localize(235,"Show the code action menu when the cursor is on lines with code or on empty lines.")],description:m.localize(236,"Enables the Code Action lightbulb in the editor.")}})}validate(fe){return!fe||typeof fe!="object"?this.defaultValue:{enabled:C(fe.enabled,this.defaultValue.enabled,[U.Off,U.OnCode,U.On])}}}class Y extends p{constructor(){const fe={enabled:!0,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:!0};super(116,"stickyScroll",fe,{"editor.stickyScroll.enabled":{type:"boolean",default:fe.enabled,description:m.localize(237,"Shows the nested current scopes during the scroll at the top of the editor."),tags:["experimental"]},"editor.stickyScroll.maxLineCount":{type:"number",default:fe.maxLineCount,minimum:1,maximum:20,description:m.localize(238,"Defines the maximum number of sticky lines to show.")},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:fe.defaultModel,description:m.localize(239,"Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.")},"editor.stickyScroll.scrollWithEditor":{type:"boolean",default:fe.scrollWithEditor,description:m.localize(240,"Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),maxLineCount:l.clampedInt(_e.maxLineCount,this.defaultValue.maxLineCount,1,20),defaultModel:C(_e.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:s(_e.scrollWithEditor,this.defaultValue.scrollWithEditor)}}}class G extends p{constructor(){const fe={enabled:"on",fontSize:0,fontFamily:"",padding:!1};super(142,"inlayHints",fe,{"editor.inlayHints.enabled":{type:"string",default:fe.enabled,description:m.localize(241,"Enables the inlay hints in the editor."),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[m.localize(242,"Inlay hints are enabled"),m.localize(243,"Inlay hints are showing by default and hide when holding {0}",I.isMacintosh?"Ctrl+Option":"Ctrl+Alt"),m.localize(244,"Inlay hints are hidden by default and show when holding {0}",I.isMacintosh?"Ctrl+Option":"Ctrl+Alt"),m.localize(245,"Inlay hints are disabled")]},"editor.inlayHints.fontSize":{type:"number",default:fe.fontSize,markdownDescription:m.localize(246,"Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.","`#editor.fontSize#`","`5`")},"editor.inlayHints.fontFamily":{type:"string",default:fe.fontFamily,markdownDescription:m.localize(247,"Controls font family of inlay hints in the editor. When set to empty, the {0} is used.","`#editor.fontFamily#`")},"editor.inlayHints.padding":{type:"boolean",default:fe.padding,description:m.localize(248,"Enables the padding around the inlay hints in the editor.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return typeof _e.enabled=="boolean"&&(_e.enabled=_e.enabled?"on":"off"),{enabled:C(_e.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:l.clampedInt(_e.fontSize,this.defaultValue.fontSize,0,100),fontFamily:u.string(_e.fontFamily,this.defaultValue.fontFamily),padding:s(_e.padding,this.defaultValue.padding)}}}class K extends p{constructor(){super(66,"lineDecorationsWidth",10)}validate(fe){return typeof fe=="string"&&/^\d+(\.\d+)?ch$/.test(fe)?-parseFloat(fe.substring(0,fe.length-2)):l.clampedInt(fe,this.defaultValue,0,1e3)}compute(fe,_e,xe){return xe<0?l.clampedInt(-xe*fe.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):xe}}class R extends r{constructor(){super(67,"lineHeight",e.EDITOR_FONT_DEFAULTS.lineHeight,fe=>r.clamp(fe,0,150),{markdownDescription:m.localize(249,`Controls the line height. + - Use 0 to automatically compute the line height from the font size. + - Values between 0 and 8 will be used as a multiplier with the font size. + - Values greater than or equal to 8 will be used as effective values.`)})}compute(fe,_e,xe){return fe.fontInfo.lineHeight}}class J extends p{constructor(){const fe={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:!1,renderCharacters:!0,maxColumn:120,scale:1,showRegionSectionHeaders:!0,showMarkSectionHeaders:!0,sectionHeaderFontSize:9,sectionHeaderLetterSpacing:1};super(73,"minimap",fe,{"editor.minimap.enabled":{type:"boolean",default:fe.enabled,description:m.localize(250,"Controls whether the minimap is shown.")},"editor.minimap.autohide":{type:"boolean",default:fe.autohide,description:m.localize(251,"Controls whether the minimap is hidden automatically.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[m.localize(252,"The minimap has the same size as the editor contents (and might scroll)."),m.localize(253,"The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),m.localize(254,"The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:fe.size,description:m.localize(255,"Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:fe.side,description:m.localize(256,"Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:fe.showSlider,description:m.localize(257,"Controls when the minimap slider is shown.")},"editor.minimap.scale":{type:"number",default:fe.scale,minimum:1,maximum:3,enum:[1,2,3],description:m.localize(258,"Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:fe.renderCharacters,description:m.localize(259,"Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:fe.maxColumn,description:m.localize(260,"Limit the width of the minimap to render at most a certain number of columns.")},"editor.minimap.showRegionSectionHeaders":{type:"boolean",default:fe.showRegionSectionHeaders,description:m.localize(261,"Controls whether named regions are shown as section headers in the minimap.")},"editor.minimap.showMarkSectionHeaders":{type:"boolean",default:fe.showMarkSectionHeaders,description:m.localize(262,"Controls whether MARK: comments are shown as section headers in the minimap.")},"editor.minimap.sectionHeaderFontSize":{type:"number",default:fe.sectionHeaderFontSize,description:m.localize(263,"Controls the font size of section headers in the minimap.")},"editor.minimap.sectionHeaderLetterSpacing":{type:"number",default:fe.sectionHeaderLetterSpacing,description:m.localize(264,"Controls the amount of space (in pixels) between characters of section header. This helps the readability of the header in small font sizes.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),autohide:s(_e.autohide,this.defaultValue.autohide),size:C(_e.size,this.defaultValue.size,["proportional","fill","fit"]),side:C(_e.side,this.defaultValue.side,["right","left"]),showSlider:C(_e.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:s(_e.renderCharacters,this.defaultValue.renderCharacters),scale:l.clampedInt(_e.scale,1,1,3),maxColumn:l.clampedInt(_e.maxColumn,this.defaultValue.maxColumn,1,1e4),showRegionSectionHeaders:s(_e.showRegionSectionHeaders,this.defaultValue.showRegionSectionHeaders),showMarkSectionHeaders:s(_e.showMarkSectionHeaders,this.defaultValue.showMarkSectionHeaders),sectionHeaderFontSize:r.clamp(_e.sectionHeaderFontSize??this.defaultValue.sectionHeaderFontSize,4,32),sectionHeaderLetterSpacing:r.clamp(_e.sectionHeaderLetterSpacing??this.defaultValue.sectionHeaderLetterSpacing,0,5)}}}function ie(Fe){return Fe==="ctrlCmd"?I.isMacintosh?"metaKey":"ctrlKey":"altKey"}class ue extends p{constructor(){super(84,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:m.localize(265,"Controls the amount of space between the top edge of the editor and the first line.")},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:m.localize(266,"Controls the amount of space between the bottom edge of the editor and the last line.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{top:l.clampedInt(_e.top,0,0,1e3),bottom:l.clampedInt(_e.bottom,0,0,1e3)}}}class he extends p{constructor(){const fe={enabled:!0,cycle:!0};super(86,"parameterHints",fe,{"editor.parameterHints.enabled":{type:"boolean",default:fe.enabled,description:m.localize(267,"Enables a pop-up that shows parameter documentation and type information as you type.")},"editor.parameterHints.cycle":{type:"boolean",default:fe.cycle,description:m.localize(268,"Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),cycle:s(_e.cycle,this.defaultValue.cycle)}}}class pe extends t{constructor(){super(144)}compute(fe,_e,xe){return fe.pixelRatio}}class ae extends p{constructor(){super(88,"placeholder",void 0)}validate(fe){return typeof fe>"u"?this.defaultValue:typeof fe=="string"?fe:this.defaultValue}}class ee extends p{constructor(){const fe={other:"on",comments:"off",strings:"off"},_e=[{type:"boolean"},{type:"string",enum:["on","inline","off"],enumDescriptions:[m.localize(269,"Quick suggestions show inside the suggest widget"),m.localize(270,"Quick suggestions show as ghost text"),m.localize(271,"Quick suggestions are disabled")]}];super(90,"quickSuggestions",fe,{type:"object",additionalProperties:!1,properties:{strings:{anyOf:_e,default:fe.strings,description:m.localize(272,"Enable quick suggestions inside strings.")},comments:{anyOf:_e,default:fe.comments,description:m.localize(273,"Enable quick suggestions inside comments.")},other:{anyOf:_e,default:fe.other,description:m.localize(274,"Enable quick suggestions outside of strings and comments.")}},default:fe,markdownDescription:m.localize(275,"Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the {0}-setting which controls if suggestions are triggered by special characters.","`#editor.suggestOnTriggerCharacters#`")}),this.defaultValue=fe}validate(fe){if(typeof fe=="boolean"){const Be=fe?"on":"off";return{comments:Be,strings:Be,other:Be}}if(!fe||typeof fe!="object")return this.defaultValue;const{other:_e,comments:xe,strings:be}=fe,ve=["on","inline","off"];let we,Te,Pe;return typeof _e=="boolean"?we=_e?"on":"off":we=C(_e,this.defaultValue.other,ve),typeof xe=="boolean"?Te=xe?"on":"off":Te=C(xe,this.defaultValue.comments,ve),typeof be=="boolean"?Pe=be?"on":"off":Pe=C(be,this.defaultValue.strings,ve),{other:we,comments:Te,strings:Pe}}}class de extends p{constructor(){super(68,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[m.localize(276,"Line numbers are not rendered."),m.localize(277,"Line numbers are rendered as absolute number."),m.localize(278,"Line numbers are rendered as distance in lines to cursor position."),m.localize(279,"Line numbers are rendered every 10 lines.")],default:"on",description:m.localize(280,"Controls the display of line numbers.")})}validate(fe){let _e=this.defaultValue.renderType,xe=this.defaultValue.renderFn;return typeof fe<"u"&&(typeof fe=="function"?(_e=4,xe=fe):fe==="interval"?_e=3:fe==="relative"?_e=2:fe==="on"?_e=1:_e=0),{renderType:_e,renderFn:xe}}}function ge(Fe){const fe=Fe.get(99);return fe==="editable"?Fe.get(92):fe!=="on"}class X extends p{constructor(){const fe=[],_e={type:"number",description:m.localize(281,"Number of monospace characters at which this editor ruler will render.")};super(103,"rulers",fe,{type:"array",items:{anyOf:[_e,{type:["object"],properties:{column:_e,color:{type:"string",description:m.localize(282,"Color of this editor ruler."),format:"color-hex"}}}]},default:fe,description:m.localize(283,"Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.")})}validate(fe){if(Array.isArray(fe)){const _e=[];for(const xe of fe)if(typeof xe=="number")_e.push({column:l.clampedInt(xe,0,0,1e4),color:null});else if(xe&&typeof xe=="object"){const be=xe;_e.push({column:l.clampedInt(be.column,0,0,1e4),color:be.color})}return _e.sort((xe,be)=>xe.column-be.column),_e}return this.defaultValue}}class B extends p{constructor(){super(93,"readOnlyMessage",void 0)}validate(fe){return!fe||typeof fe!="object"?this.defaultValue:fe}}function $(Fe,fe){if(typeof Fe!="string")return fe;switch(Fe){case"hidden":return 2;case"visible":return 3;default:return 1}}class Q extends p{constructor(){const fe={vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1,ignoreHorizontalScrollbarInContentHeight:!1};super(104,"scrollbar",fe,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[m.localize(284,"The vertical scrollbar will be visible only when necessary."),m.localize(285,"The vertical scrollbar will always be visible."),m.localize(286,"The vertical scrollbar will always be hidden.")],default:"auto",description:m.localize(287,"Controls the visibility of the vertical scrollbar.")},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[m.localize(288,"The horizontal scrollbar will be visible only when necessary."),m.localize(289,"The horizontal scrollbar will always be visible."),m.localize(290,"The horizontal scrollbar will always be hidden.")],default:"auto",description:m.localize(291,"Controls the visibility of the horizontal scrollbar.")},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:fe.verticalScrollbarSize,description:m.localize(292,"The width of the vertical scrollbar.")},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:fe.horizontalScrollbarSize,description:m.localize(293,"The height of the horizontal scrollbar.")},"editor.scrollbar.scrollByPage":{type:"boolean",default:fe.scrollByPage,description:m.localize(294,"Controls whether clicks scroll by page or jump to click position.")},"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight":{type:"boolean",default:fe.ignoreHorizontalScrollbarInContentHeight,description:m.localize(295,"When set, the horizontal scrollbar will not increase the size of the editor's content.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe,xe=l.clampedInt(_e.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),be=l.clampedInt(_e.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:l.clampedInt(_e.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:$(_e.vertical,this.defaultValue.vertical),horizontal:$(_e.horizontal,this.defaultValue.horizontal),useShadows:s(_e.useShadows,this.defaultValue.useShadows),verticalHasArrows:s(_e.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:s(_e.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:s(_e.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:s(_e.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:xe,horizontalSliderSize:l.clampedInt(_e.horizontalSliderSize,xe,0,1e3),verticalScrollbarSize:be,verticalSliderSize:l.clampedInt(_e.verticalSliderSize,be,0,1e3),scrollByPage:s(_e.scrollByPage,this.defaultValue.scrollByPage),ignoreHorizontalScrollbarInContentHeight:s(_e.ignoreHorizontalScrollbarInContentHeight,this.defaultValue.ignoreHorizontalScrollbarInContentHeight)}}}e.inUntrustedWorkspace="inUntrustedWorkspace",e.unicodeHighlightConfigKeys={allowedCharacters:"editor.unicodeHighlight.allowedCharacters",invisibleCharacters:"editor.unicodeHighlight.invisibleCharacters",nonBasicASCII:"editor.unicodeHighlight.nonBasicASCII",ambiguousCharacters:"editor.unicodeHighlight.ambiguousCharacters",includeComments:"editor.unicodeHighlight.includeComments",includeStrings:"editor.unicodeHighlight.includeStrings",allowedLocales:"editor.unicodeHighlight.allowedLocales"};class Z extends p{constructor(){const fe={nonBasicASCII:e.inUntrustedWorkspace,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:e.inUntrustedWorkspace,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(126,"unicodeHighlight",fe,{[e.unicodeHighlightConfigKeys.nonBasicASCII]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,e.inUntrustedWorkspace],default:fe.nonBasicASCII,description:m.localize(296,"Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.")},[e.unicodeHighlightConfigKeys.invisibleCharacters]:{restricted:!0,type:"boolean",default:fe.invisibleCharacters,description:m.localize(297,"Controls whether characters that just reserve space or have no width at all are highlighted.")},[e.unicodeHighlightConfigKeys.ambiguousCharacters]:{restricted:!0,type:"boolean",default:fe.ambiguousCharacters,description:m.localize(298,"Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.")},[e.unicodeHighlightConfigKeys.includeComments]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,e.inUntrustedWorkspace],default:fe.includeComments,description:m.localize(299,"Controls whether characters in comments should also be subject to Unicode highlighting.")},[e.unicodeHighlightConfigKeys.includeStrings]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,e.inUntrustedWorkspace],default:fe.includeStrings,description:m.localize(300,"Controls whether characters in strings should also be subject to Unicode highlighting.")},[e.unicodeHighlightConfigKeys.allowedCharacters]:{restricted:!0,type:"object",default:fe.allowedCharacters,description:m.localize(301,"Defines allowed characters that are not being highlighted."),additionalProperties:{type:"boolean"}},[e.unicodeHighlightConfigKeys.allowedLocales]:{restricted:!0,type:"object",additionalProperties:{type:"boolean"},default:fe.allowedLocales,description:m.localize(302,"Unicode characters that are common in allowed locales are not being highlighted.")}})}applyUpdate(fe,_e){let xe=!1;_e.allowedCharacters&&fe&&(k.equals(fe.allowedCharacters,_e.allowedCharacters)||(fe={...fe,allowedCharacters:_e.allowedCharacters},xe=!0)),_e.allowedLocales&&fe&&(k.equals(fe.allowedLocales,_e.allowedLocales)||(fe={...fe,allowedLocales:_e.allowedLocales},xe=!0));const be=super.applyUpdate(fe,_e);return xe?new n(be.newValue,!0):be}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{nonBasicASCII:Ce(_e.nonBasicASCII,e.inUntrustedWorkspace,[!0,!1,e.inUntrustedWorkspace]),invisibleCharacters:s(_e.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:s(_e.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:Ce(_e.includeComments,e.inUntrustedWorkspace,[!0,!1,e.inUntrustedWorkspace]),includeStrings:Ce(_e.includeStrings,e.inUntrustedWorkspace,[!0,!1,e.inUntrustedWorkspace]),allowedCharacters:this.validateBooleanMap(fe.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(fe.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(fe,_e){if(typeof fe!="object"||!fe)return _e;const xe={};for(const[be,ve]of Object.entries(fe))ve===!0&&(xe[be]=!0);return xe}}class te extends p{constructor(){const fe={enabled:!0,mode:"subwordSmart",showToolbar:"onHover",suppressSuggestions:!1,keepOnBlur:!1,fontFamily:"default"};super(62,"inlineSuggest",fe,{"editor.inlineSuggest.enabled":{type:"boolean",default:fe.enabled,description:m.localize(303,"Controls whether to automatically show inline suggestions in the editor.")},"editor.inlineSuggest.showToolbar":{type:"string",default:fe.showToolbar,enum:["always","onHover","never"],enumDescriptions:[m.localize(304,"Show the inline suggestion toolbar whenever an inline suggestion is shown."),m.localize(305,"Show the inline suggestion toolbar when hovering over an inline suggestion."),m.localize(306,"Never show the inline suggestion toolbar.")],description:m.localize(307,"Controls when to show the inline suggestion toolbar.")},"editor.inlineSuggest.suppressSuggestions":{type:"boolean",default:fe.suppressSuggestions,description:m.localize(308,"Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.")},"editor.inlineSuggest.fontFamily":{type:"string",default:fe.fontFamily,description:m.localize(309,"Controls the font family of the inline suggestions.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),mode:C(_e.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"]),showToolbar:C(_e.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),suppressSuggestions:s(_e.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:s(_e.keepOnBlur,this.defaultValue.keepOnBlur),fontFamily:u.string(_e.fontFamily,this.defaultValue.fontFamily)}}}class re extends p{constructor(){const fe={enabled:!1,showToolbar:"onHover",fontFamily:"default",keepOnBlur:!1};super(63,"experimentalInlineEdit",fe,{"editor.experimentalInlineEdit.enabled":{type:"boolean",default:fe.enabled,description:m.localize(310,"Controls whether to show inline edits in the editor.")},"editor.experimentalInlineEdit.showToolbar":{type:"string",default:fe.showToolbar,enum:["always","onHover","never"],enumDescriptions:[m.localize(311,"Show the inline edit toolbar whenever an inline suggestion is shown."),m.localize(312,"Show the inline edit toolbar when hovering over an inline suggestion."),m.localize(313,"Never show the inline edit toolbar.")],description:m.localize(314,"Controls when to show the inline edit toolbar.")},"editor.experimentalInlineEdit.fontFamily":{type:"string",default:fe.fontFamily,description:m.localize(315,"Controls the font family of the inline edit.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),showToolbar:C(_e.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),fontFamily:u.string(_e.fontFamily,this.defaultValue.fontFamily),keepOnBlur:s(_e.keepOnBlur,this.defaultValue.keepOnBlur)}}}class le extends p{constructor(){const fe={enabled:E.EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:E.EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(15,"bracketPairColorization",fe,{"editor.bracketPairColorization.enabled":{type:"boolean",default:fe.enabled,markdownDescription:m.localize(316,"Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.","`#workbench.colorCustomizations#`")},"editor.bracketPairColorization.independentColorPoolPerBracketType":{type:"boolean",default:fe.independentColorPoolPerBracketType,description:m.localize(317,"Controls whether each bracket type has its own independent color pool.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:s(_e.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}}class me extends p{constructor(){const fe={bracketPairs:!1,bracketPairsHorizontal:"active",highlightActiveBracketPair:!0,indentation:!0,highlightActiveIndentation:!0};super(16,"guides",fe,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[m.localize(318,"Enables bracket pair guides."),m.localize(319,"Enables bracket pair guides only for the active bracket pair."),m.localize(320,"Disables bracket pair guides.")],default:fe.bracketPairs,description:m.localize(321,"Controls whether bracket pair guides are enabled or not.")},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[m.localize(322,"Enables horizontal guides as addition to vertical bracket pair guides."),m.localize(323,"Enables horizontal guides only for the active bracket pair."),m.localize(324,"Disables horizontal bracket pair guides.")],default:fe.bracketPairsHorizontal,description:m.localize(325,"Controls whether horizontal bracket pair guides are enabled or not.")},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:fe.highlightActiveBracketPair,description:m.localize(326,"Controls whether the editor should highlight the active bracket pair.")},"editor.guides.indentation":{type:"boolean",default:fe.indentation,description:m.localize(327,"Controls whether the editor should render indent guides.")},"editor.guides.highlightActiveIndentation":{type:["boolean","string"],enum:[!0,"always",!1],enumDescriptions:[m.localize(328,"Highlights the active indent guide."),m.localize(329,"Highlights the active indent guide even if bracket guides are highlighted."),m.localize(330,"Do not highlight the active indent guide.")],default:fe.highlightActiveIndentation,description:m.localize(331,"Controls whether the editor should highlight the active indent guide.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{bracketPairs:Ce(_e.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,"active"]),bracketPairsHorizontal:Ce(_e.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,"active"]),highlightActiveBracketPair:s(_e.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:s(_e.indentation,this.defaultValue.indentation),highlightActiveIndentation:Ce(_e.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[!0,!1,"always"])}}}function Ce(Fe,fe,_e){const xe=_e.indexOf(Fe);return xe===-1?fe:_e[xe]}class ye extends p{constructor(){const fe={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!1,localityBonus:!1,shareSuggestSelections:!1,selectionMode:"always",showIcons:!0,showStatusBar:!1,preview:!1,previewMode:"subwordSmart",showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showDeprecated:!0,matchOnWordStartOnly:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};super(119,"suggest",fe,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[m.localize(332,"Insert suggestion without overwriting text right of the cursor."),m.localize(333,"Insert suggestion and overwrite text right of the cursor.")],default:fe.insertMode,description:m.localize(334,"Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.")},"editor.suggest.filterGraceful":{type:"boolean",default:fe.filterGraceful,description:m.localize(335,"Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.localityBonus":{type:"boolean",default:fe.localityBonus,description:m.localize(336,"Controls whether sorting favors words that appear close to the cursor.")},"editor.suggest.shareSuggestSelections":{type:"boolean",default:fe.shareSuggestSelections,markdownDescription:m.localize(337,"Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).")},"editor.suggest.selectionMode":{type:"string",enum:["always","never","whenTriggerCharacter","whenQuickSuggestion"],enumDescriptions:[m.localize(338,"Always select a suggestion when automatically triggering IntelliSense."),m.localize(339,"Never select a suggestion when automatically triggering IntelliSense."),m.localize(340,"Select a suggestion only when triggering IntelliSense from a trigger character."),m.localize(341,"Select a suggestion only when triggering IntelliSense as you type.")],default:fe.selectionMode,markdownDescription:m.localize(342,"Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions ({0} and {1}) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.","`#editor.quickSuggestions#`","`#editor.suggestOnTriggerCharacters#`")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:fe.snippetsPreventQuickSuggestions,description:m.localize(343,"Controls whether an active snippet prevents quick suggestions.")},"editor.suggest.showIcons":{type:"boolean",default:fe.showIcons,description:m.localize(344,"Controls whether to show or hide icons in suggestions.")},"editor.suggest.showStatusBar":{type:"boolean",default:fe.showStatusBar,description:m.localize(345,"Controls the visibility of the status bar at the bottom of the suggest widget.")},"editor.suggest.preview":{type:"boolean",default:fe.preview,description:m.localize(346,"Controls whether to preview the suggestion outcome in the editor.")},"editor.suggest.showInlineDetails":{type:"boolean",default:fe.showInlineDetails,description:m.localize(347,"Controls whether suggest details show inline with the label or only in the details widget.")},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:m.localize(348,"This setting is deprecated. The suggest widget can now be resized.")},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:m.localize(349,"This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.")},"editor.suggest.showMethods":{type:"boolean",default:!0,markdownDescription:m.localize(350,"When enabled IntelliSense shows `method`-suggestions.")},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:m.localize(351,"When enabled IntelliSense shows `function`-suggestions.")},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:m.localize(352,"When enabled IntelliSense shows `constructor`-suggestions.")},"editor.suggest.showDeprecated":{type:"boolean",default:!0,markdownDescription:m.localize(353,"When enabled IntelliSense shows `deprecated`-suggestions.")},"editor.suggest.matchOnWordStartOnly":{type:"boolean",default:!0,markdownDescription:m.localize(354,"When enabled IntelliSense filtering requires that the first character matches on a word start. For example, `c` on `Console` or `WebContext` but _not_ on `description`. When disabled IntelliSense will show more results but still sorts them by match quality.")},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:m.localize(355,"When enabled IntelliSense shows `field`-suggestions.")},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:m.localize(356,"When enabled IntelliSense shows `variable`-suggestions.")},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:m.localize(357,"When enabled IntelliSense shows `class`-suggestions.")},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:m.localize(358,"When enabled IntelliSense shows `struct`-suggestions.")},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:m.localize(359,"When enabled IntelliSense shows `interface`-suggestions.")},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:m.localize(360,"When enabled IntelliSense shows `module`-suggestions.")},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:m.localize(361,"When enabled IntelliSense shows `property`-suggestions.")},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:m.localize(362,"When enabled IntelliSense shows `event`-suggestions.")},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:m.localize(363,"When enabled IntelliSense shows `operator`-suggestions.")},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:m.localize(364,"When enabled IntelliSense shows `unit`-suggestions.")},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:m.localize(365,"When enabled IntelliSense shows `value`-suggestions.")},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:m.localize(366,"When enabled IntelliSense shows `constant`-suggestions.")},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:m.localize(367,"When enabled IntelliSense shows `enum`-suggestions.")},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:m.localize(368,"When enabled IntelliSense shows `enumMember`-suggestions.")},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:m.localize(369,"When enabled IntelliSense shows `keyword`-suggestions.")},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:m.localize(370,"When enabled IntelliSense shows `text`-suggestions.")},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:m.localize(371,"When enabled IntelliSense shows `color`-suggestions.")},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:m.localize(372,"When enabled IntelliSense shows `file`-suggestions.")},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:m.localize(373,"When enabled IntelliSense shows `reference`-suggestions.")},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:m.localize(374,"When enabled IntelliSense shows `customcolor`-suggestions.")},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:m.localize(375,"When enabled IntelliSense shows `folder`-suggestions.")},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:m.localize(376,"When enabled IntelliSense shows `typeParameter`-suggestions.")},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:m.localize(377,"When enabled IntelliSense shows `snippet`-suggestions.")},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:m.localize(378,"When enabled IntelliSense shows `user`-suggestions.")},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:m.localize(379,"When enabled IntelliSense shows `issues`-suggestions.")}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{insertMode:C(_e.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:s(_e.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:s(_e.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:s(_e.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:s(_e.shareSuggestSelections,this.defaultValue.shareSuggestSelections),selectionMode:C(_e.selectionMode,this.defaultValue.selectionMode,["always","never","whenQuickSuggestion","whenTriggerCharacter"]),showIcons:s(_e.showIcons,this.defaultValue.showIcons),showStatusBar:s(_e.showStatusBar,this.defaultValue.showStatusBar),preview:s(_e.preview,this.defaultValue.preview),previewMode:C(_e.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:s(_e.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:s(_e.showMethods,this.defaultValue.showMethods),showFunctions:s(_e.showFunctions,this.defaultValue.showFunctions),showConstructors:s(_e.showConstructors,this.defaultValue.showConstructors),showDeprecated:s(_e.showDeprecated,this.defaultValue.showDeprecated),matchOnWordStartOnly:s(_e.matchOnWordStartOnly,this.defaultValue.matchOnWordStartOnly),showFields:s(_e.showFields,this.defaultValue.showFields),showVariables:s(_e.showVariables,this.defaultValue.showVariables),showClasses:s(_e.showClasses,this.defaultValue.showClasses),showStructs:s(_e.showStructs,this.defaultValue.showStructs),showInterfaces:s(_e.showInterfaces,this.defaultValue.showInterfaces),showModules:s(_e.showModules,this.defaultValue.showModules),showProperties:s(_e.showProperties,this.defaultValue.showProperties),showEvents:s(_e.showEvents,this.defaultValue.showEvents),showOperators:s(_e.showOperators,this.defaultValue.showOperators),showUnits:s(_e.showUnits,this.defaultValue.showUnits),showValues:s(_e.showValues,this.defaultValue.showValues),showConstants:s(_e.showConstants,this.defaultValue.showConstants),showEnums:s(_e.showEnums,this.defaultValue.showEnums),showEnumMembers:s(_e.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:s(_e.showKeywords,this.defaultValue.showKeywords),showWords:s(_e.showWords,this.defaultValue.showWords),showColors:s(_e.showColors,this.defaultValue.showColors),showFiles:s(_e.showFiles,this.defaultValue.showFiles),showReferences:s(_e.showReferences,this.defaultValue.showReferences),showFolders:s(_e.showFolders,this.defaultValue.showFolders),showTypeParameters:s(_e.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:s(_e.showSnippets,this.defaultValue.showSnippets),showUsers:s(_e.showUsers,this.defaultValue.showUsers),showIssues:s(_e.showIssues,this.defaultValue.showIssues)}}}class Le extends p{constructor(){super(114,"smartSelect",{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:m.localize(380,"Whether leading and trailing whitespace should always be selected."),default:!0,type:"boolean"},"editor.smartSelect.selectSubwords":{description:m.localize(381,"Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected."),default:!0,type:"boolean"}})}validate(fe){return!fe||typeof fe!="object"?this.defaultValue:{selectLeadingAndTrailingWhitespace:s(fe.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace),selectSubwords:s(fe.selectSubwords,this.defaultValue.selectSubwords)}}}class Ee extends p{constructor(){const fe=[];super(131,"wordSegmenterLocales",fe,{anyOf:[{description:m.localize(382,"Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.)."),type:"string"},{description:m.localize(383,"Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.)."),type:"array",items:{type:"string"}}]})}validate(fe){if(typeof fe=="string"&&(fe=[fe]),Array.isArray(fe)){const _e=[];for(const xe of fe)if(typeof xe=="string")try{Intl.Segmenter.supportedLocalesOf(xe).length>0&&_e.push(xe)}catch{}return _e}return this.defaultValue}}class Me extends p{constructor(){super(139,"wrappingIndent",1,{"editor.wrappingIndent":{type:"string",enum:["none","same","indent","deepIndent"],enumDescriptions:[m.localize(384,"No indentation. Wrapped lines begin at column 1."),m.localize(385,"Wrapped lines get the same indentation as the parent."),m.localize(386,"Wrapped lines get +1 indentation toward the parent."),m.localize(387,"Wrapped lines get +2 indentation toward the parent.")],description:m.localize(388,"Controls the indentation of wrapped lines."),default:"same"}})}validate(fe){switch(fe){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}return 1}compute(fe,_e,xe){return _e.get(2)===2?0:xe}}class Ae extends t{constructor(){super(147)}compute(fe,_e,xe){const be=_e.get(146);return{isDominatedByLongLines:fe.isDominatedByLongLines,isWordWrapMinified:be.isWordWrapMinified,isViewportWrapping:be.isViewportWrapping,wrappingColumn:be.wrappingColumn}}}class Ne extends p{constructor(){const fe={enabled:!0,showDropSelector:"afterDrop"};super(36,"dropIntoEditor",fe,{"editor.dropIntoEditor.enabled":{type:"boolean",default:fe.enabled,markdownDescription:m.localize(389,"Controls whether you can drag and drop a file into a text editor by holding down the `Shift` key (instead of opening the file in an editor).")},"editor.dropIntoEditor.showDropSelector":{type:"string",markdownDescription:m.localize(390,"Controls if a widget is shown when dropping files into the editor. This widget lets you control how the file is dropped."),enum:["afterDrop","never"],enumDescriptions:[m.localize(391,"Show the drop selector widget after a file is dropped into the editor."),m.localize(392,"Never show the drop selector widget. Instead the default drop provider is always used.")],default:"afterDrop"}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),showDropSelector:C(_e.showDropSelector,this.defaultValue.showDropSelector,["afterDrop","never"])}}}class Ke extends p{constructor(){const fe={enabled:!0,showPasteSelector:"afterPaste"};super(85,"pasteAs",fe,{"editor.pasteAs.enabled":{type:"boolean",default:fe.enabled,markdownDescription:m.localize(393,"Controls whether you can paste content in different ways.")},"editor.pasteAs.showPasteSelector":{type:"string",markdownDescription:m.localize(394,"Controls if a widget is shown when pasting content in to the editor. This widget lets you control how the file is pasted."),enum:["afterPaste","never"],enumDescriptions:[m.localize(395,"Show the paste selector widget after content is pasted into the editor."),m.localize(396,"Never show the paste selector widget. Instead the default pasting behavior is always used.")],default:"afterPaste"}})}validate(fe){if(!fe||typeof fe!="object")return this.defaultValue;const _e=fe;return{enabled:s(_e.enabled,this.defaultValue.enabled),showPasteSelector:C(_e.showPasteSelector,this.defaultValue.showPasteSelector,["afterPaste","never"])}}}const ze="Consolas, 'Courier New', monospace",Ge="Menlo, Monaco, 'Courier New', monospace",it="'Droid Sans Mono', 'monospace', monospace";e.EDITOR_FONT_DEFAULTS={fontFamily:I.isMacintosh?Ge:I.isLinux?it:ze,fontWeight:"normal",fontSize:I.isMacintosh?12:14,lineHeight:0,letterSpacing:0},e.editorOptionsRegistry=[];function Oe(Fe){return e.editorOptionsRegistry[Fe.id]=Fe,Fe}e.EditorOptions={acceptSuggestionOnCommitCharacter:Oe(new g(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:m.localize(397,"Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.")})),acceptSuggestionOnEnter:Oe(new f(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",m.localize(398,"Only accept a suggestion with `Enter` when it makes a textual change."),""],markdownDescription:m.localize(399,"Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.")})),accessibilitySupport:Oe(new w),accessibilityPageSize:Oe(new l(3,"accessibilityPageSize",10,1,1073741824,{description:m.localize(400,"Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default."),tags:["accessibility"]})),ariaLabel:Oe(new u(4,"ariaLabel",m.localize(401,"Editor content"))),ariaRequired:Oe(new g(5,"ariaRequired",!1,void 0)),screenReaderAnnounceInlineSuggestion:Oe(new g(8,"screenReaderAnnounceInlineSuggestion",!0,{description:m.localize(402,"Control whether inline suggestions are announced by a screen reader."),tags:["accessibility"]})),autoClosingBrackets:Oe(new f(6,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",m.localize(403,"Use language configurations to determine when to autoclose brackets."),m.localize(404,"Autoclose brackets only when the cursor is to the left of whitespace."),""],description:m.localize(405,"Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})),autoClosingComments:Oe(new f(7,"autoClosingComments","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",m.localize(406,"Use language configurations to determine when to autoclose comments."),m.localize(407,"Autoclose comments only when the cursor is to the left of whitespace."),""],description:m.localize(408,"Controls whether the editor should automatically close comments after the user adds an opening comment.")})),autoClosingDelete:Oe(new f(9,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",m.localize(409,"Remove adjacent closing quotes or brackets only if they were automatically inserted."),""],description:m.localize(410,"Controls whether the editor should remove adjacent closing quotes or brackets when deleting.")})),autoClosingOvertype:Oe(new f(10,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",m.localize(411,"Type over closing quotes or brackets only if they were automatically inserted."),""],description:m.localize(412,"Controls whether the editor should type over closing quotes or brackets.")})),autoClosingQuotes:Oe(new f(11,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",m.localize(413,"Use language configurations to determine when to autoclose quotes."),m.localize(414,"Autoclose quotes only when the cursor is to the left of whitespace."),""],description:m.localize(415,"Controls whether the editor should automatically close quotes after the user adds an opening quote.")})),autoIndent:Oe(new h(12,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],v,{enumDescriptions:[m.localize(416,"The editor will not insert indentation automatically."),m.localize(417,"The editor will keep the current line's indentation."),m.localize(418,"The editor will keep the current line's indentation and honor language defined brackets."),m.localize(419,"The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."),m.localize(420,"The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.")],description:m.localize(421,"Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})),automaticLayout:Oe(new g(13,"automaticLayout",!1)),autoSurround:Oe(new f(14,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[m.localize(422,"Use language configurations to determine when to automatically surround selections."),m.localize(423,"Surround with quotes but not brackets."),m.localize(424,"Surround with brackets but not quotes."),""],description:m.localize(425,"Controls whether the editor should automatically surround selections when typing quotes or brackets.")})),bracketPairColorization:Oe(new le),bracketPairGuides:Oe(new me),stickyTabStops:Oe(new g(117,"stickyTabStops",!1,{description:m.localize(426,"Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.")})),codeLens:Oe(new g(17,"codeLens",!0,{description:m.localize(427,"Controls whether the editor shows CodeLens.")})),codeLensFontFamily:Oe(new u(18,"codeLensFontFamily","",{description:m.localize(428,"Controls the font family for CodeLens.")})),codeLensFontSize:Oe(new l(19,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:m.localize(429,"Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.")})),colorDecorators:Oe(new g(20,"colorDecorators",!0,{description:m.localize(430,"Controls whether the editor should render the inline color decorators and color picker.")})),colorDecoratorActivatedOn:Oe(new f(149,"colorDecoratorsActivatedOn","clickAndHover",["clickAndHover","hover","click"],{enumDescriptions:[m.localize(431,"Make the color picker appear both on click and hover of the color decorator"),m.localize(432,"Make the color picker appear on hover of the color decorator"),m.localize(433,"Make the color picker appear on click of the color decorator")],description:m.localize(434,"Controls the condition to make a color picker appear from a color decorator")})),colorDecoratorsLimit:Oe(new l(21,"colorDecoratorsLimit",500,1,1e6,{markdownDescription:m.localize(435,"Controls the max number of color decorators that can be rendered in an editor at once.")})),columnSelection:Oe(new g(22,"columnSelection",!1,{description:m.localize(436,"Enable that the selection with the mouse and keys is doing column selection.")})),comments:Oe(new S),contextmenu:Oe(new g(24,"contextmenu",!0)),copyWithSyntaxHighlighting:Oe(new g(25,"copyWithSyntaxHighlighting",!0,{description:m.localize(437,"Controls whether syntax highlighting should be copied into the clipboard.")})),cursorBlinking:Oe(new h(26,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],L,{description:m.localize(438,"Control the cursor animation style.")})),cursorSmoothCaretAnimation:Oe(new f(27,"cursorSmoothCaretAnimation","off",["off","explicit","on"],{enumDescriptions:[m.localize(439,"Smooth caret animation is disabled."),m.localize(440,"Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture."),m.localize(441,"Smooth caret animation is always enabled.")],description:m.localize(442,"Controls whether the smooth caret animation should be enabled.")})),cursorStyle:Oe(new h(28,"cursorStyle",D.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],T,{description:m.localize(443,"Controls the cursor style.")})),cursorSurroundingLines:Oe(new l(29,"cursorSurroundingLines",0,0,1073741824,{description:m.localize(444,"Controls the minimal number of visible leading lines (minimum 0) and trailing lines (minimum 1) surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.")})),cursorSurroundingLinesStyle:Oe(new f(30,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[m.localize(445,"`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."),m.localize(446,"`cursorSurroundingLines` is enforced always.")],markdownDescription:m.localize(447,"Controls when `#editor.cursorSurroundingLines#` should be enforced.")})),cursorWidth:Oe(new l(31,"cursorWidth",0,0,1073741824,{markdownDescription:m.localize(448,"Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})),disableLayerHinting:Oe(new g(32,"disableLayerHinting",!1)),disableMonospaceOptimizations:Oe(new g(33,"disableMonospaceOptimizations",!1)),domReadOnly:Oe(new g(34,"domReadOnly",!1)),dragAndDrop:Oe(new g(35,"dragAndDrop",!0,{description:m.localize(449,"Controls whether the editor should allow moving selections via drag and drop.")})),emptySelectionClipboard:Oe(new A),dropIntoEditor:Oe(new Ne),stickyScroll:Oe(new Y),experimentalWhitespaceRendering:Oe(new f(38,"experimentalWhitespaceRendering","svg",["svg","font","off"],{enumDescriptions:[m.localize(450,"Use a new rendering method with svgs."),m.localize(451,"Use a new rendering method with font characters."),m.localize(452,"Use the stable rendering method.")],description:m.localize(453,"Controls whether whitespace is rendered with a new, experimental method.")})),extraEditorClassName:Oe(new u(39,"extraEditorClassName","")),fastScrollSensitivity:Oe(new r(40,"fastScrollSensitivity",5,Fe=>Fe<=0?5:Fe,{markdownDescription:m.localize(454,"Scrolling speed multiplier when pressing `Alt`.")})),find:Oe(new P),fixedOverflowWidgets:Oe(new g(42,"fixedOverflowWidgets",!1)),folding:Oe(new g(43,"folding",!0,{description:m.localize(455,"Controls whether the editor has code folding enabled.")})),foldingStrategy:Oe(new f(44,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[m.localize(456,"Use a language-specific folding strategy if available, else the indentation-based one."),m.localize(457,"Use the indentation-based folding strategy.")],description:m.localize(458,"Controls the strategy for computing folding ranges.")})),foldingHighlight:Oe(new g(45,"foldingHighlight",!0,{description:m.localize(459,"Controls whether the editor should highlight folded ranges.")})),foldingImportsByDefault:Oe(new g(46,"foldingImportsByDefault",!1,{description:m.localize(460,"Controls whether the editor automatically collapses import ranges.")})),foldingMaximumRegions:Oe(new l(47,"foldingMaximumRegions",5e3,10,65e3,{description:m.localize(461,"The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.")})),unfoldOnClickAfterEndOfLine:Oe(new g(48,"unfoldOnClickAfterEndOfLine",!1,{description:m.localize(462,"Controls whether clicking on the empty content after a folded line will unfold the line.")})),fontFamily:Oe(new u(49,"fontFamily",e.EDITOR_FONT_DEFAULTS.fontFamily,{description:m.localize(463,"Controls the font family.")})),fontInfo:Oe(new F),fontLigatures2:Oe(new N),fontSize:Oe(new x),fontWeight:Oe(new W),fontVariations:Oe(new O),formatOnPaste:Oe(new g(55,"formatOnPaste",!1,{description:m.localize(464,"Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.")})),formatOnType:Oe(new g(56,"formatOnType",!1,{description:m.localize(465,"Controls whether the editor should automatically format the line after typing.")})),glyphMargin:Oe(new g(57,"glyphMargin",!0,{description:m.localize(466,"Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})),gotoLocation:Oe(new V),hideCursorInOverviewRuler:Oe(new g(59,"hideCursorInOverviewRuler",!1,{description:m.localize(467,"Controls whether the cursor should be hidden in the overview ruler.")})),hover:Oe(new q),inDiffEditor:Oe(new g(61,"inDiffEditor",!1)),letterSpacing:Oe(new r(64,"letterSpacing",e.EDITOR_FONT_DEFAULTS.letterSpacing,Fe=>r.clamp(Fe,-5,20),{description:m.localize(468,"Controls the letter spacing in pixels.")})),lightbulb:Oe(new j),lineDecorationsWidth:Oe(new K),lineHeight:Oe(new R),lineNumbers:Oe(new de),lineNumbersMinChars:Oe(new l(69,"lineNumbersMinChars",5,1,300)),linkedEditing:Oe(new g(70,"linkedEditing",!1,{description:m.localize(469,"Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.")})),links:Oe(new g(71,"links",!0,{description:m.localize(470,"Controls whether the editor should detect links and make them clickable.")})),matchBrackets:Oe(new f(72,"matchBrackets","always",["always","near","never"],{description:m.localize(471,"Highlight matching brackets.")})),minimap:Oe(new J),mouseStyle:Oe(new f(74,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:Oe(new r(75,"mouseWheelScrollSensitivity",1,Fe=>Fe===0?1:Fe,{markdownDescription:m.localize(472,"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})),mouseWheelZoom:Oe(new g(76,"mouseWheelZoom",!1,{markdownDescription:I.isMacintosh?m.localize(473,"Zoom the font of the editor when using mouse wheel and holding `Cmd`."):m.localize(474,"Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})),multiCursorMergeOverlapping:Oe(new g(77,"multiCursorMergeOverlapping",!0,{description:m.localize(475,"Merge multiple cursors when they are overlapping.")})),multiCursorModifier:Oe(new h(78,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],ie,{markdownEnumDescriptions:[m.localize(476,"Maps to `Control` on Windows and Linux and to `Command` on macOS."),m.localize(477,"Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],markdownDescription:m.localize(478,"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).")})),multiCursorPaste:Oe(new f(79,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[m.localize(479,"Each cursor pastes a single line of the text."),m.localize(480,"Each cursor pastes the full text.")],markdownDescription:m.localize(481,"Controls pasting when the line count of the pasted text matches the cursor count.")})),multiCursorLimit:Oe(new l(80,"multiCursorLimit",1e4,1,1e5,{markdownDescription:m.localize(482,"Controls the max number of cursors that can be in an active editor at once.")})),occurrencesHighlight:Oe(new f(81,"occurrencesHighlight","singleFile",["off","singleFile","multiFile"],{markdownEnumDescriptions:[m.localize(483,"Does not highlight occurrences."),m.localize(484,"Highlights occurrences only in the current file."),m.localize(485,"Experimental: Highlights occurrences across all valid open files.")],markdownDescription:m.localize(486,"Controls whether occurrences should be highlighted across open files.")})),overviewRulerBorder:Oe(new g(82,"overviewRulerBorder",!0,{description:m.localize(487,"Controls whether a border should be drawn around the overview ruler.")})),overviewRulerLanes:Oe(new l(83,"overviewRulerLanes",3,0,3)),padding:Oe(new ue),pasteAs:Oe(new Ke),parameterHints:Oe(new he),peekWidgetDefaultFocus:Oe(new f(87,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[m.localize(488,"Focus the tree when opening peek"),m.localize(489,"Focus the editor when opening peek")],description:m.localize(490,"Controls whether to focus the inline editor or the tree in the peek widget.")})),placeholder:Oe(new ae),definitionLinkOpensInPeek:Oe(new g(89,"definitionLinkOpensInPeek",!1,{description:m.localize(491,"Controls whether the Go to Definition mouse gesture always opens the peek widget.")})),quickSuggestions:Oe(new ee),quickSuggestionsDelay:Oe(new l(91,"quickSuggestionsDelay",10,0,1073741824,{description:m.localize(492,"Controls the delay in milliseconds after which quick suggestions will show up.")})),readOnly:Oe(new g(92,"readOnly",!1)),readOnlyMessage:Oe(new B),renameOnType:Oe(new g(94,"renameOnType",!1,{description:m.localize(493,"Controls whether the editor auto renames on type."),markdownDeprecationMessage:m.localize(494,"Deprecated, use `editor.linkedEditing` instead.")})),renderControlCharacters:Oe(new g(95,"renderControlCharacters",!0,{description:m.localize(495,"Controls whether the editor should render control characters."),restricted:!0})),renderFinalNewline:Oe(new f(96,"renderFinalNewline",I.isLinux?"dimmed":"on",["off","on","dimmed"],{description:m.localize(496,"Render last line number when the file ends with a newline.")})),renderLineHighlight:Oe(new f(97,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",m.localize(497,"Highlights both the gutter and the current line.")],description:m.localize(498,"Controls how the editor should render the current line highlight.")})),renderLineHighlightOnlyWhenFocus:Oe(new g(98,"renderLineHighlightOnlyWhenFocus",!1,{description:m.localize(499,"Controls if the editor should render the current line highlight only when the editor is focused.")})),renderValidationDecorations:Oe(new f(99,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:Oe(new f(100,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",m.localize(500,"Render whitespace characters except for single spaces between words."),m.localize(501,"Render whitespace characters only on selected text."),m.localize(502,"Render only trailing whitespace characters."),""],description:m.localize(503,"Controls how the editor should render whitespace characters.")})),revealHorizontalRightPadding:Oe(new l(101,"revealHorizontalRightPadding",15,0,1e3)),roundedSelection:Oe(new g(102,"roundedSelection",!0,{description:m.localize(504,"Controls whether selections should have rounded corners.")})),rulers:Oe(new X),scrollbar:Oe(new Q),scrollBeyondLastColumn:Oe(new l(105,"scrollBeyondLastColumn",4,0,1073741824,{description:m.localize(505,"Controls the number of extra characters beyond which the editor will scroll horizontally.")})),scrollBeyondLastLine:Oe(new g(106,"scrollBeyondLastLine",!0,{description:m.localize(506,"Controls whether the editor will scroll beyond the last line.")})),scrollPredominantAxis:Oe(new g(107,"scrollPredominantAxis",!0,{description:m.localize(507,"Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.")})),selectionClipboard:Oe(new g(108,"selectionClipboard",!0,{description:m.localize(508,"Controls whether the Linux primary clipboard should be supported."),included:I.isLinux})),selectionHighlight:Oe(new g(109,"selectionHighlight",!0,{description:m.localize(509,"Controls whether the editor should highlight matches similar to the selection.")})),selectOnLineNumbers:Oe(new g(110,"selectOnLineNumbers",!0)),showFoldingControls:Oe(new f(111,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[m.localize(510,"Always show the folding controls."),m.localize(511,"Never show the folding controls and reduce the gutter size."),m.localize(512,"Only show the folding controls when the mouse is over the gutter.")],description:m.localize(513,"Controls when the folding controls on the gutter are shown.")})),showUnused:Oe(new g(112,"showUnused",!0,{description:m.localize(514,"Controls fading out of unused code.")})),showDeprecated:Oe(new g(141,"showDeprecated",!0,{description:m.localize(515,"Controls strikethrough deprecated variables.")})),inlayHints:Oe(new G),snippetSuggestions:Oe(new f(113,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[m.localize(516,"Show snippet suggestions on top of other suggestions."),m.localize(517,"Show snippet suggestions below other suggestions."),m.localize(518,"Show snippets suggestions with other suggestions."),m.localize(519,"Do not show snippet suggestions.")],description:m.localize(520,"Controls whether snippets are shown with other suggestions and how they are sorted.")})),smartSelect:Oe(new Le),smoothScrolling:Oe(new g(115,"smoothScrolling",!1,{description:m.localize(521,"Controls whether the editor will scroll using an animation.")})),stopRenderingLineAfter:Oe(new l(118,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:Oe(new ye),inlineSuggest:Oe(new te),inlineEdit:Oe(new re),inlineCompletionsAccessibilityVerbose:Oe(new g(150,"inlineCompletionsAccessibilityVerbose",!1,{description:m.localize(522,"Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.")})),suggestFontSize:Oe(new l(120,"suggestFontSize",0,0,1e3,{markdownDescription:m.localize(523,"Font size for the suggest widget. When set to {0}, the value of {1} is used.","`0`","`#editor.fontSize#`")})),suggestLineHeight:Oe(new l(121,"suggestLineHeight",0,0,1e3,{markdownDescription:m.localize(524,"Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.","`0`","`#editor.lineHeight#`")})),suggestOnTriggerCharacters:Oe(new g(122,"suggestOnTriggerCharacters",!0,{description:m.localize(525,"Controls whether suggestions should automatically show up when typing trigger characters.")})),suggestSelection:Oe(new f(123,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[m.localize(526,"Always select the first suggestion."),m.localize(527,"Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."),m.localize(528,"Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],description:m.localize(529,"Controls how suggestions are pre-selected when showing the suggest list.")})),tabCompletion:Oe(new f(124,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[m.localize(530,"Tab complete will insert the best matching suggestion when pressing tab."),m.localize(531,"Disable tab completions."),m.localize(532,"Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")],description:m.localize(533,"Enables tab completions.")})),tabIndex:Oe(new l(125,"tabIndex",0,-1,1073741824)),unicodeHighlight:Oe(new Z),unusualLineTerminators:Oe(new f(127,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[m.localize(534,"Unusual line terminators are automatically removed."),m.localize(535,"Unusual line terminators are ignored."),m.localize(536,"Unusual line terminators prompt to be removed.")],description:m.localize(537,"Remove unusual line terminators that might cause problems.")})),useShadowDOM:Oe(new g(128,"useShadowDOM",!0)),useTabStops:Oe(new g(129,"useTabStops",!0,{description:m.localize(538,"Spaces and tabs are inserted and deleted in alignment with tab stops.")})),wordBreak:Oe(new f(130,"wordBreak","normal",["normal","keepAll"],{markdownEnumDescriptions:[m.localize(539,"Use the default line break rule."),m.localize(540,"Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.")],description:m.localize(541,"Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.")})),wordSegmenterLocales:Oe(new Ee),wordSeparators:Oe(new u(132,"wordSeparators",y.USUAL_WORD_SEPARATORS,{description:m.localize(542,"Characters that will be used as word separators when doing word related navigations or operations.")})),wordWrap:Oe(new f(133,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[m.localize(543,"Lines will never wrap."),m.localize(544,"Lines will wrap at the viewport width."),m.localize(545,"Lines will wrap at `#editor.wordWrapColumn#`."),m.localize(546,"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.")],description:m.localize(547,"Controls how lines should wrap.")})),wordWrapBreakAfterCharacters:Oe(new u(134,"wordWrapBreakAfterCharacters"," })]?|/&.,;\xA2\xB0\u2032\u2033\u2030\u2103\u3001\u3002\uFF61\uFF64\uFFE0\uFF0C\uFF0E\uFF1A\uFF1B\uFF1F\uFF01\uFF05\u30FB\uFF65\u309D\u309E\u30FD\u30FE\u30FC\u30A1\u30A3\u30A5\u30A7\u30A9\u30C3\u30E3\u30E5\u30E7\u30EE\u30F5\u30F6\u3041\u3043\u3045\u3047\u3049\u3063\u3083\u3085\u3087\u308E\u3095\u3096\u31F0\u31F1\u31F2\u31F3\u31F4\u31F5\u31F6\u31F7\u31F8\u31F9\u31FA\u31FB\u31FC\u31FD\u31FE\u31FF\u3005\u303B\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF6C\uFF6D\uFF6E\uFF6F\uFF70\u201D\u3009\u300B\u300D\u300F\u3011\u3015\uFF09\uFF3D\uFF5D\uFF63")),wordWrapBreakBeforeCharacters:Oe(new u(135,"wordWrapBreakBeforeCharacters","([{\u2018\u201C\u3008\u300A\u300C\u300E\u3010\u3014\uFF08\uFF3B\uFF5B\uFF62\xA3\xA5\uFF04\uFFE1\uFFE5+\uFF0B")),wordWrapColumn:Oe(new l(136,"wordWrapColumn",80,1,1073741824,{markdownDescription:m.localize(548,"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.")})),wordWrapOverride1:Oe(new f(137,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:Oe(new f(138,"wordWrapOverride2","inherit",["off","on","inherit"])),editorClassName:Oe(new M),defaultColorDecorators:Oe(new g(148,"defaultColorDecorators",!1,{markdownDescription:m.localize(549,"Controls whether inline color decorations should be shown using the default document color provider")})),pixelRatio:Oe(new pe),tabFocusMode:Oe(new g(145,"tabFocusMode",!1,{markdownDescription:m.localize(550,"Controls whether the editor receives tabs or defers them to the workbench for navigation.")})),layoutInfo:Oe(new H),wrappingInfo:Oe(new Ae),wrappingIndent:Oe(new Me),wrappingStrategy:Oe(new z)}}),define(ne[655],se([1,0,5,39,11,74,37,9,4,226]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewCursor=e.CursorPlurality=void 0;class p{constructor(i,s,g,c,l,a,r){this.top=i,this.left=s,this.paddingLeft=g,this.width=c,this.height=l,this.textContent=a,this.textContentClassName=r}}var n;(function(t){t[t.Single=0]="Single",t[t.MultiPrimary=1]="MultiPrimary",t[t.MultiSecondary=2]="MultiSecondary"})(n||(e.CursorPlurality=n={}));class o{constructor(i,s){this._context=i;const g=this._context.configuration.options,c=g.get(50);this._cursorStyle=g.get(28),this._lineHeight=g.get(67),this._typicalHalfwidthCharacterWidth=c.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(g.get(31),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=(0,k.createFastDomNode)(document.createElement("div")),this._domNode.setClassName(`cursor ${b.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),(0,E.applyFontInfo)(this._domNode,c),this._domNode.setDisplay("none"),this._position=new m.Position(1,1),this._pluralityClass="",this.setPlurality(s),this._lastRenderedContent="",this._renderData=null}getDomNode(){return this._domNode}getPosition(){return this._position}setPlurality(i){switch(i){default:case n.Single:this._pluralityClass="";break;case n.MultiPrimary:this._pluralityClass="cursor-primary";break;case n.MultiSecondary:this._pluralityClass="cursor-secondary";break}}show(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}hide(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}onConfigurationChanged(i){const s=this._context.configuration.options,g=s.get(50);return this._cursorStyle=s.get(28),this._lineHeight=s.get(67),this._typicalHalfwidthCharacterWidth=g.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(s.get(31),this._typicalHalfwidthCharacterWidth),(0,E.applyFontInfo)(this._domNode,g),!0}onCursorPositionChanged(i,s){return s?this._domNode.domNode.style.transitionProperty="none":this._domNode.domNode.style.transitionProperty="",this._position=i,!0}_getGraphemeAwarePosition(){const{lineNumber:i,column:s}=this._position,g=this._context.viewModel.getLineContent(i),[c,l]=I.getCharContainingOffset(g,s-1);return[new m.Position(i,c+1),g.substring(c,l)]}_prepareRender(i){let s="",g="";const[c,l]=this._getGraphemeAwarePosition();if(this._cursorStyle===y.TextEditorCursorStyle.Line||this._cursorStyle===y.TextEditorCursorStyle.LineThin){const v=i.visibleRangeForPosition(c);if(!v||v.outsideRenderedLine)return null;const w=d.getWindow(this._domNode.domNode);let S;this._cursorStyle===y.TextEditorCursorStyle.Line?(S=d.computeScreenAwareSize(w,this._lineCursorWidth>0?this._lineCursorWidth:2),S>2&&(s=l,g=this._getTokenClassName(c))):S=d.computeScreenAwareSize(w,1);let L=v.left,D=0;S>=2&&L>=1&&(D=1,L-=D);const T=i.getVerticalOffsetForLineNumber(c.lineNumber)-i.bigNumbersDelta;return new p(T,L,D,S,this._lineHeight,s,g)}const a=i.linesVisibleRangesForRange(new _.Range(c.lineNumber,c.column,c.lineNumber,c.column+l.length),!1);if(!a||a.length===0)return null;const r=a[0];if(r.outsideRenderedLine||r.ranges.length===0)return null;const u=r.ranges[0],C=l===" "?this._typicalHalfwidthCharacterWidth:u.width<1?this._typicalHalfwidthCharacterWidth:u.width;this._cursorStyle===y.TextEditorCursorStyle.Block&&(s=l,g=this._getTokenClassName(c));let f=i.getVerticalOffsetForLineNumber(c.lineNumber)-i.bigNumbersDelta,h=this._lineHeight;return(this._cursorStyle===y.TextEditorCursorStyle.Underline||this._cursorStyle===y.TextEditorCursorStyle.UnderlineThin)&&(f+=this._lineHeight-2,h=2),new p(f,u.left,0,C,h,s,g)}_getTokenClassName(i){const s=this._context.viewModel.getViewLineData(i.lineNumber),g=s.tokens.findTokenIndexAtOffset(i.column-1);return s.tokens.getClassName(g)}prepareRender(i){this._renderData=this._prepareRender(i)}render(i){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName(`cursor ${this._pluralityClass} ${b.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME} ${this._renderData.textContentClassName}`),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setPaddingLeft(this._renderData.paddingLeft),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)}}e.ViewCursor=o}),define(ne[261],se([1,0,16,37,165]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FontInfo=e.SERIALIZED_FONT_INFO_VERSION=e.BareFontInfo=void 0;const E=d.isMacintosh?1.5:1.35,y=8;class m{static createFromValidatedSettings(p,n,o){const t=p.get(49),i=p.get(53),s=p.get(52),g=p.get(51),c=p.get(54),l=p.get(67),a=p.get(64);return m._create(t,i,s,g,c,l,a,n,o)}static _create(p,n,o,t,i,s,g,c,l){s===0?s=E*o:s{this._evictUntrustedReadingsTimeout=-1,this._evictUntrustedReadings(o)},5e3))}_evictUntrustedReadings(o){const t=this._ensureCache(o),i=t.getValues();let s=!1;for(const g of i)g.isTrusted||(s=!0,t.remove(g));s&&this._onDidChange.fire()}readFontInfo(o,t){const i=this._ensureCache(o);if(!i.has(t)){let s=this._actualReadFontInfo(o,t);(s.typicalHalfwidthCharacterWidth<=2||s.typicalFullwidthCharacterWidth<=2||s.spaceWidth<=2||s.maxDigitWidth<=2)&&(s=new _.FontInfo({pixelRatio:k.PixelRatio.getInstance(o).value,fontFamily:s.fontFamily,fontWeight:s.fontWeight,fontSize:s.fontSize,fontFeatureSettings:s.fontFeatureSettings,fontVariationSettings:s.fontVariationSettings,lineHeight:s.lineHeight,letterSpacing:s.letterSpacing,isMonospace:s.isMonospace,typicalHalfwidthCharacterWidth:Math.max(s.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(s.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:s.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(s.spaceWidth,5),middotWidth:Math.max(s.middotWidth,5),wsmiddotWidth:Math.max(s.wsmiddotWidth,5),maxDigitWidth:Math.max(s.maxDigitWidth,5)},!1)),this._writeToCache(o,t,s)}return i.get(t)}_createRequest(o,t,i,s){const g=new y.CharWidthRequest(o,t);return i.push(g),s?.push(g),g}_actualReadFontInfo(o,t){const i=[],s=[],g=this._createRequest("n",0,i,s),c=this._createRequest("\uFF4D",0,i,null),l=this._createRequest(" ",0,i,s),a=this._createRequest("0",0,i,s),r=this._createRequest("1",0,i,s),u=this._createRequest("2",0,i,s),C=this._createRequest("3",0,i,s),f=this._createRequest("4",0,i,s),h=this._createRequest("5",0,i,s),v=this._createRequest("6",0,i,s),w=this._createRequest("7",0,i,s),S=this._createRequest("8",0,i,s),L=this._createRequest("9",0,i,s),D=this._createRequest("\u2192",0,i,s),T=this._createRequest("\uFFEB",0,i,null),M=this._createRequest("\xB7",0,i,s),A=this._createRequest("\u2E31",0,i,null),P="|/-_ilm%";for(let W=0,V=P.length;W.001){O=!1;break}}let x=!0;return O&&T.width!==F&&(x=!1),T.width>D.width&&(x=!1),new _.FontInfo({pixelRatio:k.PixelRatio.getInstance(o).value,fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,fontVariationSettings:t.fontVariationSettings,lineHeight:t.lineHeight,letterSpacing:t.letterSpacing,isMonospace:O,typicalHalfwidthCharacterWidth:g.width,typicalFullwidthCharacterWidth:c.width,canUseHalfwidthRightwardsArrow:x,spaceWidth:l.width,middotWidth:M.width,wsmiddotWidth:A.width,maxDigitWidth:N},!0)}}e.FontMeasurementsImpl=b;class p{constructor(){this._keys=Object.create(null),this._values=Object.create(null)}has(o){const t=o.getId();return!!this._values[t]}get(o){const t=o.getId();return this._values[t]}put(o,t){const i=o.getId();this._keys[i]=o,this._values[i]=t}remove(o){const t=o.getId();delete this._keys[t],delete this._values[t]}getValues(){return Object.keys(this._keys).map(o=>this._values[o])}}e.FontMeasurements=new b}),define(ne[116],se([1,0,11,16,160]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StringBuilder=void 0,e.getPlatformTextDecoder=p,e.decodeUTF16LE=n;let E;function y(){return E||(E=new TextDecoder("UTF-16LE")),E}let m;function _(){return m||(m=new TextDecoder("UTF-16BE")),m}let b;function p(){return b||(b=k.isLittleEndian()?y():_()),b}function n(i,s,g){const c=new Uint16Array(i.buffer,s,g);return g>0&&(c[0]===65279||c[0]===65534)?o(i,s,g):y().decode(c)}function o(i,s,g){const c=[];let l=0;for(let a=0;a=this._capacity){this._flushBuffer(),this._completedStrings[this._completedStrings.length]=s;return}for(let c=0;cg});class p{static create(c){return new p(new WeakRef(c))}constructor(c){this.targetWindow=c}createLineBreaksComputer(c,l,a,r,u){const C=[],f=[];return{addRequest:(h,v,w)=>{C.push(h),f.push(v)},finalize:()=>n((0,I.assertIsDefined)(this.targetWindow.deref()),C,c,l,a,r,u,f)}}}e.DOMLineBreaksComputerFactory=p;function n(g,c,l,a,r,u,C,f){function h(H){const z=f[H];if(z){const U=_.LineInjectedText.applyInjectedText(c[H],z),j=z.map(G=>G.options),Y=z.map(G=>G.column-1);return new m.ModelLineProjectionData(Y,j,[U.length],[],0)}else return null}if(r===-1){const H=[];for(let z=0,U=c.length;zv?(U=0,j=0):Y=v-R}const G=z.substr(U),K=o(G,j,a,Y,T,L);M[H]=U,A[H]=j,P[H]=G,N[H]=K[0],O[H]=K[1]}const F=T.build(),x=b?.createHTML(F)??F;D.innerHTML=x,D.style.position="absolute",D.style.top="10000",C==="keepAll"?(D.style.wordBreak="keep-all",D.style.overflowWrap="anywhere"):(D.style.wordBreak="inherit",D.style.overflowWrap="break-word"),g.document.body.appendChild(D);const W=document.createRange(),V=Array.prototype.slice.call(D.children,0),q=[];for(let H=0;Hue.options),J=ie.map(ue=>ue.column-1)):(R=null,J=null),q[H]=new m.ModelLineProjectionData(J,R,U,K,Y)}return D.remove(),q}function o(g,c,l,a,r,u){if(u!==0){const L=String(u);r.appendString('
    ');const C=g.length;let f=c,h=0;const v=[],w=[];let S=0");for(let L=0;L"),v[L]=h,w[L]=f;const D=S;S=L+1"),v[g.length]=h,w[g.length]=f,r.appendString("
    "),[v,w]}function t(g,c,l,a){if(l.length<=1)return null;const r=Array.prototype.slice.call(c.children,0),u=[];try{i(g,r,a,0,null,l.length-1,null,u)}catch(C){return console.log(C),null}return u.length===0?null:(u.push(l.length),u)}function i(g,c,l,a,r,u,C,f){if(a===u||(r=r||s(g,c,l[a],l[a+1]),C=C||s(g,c,l[u],l[u+1]),Math.abs(r[0].top-C[0].top)<=.1))return;if(a+1===u){f.push(u);return}const h=a+(u-a)/2|0,v=s(g,c,l[h],l[h+1]);i(g,c,l,a,r,h,v,f),i(g,c,l,h,v,u,C,f)}function s(g,c,l,a){return g.setStart(c[l/16384|0].firstChild,l%16384),g.setEnd(c[a/16384|0].firstChild,a%16384),g.getClientRects()}}),define(ne[262],se([1,0,39,103,8,116]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.VisibleLinesCollection=e.RenderedLinesCollection=void 0;class y{constructor(p){this._lineFactory=p,this._set(1,[])}flush(){this._set(1,[])}_set(p,n){this._lines=n,this._rendLineNumberStart=p}_get(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}}getStartLineNumber(){return this._rendLineNumberStart}getEndLineNumber(){return this._rendLineNumberStart+this._lines.length-1}getCount(){return this._lines.length}getLine(p){const n=p-this._rendLineNumberStart;if(n<0||n>=this._lines.length)throw new I.BugIndicatingError("Illegal value for lineNumber");return this._lines[n]}onLinesDeleted(p,n){if(this.getCount()===0)return null;const o=this.getStartLineNumber(),t=this.getEndLineNumber();if(nt)return null;let i=0,s=0;for(let c=o;c<=t;c++){const l=c-this._rendLineNumberStart;p<=c&&c<=n&&(s===0?(i=l,s=1):s++)}if(p=t&&g<=i&&(this._lines[g-this._rendLineNumberStart].onContentChanged(),s=!0);return s}onLinesInserted(p,n){if(this.getCount()===0)return null;const o=n-p+1,t=this.getStartLineNumber(),i=this.getEndLineNumber();if(p<=t)return this._rendLineNumberStart+=o,null;if(p>i)return null;if(o+p>i)return this._lines.splice(p-this._rendLineNumberStart,i-p+1);const s=[];for(let r=0;ro)continue;const c=Math.max(n,g.fromLineNumber),l=Math.min(o,g.toLineNumber);for(let a=c;a<=l;a++){const r=a-this._rendLineNumberStart;this._lines[r].onTokensChanged(),t=!0}}return t}}e.RenderedLinesCollection=y;class m{constructor(p){this._lineFactory=p,this.domNode=this._createDomNode(),this._linesCollection=new y(this._lineFactory)}_createDomNode(){const p=(0,d.createFastDomNode)(document.createElement("div"));return p.setClassName("view-layer"),p.setPosition("absolute"),p.domNode.setAttribute("role","presentation"),p.domNode.setAttribute("aria-hidden","true"),p}onConfigurationChanged(p){return!!p.hasChanged(146)}onFlushed(p){return this._linesCollection.flush(),!0}onLinesChanged(p){return this._linesCollection.onLinesChanged(p.fromLineNumber,p.count)}onLinesDeleted(p){const n=this._linesCollection.onLinesDeleted(p.fromLineNumber,p.toLineNumber);if(n)for(let o=0,t=n.length;op})}constructor(p,n,o){this._domNode=p,this._lineFactory=n,this._viewportData=o}render(p,n,o,t){const i={rendLineNumberStart:p.rendLineNumberStart,lines:p.lines.slice(0),linesLength:p.linesLength};if(i.rendLineNumberStart+i.linesLength-1n){const s=n,g=Math.min(o,i.rendLineNumberStart-1);s<=g&&(this._insertLinesBefore(i,s,g,t,n),i.linesLength+=g-s+1)}else if(i.rendLineNumberStart0&&(this._removeLinesBefore(i,s),i.linesLength-=s)}if(i.rendLineNumberStart=n,i.rendLineNumberStart+i.linesLength-1o){const s=Math.max(0,o-i.rendLineNumberStart+1),c=i.linesLength-1-s+1;c>0&&(this._removeLinesAfter(i,c),i.linesLength-=c)}return this._finishRendering(i,!1,t),i}_renderUntouchedLines(p,n,o,t,i){const s=p.rendLineNumberStart,g=p.lines;for(let c=n;c<=o;c++){const l=s+c;g[c].layoutLine(l,t[l-i],this._viewportData.lineHeight)}}_insertLinesBefore(p,n,o,t,i){const s=[];let g=0;for(let c=n;c<=o;c++)s[g++]=this._lineFactory.createLine();p.lines=s.concat(p.lines)}_removeLinesBefore(p,n){for(let o=0;o=0;g--){const c=p.lines[g];t[g]&&(c.setDomNode(s),s=s.previousSibling)}}_finishRenderingInvalidLines(p,n,o){const t=document.createElement("div");_._ttPolicy&&(n=_._ttPolicy.createHTML(n)),t.innerHTML=n;for(let i=0;inew m(this._dynamicOverlays)}),this.domNode=this._visibleLines.domNode;const t=this._context.configuration.options.get(50);(0,k.applyFontInfo)(this.domNode,t),this.domNode.setClassName("view-overlays")}shouldRender(){if(super.shouldRender())return!0;for(let n=0,o=this._dynamicOverlays.length;nt.shouldRender());for(let t=0,i=o.length;t'),s.appendString(g),s.appendString(""),!0)}layoutLine(n,o,t){this._domNode&&(this._domNode.setTop(o),this._domNode.setHeight(t))}}e.ViewOverlayLine=m;class _ extends y{constructor(n){super(n);const t=this._context.configuration.options.get(146);this._contentWidth=t.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(n){const t=this._context.configuration.options.get(146);return this._contentWidth=t.contentWidth,super.onConfigurationChanged(n)||!0}onScrollChanged(n){return super.onScrollChanged(n)||n.scrollWidthChanged}_viewOverlaysRender(n){super._viewOverlaysRender(n),this.domNode.setWidth(Math.max(n.scrollWidth,this._contentWidth))}}e.ContentViewOverlays=_;class b extends y{constructor(n){super(n);const o=this._context.configuration.options,t=o.get(146);this._contentLeft=t.contentLeft,this.domNode.setClassName("margin-view-overlays"),this.domNode.setWidth(1),(0,k.applyFontInfo)(this.domNode,o.get(50))}onConfigurationChanged(n){const o=this._context.configuration.options;(0,k.applyFontInfo)(this.domNode,o.get(50));const t=o.get(146);return this._contentLeft=t.contentLeft,super.onConfigurationChanged(n)||!0}onScrollChanged(n){return super.onScrollChanged(n)||n.scrollHeightChanged}_viewOverlaysRender(n){super._viewOverlaysRender(n);const o=Math.min(n.scrollHeight,1e6);this.domNode.setHeight(o),this.domNode.setWidth(this._contentLeft)}}e.MarginViewOverlays=b}),define(ne[367],se([1,0,160,116]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextChange=void 0,e.compressConsecutiveTextChanges=y;function I(_){return _.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}class E{get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}constructor(b,p,n,o){this.oldPosition=b,this.oldText=p,this.newPosition=n,this.newText=o}toString(){return this.oldText.length===0?`(insert@${this.oldPosition} "${I(this.newText)}")`:this.newText.length===0?`(delete@${this.oldPosition} "${I(this.oldText)}")`:`(replace@${this.oldPosition} "${I(this.oldText)}" with "${I(this.newText)}")`}static _writeStringSize(b){return 4+2*b.length}static _writeString(b,p,n){const o=p.length;d.writeUInt32BE(b,o,n),n+=4;for(let t=0;tn&&(n=t)}return n}else{if(typeof E=="string")return _?E==="*"?5:E===m?10:0:0;if(E){const{language:n,pattern:o,scheme:t,hasAccessToAllModels:i,notebookType:s}=E;if(!_&&!i)return 0;s&&b&&(y=b);let g=0;if(t)if(t===y.scheme)g=10;else if(t==="*")g=5;else return 0;if(n)if(n===m)g=10;else if(n==="*")g=Math.max(g,5);else return 0;if(s)if(s===p)g=10;else if(s==="*"&&p!==void 0)g=Math.max(g,5);else return 0;if(o){let c;if(typeof o=="string"?c=o:c={...o,base:(0,k.normalize)(o.base)},c===y.fsPath||(0,d.match)(c,y.fsPath))g=10;else return 0}return g}else return 0}}}),define(ne[658],se([1,0,6,2,40,368]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LanguageFeatureRegistry=void 0;function y(p){return typeof p=="string"?!1:Array.isArray(p)?p.every(y):!!p.exclusive}class m{constructor(n,o,t,i,s){this.uri=n,this.languageId=o,this.notebookUri=t,this.notebookType=i,this.recursive=s}equals(n){return this.notebookType===n.notebookType&&this.languageId===n.languageId&&this.uri.toString()===n.uri.toString()&&this.notebookUri?.toString()===n.notebookUri?.toString()&&this.recursive===n.recursive}}class _{constructor(n){this._notebookInfoResolver=n,this._clock=0,this._entries=[],this._onDidChange=new d.Emitter,this.onDidChange=this._onDidChange.event}register(n,o){let t={selector:n,provider:o,_score:-1,_time:this._clock++};return this._entries.push(t),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),(0,k.toDisposable)(()=>{if(t){const i=this._entries.indexOf(t);i>=0&&(this._entries.splice(i,1),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),t=void 0)}})}has(n){return this.all(n).length>0}all(n){if(!n)return[];this._updateScores(n,!1);const o=[];for(const t of this._entries)t._score>0&&o.push(t.provider);return o}ordered(n,o=!1){const t=[];return this._orderedForEach(n,o,i=>t.push(i.provider)),t}orderedGroups(n){const o=[];let t,i;return this._orderedForEach(n,!1,s=>{t&&i===s._score?t.push(s.provider):(i=s._score,t=[s.provider],o.push(t))}),o}_orderedForEach(n,o,t){this._updateScores(n,o);for(const i of this._entries)i._score>0&&t(i)}_updateScores(n,o){const t=this._notebookInfoResolver?.(n.uri),i=t?new m(n.uri,n.getLanguageId(),t.uri,t.type,o):new m(n.uri,n.getLanguageId(),void 0,void 0,o);if(!this._lastCandidate?.equals(i)){this._lastCandidate=i;for(const s of this._entries)if(s._score=(0,E.score)(s.selector,i.uri,i.languageId,(0,I.shouldSynchronizeModel)(n),i.notebookUri,i.notebookType),y(s.selector)&&s._score>0)if(o)s._score=0;else{for(const g of this._entries)g._score=0;s._score=1e3;break}this._entries.sort(_._compareByScoreAndTime)}}static _compareByScoreAndTime(n,o){return n._scoreo._score?-1:b(n.selector)&&!b(o.selector)?1:!b(n.selector)&&b(o.selector)?-1:n._timeo._time?-1:0}}e.LanguageFeatureRegistry=_;function b(p){return typeof p=="string"?!1:Array.isArray(p)?p.some(b):!!p.isBuiltin}}),define(ne[27],se([1,0,26,22,4,585,3]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineEditTriggerKind=e.TreeSitterTokenizationRegistry=e.TokenizationRegistry=e.LazyTokenizationSupport=e.InlayHintKind=e.Command=e.NewSymbolNameTriggerKind=e.NewSymbolNameTag=e.FoldingRangeKind=e.TextEdit=e.SymbolKinds=e.symbolKindNames=e.DocumentHighlightKind=e.SignatureHelpTriggerKind=e.DocumentPasteTriggerKind=e.SelectedSuggestionInfo=e.InlineCompletionTriggerKind=e.CompletionItemKinds=e.HoverVerbosityAction=e.EncodedTokenizationResult=e.TokenizationResult=e.Token=void 0,e.isLocationLink=c,e.getAriaLabelForSymbol=l;class m{constructor(D,T,M){this.offset=D,this.type=T,this.language=M,this._tokenBrand=void 0}toString(){return"("+this.offset+", "+this.type+")"}}e.Token=m;class _{constructor(D,T){this.tokens=D,this.endState=T,this._tokenizationResultBrand=void 0}}e.TokenizationResult=_;class b{constructor(D,T){this.tokens=D,this.endState=T,this._encodedTokenizationResultBrand=void 0}}e.EncodedTokenizationResult=b;var p;(function(L){L[L.Increase=0]="Increase",L[L.Decrease=1]="Decrease"})(p||(e.HoverVerbosityAction=p={}));var n;(function(L){const D=new Map;D.set(0,d.Codicon.symbolMethod),D.set(1,d.Codicon.symbolFunction),D.set(2,d.Codicon.symbolConstructor),D.set(3,d.Codicon.symbolField),D.set(4,d.Codicon.symbolVariable),D.set(5,d.Codicon.symbolClass),D.set(6,d.Codicon.symbolStruct),D.set(7,d.Codicon.symbolInterface),D.set(8,d.Codicon.symbolModule),D.set(9,d.Codicon.symbolProperty),D.set(10,d.Codicon.symbolEvent),D.set(11,d.Codicon.symbolOperator),D.set(12,d.Codicon.symbolUnit),D.set(13,d.Codicon.symbolValue),D.set(15,d.Codicon.symbolEnum),D.set(14,d.Codicon.symbolConstant),D.set(15,d.Codicon.symbolEnum),D.set(16,d.Codicon.symbolEnumMember),D.set(17,d.Codicon.symbolKeyword),D.set(27,d.Codicon.symbolSnippet),D.set(18,d.Codicon.symbolText),D.set(19,d.Codicon.symbolColor),D.set(20,d.Codicon.symbolFile),D.set(21,d.Codicon.symbolReference),D.set(22,d.Codicon.symbolCustomColor),D.set(23,d.Codicon.symbolFolder),D.set(24,d.Codicon.symbolTypeParameter),D.set(25,d.Codicon.account),D.set(26,d.Codicon.issues);function T(P){let N=D.get(P);return N||(console.info("No codicon found for CompletionItemKind "+P),N=d.Codicon.symbolProperty),N}L.toIcon=T;const M=new Map;M.set("method",0),M.set("function",1),M.set("constructor",2),M.set("field",3),M.set("variable",4),M.set("class",5),M.set("struct",6),M.set("interface",7),M.set("module",8),M.set("property",9),M.set("event",10),M.set("operator",11),M.set("unit",12),M.set("value",13),M.set("constant",14),M.set("enum",15),M.set("enum-member",16),M.set("enumMember",16),M.set("keyword",17),M.set("snippet",27),M.set("text",18),M.set("color",19),M.set("file",20),M.set("reference",21),M.set("customcolor",22),M.set("folder",23),M.set("type-parameter",24),M.set("typeParameter",24),M.set("account",25),M.set("issue",26);function A(P,N){let O=M.get(P);return typeof O>"u"&&!N&&(O=9),O}L.fromString=A})(n||(e.CompletionItemKinds=n={}));var o;(function(L){L[L.Automatic=0]="Automatic",L[L.Explicit=1]="Explicit"})(o||(e.InlineCompletionTriggerKind=o={}));class t{constructor(D,T,M,A){this.range=D,this.text=T,this.completionKind=M,this.isSnippetText=A}equals(D){return I.Range.lift(this.range).equalsRange(D.range)&&this.text===D.text&&this.completionKind===D.completionKind&&this.isSnippetText===D.isSnippetText}}e.SelectedSuggestionInfo=t;var i;(function(L){L[L.Automatic=0]="Automatic",L[L.PasteAs=1]="PasteAs"})(i||(e.DocumentPasteTriggerKind=i={}));var s;(function(L){L[L.Invoke=1]="Invoke",L[L.TriggerCharacter=2]="TriggerCharacter",L[L.ContentChange=3]="ContentChange"})(s||(e.SignatureHelpTriggerKind=s={}));var g;(function(L){L[L.Text=0]="Text",L[L.Read=1]="Read",L[L.Write=2]="Write"})(g||(e.DocumentHighlightKind=g={}));function c(L){return L&&k.URI.isUri(L.uri)&&I.Range.isIRange(L.range)&&(I.Range.isIRange(L.originSelectionRange)||I.Range.isIRange(L.targetSelectionRange))}e.symbolKindNames={17:(0,y.localize)(669,"array"),16:(0,y.localize)(670,"boolean"),4:(0,y.localize)(671,"class"),13:(0,y.localize)(672,"constant"),8:(0,y.localize)(673,"constructor"),9:(0,y.localize)(674,"enumeration"),21:(0,y.localize)(675,"enumeration member"),23:(0,y.localize)(676,"event"),7:(0,y.localize)(677,"field"),0:(0,y.localize)(678,"file"),11:(0,y.localize)(679,"function"),10:(0,y.localize)(680,"interface"),19:(0,y.localize)(681,"key"),5:(0,y.localize)(682,"method"),1:(0,y.localize)(683,"module"),2:(0,y.localize)(684,"namespace"),20:(0,y.localize)(685,"null"),15:(0,y.localize)(686,"number"),18:(0,y.localize)(687,"object"),24:(0,y.localize)(688,"operator"),3:(0,y.localize)(689,"package"),6:(0,y.localize)(690,"property"),14:(0,y.localize)(691,"string"),22:(0,y.localize)(692,"struct"),25:(0,y.localize)(693,"type parameter"),12:(0,y.localize)(694,"variable")};function l(L,D){return(0,y.localize)(695,"{0} ({1})",L,e.symbolKindNames[D])}var a;(function(L){const D=new Map;D.set(0,d.Codicon.symbolFile),D.set(1,d.Codicon.symbolModule),D.set(2,d.Codicon.symbolNamespace),D.set(3,d.Codicon.symbolPackage),D.set(4,d.Codicon.symbolClass),D.set(5,d.Codicon.symbolMethod),D.set(6,d.Codicon.symbolProperty),D.set(7,d.Codicon.symbolField),D.set(8,d.Codicon.symbolConstructor),D.set(9,d.Codicon.symbolEnum),D.set(10,d.Codicon.symbolInterface),D.set(11,d.Codicon.symbolFunction),D.set(12,d.Codicon.symbolVariable),D.set(13,d.Codicon.symbolConstant),D.set(14,d.Codicon.symbolString),D.set(15,d.Codicon.symbolNumber),D.set(16,d.Codicon.symbolBoolean),D.set(17,d.Codicon.symbolArray),D.set(18,d.Codicon.symbolObject),D.set(19,d.Codicon.symbolKey),D.set(20,d.Codicon.symbolNull),D.set(21,d.Codicon.symbolEnumMember),D.set(22,d.Codicon.symbolStruct),D.set(23,d.Codicon.symbolEvent),D.set(24,d.Codicon.symbolOperator),D.set(25,d.Codicon.symbolTypeParameter);function T(M){let A=D.get(M);return A||(console.info("No codicon found for SymbolKind "+M),A=d.Codicon.symbolProperty),A}L.toIcon=T})(a||(e.SymbolKinds=a={}));class r{}e.TextEdit=r;class u{static{this.Comment=new u("comment")}static{this.Imports=new u("imports")}static{this.Region=new u("region")}static fromValue(D){switch(D){case"comment":return u.Comment;case"imports":return u.Imports;case"region":return u.Region}return new u(D)}constructor(D){this.value=D}}e.FoldingRangeKind=u;var C;(function(L){L[L.AIGenerated=1]="AIGenerated"})(C||(e.NewSymbolNameTag=C={}));var f;(function(L){L[L.Invoke=0]="Invoke",L[L.Automatic=1]="Automatic"})(f||(e.NewSymbolNameTriggerKind=f={}));var h;(function(L){function D(T){return!T||typeof T!="object"?!1:typeof T.id=="string"&&typeof T.title=="string"}L.is=D})(h||(e.Command=h={}));var v;(function(L){L[L.Type=1]="Type",L[L.Parameter=2]="Parameter"})(v||(e.InlayHintKind=v={}));class w{constructor(D){this.createSupport=D,this._tokenizationSupport=null}dispose(){this._tokenizationSupport&&this._tokenizationSupport.then(D=>{D&&D.dispose()})}get tokenizationSupport(){return this._tokenizationSupport||(this._tokenizationSupport=this.createSupport()),this._tokenizationSupport}}e.LazyTokenizationSupport=w,e.TokenizationRegistry=new E.TokenizationRegistry,e.TreeSitterTokenizationRegistry=new E.TokenizationRegistry;var S;(function(L){L[L.Invoke=0]="Invoke",L[L.Automatic=1]="Automatic"})(S||(e.InlineEditTriggerKind=S={}))}),define(ne[177],se([1,0,27]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.NullState=void 0,e.nullTokenize=k,e.nullTokenizeEncoded=I,e.NullState=new class{clone(){return this}equals(E){return this===E}};function k(E,y){return new d.TokenizationResult([new d.Token(0,"",E)],y)}function I(E,y){const m=new Uint32Array(2);return m[0]=0,m[1]=(E<<0|0|0|32768|2<<24)>>>0,new d.EncodedTokenizationResult(m,y===null?e.NullState:y)}}),define(ne[208],se([1,0,11,116,4]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketsUtils=e.RichEditBrackets=e.RichEditBracket=void 0,e.createBracketOrRegExp=g;class E{constructor(r,u,C,f,h,v){this._richEditBracketBrand=void 0,this.languageId=r,this.index=u,this.open=C,this.close=f,this.forwardRegex=h,this.reversedRegex=v,this._openSet=E._toSet(this.open),this._closeSet=E._toSet(this.close)}isOpen(r){return this._openSet.has(r)}isClose(r){return this._closeSet.has(r)}static _toSet(r){const u=new Set;for(const C of r)u.add(C);return u}}e.RichEditBracket=E;function y(a){const r=a.length;a=a.map(v=>[v[0].toLowerCase(),v[1].toLowerCase()]);const u=[];for(let v=0;v{const[S,L]=v,[D,T]=w;return S===D||S===T||L===D||L===T},f=(v,w)=>{const S=Math.min(v,w),L=Math.max(v,w);for(let D=0;D0&&h.push({open:w,close:S})}return h}class m{constructor(r,u){this._richEditBracketsBrand=void 0;const C=y(u);this.brackets=C.map((f,h)=>new E(r,h,f.open,f.close,n(f.open,f.close,C,h),o(f.open,f.close,C,h))),this.forwardRegex=t(this.brackets),this.reversedRegex=i(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;for(const f of this.brackets){for(const h of f.open)this.textIsBracket[h]=f,this.textIsOpenBracket[h]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,h.length);for(const h of f.close)this.textIsBracket[h]=f,this.textIsOpenBracket[h]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,h.length)}}}e.RichEditBrackets=m;function _(a,r,u,C){for(let f=0,h=r.length;f=0&&C.push(w);for(const w of v.close)w.indexOf(a)>=0&&C.push(w)}}function b(a,r){return a.length-r.length}function p(a){if(a.length<=1)return a;const r=[],u=new Set;for(const C of a)u.has(C)||(r.push(C),u.add(C));return r}function n(a,r,u,C){let f=[];f=f.concat(a),f=f.concat(r);for(let h=0,v=f.length;h=0;v--)f[h++]=C.charCodeAt(v);return k.getPlatformTextDecoder().decode(f)}let r=null,u=null;return function(f){return r!==f&&(r=f,u=a(r)),u}}();class l{static _findPrevBracketInText(r,u,C,f){const h=C.match(r);if(!h)return null;const v=C.length-(h.index||0),w=h[0].length,S=f+v;return new I.Range(u,S-w+1,u,S+1)}static findPrevBracketInRange(r,u,C,f,h){const w=c(C).substring(C.length-h,C.length-f);return this._findPrevBracketInText(r,u,w,f)}static findNextBracketInText(r,u,C,f){const h=C.match(r);if(!h)return null;const v=h.index||0,w=h[0].length;if(w===0)return null;const S=f+v;return new I.Range(u,S+1,u,S+1+w)}static findNextBracketInRange(r,u,C,f,h){const v=C.substring(f,h);return this.findNextBracketInText(r,u,v,f)}}e.BracketsUtils=l}),define(ne[659],se([1,0,13,169,208]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketElectricCharacterSupport=void 0;class E{constructor(m){this._richEditBrackets=m}getElectricCharacters(){const m=[];if(this._richEditBrackets)for(const _ of this._richEditBrackets.brackets)for(const b of _.close){const p=b.charAt(b.length-1);m.push(p)}return(0,d.distinct)(m)}onElectricCharacter(m,_,b){if(!this._richEditBrackets||this._richEditBrackets.brackets.length===0)return null;const p=_.findTokenIndexAtOffset(b-1);if((0,k.ignoreBracketsInToken)(_.getStandardTokenType(p)))return null;const n=this._richEditBrackets.reversedRegex,o=_.getLineContent().substring(0,b-1)+m,t=I.BracketsUtils.findPrevBracketInRange(n,1,o,0,o.length);if(!t)return null;const i=o.substring(t.startColumn-1,t.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[i])return null;const g=_.getActualLineContentBefore(t.startColumn-1);return/^\s*$/.test(g)?{matchOpenBracket:i}:null}}e.BracketElectricCharacterSupport=E}),define(ne[660],se([1,0,297,208]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ClosingBracketKind=e.OpeningBracketKind=e.BracketKindBase=e.LanguageBracketsConfiguration=void 0;class I{constructor(p,n){this.languageId=p;const o=n.brackets?E(n.brackets):[],t=new d.CachedFunction(g=>{const c=new Set;return{info:new m(this,g,c),closing:c}}),i=new d.CachedFunction(g=>{const c=new Set,l=new Set;return{info:new _(this,g,c,l),opening:c,openingColorized:l}});for(const[g,c]of o){const l=t.get(g),a=i.get(c);l.closing.add(a.info),a.opening.add(l.info)}const s=n.colorizedBracketPairs?E(n.colorizedBracketPairs):o.filter(g=>!(g[0]==="<"&&g[1]===">"));for(const[g,c]of s){const l=t.get(g),a=i.get(c);l.closing.add(a.info),a.openingColorized.add(l.info),a.opening.add(l.info)}this._openingBrackets=new Map([...t.cachedValues].map(([g,c])=>[g,c.info])),this._closingBrackets=new Map([...i.cachedValues].map(([g,c])=>[g,c.info]))}get openingBrackets(){return[...this._openingBrackets.values()]}get closingBrackets(){return[...this._closingBrackets.values()]}getOpeningBracketInfo(p){return this._openingBrackets.get(p)}getClosingBracketInfo(p){return this._closingBrackets.get(p)}getBracketInfo(p){return this.getOpeningBracketInfo(p)||this.getClosingBracketInfo(p)}getBracketRegExp(p){const n=Array.from([...this._openingBrackets.keys(),...this._closingBrackets.keys()]);return(0,k.createBracketOrRegExp)(n,p)}}e.LanguageBracketsConfiguration=I;function E(b){return b.filter(([p,n])=>p!==""&&n!=="")}class y{constructor(p,n){this.config=p,this.bracketText=n}get languageId(){return this.config.languageId}}e.BracketKindBase=y;class m extends y{constructor(p,n,o){super(p,n),this.openedBrackets=o,this.isOpeningBracket=!0}}e.OpeningBracketKind=m;class _ extends y{constructor(p,n,o,t){super(p,n),this.openingBrackets=o,this.openingColorizedBrackets=t,this.isOpeningBracket=!1}closes(p){return p.config!==this.config?!1:this.openingBrackets.has(p)}closesColorized(p){return p.config!==this.config?!1:this.openingColorizedBrackets.has(p)}getOpeningBrackets(){return[...this.openingBrackets]}}e.ClosingBracketKind=_}),define(ne[369],se([1,0,11,83,27,177]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.tokenizeToString=m,e.tokenizeLineToHTML=_,e._tokenizeToString=b;const y={getInitialState:()=>E.NullState,tokenizeEncoded:(p,n,o)=>(0,E.nullTokenizeEncoded)(0,o)};async function m(p,n,o){if(!o)return b(n,p.languageIdCodec,y);const t=await I.TokenizationRegistry.getOrCreate(o);return b(n,p.languageIdCodec,t||y)}function _(p,n,o,t,i,s,g){let c="
    ",l=t,a=0,r=!0;for(let u=0,C=n.getCount();u0;)g&&r?(h+=" ",r=!1):(h+=" ",r=!0),w--;break}case 60:h+="<",r=!1;break;case 62:h+=">",r=!1;break;case 38:h+="&",r=!1;break;case 0:h+="�",r=!1;break;case 65279:case 8232:case 8233:case 133:h+="\uFFFD",r=!1;break;case 13:h+="​",r=!1;break;case 32:g&&r?(h+=" ",r=!1):(h+=" ",r=!0);break;default:h+=String.fromCharCode(v),r=!1}}if(c+=`${h}`,f>i||l>=i)break}return c+="
    ",c}function b(p,n,o){let t='
    ';const i=d.splitLines(p);let s=o.getInitialState();for(let g=0,c=i.length;g0&&(t+="
    ");const a=o.tokenizeEncoded(l,!0,s);k.LineTokens.convertToEndOffset(a.tokens,l.length);const u=new k.LineTokens(a.tokens,l,n).inflate();let C=0;for(let f=0,h=u.getCount();f${d.escape(l.substring(C,w))}`,C=w}s=a.endState}return t+="
    ",t}}),define(ne[661],se([1,0,13,6,2,4,169,208,584]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketPairsTextModelPart=void 0;class b extends I.Disposable{get canBuildAST(){return this.textModel.getValueLength()<=5e6}constructor(s,g){super(),this.textModel=s,this.languageConfigurationService=g,this.bracketPairsTree=this._register(new I.MutableDisposable),this.onDidChangeEmitter=new k.Emitter,this.onDidChange=this.onDidChangeEmitter.event,this.bracketsRequested=!1}handleLanguageConfigurationServiceChange(s){(!s.languageId||this.bracketPairsTree.value?.object.didLanguageChange(s.languageId))&&(this.bracketPairsTree.clear(),this.updateBracketPairsTree())}handleDidChangeOptions(s){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeLanguage(s){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeContent(s){this.bracketPairsTree.value?.object.handleContentChanged(s)}handleDidChangeBackgroundTokenizationState(){this.bracketPairsTree.value?.object.handleDidChangeBackgroundTokenizationState()}handleDidChangeTokens(s){this.bracketPairsTree.value?.object.handleDidChangeTokens(s)}updateBracketPairsTree(){if(this.bracketsRequested&&this.canBuildAST){if(!this.bracketPairsTree.value){const s=new I.DisposableStore;this.bracketPairsTree.value=p(s.add(new _.BracketPairsTree(this.textModel,g=>this.languageConfigurationService.getLanguageConfiguration(g))),s),s.add(this.bracketPairsTree.value.object.onDidChange(g=>this.onDidChangeEmitter.fire(g))),this.onDidChangeEmitter.fire()}}else this.bracketPairsTree.value&&(this.bracketPairsTree.clear(),this.onDidChangeEmitter.fire())}getBracketPairsInRange(s){return this.bracketsRequested=!0,this.updateBracketPairsTree(),this.bracketPairsTree.value?.object.getBracketPairsInRange(s,!1)||d.CallbackIterable.empty}getBracketPairsInRangeWithMinIndentation(s){return this.bracketsRequested=!0,this.updateBracketPairsTree(),this.bracketPairsTree.value?.object.getBracketPairsInRange(s,!0)||d.CallbackIterable.empty}getBracketsInRange(s,g=!1){return this.bracketsRequested=!0,this.updateBracketPairsTree(),this.bracketPairsTree.value?.object.getBracketsInRange(s,g)||d.CallbackIterable.empty}findMatchingBracketUp(s,g,c){const l=this.textModel.validatePosition(g),a=this.textModel.getLanguageIdAtPosition(l.lineNumber,l.column);if(this.canBuildAST){const r=this.languageConfigurationService.getLanguageConfiguration(a).bracketsNew.getClosingBracketInfo(s);if(!r)return null;const u=this.getBracketPairsInRange(E.Range.fromPositions(g,g)).findLast(C=>r.closes(C.openingBracketInfo));return u?u.openingBracketRange:null}else{const r=s.toLowerCase(),u=this.languageConfigurationService.getLanguageConfiguration(a).brackets;if(!u)return null;const C=u.textIsBracket[r];return C?t(this._findMatchingBracketUp(C,l,n(c))):null}}matchBracket(s,g){if(this.canBuildAST){const c=this.getBracketPairsInRange(E.Range.fromPositions(s,s)).filter(l=>l.closingBracketRange!==void 0&&(l.openingBracketRange.containsPosition(s)||l.closingBracketRange.containsPosition(s))).findLastMaxBy((0,d.compareBy)(l=>l.openingBracketRange.containsPosition(s)?l.openingBracketRange:l.closingBracketRange,E.Range.compareRangesUsingStarts));return c?[c.openingBracketRange,c.closingBracketRange]:null}else{const c=n(g);return this._matchBracket(this.textModel.validatePosition(s),c)}}_establishBracketSearchOffsets(s,g,c,l){const a=g.getCount(),r=g.getLanguageId(l);let u=Math.max(0,s.column-1-c.maxBracketLength);for(let f=l-1;f>=0;f--){const h=g.getEndOffset(f);if(h<=u)break;if((0,y.ignoreBracketsInToken)(g.getStandardTokenType(f))||g.getLanguageId(f)!==r){u=h;break}}let C=Math.min(g.getLineContent().length,s.column-1+c.maxBracketLength);for(let f=l+1;f=C)break;if((0,y.ignoreBracketsInToken)(g.getStandardTokenType(f))||g.getLanguageId(f)!==r){C=h;break}}return{searchStartOffset:u,searchEndOffset:C}}_matchBracket(s,g){const c=s.lineNumber,l=this.textModel.tokenization.getLineTokens(c),a=this.textModel.getLineContent(c),r=l.findTokenIndexAtOffset(s.column-1);if(r<0)return null;const u=this.languageConfigurationService.getLanguageConfiguration(l.getLanguageId(r)).brackets;if(u&&!(0,y.ignoreBracketsInToken)(l.getStandardTokenType(r))){let{searchStartOffset:C,searchEndOffset:f}=this._establishBracketSearchOffsets(s,l,u,r),h=null;for(;;){const v=m.BracketsUtils.findNextBracketInRange(u.forwardRegex,c,a,C,f);if(!v)break;if(v.startColumn<=s.column&&s.column<=v.endColumn){const w=a.substring(v.startColumn-1,v.endColumn-1).toLowerCase(),S=this._matchFoundBracket(v,u.textIsBracket[w],u.textIsOpenBracket[w],g);if(S){if(S instanceof o)return null;h=S}}C=v.endColumn-1}if(h)return h}if(r>0&&l.getStartOffset(r)===s.column-1){const C=r-1,f=this.languageConfigurationService.getLanguageConfiguration(l.getLanguageId(C)).brackets;if(f&&!(0,y.ignoreBracketsInToken)(l.getStandardTokenType(C))){const{searchStartOffset:h,searchEndOffset:v}=this._establishBracketSearchOffsets(s,l,f,C),w=m.BracketsUtils.findPrevBracketInRange(f.reversedRegex,c,a,h,v);if(w&&w.startColumn<=s.column&&s.column<=w.endColumn){const S=a.substring(w.startColumn-1,w.endColumn-1).toLowerCase(),L=this._matchFoundBracket(w,f.textIsBracket[S],f.textIsOpenBracket[S],g);if(L)return L instanceof o?null:L}}}return null}_matchFoundBracket(s,g,c,l){if(!g)return null;const a=c?this._findMatchingBracketDown(g,s.getEndPosition(),l):this._findMatchingBracketUp(g,s.getStartPosition(),l);return a?a instanceof o?a:[s,a]:null}_findMatchingBracketUp(s,g,c){const l=s.languageId,a=s.reversedRegex;let r=-1,u=0;const C=(f,h,v,w)=>{for(;;){if(c&&++u%100===0&&!c())return o.INSTANCE;const S=m.BracketsUtils.findPrevBracketInRange(a,f,h,v,w);if(!S)break;const L=h.substring(S.startColumn-1,S.endColumn-1).toLowerCase();if(s.isOpen(L)?r++:s.isClose(L)&&r--,r===0)return S;w=S.startColumn-1}return null};for(let f=g.lineNumber;f>=1;f--){const h=this.textModel.tokenization.getLineTokens(f),v=h.getCount(),w=this.textModel.getLineContent(f);let S=v-1,L=w.length,D=w.length;f===g.lineNumber&&(S=h.findTokenIndexAtOffset(g.column-1),L=g.column-1,D=g.column-1);let T=!0;for(;S>=0;S--){const M=h.getLanguageId(S)===l&&!(0,y.ignoreBracketsInToken)(h.getStandardTokenType(S));if(M)T?L=h.getStartOffset(S):(L=h.getStartOffset(S),D=h.getEndOffset(S));else if(T&&L!==D){const A=C(f,w,L,D);if(A)return A}T=M}if(T&&L!==D){const M=C(f,w,L,D);if(M)return M}}return null}_findMatchingBracketDown(s,g,c){const l=s.languageId,a=s.forwardRegex;let r=1,u=0;const C=(h,v,w,S)=>{for(;;){if(c&&++u%100===0&&!c())return o.INSTANCE;const L=m.BracketsUtils.findNextBracketInRange(a,h,v,w,S);if(!L)break;const D=v.substring(L.startColumn-1,L.endColumn-1).toLowerCase();if(s.isOpen(D)?r++:s.isClose(D)&&r--,r===0)return L;w=L.endColumn-1}return null},f=this.textModel.getLineCount();for(let h=g.lineNumber;h<=f;h++){const v=this.textModel.tokenization.getLineTokens(h),w=v.getCount(),S=this.textModel.getLineContent(h);let L=0,D=0,T=0;h===g.lineNumber&&(L=v.findTokenIndexAtOffset(g.column-1),D=g.column-1,T=g.column-1);let M=!0;for(;L=1;r--){const u=this.textModel.tokenization.getLineTokens(r),C=u.getCount(),f=this.textModel.getLineContent(r);let h=C-1,v=f.length,w=f.length;if(r===g.lineNumber){h=u.findTokenIndexAtOffset(g.column-1),v=g.column-1,w=g.column-1;const L=u.getLanguageId(h);c!==L&&(c=L,l=this.languageConfigurationService.getLanguageConfiguration(c).brackets,a=this.languageConfigurationService.getLanguageConfiguration(c).bracketsNew)}let S=!0;for(;h>=0;h--){const L=u.getLanguageId(h);if(c!==L){if(l&&a&&S&&v!==w){const T=m.BracketsUtils.findPrevBracketInRange(l.reversedRegex,r,f,v,w);if(T)return this._toFoundBracket(a,T);S=!1}c=L,l=this.languageConfigurationService.getLanguageConfiguration(c).brackets,a=this.languageConfigurationService.getLanguageConfiguration(c).bracketsNew}const D=!!l&&!(0,y.ignoreBracketsInToken)(u.getStandardTokenType(h));if(D)S?v=u.getStartOffset(h):(v=u.getStartOffset(h),w=u.getEndOffset(h));else if(a&&l&&S&&v!==w){const T=m.BracketsUtils.findPrevBracketInRange(l.reversedRegex,r,f,v,w);if(T)return this._toFoundBracket(a,T)}S=D}if(a&&l&&S&&v!==w){const L=m.BracketsUtils.findPrevBracketInRange(l.reversedRegex,r,f,v,w);if(L)return this._toFoundBracket(a,L)}}return null}findNextBracket(s){const g=this.textModel.validatePosition(s);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),this.bracketPairsTree.value?.object.getFirstBracketAfter(g)||null;const c=this.textModel.getLineCount();let l=null,a=null,r=null;for(let u=g.lineNumber;u<=c;u++){const C=this.textModel.tokenization.getLineTokens(u),f=C.getCount(),h=this.textModel.getLineContent(u);let v=0,w=0,S=0;if(u===g.lineNumber){v=C.findTokenIndexAtOffset(g.column-1),w=g.column-1,S=g.column-1;const D=C.getLanguageId(v);l!==D&&(l=D,a=this.languageConfigurationService.getLanguageConfiguration(l).brackets,r=this.languageConfigurationService.getLanguageConfiguration(l).bracketsNew)}let L=!0;for(;vD.closingBracketRange!==void 0&&D.range.strictContainsRange(S));return L?[L.openingBracketRange,L.closingBracketRange]:null}const l=n(g),a=this.textModel.getLineCount(),r=new Map;let u=[];const C=(S,L)=>{if(!r.has(S)){const D=[];for(let T=0,M=L?L.brackets.length:0;T{for(;;){if(l&&++f%100===0&&!l())return o.INSTANCE;const A=m.BracketsUtils.findNextBracketInRange(S.forwardRegex,L,D,T,M);if(!A)break;const P=D.substring(A.startColumn-1,A.endColumn-1).toLowerCase(),N=S.textIsBracket[P];if(N&&(N.isOpen(P)?u[N.index]++:N.isClose(P)&&u[N.index]--,u[N.index]===-1))return this._matchFoundBracket(A,N,!1,l);T=A.endColumn-1}return null};let v=null,w=null;for(let S=c.lineNumber;S<=a;S++){const L=this.textModel.tokenization.getLineTokens(S),D=L.getCount(),T=this.textModel.getLineContent(S);let M=0,A=0,P=0;if(S===c.lineNumber){M=L.findTokenIndexAtOffset(c.column-1),A=c.column-1,P=c.column-1;const O=L.getLanguageId(M);v!==O&&(v=O,w=this.languageConfigurationService.getLanguageConfiguration(v).brackets,C(v,w))}let N=!0;for(;Ms?.dispose()}}function n(i){if(typeof i>"u")return()=>!0;{const s=Date.now();return()=>Date.now()-s<=i}}class o{static{this.INSTANCE=new o}constructor(){this._searchCanceledBrand=void 0}}function t(i){return i instanceof o?null:i}}),define(ne[370],se([1,0,3,8,23,22,367,160,48]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditStack=e.MultiModelEditStackElement=e.SingleModelEditStackElement=e.SingleModelEditStackData=void 0,e.isEditStackElement=i;function b(g){return g.toString()}class p{static create(c,l){const a=c.getAlternativeVersionId(),r=t(c);return new p(a,a,r,r,l,l,[])}constructor(c,l,a,r,u,C,f){this.beforeVersionId=c,this.afterVersionId=l,this.beforeEOL=a,this.afterEOL=r,this.beforeCursorState=u,this.afterCursorState=C,this.changes=f}append(c,l,a,r,u){l.length>0&&(this.changes=(0,y.compressConsecutiveTextChanges)(this.changes,l)),this.afterEOL=a,this.afterVersionId=r,this.afterCursorState=u}static _writeSelectionsSize(c){return 4+4*4*(c?c.length:0)}static _writeSelections(c,l,a){if(m.writeUInt32BE(c,l?l.length:0,a),a+=4,l)for(const r of l)m.writeUInt32BE(c,r.selectionStartLineNumber,a),a+=4,m.writeUInt32BE(c,r.selectionStartColumn,a),a+=4,m.writeUInt32BE(c,r.positionLineNumber,a),a+=4,m.writeUInt32BE(c,r.positionColumn,a),a+=4;return a}static _readSelections(c,l,a){const r=m.readUInt32BE(c,l);l+=4;for(let u=0;ul.toString()).join(", ")}matchesResource(c){return(E.URI.isUri(this.model)?this.model:this.model.uri).toString()===c.toString()}setModel(c){this.model=c}canAppend(c){return this.model===c&&this._data instanceof p}append(c,l,a,r,u){this._data instanceof p&&this._data.append(c,l,a,r,u)}close(){this._data instanceof p&&(this._data=this._data.serialize())}open(){this._data instanceof p||(this._data=p.deserialize(this._data))}undo(){if(E.URI.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof p&&(this._data=this._data.serialize());const c=p.deserialize(this._data);this.model._applyUndo(c.changes,c.beforeEOL,c.beforeVersionId,c.beforeCursorState)}redo(){if(E.URI.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof p&&(this._data=this._data.serialize());const c=p.deserialize(this._data);this.model._applyRedo(c.changes,c.afterEOL,c.afterVersionId,c.afterCursorState)}heapSize(){return this._data instanceof p&&(this._data=this._data.serialize()),this._data.byteLength+168}}e.SingleModelEditStackElement=n;class o{get resources(){return this._editStackElementsArr.map(c=>c.resource)}constructor(c,l,a){this.label=c,this.code=l,this.type=1,this._isOpen=!0,this._editStackElementsArr=a.slice(0),this._editStackElementsMap=new Map;for(const r of this._editStackElementsArr){const u=b(r.resource);this._editStackElementsMap.set(u,r)}this._delegate=null}prepareUndoRedo(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}matchesResource(c){const l=b(c);return this._editStackElementsMap.has(l)}setModel(c){const l=b(E.URI.isUri(c)?c:c.uri);this._editStackElementsMap.has(l)&&this._editStackElementsMap.get(l).setModel(c)}canAppend(c){if(!this._isOpen)return!1;const l=b(c.uri);return this._editStackElementsMap.has(l)?this._editStackElementsMap.get(l).canAppend(c):!1}append(c,l,a,r,u){const C=b(c.uri);this._editStackElementsMap.get(C).append(c,l,a,r,u)}close(){this._isOpen=!1}open(){}undo(){this._isOpen=!1;for(const c of this._editStackElementsArr)c.undo()}redo(){for(const c of this._editStackElementsArr)c.redo()}heapSize(c){const l=b(c);return this._editStackElementsMap.has(l)?this._editStackElementsMap.get(l).heapSize():0}split(){return this._editStackElementsArr}toString(){const c=[];for(const l of this._editStackElementsArr)c.push(`${(0,_.basename)(l.resource)}: ${l}`);return`{${c.join(", ")}}`}}e.MultiModelEditStackElement=o;function t(g){return g.getEOL()===` +`?0:1}function i(g){return g?g instanceof n||g instanceof o:!1}class s{constructor(c,l){this._model=c,this._undoRedoService=l}pushStackElement(){const c=this._undoRedoService.getLastElement(this._model.uri);i(c)&&c.close()}popStackElement(){const c=this._undoRedoService.getLastElement(this._model.uri);i(c)&&c.open()}clear(){this._undoRedoService.removeElements(this._model.uri)}_getOrCreateEditStackElement(c,l){const a=this._undoRedoService.getLastElement(this._model.uri);if(i(a)&&a.canAppend(this._model))return a;const r=new n(d.localize(697,"Typing"),"undoredo.textBufferEdit",this._model,c);return this._undoRedoService.pushElement(r,l),r}pushEOL(c){const l=this._getOrCreateEditStackElement(null,void 0);this._model.setEOL(c),l.append(this._model,[],t(this._model),this._model.getAlternativeVersionId(),null)}pushEditOperation(c,l,a,r){const u=this._getOrCreateEditStackElement(c,r),C=this._model.applyEdits(l,!0),f=s._computeCursorState(a,C),h=C.map((v,w)=>({index:w,textChange:v.textChange}));return h.sort((v,w)=>v.textChange.oldPosition===w.textChange.oldPosition?v.index-w.index:v.textChange.oldPosition-w.textChange.oldPosition),u.append(this._model,h.map(v=>v.textChange),t(this._model),this._model.getAlternativeVersionId(),f),f}static _computeCursorState(c,l){try{return c?c(l):null}catch(a){return(0,k.onUnexpectedError)(a),null}}}e.EditStack=s}),define(ne[371],se([1,0,6,11,4,40,324,145,367,2]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PieceTreeTextBuffer=void 0;class p extends b.Disposable{constructor(o,t,i,s,g,c,l){super(),this._onDidChangeContent=this._register(new d.Emitter),this._BOM=t,this._mightContainNonBasicASCII=!c,this._mightContainRTL=s,this._mightContainUnusualLineTerminators=g,this._pieceTree=new y.PieceTreeBase(o,i,l)}mightContainRTL(){return this._mightContainRTL}mightContainUnusualLineTerminators(){return this._mightContainUnusualLineTerminators}resetMightContainUnusualLineTerminators(){this._mightContainUnusualLineTerminators=!1}mightContainNonBasicASCII(){return this._mightContainNonBasicASCII}getBOM(){return this._BOM}getEOL(){return this._pieceTree.getEOL()}createSnapshot(o){return this._pieceTree.createSnapshot(o?this._BOM:"")}getOffsetAt(o,t){return this._pieceTree.getOffsetAt(o,t)}getPositionAt(o){return this._pieceTree.getPositionAt(o)}getRangeAt(o,t){const i=o+t,s=this.getPositionAt(o),g=this.getPositionAt(i);return new I.Range(s.lineNumber,s.column,g.lineNumber,g.column)}getValueInRange(o,t=0){if(o.isEmpty())return"";const i=this._getEndOfLine(t);return this._pieceTree.getValueInRange(o,i)}getValueLengthInRange(o,t=0){if(o.isEmpty())return 0;if(o.startLineNumber===o.endLineNumber)return o.endColumn-o.startColumn;const i=this.getOffsetAt(o.startLineNumber,o.startColumn),s=this.getOffsetAt(o.endLineNumber,o.endColumn);let g=0;const c=this._getEndOfLine(t),l=this.getEOL();if(c.length!==l.length){const a=c.length-l.length,r=o.endLineNumber-o.startLineNumber;g=a*r}return s-i+g}getCharacterCountInRange(o,t=0){if(this._mightContainNonBasicASCII){let i=0;const s=o.startLineNumber,g=o.endLineNumber;for(let c=s;c<=g;c++){const l=this.getLineContent(c),a=c===s?o.startColumn-1:0,r=c===g?o.endColumn-1:l.length;for(let u=a;uS.sortIndex-L.sortIndex)}this._mightContainRTL=s,this._mightContainUnusualLineTerminators=g,this._mightContainNonBasicASCII=c;const h=this._doApplyEdits(a);let v=null;if(t&&C.length>0){C.sort((w,S)=>S.lineNumber-w.lineNumber),v=[];for(let w=0,S=C.length;w0&&C[w-1].lineNumber===L)continue;const D=C[w].oldContent,T=this.getLineContent(L);T.length===0||T===D||k.firstNonWhitespaceIndex(T)!==-1||v.push(L)}}return this._onDidChangeContent.fire(),new E.ApplyEditsResult(f,h,v)}_reduceOperations(o){return o.length<1e3?o:[this._toSingleEditOperation(o)]}_toSingleEditOperation(o){let t=!1;const i=o[0].range,s=o[o.length-1].range,g=new I.Range(i.startLineNumber,i.startColumn,s.endLineNumber,s.endColumn);let c=i.startLineNumber,l=i.startColumn;const a=[];for(let h=0,v=o.length;h0&&a.push(w.text),c=S.endLineNumber,l=S.endColumn}const r=a.join(""),[u,C,f]=(0,m.countEOL)(r);return{sortIndex:0,identifier:o[0].identifier,range:g,rangeOffset:this.getOffsetAt(g.startLineNumber,g.startColumn),rangeLength:this.getValueLengthInRange(g,0),text:r,eolCount:u,firstLineLength:C,lastLineLength:f,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(o){o.sort(p._sortOpsDescending);const t=[];for(let i=0;i0){const f=a.eolCount+1;f===1?C=new I.Range(r,u,r,u+a.firstLineLength):C=new I.Range(r,u,r+f-1,a.lastLineLength+1)}else C=new I.Range(r,u,r,u);i=C.endLineNumber,s=C.endColumn,t.push(C),g=a}return t}static _sortOpsAscending(o,t){const i=I.Range.compareRangesUsingEnds(o.range,t.range);return i===0?o.sortIndex-t.sortIndex:i}static _sortOpsDescending(o,t){const i=I.Range.compareRangesUsingEnds(o.range,t.range);return i===0?t.sortIndex-o.sortIndex:-i}}e.PieceTreeTextBuffer=p}),define(ne[662],se([1,0,11,324,371]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PieceTreeTextBufferBuilder=void 0;class E{constructor(_,b,p,n,o,t,i,s,g){this._chunks=_,this._bom=b,this._cr=p,this._lf=n,this._crlf=o,this._containsRTL=t,this._containsUnusualLineTerminators=i,this._isBasicASCII=s,this._normalizeEOL=g}_getEOL(_){const b=this._cr+this._lf+this._crlf,p=this._cr+this._crlf;return b===0?_===1?` +`:`\r +`:p>b/2?`\r +`:` +`}create(_){const b=this._getEOL(_),p=this._chunks;if(this._normalizeEOL&&(b===`\r +`&&(this._cr>0||this._lf>0)||b===` +`&&(this._cr>0||this._crlf>0)))for(let o=0,t=p.length;o=55296&&b<=56319?(this._acceptChunk1(_.substr(0,_.length-1),!1),this._hasPreviousChar=!0,this._previousChar=b):(this._acceptChunk1(_,!1),this._hasPreviousChar=!1,this._previousChar=b)}_acceptChunk1(_,b){!b&&_.length===0||(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+_):this._acceptChunk2(_))}_acceptChunk2(_){const b=(0,k.createLineStarts)(this._tmpLineStarts,_);this.chunks.push(new k.StringBuffer(_,b.lineStarts)),this.cr+=b.cr,this.lf+=b.lf,this.crlf+=b.crlf,b.isBasicASCII||(this.isBasicASCII=!1,this.containsRTL||(this.containsRTL=d.containsRTL(_)),this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=d.containsUnusualLineTerminators(_)))}finish(_=!0){return this._finish(),new E(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,_)}_finish(){if(this.chunks.length===0&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;const _=this.chunks[this.chunks.length-1];_.buffer+=String.fromCharCode(this._previousChar);const b=(0,k.createLineStartsFast)(_.buffer);_.lineStarts=b,this._previousChar===13&&this.cr++}}}e.PieceTreeTextBufferBuilder=y}),define(ne[663],se([1,0,14,8,16,54,145,55,68,177,576,330,83]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultBackgroundTokenizer=e.RangePriorityQueueImpl=e.TokenizationStateStore=e.TrackingTokenizationStateStore=e.TokenizerWithStateStoreAndTextModel=e.TokenizerWithStateStore=void 0;class t{constructor(u,C){this.tokenizationSupport=C,this.initialState=this.tokenizationSupport.getInitialState(),this.store=new s(u)}getStartState(u){return this.store.getStartState(u,this.initialState)}getFirstInvalidLine(){return this.store.getFirstInvalidLine(this.initialState)}}e.TokenizerWithStateStore=t;class i extends t{constructor(u,C,f,h){super(u,C),this._textModel=f,this._languageIdCodec=h}updateTokensUntilLine(u,C){const f=this._textModel.getLanguageId();for(;;){const h=this.getFirstInvalidLine();if(!h||h.lineNumber>C)break;const v=this._textModel.getLineContent(h.lineNumber),w=l(this._languageIdCodec,f,this.tokenizationSupport,v,!0,h.startState);u.add(h.lineNumber,w.tokens),this.store.setEndState(h.lineNumber,w.endState)}}getTokenTypeIfInsertingCharacter(u,C){const f=this.getStartState(u.lineNumber);if(!f)return 0;const h=this._textModel.getLanguageId(),v=this._textModel.getLineContent(u.lineNumber),w=v.substring(0,u.column-1)+C+v.substring(u.column-1),S=l(this._languageIdCodec,h,this.tokenizationSupport,w,!0,f),L=new o.LineTokens(S.tokens,w,this._languageIdCodec);if(L.getCount()===0)return 0;const D=L.findTokenIndexAtOffset(u.column-1);return L.getStandardTokenType(D)}tokenizeLineWithEdit(u,C,f){const h=u.lineNumber,v=u.column,w=this.getStartState(h);if(!w)return null;const S=this._textModel.getLineContent(h),L=S.substring(0,v-1)+f+S.substring(v-1+C),D=this._textModel.getLanguageIdAtPosition(h,0),T=l(this._languageIdCodec,D,this.tokenizationSupport,L,!0,w);return new o.LineTokens(T.tokens,L,this._languageIdCodec)}hasAccurateTokensForLine(u){const C=this.store.getFirstInvalidEndStateLineNumberOrMax();return u1&&S>=1;S--){const L=this._textModel.getLineFirstNonWhitespaceColumn(S);if(L!==0&&L0&&f>0&&(f--,C--),this._lineEndStates.replace(u.startLineNumber,f,C)}}e.TokenizationStateStore=g;class c{constructor(){this._ranges=[]}get min(){return this._ranges.length===0?null:this._ranges[0].start}delete(u){const C=this._ranges.findIndex(f=>f.contains(u));if(C!==-1){const f=this._ranges[C];f.start===u?f.endExclusive===u+1?this._ranges.splice(C,1):this._ranges[C]=new _.OffsetRange(u+1,f.endExclusive):f.endExclusive===u+1?this._ranges[C]=new _.OffsetRange(f.start,u):this._ranges.splice(C,1,new _.OffsetRange(f.start,u),new _.OffsetRange(u+1,f.endExclusive))}}addRange(u){_.OffsetRange.addRange(u,this._ranges)}addRangeAndResize(u,C){let f=0;for(;!(f>=this._ranges.length||u.start<=this._ranges[f].endExclusive);)f++;let h=f;for(;!(h>=this._ranges.length||u.endExclusiveu.toString()).join(" + ")}}e.RangePriorityQueueImpl=c;function l(r,u,C,f,h,v){let w=null;if(C)try{w=C.tokenizeEncoded(f,h,v.clone())}catch(S){(0,k.onUnexpectedError)(S)}return w||(w=(0,b.nullTokenizeEncoded)(r.encodeLanguageId(u),v)),o.LineTokens.convertToEndOffset(w.tokens,f.length),w}class a{constructor(u,C){this._tokenizerWithStateStore=u,this._backgroundTokenStore=C,this._isDisposed=!1,this._isScheduled=!1}dispose(){this._isDisposed=!0}handleChanges(){this._beginBackgroundTokenization()}_beginBackgroundTokenization(){this._isScheduled||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._isScheduled=!0,(0,d.runWhenGlobalIdle)(u=>{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(u)}))}_backgroundTokenizeWithDeadline(u){const C=Date.now()+u.timeRemaining(),f=()=>{this._isDisposed||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._backgroundTokenizeForAtLeast1ms(),Date.now()1||this._tokenizeOneInvalidLine(C)>=u)break;while(this._hasLinesToTokenize());this._backgroundTokenStore.setTokens(C.finalize()),this.checkFinished()}_hasLinesToTokenize(){return this._tokenizerWithStateStore?!this._tokenizerWithStateStore.store.allStatesValid():!1}_tokenizeOneInvalidLine(u){const C=this._tokenizerWithStateStore?.getFirstInvalidLine();return C?(this._tokenizerWithStateStore.updateTokensUntilLine(u,C.lineNumber),C.lineNumber):this._tokenizerWithStateStore._textModel.getLineCount()+1}checkFinished(){this._isDisposed||this._tokenizerWithStateStore.store.allStatesValid()&&this._backgroundTokenStore.backgroundTokenizationFinished()}requestTokens(u,C){this._tokenizerWithStateStore.store.invalidateEndStateRange(new m.LineRange(u,C))}}e.DefaultBackgroundTokenizer=a}),define(ne[263],se([1,0,13,14,6,2,55]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractTokens=e.AttachedViewHandler=e.AttachedViews=void 0;class m{constructor(){this._onDidChangeVisibleRanges=new I.Emitter,this.onDidChangeVisibleRanges=this._onDidChangeVisibleRanges.event,this._views=new Set}attachView(){const o=new _(t=>{this._onDidChangeVisibleRanges.fire({view:o,state:t})});return this._views.add(o),o}detachView(o){this._views.delete(o),this._onDidChangeVisibleRanges.fire({view:o,state:void 0})}}e.AttachedViews=m;class _{constructor(o){this.handleStateChange=o}setVisibleLines(o,t){const i=o.map(s=>new y.LineRange(s.startLineNumber,s.endLineNumber+1));this.handleStateChange({visibleLineRanges:i,stabilized:t})}}class b extends E.Disposable{get lineRanges(){return this._lineRanges}constructor(o){super(),this._refreshTokens=o,this.runner=this._register(new k.RunOnceScheduler(()=>this.update(),50)),this._computedLineRanges=[],this._lineRanges=[]}update(){(0,d.equals)(this._computedLineRanges,this._lineRanges,(o,t)=>o.equals(t))||(this._computedLineRanges=this._lineRanges,this._refreshTokens())}handleStateChange(o){this._lineRanges=o.visibleLineRanges,o.stabilized?(this.runner.cancel(),this.update()):this.runner.schedule()}}e.AttachedViewHandler=b;class p extends E.Disposable{get backgroundTokenizationState(){return this._backgroundTokenizationState}constructor(o,t,i){super(),this._languageIdCodec=o,this._textModel=t,this.getLanguageId=i,this._backgroundTokenizationState=1,this._onDidChangeBackgroundTokenizationState=this._register(new I.Emitter),this.onDidChangeBackgroundTokenizationState=this._onDidChangeBackgroundTokenizationState.event,this._onDidChangeTokens=this._register(new I.Emitter),this.onDidChangeTokens=this._onDidChangeTokens.event}tokenizeIfCheap(o){this.isCheapToTokenize(o)&&this.forceTokenization(o)}}e.AbstractTokens=p}),define(ne[664],se([1,0,27,83,263]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TreeSitterTokens=void 0;class E extends I.AbstractTokens{constructor(m,_,b,p){super(_,b,p),this._treeSitterService=m,this._tokenizationSupport=null,this._initialize()}_initialize(){const m=this.getLanguageId();(!this._tokenizationSupport||this._lastLanguageId!==m)&&(this._lastLanguageId=m,this._tokenizationSupport=d.TreeSitterTokenizationRegistry.get(m))}getLineTokens(m){const _=this._textModel.getLineContent(m);if(this._tokenizationSupport){const b=this._tokenizationSupport.tokenizeEncoded(m,this._textModel);if(b)return new k.LineTokens(b,_,this._languageIdCodec)}return k.LineTokens.createEmpty(_,this._languageIdCodec)}resetTokenization(m=!0){m&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]}),this._initialize()}handleDidChangeAttached(){}handleDidChangeContent(m){m.isFlush&&this.resetTokenization(!1)}forceTokenization(m){}hasAccurateTokensForLine(m){return!0}isCheapToTokenize(m){return!0}getTokenTypeIfInsertingCharacter(m,_,b){return 0}tokenizeLineWithEdit(m,_,b){return null}get hasTokens(){return this._treeSitterService.getParseResult(this._textModel)!==void 0}}e.TreeSitterTokens=E}),define(ne[372],se([1,0,18,6,72,22,9,4,23,27,238]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.KeyMod=void 0,e.createMonacoBaseAPI=o;class n{static{this.CtrlCmd=2048}static{this.Shift=1024}static{this.Alt=512}static{this.WinCtrl=256}static chord(i,s){return(0,I.KeyChord)(i,s)}}e.KeyMod=n;function o(){return{editor:void 0,languages:void 0,CancellationTokenSource:d.CancellationTokenSource,Emitter:k.Emitter,KeyCode:p.KeyCode,KeyMod:n,Position:y.Position,Range:m.Range,Selection:_.Selection,SelectionDirection:p.SelectionDirection,MarkerSeverity:p.MarkerSeverity,MarkerTag:p.MarkerTag,Uri:E.URI,Token:b.Token}}}),define(ne[665],se([1,0,160,16]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.encodeSemanticTokensDto=y;function I(_){for(let b=0,p=_.length;bthis._checkStopModelSync(),Math.round(e.STOP_SYNC_MODEL_DELTA_TIME_MS/2)),this._register(g)}}dispose(){for(const t in this._syncedModels)(0,k.dispose)(this._syncedModels[t]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),super.dispose()}ensureSyncedResources(t,i=!1){for(const s of t){const g=s.toString();this._syncedModels[g]||this._beginModelSync(s,i),this._syncedModels[g]&&(this._syncedModelsLastUsedTime[g]=new Date().getTime())}}_checkStopModelSync(){const t=new Date().getTime(),i=[];for(const s in this._syncedModelsLastUsedTime)t-this._syncedModelsLastUsedTime[s]>e.STOP_SYNC_MODEL_DELTA_TIME_MS&&i.push(s);for(const s of i)this._stopModelSync(s)}_beginModelSync(t,i){const s=this._modelService.getModel(t);if(!s||!i&&s.isTooLargeForSyncing())return;const g=t.toString();this._proxy.$acceptNewModel({url:s.uri.toString(),lines:s.getLinesContent(),EOL:s.getEOL(),versionId:s.getVersionId()});const c=new k.DisposableStore;c.add(s.onDidChangeContent(l=>{this._proxy.$acceptModelChanged(g.toString(),l)})),c.add(s.onWillDispose(()=>{this._stopModelSync(g)})),c.add((0,k.toDisposable)(()=>{this._proxy.$acceptRemovedModel(g)})),this._syncedModels[g]=c}_stopModelSync(t){const i=this._syncedModels[t];delete this._syncedModels[t],delete this._syncedModelsLastUsedTime[t],(0,k.dispose)(i)}}e.WorkerTextModelSyncClient=b;class p{constructor(){this._models=Object.create(null)}getModel(t){return this._models[t]}getModels(){const t=[];return Object.keys(this._models).forEach(i=>t.push(this._models[i])),t}$acceptNewModel(t){this._models[t.url]=new n(I.URI.parse(t.url),t.lines,t.EOL,t.versionId)}$acceptModelChanged(t,i){if(!this._models[t])return;this._models[t].onEvents(i)}$acceptRemovedModel(t){this._models[t]&&delete this._models[t]}}e.WorkerTextModelSyncServer=p;class n extends _.MirrorTextModel{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(t){const i=[];for(let s=0;sthis._lines.length)i=this._lines.length,s=this._lines[i-1].length+1,g=!0;else{const c=this._lines[i-1].length+1;s<1?(s=1,g=!0):s>c&&(s=c,g=!0)}return g?{lineNumber:i,column:s}:t}}e.MirrorModel=n}),define(ne[666],se([1,0,190,4,564,570,372,326,54,328,561,60,42,563,582,373]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorSimpleWorker=e.BaseEditorSimpleWorker=void 0,e.create=a;const g=!1;class c{constructor(){this._workerTextModelSyncServer=new s.WorkerTextModelSyncServer}dispose(){}_getModel(u){return this._workerTextModelSyncServer.getModel(u)}_getModels(){return this._workerTextModelSyncServer.getModels()}$acceptNewModel(u){this._workerTextModelSyncServer.$acceptNewModel(u)}$acceptModelChanged(u,C){this._workerTextModelSyncServer.$acceptModelChanged(u,C)}$acceptRemovedModel(u){this._workerTextModelSyncServer.$acceptRemovedModel(u)}async $computeUnicodeHighlights(u,C,f){const h=this._getModel(u);return h?b.UnicodeTextModelHighlighter.computeUnicodeHighlights(h,C,f):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}}async $findSectionHeaders(u,C){const f=this._getModel(u);return f?(0,i.findSectionHeaders)(f,C):[]}async $computeDiff(u,C,f,h){const v=this._getModel(u),w=this._getModel(C);return!v||!w?null:l.computeDiff(v,w,f,h)}static computeDiff(u,C,f,h){const v=h==="advanced"?p.linesDiffComputers.getDefault():p.linesDiffComputers.getLegacy(),w=u.getLinesContent(),S=C.getLinesContent(),L=v.computeDiff(w,S,f),D=L.changes.length>0?!1:this._modelsAreIdentical(u,C);function T(M){return M.map(A=>[A.original.startLineNumber,A.original.endLineNumberExclusive,A.modified.startLineNumber,A.modified.endLineNumberExclusive,A.innerChanges?.map(P=>[P.originalRange.startLineNumber,P.originalRange.startColumn,P.originalRange.endLineNumber,P.originalRange.endColumn,P.modifiedRange.startLineNumber,P.modifiedRange.startColumn,P.modifiedRange.endLineNumber,P.modifiedRange.endColumn])])}return{identical:D,quitEarly:L.hitTimeout,changes:T(L.changes),moves:L.moves.map(M=>[M.lineRangeMapping.original.startLineNumber,M.lineRangeMapping.original.endLineNumberExclusive,M.lineRangeMapping.modified.startLineNumber,M.lineRangeMapping.modified.endLineNumberExclusive,T(M.changes)])}}static _modelsAreIdentical(u,C){const f=u.getLineCount(),h=C.getLineCount();if(f!==h)return!1;for(let v=1;v<=f;v++){const w=u.getLineContent(v),S=C.getLineContent(v);if(w!==S)return!1}return!0}static{this._diffLimit=1e5}async $computeMoreMinimalEdits(u,C,f){const h=this._getModel(u);if(!h)return C;const v=[];let w;C=C.slice(0).sort((L,D)=>{if(L.range&&D.range)return k.Range.compareRangesUsingStarts(L.range,D.range);const T=L.range?0:1,M=D.range?0:1;return T-M});let S=0;for(let L=1;Ll._diffLimit){v.push({range:L,text:D});continue}const A=(0,d.stringDiff)(M,D,f),P=h.offsetAt(k.Range.lift(L).getStartPosition());for(const N of A){const O=h.positionAt(P+N.originalStart),F=h.positionAt(P+N.originalStart+N.originalLength),x={text:D.substr(N.modifiedStart,N.modifiedLength),range:{startLineNumber:O.lineNumber,startColumn:O.column,endLineNumber:F.lineNumber,endColumn:F.column}};h.getValueInRange(x.range)!==x.text&&v.push(x)}}return typeof w=="number"&&v.push({eol:w,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),v}async $computeLinks(u){const C=this._getModel(u);return C?(0,I.computeLinks)(C):null}async $computeDefaultDocumentColors(u){const C=this._getModel(u);return C?(0,t.computeDefaultDocumentColors)(C):null}static{this._suggestionsLimit=1e4}async $textualSuggest(u,C,f,h){const v=new _.StopWatch,w=new RegExp(f,h),S=new Set;e:for(const L of u){const D=this._getModel(L);if(D){for(const T of D.words(w))if(!(T===C||!isNaN(Number(T)))&&(S.add(T),S.size>l._suggestionsLimit))break e}}return{words:Array.from(S),duration:v.elapsed()}}async $computeWordRanges(u,C,f,h){const v=this._getModel(u);if(!v)return Object.create(null);const w=new RegExp(f,h),S=Object.create(null);for(let L=C.startLineNumber;Lthis._host.$fhr(S,L),w={host:(0,n.createProxyObject)(f,h),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(w,C),Promise.resolve((0,n.getAllMethodNames)(this._foreignModule))):new Promise((S,L)=>{const D=T=>{this._foreignModule=T.create(w,C),S((0,n.getAllMethodNames)(this._foreignModule))};if(!g)oe([`${u}`],D,L);else{const T=o.FileAccess.asBrowserUri(`${u}.js`).toString(!0);new Promise((M,A)=>{oe([`${T}`],M,A)}).then(D).catch(L)}})}$fmr(u,C){if(!this._foreignModule||typeof this._foreignModule[u]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+u));try{return Promise.resolve(this._foreignModule[u].apply(this._foreignModule,C))}catch(f){return Promise.reject(f)}}}e.EditorSimpleWorker=l;function a(r){return new l(m.EditorWorkerHost.getChannel(r),null)}typeof importScripts=="function"&&(globalThis.monaco=(0,y.createMonacoBaseAPI)())}),define(ne[107],se([1,0,3]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneServicesNLS=e.ToggleHighContrastNLS=e.StandaloneCodeEditorNLS=e.QuickOutlineNLS=e.QuickCommandNLS=e.QuickHelpNLS=e.GoToLineNLS=e.InspectTokensNLS=void 0;var k;(function(n){n.inspectTokensAction=d.localize(698,"Developer: Inspect Tokens")})(k||(e.InspectTokensNLS=k={}));var I;(function(n){n.gotoLineActionLabel=d.localize(699,"Go to Line/Column...")})(I||(e.GoToLineNLS=I={}));var E;(function(n){n.helpQuickAccessActionLabel=d.localize(700,"Show all Quick Access Providers")})(E||(e.QuickHelpNLS=E={}));var y;(function(n){n.quickCommandActionLabel=d.localize(701,"Command Palette"),n.quickCommandHelp=d.localize(702,"Show And Run Commands")})(y||(e.QuickCommandNLS=y={}));var m;(function(n){n.quickOutlineActionLabel=d.localize(703,"Go to Symbol..."),n.quickOutlineByCategoryActionLabel=d.localize(704,"Go to Symbol by Category...")})(m||(e.QuickOutlineNLS=m={}));var _;(function(n){n.editorViewAccessibleLabel=d.localize(705,"Editor content")})(_||(e.StandaloneCodeEditorNLS=_={}));var b;(function(n){n.toggleHighContrast=d.localize(706,"Toggle High Contrast Theme")})(b||(e.ToggleHighContrastNLS=b={}));var p;(function(n){n.bulkEditServiceSummary=d.localize(707,"Made {0} edits in {1} files")})(p||(e.StandaloneServicesNLS=p={}))}),define(ne[136],se([1,0,3,11,116,150,598]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RenderLineOutput2=e.RenderLineOutput=e.CharacterMapping=e.DomPosition=e.RenderLineInput=e.LineRange=void 0,e.renderViewLine=o,e.renderViewLine2=i;class m{constructor(S,L){this.startOffset=S,this.endOffset=L}equals(S){return this.startOffset===S.startOffset&&this.endOffset===S.endOffset}}e.LineRange=m;class _{constructor(S,L,D,T,M,A,P,N,O,F,x,W,V,q,H,z,U,j,Y){this.useMonospaceOptimizations=S,this.canUseHalfwidthRightwardsArrow=L,this.lineContent=D,this.continuesWithWrappedLine=T,this.isBasicASCII=M,this.containsRTL=A,this.fauxIndentLength=P,this.lineTokens=N,this.lineDecorations=O.sort(E.LineDecoration.compare),this.tabSize=F,this.startVisibleColumn=x,this.spaceWidth=W,this.stopRenderingLineAfter=H,this.renderWhitespace=z==="all"?4:z==="boundary"?1:z==="selection"?2:z==="trailing"?3:0,this.renderControlCharacters=U,this.fontLigatures=j,this.selectionsOnLine=Y&&Y.sort((R,J)=>R.startOffset>>16}static getCharIndex(S){return(S&65535)>>>0}constructor(S,L){this.length=S,this._data=new Uint32Array(this.length),this._horizontalOffset=new Uint32Array(this.length)}setColumnInfo(S,L,D,T){const M=(L<<16|D<<0)>>>0;this._data[S-1]=M,this._horizontalOffset[S-1]=T}getHorizontalOffset(S){return this._horizontalOffset.length===0?0:this._horizontalOffset[S-1]}charOffsetToPartData(S){return this.length===0?0:S<0?this._data[0]:S>=this.length?this._data[this.length-1]:this._data[S]}getDomPosition(S){const L=this.charOffsetToPartData(S-1),D=p.getPartIndex(L),T=p.getCharIndex(L);return new b(D,T)}getColumn(S,L){return this.partDataToCharOffset(S.partIndex,L,S.charIndex)+1}partDataToCharOffset(S,L,D){if(this.length===0)return 0;const T=(S<<16|D<<0)>>>0;let M=0,A=this.length-1;for(;M+1>>1,z=this._data[H];if(z===T)return H;z>T?A=H:M=H}if(M===A)return M;const P=this._data[M],N=this._data[A];if(P===T)return M;if(N===T)return A;const O=p.getPartIndex(P),F=p.getCharIndex(P),x=p.getPartIndex(N);let W;O!==x?W=L:W=p.getCharIndex(N);const V=D-F,q=W-D;return V<=q?M:A}}e.CharacterMapping=p;class n{constructor(S,L,D){this._renderLineOutputBrand=void 0,this.characterMapping=S,this.containsRTL=L,this.containsForeignElements=D}}e.RenderLineOutput=n;function o(w,S){if(w.lineContent.length===0){if(w.lineDecorations.length>0){S.appendString("");let L=0,D=0,T=0;for(const A of w.lineDecorations)(A.type===1||A.type===2)&&(S.appendString(''),A.type===1&&(T|=1,L++),A.type===2&&(T|=2,D++));S.appendString("");const M=new p(1,L+D);return M.setColumnInfo(1,L,0,0),new n(M,!1,T)}return S.appendString(""),new n(new p(0,0),!1,0)}return f(g(w),S)}class t{constructor(S,L,D,T){this.characterMapping=S,this.html=L,this.containsRTL=D,this.containsForeignElements=T}}e.RenderLineOutput2=t;function i(w){const S=new I.StringBuilder(1e4),L=o(w,S);return new t(L.characterMapping,S.build(),L.containsRTL,L.containsForeignElements)}class s{constructor(S,L,D,T,M,A,P,N,O,F,x,W,V,q,H,z){this.fontIsMonospace=S,this.canUseHalfwidthRightwardsArrow=L,this.lineContent=D,this.len=T,this.isOverflowing=M,this.overflowingCharCount=A,this.parts=P,this.containsForeignElements=N,this.fauxIndentLength=O,this.tabSize=F,this.startVisibleColumn=x,this.containsRTL=W,this.spaceWidth=V,this.renderSpaceCharCode=q,this.renderWhitespace=H,this.renderControlCharacters=z}}function g(w){const S=w.lineContent;let L,D,T;w.stopRenderingLineAfter!==-1&&w.stopRenderingLineAfter0){for(let P=0,N=w.lineDecorations.length;P0&&(M[A++]=new y.LinePart(D,"",0,!1));let P=D;for(let N=0,O=L.getCount();N=T){const V=S?k.containsRTL(w.substring(P,T)):!1;M[A++]=new y.LinePart(T,x,0,V);break}const W=S?k.containsRTL(w.substring(P,F)):!1;M[A++]=new y.LinePart(F,x,0,W),P=F}return M}function l(w,S,L){let D=0;const T=[];let M=0;if(L)for(let A=0,P=S.length;A=50&&(T[M++]=new y.LinePart(V+1,F,x,W),q=V+1,V=-1);q!==O&&(T[M++]=new y.LinePart(O,F,x,W))}else T[M++]=N;D=O}else for(let A=0,P=S.length;A50){const x=N.type,W=N.metadata,V=N.containsRTL,q=Math.ceil(F/50);for(let H=1;H=8234&&w<=8238||w>=8294&&w<=8297||w>=8206&&w<=8207||w===1564}function r(w,S){const L=[];let D=new y.LinePart(0,"",0,!1),T=0;for(const M of S){const A=M.endIndex;for(;TD.endIndex&&(D=new y.LinePart(T,M.type,M.metadata,M.containsRTL),L.push(D)),D=new y.LinePart(T+1,"mtkcontrol",M.metadata,!1),L.push(D))}T>D.endIndex&&(D=new y.LinePart(A,M.type,M.metadata,M.containsRTL),L.push(D))}return L}function u(w,S,L,D){const T=w.continuesWithWrappedLine,M=w.fauxIndentLength,A=w.tabSize,P=w.startVisibleColumn,N=w.useMonospaceOptimizations,O=w.selectionsOnLine,F=w.renderWhitespace===1,x=w.renderWhitespace===3,W=w.renderSpaceWidth!==w.spaceWidth,V=[];let q=0,H=0,z=D[H].type,U=D[H].containsRTL,j=D[H].endIndex;const Y=D.length;let G=!1,K=k.firstNonWhitespaceIndex(S),R;K===-1?(G=!0,K=L,R=L):R=k.lastNonWhitespaceIndex(S);let J=!1,ie=0,ue=O&&O[ie],he=P%A;for(let ae=M;ae=ue.endOffset&&(ie++,ue=O&&O[ie]);let de;if(aeR)de=!0;else if(ee===9)de=!0;else if(ee===32)if(F)if(J)de=!0;else{const ge=ae+1ae),de&&x&&(de=G||ae>R),de&&U&&ae>=K&&ae<=R&&(de=!1),J){if(!de||!N&&he>=A){if(W){const ge=q>0?V[q-1].endIndex:M;for(let X=ge+1;X<=ae;X++)V[q++]=new y.LinePart(X,"mtkw",1,!1)}else V[q++]=new y.LinePart(ae,"mtkw",1,!1);he=he%A}}else(ae===j||de&&ae>M)&&(V[q++]=new y.LinePart(ae,z,0,U),he=he%A);for(ee===9?he=A:k.isFullWidthCharacter(ee)?he+=2:he++,J=de;ae===j&&(H++,H0?S.charCodeAt(L-1):0,ee=L>1?S.charCodeAt(L-2):0;ae===32&&ee!==32&&ee!==9||(pe=!0)}else pe=!0;if(pe)if(W){const ae=q>0?V[q-1].endIndex:M;for(let ee=ae+1;ee<=L;ee++)V[q++]=new y.LinePart(ee,"mtkw",1,!1)}else V[q++]=new y.LinePart(L,"mtkw",1,!1);else V[q++]=new y.LinePart(L,z,0,U);return V}function C(w,S,L,D){D.sort(E.LineDecoration.compare);const T=E.LineDecorationsNormalizer.normalize(w,D),M=T.length;let A=0;const P=[];let N=0,O=0;for(let x=0,W=L.length;xO&&(O=j.startOffset,P[N++]=new y.LinePart(O,H,z,U)),j.endOffset+1<=q)O=j.endOffset+1,P[N++]=new y.LinePart(O,H+" "+j.className,z|j.metadata,U),A++;else{O=q,P[N++]=new y.LinePart(O,H+" "+j.className,z|j.metadata,U);break}}q>O&&(O=q,P[N++]=new y.LinePart(O,H,z,U))}const F=L[L.length-1].endIndex;if(A'):S.appendString("");for(let ue=0,he=O.length;ue=F&&(Z+=re)}}for(X&&(S.appendString(' style="width:'),S.appendString(String(q*$)),S.appendString('px"')),S.appendASCIICharCode(62);G1?S.appendCharCode(8594):S.appendCharCode(65515);for(let re=2;re<=te;re++)S.appendCharCode(160)}else Z=2,te=1,S.appendCharCode(H),S.appendCharCode(8204);R+=Z,J+=te,G>=F&&(K+=te)}}else for(S.appendASCIICharCode(62);G=F&&(K+=Z)}B?ie++:ie=0,G>=A&&!Y&&pe.isPseudoAfter()&&(Y=!0,j.setColumnInfo(G+1,ue,R,J)),S.appendString("")}return Y||j.setColumnInfo(A+1,O.length-1,R,J),P&&(S.appendString(''),S.appendString(d.localize(708,"Show more ({0})",v(N))),S.appendString("")),S.appendString(""),new n(j,V,T)}function h(w){return w.toString(16).toUpperCase().padStart(4,"0")}function v(w){return w<1024?d.localize(709,"{0} chars",w):w<1024*1024?`${(w/1024).toFixed(1)} KB`:`${(w/1024/1024).toFixed(1)} MB`}}),define(ne[667],se([1,0,103,74,37,116,150,136,95]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RenderOptions=e.LineSource=void 0,e.renderLines=p;const b=(0,d.createTrustedTypesPolicy)("diffEditorWidget",{createHTML:i=>i});function p(i,s,g,c){(0,k.applyFontInfo)(c,s.fontInfo);const l=g.length>0,a=new E.StringBuilder(1e4);let r=0,u=0;const C=[];for(let w=0;w');const C=s.getLineContent(),f=_.ViewLineRenderingData.isBasicASCII(C,l),h=_.ViewLineRenderingData.containsRTL(C,f,a),v=(0,m.renderViewLine)(new m.RenderLineInput(r.fontInfo.isMonospace&&!r.disableMonospaceOptimizations,r.fontInfo.canUseHalfwidthRightwardsArrow,C,!1,f,h,0,s,g,r.tabSize,0,r.fontInfo.spaceWidth,r.fontInfo.middotWidth,r.fontInfo.wsmiddotWidth,r.stopRenderingLineAfter,r.renderWhitespace,r.renderControlCharacters,r.fontLigatures!==I.EditorFontLigatures.OFF,null),u);return u.appendString(""),v.characterMapping.getHorizontalOffset(v.characterMapping.length)}}),define(ne[374],se([1,0,6,2,311,27]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MinimapTokensColorTracker=void 0;class y extends k.Disposable{static{this._INSTANCE=null}static getInstance(){return this._INSTANCE||(this._INSTANCE=(0,k.markAsSingleton)(new y)),this._INSTANCE}constructor(){super(),this._onDidChange=new d.Emitter,this.onDidChange=this._onDidChange.event,this._updateColorMap(),this._register(E.TokenizationRegistry.onDidChange(_=>{_.changedColorMap&&this._updateColorMap()}))}_updateColorMap(){const _=E.TokenizationRegistry.getColorMap();if(!_){this._colors=[I.RGBA8.Empty],this._backgroundIsLight=!0;return}this._colors=[I.RGBA8.Empty];for(let p=1;p<_.length;p++){const n=_[p].rgba;this._colors[p]=new I.RGBA8(n.r,n.g,n.b,Math.round(n.a*255))}const b=_[2].getRelativeLuminance();this._backgroundIsLight=b>=.5,this._onDidChange.fire(void 0)}getColor(_){return(_<1||_>=this._colors.length)&&(_=2),this._colors[_]}backgroundIsLight(){return this._backgroundIsLight}}e.MinimapTokensColorTracker=y}),define(ne[375],se([1,0,9,4,95,37]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewModelDecorations=void 0,e.isModelDecorationVisible=m,e.isModelDecorationInComment=_,e.isModelDecorationInString=b;class y{constructor(o,t,i,s,g){this.editorId=o,this.model=t,this.configuration=i,this._linesCollection=s,this._coordinatesConverter=g,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}_clearCachedModelDecorationsResolver(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}dispose(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}reset(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onModelDecorationsChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onLineMappingChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}_getOrCreateViewModelDecoration(o){const t=o.id;let i=this._decorationsCache[t];if(!i){const s=o.range,g=o.options;let c;if(g.isWholeLine){const l=this._coordinatesConverter.convertModelPositionToViewPosition(new d.Position(s.startLineNumber,1),0,!1,!0),a=this._coordinatesConverter.convertModelPositionToViewPosition(new d.Position(s.endLineNumber,this.model.getLineMaxColumn(s.endLineNumber)),1);c=new k.Range(l.lineNumber,l.column,a.lineNumber,a.column)}else c=this._coordinatesConverter.convertModelRangeToViewRange(s,1);i=new I.ViewModelDecoration(c,g),this._decorationsCache[t]=i}return i}getMinimapDecorationsInRange(o){return this._getDecorationsInRange(o,!0,!1).decorations}getDecorationsViewportData(o){let t=this._cachedModelDecorationsResolver!==null;return t=t&&o.equalsRange(this._cachedModelDecorationsResolverViewRange),t||(this._cachedModelDecorationsResolver=this._getDecorationsInRange(o,!1,!1),this._cachedModelDecorationsResolverViewRange=o),this._cachedModelDecorationsResolver}getInlineDecorationsOnLine(o,t=!1,i=!1){const s=new k.Range(o,this._linesCollection.getViewLineMinColumn(o),o,this._linesCollection.getViewLineMaxColumn(o));return this._getDecorationsInRange(s,t,i).inlineDecorations[0]}_getDecorationsInRange(o,t,i){const s=this._linesCollection.getDecorationsInRange(o,this.editorId,(0,E.filterValidationDecorations)(this.configuration.options),t,i),g=o.startLineNumber,c=o.endLineNumber,l=[];let a=0;const r=[];for(let u=g;u<=c;u++)r[u-g]=[];for(let u=0,C=s.length;ut===1)}function b(n,o){return p(n,o.range,t=>t===2)}function p(n,o,t){for(let i=o.startLineNumber;i<=o.endLineNumber;i++){const s=n.tokenization.getLineTokens(i),g=i===o.startLineNumber,c=i===o.endLineNumber;let l=g?s.findTokenIndexAtOffset(o.startColumn-1):0;for(;lo.endColumn-1);){if(!t(s.getStandardTokenType(l)))return!1;l++}}return!0}}),define(ne[209],se([1,0,6,2,16]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ClickLinkGesture=e.ClickLinkOptions=e.ClickLinkKeyboardEvent=e.ClickLinkMouseEvent=void 0;function E(n,o){return!!n[o]}class y{constructor(o,t){this.target=o.target,this.isLeftClick=o.event.leftButton,this.isMiddleClick=o.event.middleButton,this.isRightClick=o.event.rightButton,this.hasTriggerModifier=E(o.event,t.triggerModifier),this.hasSideBySideModifier=E(o.event,t.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=o.event.detail<=1}}e.ClickLinkMouseEvent=y;class m{constructor(o,t){this.keyCodeIsTriggerKey=o.keyCode===t.triggerKey,this.keyCodeIsSideBySideKey=o.keyCode===t.triggerSideBySideKey,this.hasTriggerModifier=E(o,t.triggerModifier)}}e.ClickLinkKeyboardEvent=m;class _{constructor(o,t,i,s){this.triggerKey=o,this.triggerModifier=t,this.triggerSideBySideKey=i,this.triggerSideBySideModifier=s}equals(o){return this.triggerKey===o.triggerKey&&this.triggerModifier===o.triggerModifier&&this.triggerSideBySideKey===o.triggerSideBySideKey&&this.triggerSideBySideModifier===o.triggerSideBySideModifier}}e.ClickLinkOptions=_;function b(n){return n==="altKey"?I.isMacintosh?new _(57,"metaKey",6,"altKey"):new _(5,"ctrlKey",6,"altKey"):I.isMacintosh?new _(6,"altKey",57,"metaKey"):new _(6,"altKey",5,"ctrlKey")}class p extends k.Disposable{constructor(o,t){super(),this._onMouseMoveOrRelevantKeyDown=this._register(new d.Emitter),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new d.Emitter),this.onExecute=this._onExecute.event,this._onCancel=this._register(new d.Emitter),this.onCancel=this._onCancel.event,this._editor=o,this._extractLineNumberFromMouseEvent=t?.extractLineNumberFromMouseEvent??(i=>i.target.position?i.target.position.lineNumber:0),this._opts=b(this._editor.getOption(78)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration(i=>{if(i.hasChanged(78)){const s=b(this._editor.getOption(78));if(this._opts.equals(s))return;this._opts=s,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove(i=>this._onEditorMouseMove(new y(i,this._opts)))),this._register(this._editor.onMouseDown(i=>this._onEditorMouseDown(new y(i,this._opts)))),this._register(this._editor.onMouseUp(i=>this._onEditorMouseUp(new y(i,this._opts)))),this._register(this._editor.onKeyDown(i=>this._onEditorKeyDown(new m(i,this._opts)))),this._register(this._editor.onKeyUp(i=>this._onEditorKeyUp(new m(i,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection(i=>this._onDidChangeCursorSelection(i))),this._register(this._editor.onDidChangeModel(i=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange(i=>{(i.scrollTopChanged||i.scrollLeftChanged)&&this._resetHandler()}))}_onDidChangeCursorSelection(o){o.selection&&o.selection.startColumn!==o.selection.endColumn&&this._resetHandler()}_onEditorMouseMove(o){this._lastMouseMoveEvent=o,this._onMouseMoveOrRelevantKeyDown.fire([o,null])}_onEditorMouseDown(o){this._hasTriggerKeyOnMouseDown=o.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(o)}_onEditorMouseUp(o){const t=this._extractLineNumberFromMouseEvent(o);this._hasTriggerKeyOnMouseDown&&this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===t&&this._onExecute.fire(o)}_onEditorKeyDown(o){this._lastMouseMoveEvent&&(o.keyCodeIsTriggerKey||o.keyCodeIsSideBySideKey&&o.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,o]):o.hasTriggerModifier&&this._onCancel.fire()}_onEditorKeyUp(o){o.keyCodeIsTriggerKey&&this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}e.ClickLinkGesture=p}),define(ne[178],se([1,0,8,6,187,2,45,48,11,4,3]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReferencesModel=e.FileReferences=e.FilePreview=e.OneReference=void 0;class n{constructor(g,c,l,a){this.isProviderFirst=g,this.parent=c,this.link=l,this._rangeCallback=a,this.id=I.defaultGenerator.nextId()}get uri(){return this.link.uri}get range(){return this._range??this.link.targetSelectionRange??this.link.range}set range(g){this._range=g,this._rangeCallback(this)}get ariaMessage(){const g=this.parent.getPreview(this)?.preview(this.range);return g?(0,p.localize)(996,"{0} in {1} on line {2} at column {3}",g.value,(0,m.basename)(this.uri),this.range.startLineNumber,this.range.startColumn):(0,p.localize)(995,"in {0} on line {1} at column {2}",(0,m.basename)(this.uri),this.range.startLineNumber,this.range.startColumn)}}e.OneReference=n;class o{constructor(g){this._modelReference=g}dispose(){this._modelReference.dispose()}preview(g,c=8){const l=this._modelReference.object.textEditorModel;if(!l)return;const{startLineNumber:a,startColumn:r,endLineNumber:u,endColumn:C}=g,f=l.getWordUntilPosition({lineNumber:a,column:r-c}),h=new b.Range(a,f.startColumn,a,r),v=new b.Range(u,C,u,1073741824),w=l.getValueInRange(h).replace(/^\s+/,""),S=l.getValueInRange(g),L=l.getValueInRange(v).replace(/\s+$/,"");return{value:w+S+L,highlight:{start:w.length,end:w.length+S.length}}}}e.FilePreview=o;class t{constructor(g,c){this.parent=g,this.uri=c,this.children=[],this._previews=new y.ResourceMap}dispose(){(0,E.dispose)(this._previews.values()),this._previews.clear()}getPreview(g){return this._previews.get(g.uri)}get ariaMessage(){const g=this.children.length;return g===1?(0,p.localize)(997,"1 symbol in {0}, full path {1}",(0,m.basename)(this.uri),this.uri.fsPath):(0,p.localize)(998,"{0} symbols in {1}, full path {2}",g,(0,m.basename)(this.uri),this.uri.fsPath)}async resolve(g){if(this._previews.size!==0)return this;for(const c of this.children)if(!this._previews.has(c.uri))try{const l=await g.createModelReference(c.uri);this._previews.set(c.uri,new o(l))}catch(l){(0,d.onUnexpectedError)(l)}return this}}e.FileReferences=t;class i{constructor(g,c){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new k.Emitter,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=g,this._title=c;const[l]=g;g.sort(i._compareReferences);let a;for(const r of g)if((!a||!m.extUri.isEqual(a.uri,r.uri,!0))&&(a=new t(this,r.uri),this.groups.push(a)),a.children.length===0||i._compareReferences(r,a.children[a.children.length-1])!==0){const u=new n(l===r,a,r,C=>this._onDidChangeReferenceRange.fire(C));this.references.push(u),a.children.push(u)}}dispose(){(0,E.dispose)(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new i(this._links,this._title)}get title(){return this._title}get isEmpty(){return this.groups.length===0}get ariaMessage(){return this.isEmpty?(0,p.localize)(999,"No results found"):this.references.length===1?(0,p.localize)(1e3,"Found 1 symbol in {0}",this.references[0].uri.fsPath):this.groups.length===1?(0,p.localize)(1001,"Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):(0,p.localize)(1002,"Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(g,c){const{parent:l}=g;let a=l.children.indexOf(g);const r=l.children.length,u=l.parent.groups.length;return u===1||c&&a+10?(c?a=(a+1)%r:a=(a+r-1)%r,l.children[a]):(a=l.parent.groups.indexOf(l),c?(a=(a+1)%u,l.parent.groups[a].children[0]):(a=(a+u-1)%u,l.parent.groups[a].children[l.parent.groups[a].children.length-1]))}nearestReference(g,c){const l=this.references.map((a,r)=>({idx:r,prefixLen:_.commonPrefixLength(a.uri.toString(),g.toString()),offsetDist:Math.abs(a.range.startLineNumber-c.lineNumber)*100+Math.abs(a.range.startColumn-c.column)})).sort((a,r)=>a.prefixLen>r.prefixLen?-1:a.prefixLenr.offsetDist?1:0)[0];if(l)return this.references[l.idx]}referenceAt(g,c){for(const l of this.references)if(l.uri.toString()===g.toString()&&b.Range.containsPosition(l.range,c))return l}firstReference(){for(const g of this.references)if(g.isProviderFirst)return g;return this.references[0]}static _compareReferences(g,c){return m.extUri.compare(g.uri,c.uri)||b.Range.compareRangesUsingStarts(g.range,c.range)}}e.ReferencesModel=i}),define(ne[668],se([1,0,13,14]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContentHoverComputer=void 0;class I{get anchor(){return this._anchor}set anchor(y){this._anchor=y}get shouldFocus(){return this._shouldFocus}set shouldFocus(y){this._shouldFocus=y}get source(){return this._source}set source(y){this._source=y}get insistOnKeepingHoverVisible(){return this._insistOnKeepingHoverVisible}set insistOnKeepingHoverVisible(y){this._insistOnKeepingHoverVisible=y}constructor(y,m){this._editor=y,this._participants=m,this._anchor=null,this._shouldFocus=!1,this._source=0,this._insistOnKeepingHoverVisible=!1}static _getLineDecorations(y,m){if(m.type!==1&&!m.supportsMarkerHover)return[];const _=y.getModel(),b=m.range.startLineNumber;if(b>_.getLineCount())return[];const p=_.getLineMaxColumn(b);return y.getLineDecorations(b).filter(n=>{if(n.options.isWholeLine)return!0;const o=n.range.startLineNumber===b?n.range.startColumn:1,t=n.range.endLineNumber===b?n.range.endColumn:p;if(n.options.showIfCollapsed){if(o>m.range.startColumn+1||m.range.endColumn-1>t)return!1}else if(o>m.range.startColumn||m.range.endColumn>t)return!1;return!0})}computeAsync(y){const m=this._anchor;if(!this._editor.hasModel()||!m)return k.AsyncIterableObject.EMPTY;const _=I._getLineDecorations(this._editor,m);return k.AsyncIterableObject.merge(this._participants.map(b=>b.computeAsync?b.computeAsync(m,_,y):k.AsyncIterableObject.EMPTY))}computeSync(){if(!this._editor.hasModel()||!this._anchor)return[];const y=I._getLineDecorations(this._editor,this._anchor);let m=[];for(const _ of this._participants)m=m.concat(_.computeSync(this._anchor,y));return(0,d.coalesce)(m)}}e.ContentHoverComputer=I}),define(ne[264],se([1,0,3]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DECREASE_HOVER_VERBOSITY_ACTION_LABEL=e.DECREASE_HOVER_VERBOSITY_ACTION_ID=e.INCREASE_HOVER_VERBOSITY_ACTION_LABEL=e.INCREASE_HOVER_VERBOSITY_ACTION_ID=e.GO_TO_BOTTOM_HOVER_ACTION_ID=e.GO_TO_TOP_HOVER_ACTION_ID=e.PAGE_DOWN_HOVER_ACTION_ID=e.PAGE_UP_HOVER_ACTION_ID=e.SCROLL_RIGHT_HOVER_ACTION_ID=e.SCROLL_LEFT_HOVER_ACTION_ID=e.SCROLL_DOWN_HOVER_ACTION_ID=e.SCROLL_UP_HOVER_ACTION_ID=e.SHOW_DEFINITION_PREVIEW_HOVER_ACTION_ID=e.SHOW_OR_FOCUS_HOVER_ACTION_ID=void 0,e.SHOW_OR_FOCUS_HOVER_ACTION_ID="editor.action.showHover",e.SHOW_DEFINITION_PREVIEW_HOVER_ACTION_ID="editor.action.showDefinitionPreviewHover",e.SCROLL_UP_HOVER_ACTION_ID="editor.action.scrollUpHover",e.SCROLL_DOWN_HOVER_ACTION_ID="editor.action.scrollDownHover",e.SCROLL_LEFT_HOVER_ACTION_ID="editor.action.scrollLeftHover",e.SCROLL_RIGHT_HOVER_ACTION_ID="editor.action.scrollRightHover",e.PAGE_UP_HOVER_ACTION_ID="editor.action.pageUpHover",e.PAGE_DOWN_HOVER_ACTION_ID="editor.action.pageDownHover",e.GO_TO_TOP_HOVER_ACTION_ID="editor.action.goToTopHover",e.GO_TO_BOTTOM_HOVER_ACTION_ID="editor.action.goToBottomHover",e.INCREASE_HOVER_VERBOSITY_ACTION_ID="editor.action.increaseHoverVerbosityLevel",e.INCREASE_HOVER_VERBOSITY_ACTION_LABEL=d.localize(1006,"Increase Hover Verbosity Level"),e.DECREASE_HOVER_VERBOSITY_ACTION_ID="editor.action.decreaseHoverVerbosityLevel",e.DECREASE_HOVER_VERBOSITY_ACTION_LABEL=d.localize(1007,"Decrease Hover Verbosity Level")}),define(ne[376],se([1,0,14,8,6,2]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HoverOperation=e.HoverResult=void 0;class y{constructor(b,p,n){this.value=b,this.isComplete=p,this.hasLoadingMessage=n}}e.HoverResult=y;class m extends E.Disposable{constructor(b,p){super(),this._editor=b,this._computer=p,this._onResult=this._register(new I.Emitter),this.onResult=this._onResult.event,this._firstWaitScheduler=this._register(new d.RunOnceScheduler(()=>this._triggerAsyncComputation(),0)),this._secondWaitScheduler=this._register(new d.RunOnceScheduler(()=>this._triggerSyncComputation(),0)),this._loadingMessageScheduler=this._register(new d.RunOnceScheduler(()=>this._triggerLoadingMessage(),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),super.dispose()}get _hoverTime(){return this._editor.getOption(60).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(b,p=!0){this._state=b,p&&this._fireResult()}_triggerAsyncComputation(){this._setState(2),this._secondWaitScheduler.schedule(this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=(0,d.createCancelableAsyncIterable)(b=>this._computer.computeAsync(b)),(async()=>{try{for await(const b of this._asyncIterable)b&&(this._result.push(b),this._fireResult());this._asyncIterableDone=!0,(this._state===3||this._state===4)&&this._setState(0)}catch(b){(0,k.onUnexpectedError)(b)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync())),this._setState(this._asyncIterableDone?0:3)}_triggerLoadingMessage(){this._state===3&&this._setState(4)}_fireResult(){if(this._state===1||this._state===2)return;const b=this._state===0,p=this._state===4;this._onResult.fire(new y(this._result.slice(0),b,p))}start(b){if(b===0)this._state===0&&(this._setState(1),this._firstWaitScheduler.schedule(this._firstWaitTime),this._loadingMessageScheduler.schedule(this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break}}cancel(){this._firstWaitScheduler.cancel(),this._secondWaitScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._result=[],this._setState(0,!1)}}e.HoverOperation=m}),define(ne[210],se([1,0,5]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isMousePositionWithinElement=k;function k(I,E,y){const m=d.getDomNodePagePosition(I);return!(Em.left+m.width||ym.top+m.height)}}),define(ne[669],se([1,0,13,57,40]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarginHoverComputer=void 0;class E{get lineNumber(){return this._lineNumber}set lineNumber(m){this._lineNumber=m}get lane(){return this._laneOrLine}set lane(m){this._laneOrLine=m}constructor(m){this._editor=m,this._lineNumber=-1,this._laneOrLine=I.GlyphMarginLane.Center}computeSync(){const m=n=>({value:n}),_=this._editor.getLineDecorations(this._lineNumber),b=[],p=this._laneOrLine==="lineNo";if(!_)return b;for(const n of _){const o=n.options.glyphMargin?.position??I.GlyphMarginLane.Center;if(!p&&o!==this._laneOrLine)continue;const t=p?n.options.lineNumberHoverMessage:n.options.glyphMarginHoverMessage;!t||(0,k.isEmptyMarkdownString)(t)||b.push(...(0,d.asArray)(t).map(m))}return b}}e.MarginHoverComputer=E}),define(ne[670],se([1,0,255,2,9,5]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResizableContentWidget=void 0;const y=30,m=24;class _ extends k.Disposable{constructor(p,n=new E.Dimension(10,10)){super(),this._editor=p,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new d.ResizableHTMLElement),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=E.Dimension.lift(n),this._resizableNode.layout(n.height,n.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize(o=>{this._resize(new E.Dimension(o.dimension.width,o.dimension.height)),o.done&&(this._isResizing=!1)})),this._register(this._resizableNode.onDidWillResize(()=>{this._isResizing=!0}))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){return this._contentPosition?.position?I.Position.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(p){const n=this._editor.getDomNode(),o=this._editor.getScrolledVisiblePosition(p);return!n||!o?void 0:E.getDomNodePagePosition(n).top+o.top-y}_availableVerticalSpaceBelow(p){const n=this._editor.getDomNode(),o=this._editor.getScrolledVisiblePosition(p);if(!n||!o)return;const t=E.getDomNodePagePosition(n),i=E.getClientArea(n.ownerDocument.body),s=t.top+o.top+o.height;return i.height-s-m}_findPositionPreference(p,n){const o=Math.min(this._availableVerticalSpaceBelow(n)??1/0,p),t=Math.min(this._availableVerticalSpaceAbove(n)??1/0,p),i=Math.min(Math.max(t,o),p),s=Math.min(p,i);let g;return this._editor.getOption(60).above?g=s<=t?1:2:g=s<=o?2:1,g===1?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),g}_resize(p){this._resizableNode.layout(p.height,p.width)}}e.ResizableContentWidget=_}),define(ne[377],se([1,0,8,2,9,4,42,22]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlayHintsFragments=e.InlayHintItem=e.InlayHintAnchor=void 0,e.asCommandLink=n;class _{constructor(t,i){this.range=t,this.direction=i}}e.InlayHintAnchor=_;class b{constructor(t,i,s){this.hint=t,this.anchor=i,this.provider=s,this._isResolved=!1}with(t){const i=new b(this.hint,t.anchor,this.provider);return i._isResolved=this._isResolved,i._currentResolve=this._currentResolve,i}async resolve(t){if(typeof this.provider.resolveInlayHint=="function"){if(this._currentResolve)return await this._currentResolve,t.isCancellationRequested?void 0:this.resolve(t);this._isResolved||(this._currentResolve=this._doResolve(t).finally(()=>this._currentResolve=void 0)),await this._currentResolve}}async _doResolve(t){try{const i=await Promise.resolve(this.provider.resolveInlayHint(this.hint,t));this.hint.tooltip=i?.tooltip??this.hint.tooltip,this.hint.label=i?.label??this.hint.label,this.hint.textEdits=i?.textEdits??this.hint.textEdits,this._isResolved=!0}catch(i){(0,d.onUnexpectedExternalError)(i),this._isResolved=!1}}}e.InlayHintItem=b;class p{static{this._emptyInlayHintList=Object.freeze({dispose(){},hints:[]})}static async create(t,i,s,g){const c=[],l=t.ordered(i).reverse().map(a=>s.map(async r=>{try{const u=await a.provideInlayHints(i,r,g);(u?.hints.length||a.onDidChangeInlayHints)&&c.push([u??p._emptyInlayHintList,a])}catch(u){(0,d.onUnexpectedExternalError)(u)}}));if(await Promise.all(l.flat()),g.isCancellationRequested||i.isDisposed())throw new d.CancellationError;return new p(s,c,i)}constructor(t,i,s){this._disposables=new k.DisposableStore,this.ranges=t,this.provider=new Set;const g=[];for(const[c,l]of i){this._disposables.add(c),this.provider.add(l);for(const a of c.hints){const r=s.validatePosition(a.position);let u="before";const C=p._getRangeAtPosition(s,r);let f;C.getStartPosition().isBefore(r)?(f=E.Range.fromPositions(C.getStartPosition(),r),u="after"):(f=E.Range.fromPositions(r,C.getEndPosition()),u="before"),g.push(new b(a,new _(f,u),l))}}this.items=g.sort((c,l)=>I.Position.compare(c.hint.position,l.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(t,i){const s=i.lineNumber,g=t.getWordAtPosition(i);if(g)return new E.Range(s,g.startColumn,s,g.endColumn);t.tokenization.tokenizeIfCheap(s);const c=t.tokenization.getLineTokens(s),l=i.column-1,a=c.findTokenIndexAtOffset(l);let r=c.getStartOffset(a),u=c.getEndOffset(a);return u-r===1&&(r===l&&a>1?(r=c.getStartOffset(a-1),u=c.getEndOffset(a-1)):u===l&&aq.toString?q.toString():""+q).join(" -> ")}`));const V=new k.DeferredPromise;return D.set(F,V.p),(async()=>{if(!W){const q=L(F);for(const H of q){const z=await A(H);if(z&&z.items.length>0)return}}try{return r instanceof m.Position?await F.provideInlineCompletions(u,r,C,f):await F.provideInlineEdits?.(u,r,C,f)}catch(q){(0,y.onUnexpectedExternalError)(q);return}})().then(q=>V.complete(q),q=>V.error(q)),V.p}const P=await Promise.all(w.map(async F=>({provider:F,completions:await A(F)}))),N=new Map,O=[];for(const F of P){const x=F.completions;if(!x)continue;const W=new s(x,F.provider);O.push(W);for(const V of x.items){const q=g.from(V,W,v,u,h);N.set(q.hash(),q)}}return new i(Array.from(N.values()),new Set(N.keys()),O)}class i{constructor(r,u,C){this.completions=r,this.hashs=u,this.providerResults=C}has(r){return this.hashs.has(r.hash())}dispose(){for(const r of this.providerResults)r.removeRef()}}e.InlineCompletionProviderResult=i;class s{constructor(r,u){this.inlineCompletions=r,this.provider=u,this.refCount=1}addRef(){this.refCount++}removeRef(){this.refCount--,this.refCount===0&&this.provider.freeInlineCompletions(this.inlineCompletions)}}e.InlineCompletionList=s;class g{static from(r,u,C,f,h){let v,w,S=r.range?_.Range.lift(r.range):C;if(typeof r.insertText=="string"){if(v=r.insertText,h&&r.completeBracketPairs){v=l(v,S.getStartPosition(),f,h);const L=v.length-r.insertText.length;L!==0&&(S=new _.Range(S.startLineNumber,S.startColumn,S.endLineNumber,S.endColumn+L))}w=void 0}else if("snippet"in r.insertText){const L=r.insertText.snippet.length;if(h&&r.completeBracketPairs){r.insertText.snippet=l(r.insertText.snippet,S.getStartPosition(),f,h);const T=r.insertText.snippet.length-L;T!==0&&(S=new _.Range(S.startLineNumber,S.startColumn,S.endLineNumber,S.endColumn+T))}const D=new o.SnippetParser().parse(r.insertText.snippet);D.children.length===1&&D.children[0]instanceof o.Text?(v=D.children[0].value,w=void 0):(v=D.toString(),w={snippet:r.insertText.snippet,range:S})}else(0,d.assertNever)(r.insertText);return new g(v,r.command,S,v,w,r.additionalTextEdits||(0,n.getReadonlyEmptyArray)(),r,u)}constructor(r,u,C,f,h,v,w,S){this.filterText=r,this.command=u,this.range=C,this.insertText=f,this.snippetInfo=h,this.additionalTextEdits=v,this.sourceInlineCompletion=w,this.source=S,r=r.replace(/\r\n|\r/g,` +`),f=r.replace(/\r\n|\r/g,` +`)}withRange(r){return new g(this.filterText,this.command,r,this.insertText,this.snippetInfo,this.additionalTextEdits,this.sourceInlineCompletion,this.source)}hash(){return JSON.stringify({insertText:this.insertText,range:this.range.toString()})}toSingleTextEdit(){return new p.SingleTextEdit(this.range,this.insertText)}}e.InlineCompletionItem=g;function c(a,r){const u=r.getWordAtPosition(a),C=r.getLineMaxColumn(a.lineNumber);return u?new _.Range(a.lineNumber,u.startColumn,a.lineNumber,C):_.Range.fromPositions(a,a.with(void 0,C))}function l(a,r,u,C){const h=u.getLineContent(r.lineNumber).substring(0,r.column-1)+a,w=u.tokenization.tokenizeLineWithEdit(r,h.length-(r.column-1),a)?.sliceAndInflate(r.column-1,h.length,0);return w?(0,b.fixBracketsInLine)(w,C):a}}),define(ne[379],se([1,0,5,102,2,21,65,112]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PlaceholderTextContribution=void 0;class _ extends I.Disposable{static{this.ID="editor.contrib.placeholderText"}constructor(n){super(),this._editor=n,this._editorObs=(0,m.observableCodeEditor)(this._editor),this._placeholderText=this._editorObs.getOption(88),this._state=(0,E.derivedOpts)({owner:this,equalsFn:k.structuralEquals},o=>{const t=this._placeholderText.read(o);if(t&&this._editorObs.valueIsEmpty.read(o))return{placeholder:t}}),this._shouldViewBeAlive=b(this,o=>this._state.read(o)?.placeholder!==void 0),this._view=(0,y.derivedWithStore)((o,t)=>{if(!this._shouldViewBeAlive.read(o))return;const i=(0,d.h)("div.editorPlaceholder");t.add((0,E.autorun)(s=>{const g=this._state.read(s),c=g?.placeholder!==void 0;i.root.style.display=c?"block":"none",i.root.innerText=g?.placeholder??""})),t.add((0,E.autorun)(s=>{const g=this._editorObs.layoutInfo.read(s);i.root.style.left=`${g.contentLeft}px`,i.root.style.width=g.contentWidth-g.verticalScrollbarWidth+"px",i.root.style.top=`${this._editor.getTopForLineNumber(0)}px`})),t.add((0,E.autorun)(s=>{i.root.style.fontFamily=this._editorObs.getOption(49).read(s),i.root.style.fontSize=this._editorObs.getOption(52).read(s)+"px",i.root.style.lineHeight=this._editorObs.getOption(67).read(s)+"px"})),t.add(this._editorObs.createOverlayWidget({allowEditorOverflow:!1,minContentWidthInPx:(0,E.constObservable)(0),position:(0,E.constObservable)(null),domNode:i.root}))}),this._view.recomputeInitiallyAndOnChange(this._store)}}e.PlaceholderTextContribution=_;function b(p,n){return(0,E.derivedObservableWithCache)(p,(o,t)=>t===!0?!0:n(o))}}),define(ne[380],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibleViewRegistry=void 0,e.AccessibleViewRegistry=new class{constructor(){this._implementations=[]}register(k){return this._implementations.push(k),{dispose:()=>{const I=this._implementations.indexOf(k);I!==-1&&this._implementations.splice(I,1)}}}getImplementations(){return this._implementations}}}),define(ne[381],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.isLocalizedString=d,e.isICommandActionToggleInfo=k;function d(I){return I&&typeof I=="object"&&typeof I.original=="string"&&typeof I.value=="string"}function k(I){return I?I.condition!==void 0:!1}}),define(ne[671],se([1,0,3]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Categories=void 0,e.Categories=Object.freeze({View:(0,d.localize2)(1477,"View"),Help:(0,d.localize2)(1478,"Help"),Test:(0,d.localize2)(1479,"Test"),File:(0,d.localize2)(1480,"File"),Preferences:(0,d.localize2)(1481,"Preferences"),Developer:(0,d.localize2)(1482,"Developer")})}),define(ne[672],se([1,0,8,3]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Scanner=void 0;function I(..._){switch(_.length){case 1:return(0,k.localize)(1532,"Did you mean {0}?",_[0]);case 2:return(0,k.localize)(1533,"Did you mean {0} or {1}?",_[0],_[1]);case 3:return(0,k.localize)(1534,"Did you mean {0}, {1} or {2}?",_[0],_[1],_[2]);default:return}}const E=(0,k.localize)(1535,"Did you forget to open or close the quote?"),y=(0,k.localize)(1536,"Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\/'.");class m{constructor(){this._input="",this._start=0,this._current=0,this._tokens=[],this._errors=[],this.stringRe=/[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(b){switch(b.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return b.isTripleEq?"===":"==";case 4:return b.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:return">=";case 8:return">=";case 9:return"=~";case 10:return b.lexeme;case 11:return"true";case 12:return"false";case 13:return"in";case 14:return"not";case 15:return"&&";case 16:return"||";case 17:return b.lexeme;case 18:return b.lexeme;case 19:return b.lexeme;case 20:return"EOF";default:throw(0,d.illegalState)(`unhandled token type: ${JSON.stringify(b)}; have you forgotten to add a case?`)}}static{this._regexFlags=new Set(["i","g","s","m","y","u"].map(b=>b.charCodeAt(0)))}static{this._keywords=new Map([["not",14],["in",13],["false",12],["true",11]])}reset(b){return this._input=b,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();)switch(this._start=this._current,this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){const p=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:p})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){const p=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:p})}else this._match(126)?this._addToken(9):this._error(I("==","=~"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error(I("&&"));break;case 124:this._match(124)?this._addToken(16):this._error(I("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(b){return this._isAtEnd()||this._input.charCodeAt(this._current)!==b?!1:(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(b){this._tokens.push({type:b,offset:this._start})}_error(b){const p=this._start,n=this._input.substring(this._start,this._current),o={type:19,offset:this._start,lexeme:n};this._errors.push({offset:p,lexeme:n,additionalInfo:b}),this._tokens.push(o)}_string(){this.stringRe.lastIndex=this._start;const b=this.stringRe.exec(this._input);if(b){this._current=this._start+b[0].length;const p=this._input.substring(this._start,this._current),n=m._keywords.get(p);n?this._addToken(n):this._tokens.push({type:17,lexeme:p,offset:this._start})}}_quotedString(){for(;this._peek()!==39&&!this._isAtEnd();)this._advance();if(this._isAtEnd()){this._error(E);return}this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1})}_regex(){let b=this._current,p=!1,n=!1;for(;;){if(b>=this._input.length){this._current=b,this._error(y);return}const t=this._input.charCodeAt(b);if(p)p=!1;else if(t===47&&!n){b++;break}else t===91?n=!0:t===92?p=!0:t===93&&(n=!1);b++}for(;b=this._input.length}}e.Scanner=m}),define(ne[673],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorOpenSource=void 0;var d;(function(k){k[k.API=0]="API",k[k.USER=1]="USER"})(d||(e.EditorOpenSource=d={}))}),define(ne[674],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ExtensionIdentifierSet=e.ExtensionIdentifier=void 0;class d{constructor(E){this.value=E,this._lower=E.toLowerCase()}static toKey(E){return typeof E=="string"?E.toLowerCase():E._lower}}e.ExtensionIdentifier=d;class k{constructor(E){if(this._set=new Set,E)for(const y of E)this.add(y)}add(E){this._set.add(d.toKey(E))}has(E){return this._set.has(d.toKey(E))}}e.ExtensionIdentifierSet=k}),define(ne[382],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FileKind=void 0;var d;(function(k){k[k.FILE=0]="FILE",k[k.FOLDER=1]="FOLDER",k[k.ROOT_FOLDER=2]="ROOT_FOLDER"})(d||(e.FileKind=d={}))}),define(ne[675],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.showHistoryKeybindingHint=d;function d(k){return k.lookupKeybinding("history.showPrevious")?.getElectronAccelerator()==="Up"&&k.lookupKeybinding("history.showNext")?.getElectronAccelerator()==="Down"}}),define(ne[265],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SyncDescriptor=void 0;class d{constructor(I,E=[],y=!1){this.ctor=I,this.staticArguments=E,this.supportsDelayedInstantiation=y}}e.SyncDescriptor=d}),define(ne[49],se([1,0,265]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.registerSingleton=I,e.getSingletonServiceDescriptors=E;const k=[];function I(y,m,_){m instanceof d.SyncDescriptor||(m=new d.SyncDescriptor(m,[],!!_)),k.push([y,m])}function E(){return k}}),define(ne[676],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Graph=e.Node=void 0;class d{constructor(E,y){this.key=E,this.data=y,this.incoming=new Map,this.outgoing=new Map}}e.Node=d;class k{constructor(E){this._hashFn=E,this._nodes=new Map}roots(){const E=[];for(const y of this._nodes.values())y.outgoing.size===0&&E.push(y);return E}insertEdge(E,y){const m=this.lookupOrInsertNode(E),_=this.lookupOrInsertNode(y);m.outgoing.set(_.key,_),_.incoming.set(m.key,m)}removeNode(E){const y=this._hashFn(E);this._nodes.delete(y);for(const m of this._nodes.values())m.outgoing.delete(y),m.incoming.delete(y)}lookupOrInsertNode(E){const y=this._hashFn(E);let m=this._nodes.get(y);return m||(m=new d(y,E),this._nodes.set(y,m)),m}isEmpty(){return this._nodes.size===0}toString(){const E=[];for(const[y,m]of this._nodes)E.push(`${y} + (-> incoming)[${[...m.incoming.keys()].join(", ")}] + (outgoing ->)[${[...m.outgoing.keys()].join(",")}] +`);return E.join(` +`)}findCycleSlow(){for(const[E,y]of this._nodes){const m=new Set([E]),_=this._findCycle(y,m);if(_)return _}}_findCycle(E,y){for(const[m,_]of E.outgoing){if(y.has(m))return[...y,m].join(" -> ");y.add(m);const b=this._findCycle(_,y);if(b)return b;y.delete(m)}}}e.Graph=k}),define(ne[7],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IInstantiationService=e._util=void 0,e.createDecorator=I;var d;(function(E){E.serviceIds=new Map,E.DI_TARGET="$di$target",E.DI_DEPENDENCIES="$di$dependencies";function y(m){return m[E.DI_DEPENDENCIES]||[]}E.getServiceDependencies=y})(d||(e._util=d={})),e.IInstantiationService=I("instantiationService");function k(E,y,m){y[d.DI_TARGET]===y?y[d.DI_DEPENDENCIES].push({id:E,index:m}):(y[d.DI_DEPENDENCIES]=[{id:E,index:m}],y[d.DI_TARGET]=y)}function I(E){if(d.serviceIds.has(E))return d.serviceIds.get(E);const y=function(m,_,b){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");k(y,m,b)};return y.toString=()=>E,d.serviceIds.set(E,y),y}}),define(ne[152],se([1,0,7,22,19]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResourceFileEdit=e.ResourceTextEdit=e.ResourceEdit=e.IBulkEditService=void 0,e.IBulkEditService=(0,d.createDecorator)("IWorkspaceEditService");class E{constructor(b){this.metadata=b}static convert(b){return b.edits.map(p=>{if(y.is(p))return y.lift(p);if(m.is(p))return m.lift(p);throw new Error("Unsupported edit")})}}e.ResourceEdit=E;class y extends E{static is(b){return b instanceof y?!0:(0,I.isObject)(b)&&k.URI.isUri(b.resource)&&(0,I.isObject)(b.textEdit)}static lift(b){return b instanceof y?b:new y(b.resource,b.textEdit,b.versionId,b.metadata)}constructor(b,p,n=void 0,o){super(o),this.resource=b,this.textEdit=p,this.versionId=n}}e.ResourceTextEdit=y;class m extends E{static is(b){return b instanceof m?!0:(0,I.isObject)(b)&&(!!b.newResource||!!b.oldResource)}static lift(b){return b instanceof m?b:new m(b.oldResource,b.newResource,b.options,b.metadata)}constructor(b,p,n={},o){super(o),this.oldResource=b,this.newResource=p,this.options=n}}e.ResourceFileEdit=m}),define(ne[34],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ICodeEditorService=void 0,e.ICodeEditorService=(0,d.createDecorator)("codeEditorService")});var ce=this&&this.__param||function(oe,e){return function(d,k){e(d,k,oe)}};define(ne[383],se([1,0,5,114,26,57,2,21,65,30,19,112,88,55,9,4,27,3,7]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),e.HideUnchangedRegionsFeature=void 0;let r=class extends y.Disposable{static{a=this}static{this._breadcrumbsSourceFactory=(0,m.observableValue)(a,()=>({dispose(){},getBreadcrumbItems(h,v){return[]}}))}static setBreadcrumbsSourceFactory(h){this._breadcrumbsSourceFactory.set(h,void 0)}get isUpdatingHiddenAreas(){return this._isUpdatingHiddenAreas}constructor(h,v,w,S){super(),this._editors=h,this._diffModel=v,this._options=w,this._instantiationService=S,this._modifiedOutlineSource=(0,_.derivedDisposable)(this,M=>{const A=this._editors.modifiedModel.read(M),P=a._breadcrumbsSourceFactory.read(M);return!A||!P?void 0:P(A,this._instantiationService)}),this._isUpdatingHiddenAreas=!1,this._register(this._editors.original.onDidChangeCursorPosition(M=>{if(M.reason===1)return;const A=this._diffModel.get();(0,m.transaction)(P=>{for(const N of this._editors.original.getSelections()||[])A?.ensureOriginalLineIsVisible(N.getStartPosition().lineNumber,0,P),A?.ensureOriginalLineIsVisible(N.getEndPosition().lineNumber,0,P)})})),this._register(this._editors.modified.onDidChangeCursorPosition(M=>{if(M.reason===1)return;const A=this._diffModel.get();(0,m.transaction)(P=>{for(const N of this._editors.modified.getSelections()||[])A?.ensureModifiedLineIsVisible(N.getStartPosition().lineNumber,0,P),A?.ensureModifiedLineIsVisible(N.getEndPosition().lineNumber,0,P)})}));const L=this._diffModel.map((M,A)=>{const P=M?.unchangedRegions.read(A)??[];return P.length===1&&P[0].modifiedLineNumber===1&&P[0].lineCount===this._editors.modifiedModel.read(A)?.getLineCount()?[]:P});this.viewZones=(0,m.derivedWithStore)(this,(M,A)=>{const P=this._modifiedOutlineSource.read(M);if(!P)return{origViewZones:[],modViewZones:[]};const N=[],O=[],F=this._options.renderSideBySide.read(M),x=this._options.compactMode.read(M),W=L.read(M);for(let V=0;Vq.getHiddenOriginalRange(U).startLineNumber-1),z=new o.PlaceholderViewZone(H,12);N.push(z),A.add(new u(this._editors.original,z,q,!F))}{const H=(0,m.derived)(this,U=>q.getHiddenModifiedRange(U).startLineNumber-1),z=new o.PlaceholderViewZone(H,12);O.push(z),A.add(new u(this._editors.modified,z,q))}}else{{const H=(0,m.derived)(this,U=>q.getHiddenOriginalRange(U).startLineNumber-1),z=new o.PlaceholderViewZone(H,24);N.push(z),A.add(new C(this._editors.original,z,q,q.originalUnchangedRange,!F,P,U=>this._diffModel.get().ensureModifiedLineIsVisible(U,2,void 0),this._options))}{const H=(0,m.derived)(this,U=>q.getHiddenModifiedRange(U).startLineNumber-1),z=new o.PlaceholderViewZone(H,24);O.push(z),A.add(new C(this._editors.modified,z,q,q.modifiedUnchangedRange,!1,P,U=>this._diffModel.get().ensureModifiedLineIsVisible(U,2,void 0),this._options))}}}return{origViewZones:N,modViewZones:O}});const D={description:"unchanged lines",className:"diff-unchanged-lines",isWholeLine:!0},T={description:"Fold Unchanged",glyphMarginHoverMessage:new E.MarkdownString(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown((0,c.localize)(111,"Fold Unchanged Region")),glyphMarginClassName:"fold-unchanged "+b.ThemeIcon.asClassName(I.Codicon.fold),zIndex:10001};this._register((0,o.applyObservableDecorations)(this._editors.original,(0,m.derived)(this,M=>{const A=L.read(M),P=A.map(N=>({range:N.originalUnchangedRange.toInclusiveRange(),options:D}));for(const N of A)N.shouldHideControls(M)&&P.push({range:s.Range.fromPositions(new i.Position(N.originalLineNumber,1)),options:T});return P}))),this._register((0,o.applyObservableDecorations)(this._editors.modified,(0,m.derived)(this,M=>{const A=L.read(M),P=A.map(N=>({range:N.modifiedUnchangedRange.toInclusiveRange(),options:D}));for(const N of A)N.shouldHideControls(M)&&P.push({range:t.LineRange.ofLength(N.modifiedLineNumber,1).toInclusiveRange(),options:T});return P}))),this._register((0,m.autorun)(M=>{const A=L.read(M);this._isUpdatingHiddenAreas=!0;try{this._editors.original.setHiddenAreas(A.map(P=>P.getHiddenOriginalRange(M).toInclusiveRange()).filter(p.isDefined)),this._editors.modified.setHiddenAreas(A.map(P=>P.getHiddenModifiedRange(M).toInclusiveRange()).filter(p.isDefined))}finally{this._isUpdatingHiddenAreas=!1}})),this._register(this._editors.modified.onMouseUp(M=>{if(!M.event.rightButton&&M.target.position&&M.target.element?.className.includes("fold-unchanged")){const A=M.target.position.lineNumber,P=this._diffModel.get();if(!P)return;const N=P.unchangedRegions.get().find(O=>O.modifiedUnchangedRange.includes(A));if(!N)return;N.collapseAll(void 0),M.event.stopPropagation(),M.event.preventDefault()}})),this._register(this._editors.original.onMouseUp(M=>{if(!M.event.rightButton&&M.target.position&&M.target.element?.className.includes("fold-unchanged")){const A=M.target.position.lineNumber,P=this._diffModel.get();if(!P)return;const N=P.unchangedRegions.get().find(O=>O.originalUnchangedRange.includes(A));if(!N)return;N.collapseAll(void 0),M.event.stopPropagation(),M.event.preventDefault()}}))}};e.HideUnchangedRegionsFeature=r,e.HideUnchangedRegionsFeature=r=a=ke([ce(3,l.IInstantiationService)],r);class u extends o.ViewZoneOverlayWidget{constructor(h,v,w,S=!1){const L=(0,d.h)("div.diff-hidden-lines-widget");super(h,v,L.root),this._unchangedRegion=w,this._hide=S,this._nodes=(0,d.h)("div.diff-hidden-lines-compact",[(0,d.h)("div.line-left",[]),(0,d.h)("div.text@text",[]),(0,d.h)("div.line-right",[])]),L.root.appendChild(this._nodes.root),this._hide&&this._nodes.root.replaceChildren(),this._register((0,m.autorun)(D=>{if(!this._hide){const T=this._unchangedRegion.getHiddenModifiedRange(D).length,M=(0,c.localize)(112,"{0} hidden lines",T);this._nodes.text.innerText=M}}))}}class C extends o.ViewZoneOverlayWidget{constructor(h,v,w,S,L,D,T,M){const A=(0,d.h)("div.diff-hidden-lines-widget");super(h,v,A.root),this._editor=h,this._unchangedRegion=w,this._unchangedRegionRange=S,this._hide=L,this._modifiedOutlineSource=D,this._revealModifiedHiddenLine=T,this._options=M,this._nodes=(0,d.h)("div.diff-hidden-lines",[(0,d.h)("div.top@top",{title:(0,c.localize)(113,"Click or drag to show more above")}),(0,d.h)("div.center@content",{style:{display:"flex"}},[(0,d.h)("div@first",{style:{display:"flex",justifyContent:"center",alignItems:"center",flexShrink:"0"}},[(0,d.$)("a",{title:(0,c.localize)(114,"Show Unchanged Region"),role:"button",onclick:()=>{this._unchangedRegion.showAll(void 0)}},...(0,k.renderLabelWithIcons)("$(unfold)"))]),(0,d.h)("div@others",{style:{display:"flex",justifyContent:"center",alignItems:"center"}})]),(0,d.h)("div.bottom@bottom",{title:(0,c.localize)(115,"Click or drag to show more below"),role:"button"})]),A.root.appendChild(this._nodes.root),this._hide?(0,d.reset)(this._nodes.first):this._register((0,o.applyStyle)(this._nodes.first,{width:(0,n.observableCodeEditor)(this._editor).layoutInfoContentLeft})),this._register((0,m.autorun)(N=>{const O=this._unchangedRegion.visibleLineCountTop.read(N)+this._unchangedRegion.visibleLineCountBottom.read(N)===this._unchangedRegion.lineCount;this._nodes.bottom.classList.toggle("canMoveTop",!O),this._nodes.bottom.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(N)>0),this._nodes.top.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(N)>0),this._nodes.top.classList.toggle("canMoveBottom",!O);const F=this._unchangedRegion.isDragged.read(N),x=this._editor.getDomNode();x&&(x.classList.toggle("draggingUnchangedRegion",!!F),F==="top"?(x.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(N)>0),x.classList.toggle("canMoveBottom",!O)):F==="bottom"?(x.classList.toggle("canMoveTop",!O),x.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(N)>0)):(x.classList.toggle("canMoveTop",!1),x.classList.toggle("canMoveBottom",!1)))}));const P=this._editor;this._register((0,d.addDisposableListener)(this._nodes.top,"mousedown",N=>{if(N.button!==0)return;this._nodes.top.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),N.preventDefault();const O=N.clientY;let F=!1;const x=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set("top",void 0);const W=(0,d.getWindow)(this._nodes.top),V=(0,d.addDisposableListener)(W,"mousemove",H=>{const U=H.clientY-O;F=F||Math.abs(U)>2;const j=Math.round(U/P.getOption(67)),Y=Math.max(0,Math.min(x+j,this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(Y,void 0)}),q=(0,d.addDisposableListener)(W,"mouseup",H=>{F||this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0),this._nodes.top.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),this._unchangedRegion.isDragged.set(void 0,void 0),V.dispose(),q.dispose()})})),this._register((0,d.addDisposableListener)(this._nodes.bottom,"mousedown",N=>{if(N.button!==0)return;this._nodes.bottom.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),N.preventDefault();const O=N.clientY;let F=!1;const x=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set("bottom",void 0);const W=(0,d.getWindow)(this._nodes.bottom),V=(0,d.addDisposableListener)(W,"mousemove",H=>{const U=H.clientY-O;F=F||Math.abs(U)>2;const j=Math.round(U/P.getOption(67)),Y=Math.max(0,Math.min(x-j,this._unchangedRegion.getMaxVisibleLineCountBottom())),G=this._unchangedRegionRange.endLineNumberExclusive>P.getModel().getLineCount()?P.getContentHeight():P.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(Y,void 0);const K=this._unchangedRegionRange.endLineNumberExclusive>P.getModel().getLineCount()?P.getContentHeight():P.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);P.setScrollTop(P.getScrollTop()+(K-G))}),q=(0,d.addDisposableListener)(W,"mouseup",H=>{if(this._unchangedRegion.isDragged.set(void 0,void 0),!F){const z=P.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);const U=P.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);P.setScrollTop(P.getScrollTop()+(U-z))}this._nodes.bottom.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),V.dispose(),q.dispose()})})),this._register((0,m.autorun)(N=>{const O=[];if(!this._hide){const F=w.getHiddenModifiedRange(N).length,x=(0,c.localize)(116,"{0} hidden lines",F),W=(0,d.$)("span",{title:(0,c.localize)(117,"Double click to unfold")},x);W.addEventListener("dblclick",H=>{H.button===0&&(H.preventDefault(),this._unchangedRegion.showAll(void 0))}),O.push(W);const V=this._unchangedRegion.getHiddenModifiedRange(N),q=this._modifiedOutlineSource.getBreadcrumbItems(V,N);if(q.length>0){O.push((0,d.$)("span",void 0,"\xA0\xA0|\xA0\xA0"));for(let H=0;H{this._revealModifiedHiddenLine(z.startLineNumber)}}}}(0,d.reset)(this._nodes.others,...O)}))}}}),define(ne[43],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ILanguageService=void 0,e.ILanguageService=(0,d.createDecorator)("languageService")}),define(ne[100],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IEditorWorkerService=void 0,e.IEditorWorkerService=(0,d.createDecorator)("editorWorkerService")}),define(ne[17],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ILanguageFeaturesService=void 0,e.ILanguageFeaturesService=(0,d.createDecorator)("ILanguageFeaturesService")}),define(ne[677],se([1,0,658,17,49]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LanguageFeaturesService=void 0;class E{constructor(){this.referenceProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.renameProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.newSymbolNamesProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.codeActionProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.definitionProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.typeDefinitionProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.declarationProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.implementationProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentSymbolProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.inlayHintsProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.colorProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.codeLensProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentFormattingEditProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentRangeFormattingEditProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.onTypeFormattingEditProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.signatureHelpProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.hoverProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentHighlightProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.multiDocumentHighlightProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.selectionRangeProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.foldingRangeProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.linkProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.inlineCompletionsProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.inlineEditProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.completionProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.linkedEditingRangeProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentRangeSemanticTokensProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentSemanticTokensProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentDropEditProvider=new d.LanguageFeatureRegistry(this._score.bind(this)),this.documentPasteEditProvider=new d.LanguageFeatureRegistry(this._score.bind(this))}_score(m){return this._notebookTypeResolver?.(m)}}e.LanguageFeaturesService=E,(0,I.registerSingleton)(k.ILanguageFeaturesService,E,1)}),define(ne[266],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IMarkerDecorationsService=void 0,e.IMarkerDecorationsService=(0,d.createDecorator)("markerDecorationsService")}),define(ne[51],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IModelService=void 0,e.IModelService=(0,d.createDecorator)("modelService")}),define(ne[78],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ITextModelService=void 0,e.ITextModelService=(0,d.createDecorator)("textModelService")}),define(ne[267],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ISemanticTokensStylingService=void 0,e.ISemanticTokensStylingService=(0,d.createDecorator)("semanticTokensStylingService")}),define(ne[211],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ITextResourcePropertiesService=e.ITextResourceConfigurationService=void 0,e.ITextResourceConfigurationService=(0,d.createDecorator)("textResourceConfigurationService"),e.ITextResourcePropertiesService=(0,d.createDecorator)("textResourcePropertiesService")}),define(ne[384],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ITreeSitterParserService=void 0,e.ITreeSitterParserService=(0,d.createDecorator)("treeSitterParserService")}),define(ne[678],se([1,0,49,7,327]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ITreeViewsDnDService=void 0,e.ITreeViewsDnDService=(0,k.createDecorator)("treeViewsDndService"),(0,d.registerSingleton)(e.ITreeViewsDnDService,I.TreeViewsDnDService,1)}),define(ne[385],se([1,0,33,2,17,130,100]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultDocumentColorProvider=void 0;let m=class{constructor(p){this._editorWorkerService=p}async provideDocumentColors(p,n){return this._editorWorkerService.computeDefaultDocumentColors(p.uri)}provideColorPresentations(p,n,o){const t=n.range,i=n.color,s=i.alpha,g=new d.Color(new d.RGBA(Math.round(255*i.red),Math.round(255*i.green),Math.round(255*i.blue),s)),c=s?d.Color.Format.CSS.formatRGB(g):d.Color.Format.CSS.formatRGBA(g),l=s?d.Color.Format.CSS.formatHSL(g):d.Color.Format.CSS.formatHSLA(g),a=s?d.Color.Format.CSS.formatHex(g):d.Color.Format.CSS.formatHexA(g),r=[];return r.push({label:c,textEdit:{range:t,text:c}}),r.push({label:l,textEdit:{range:t,text:l}}),r.push({label:a,textEdit:{range:t,text:a}}),r}};e.DefaultDocumentColorProvider=m,e.DefaultDocumentColorProvider=m=ke([ce(0,y.IEditorWorkerService)],m);let _=class extends k.Disposable{constructor(p,n){super(),this._register(p.colorProvider.register("*",new m(n)))}};_=ke([ce(0,I.ILanguageFeaturesService),ce(1,y.IEditorWorkerService)],_),(0,E.registerEditorFeature)(_)}),define(ne[268],se([1,0,152,135]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createCombinedWorkspaceEdit=I,e.sortEditsByYieldTo=E;function I(y,m,_){return(typeof _.insertText=="string"?_.insertText==="":_.insertText.snippet==="")?{edits:_.additionalEdit?.edits??[]}:{edits:[...m.map(b=>new d.ResourceTextEdit(y,{range:b,text:typeof _.insertText=="string"?k.SnippetParser.escape(_.insertText)+"$0":_.insertText.snippet,insertAsSnippet:!0})),..._.additionalEdit?.edits??[]]}}function E(y){function m(o,t){return"mimeType"in o?o.mimeType===t.handledMimeType:!!t.kind&&o.kind.contains(t.kind)}const _=new Map;for(const o of y)for(const t of o.yieldTo??[])for(const i of y)if(i!==o&&m(t,i)){let s=_.get(o);s||(s=[],_.set(o,s)),s.push(i)}if(!_.size)return Array.from(y);const b=new Set,p=[];function n(o){if(!o.length)return[];const t=o[0];if(p.includes(t))return console.warn("Yield to cycle detected",t),o;if(b.has(t))return n(o.slice(1));let i=[];const s=_.get(t);return s&&(p.push(t),i=n(s),p.pop()),b.add(t),[...i,t,...n(o.slice(1))]}return n(Array.from(y))}}),define(ne[679],se([1,0,103,6,2,21,11,74,37,9,4,116,43,40,83,150,136,204,205,517]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ttPolicy=e.AdditionalLinesWidget=e.GhostTextView=e.GHOST_TEXT_DESCRIPTION=void 0,e.GHOST_TEXT_DESCRIPTION="ghost-text";let a=class extends I.Disposable{constructor(f,h,v){super(),this.editor=f,this.model=h,this.languageService=v,this.isDisposed=(0,E.observableValue)(this,!1),this.currentTextModel=(0,E.observableFromEvent)(this,this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=(0,E.derived)(this,w=>{if(this.isDisposed.read(w))return;const S=this.currentTextModel.read(w);if(S!==this.model.targetTextModel.read(w))return;const L=this.model.ghostText.read(w);if(!L)return;const D=L instanceof c.GhostTextReplacement?L.columnRange:void 0,T=[],M=[];function A(x,W){if(M.length>0){const V=M[M.length-1];W&&V.decorations.push(new s.LineDecoration(V.content.length+1,V.content.length+1+x[0].length,W,0)),V.content+=x[0],x=x.slice(1)}for(const V of x)M.push({content:V,decorations:W?[new s.LineDecoration(1,V.length+1,W,0)]:[]})}const P=S.getLineContent(L.lineNumber);let N,O=0;for(const x of L.parts){let W=x.lines;N===void 0?(T.push({column:x.column,text:W[0],preview:x.preview}),W=W.slice(1)):A([P.substring(O,x.column-1)],void 0),W.length>0&&(A(W,e.GHOST_TEXT_DESCRIPTION),N===void 0&&x.column<=P.length&&(N=x.column)),O=x.column-1}N!==void 0&&A([P.substring(O)],void 0);const F=N!==void 0?new l.ColumnRange(N,P.length+1):void 0;return{replacedRange:D,inlineTexts:T,additionalLines:M,hiddenRange:F,lineNumber:L.lineNumber,additionalReservedLineCount:this.model.minReservedLineCount.read(w),targetTextModel:S}}),this.decorations=(0,E.derived)(this,w=>{const S=this.uiState.read(w);if(!S)return[];const L=[];S.replacedRange&&L.push({range:S.replacedRange.toRange(S.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace",description:"GhostTextReplacement"}}),S.hiddenRange&&L.push({range:S.hiddenRange.toRange(S.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(const D of S.inlineTexts)L.push({range:p.Range.fromPositions(new b.Position(S.lineNumber,D.column)),options:{description:e.GHOST_TEXT_DESCRIPTION,after:{content:D.text,inlineClassName:D.preview?"ghost-text-decoration-preview":"ghost-text-decoration",cursorStops:t.InjectedTextCursorStops.Left},showIfCollapsed:!0}});return L}),this.additionalLinesWidget=this._register(new r(this.editor,this.languageService.languageIdCodec,(0,E.derived)(w=>{const S=this.uiState.read(w);return S?{lineNumber:S.lineNumber,additionalLines:S.additionalLines,minReservedLineCount:S.additionalReservedLineCount,targetTextModel:S.targetTextModel}:void 0}))),this._register((0,I.toDisposable)(()=>{this.isDisposed.set(!0,void 0)})),this._register((0,l.applyObservableDecorations)(this.editor,this.decorations))}ownsViewZone(f){return this.additionalLinesWidget.viewZoneId===f}};e.GhostTextView=a,e.GhostTextView=a=ke([ce(2,o.ILanguageService)],a);class r extends I.Disposable{get viewZoneId(){return this._viewZoneId}constructor(f,h,v){super(),this.editor=f,this.languageIdCodec=h,this.lines=v,this._viewZoneId=void 0,this.editorOptionsChanged=(0,E.observableSignalFromEvent)("editorOptionChanged",k.Event.filter(this.editor.onDidChangeConfiguration,w=>w.hasChanged(33)||w.hasChanged(118)||w.hasChanged(100)||w.hasChanged(95)||w.hasChanged(51)||w.hasChanged(50)||w.hasChanged(67))),this._register((0,E.autorun)(w=>{const S=this.lines.read(w);this.editorOptionsChanged.read(w),S?this.updateLines(S.lineNumber,S.additionalLines,S.minReservedLineCount):this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this.editor.changeViewZones(f=>{this._viewZoneId&&(f.removeZone(this._viewZoneId),this._viewZoneId=void 0)})}updateLines(f,h,v){const w=this.editor.getModel();if(!w)return;const{tabSize:S}=w.getOptions();this.editor.changeViewZones(L=>{this._viewZoneId&&(L.removeZone(this._viewZoneId),this._viewZoneId=void 0);const D=Math.max(h.length,v);if(D>0){const T=document.createElement("div");u(T,S,h,this.editor.getOptions(),this.languageIdCodec),this._viewZoneId=L.addZone({afterLineNumber:f,heightInLines:D,domNode:T,afterColumnAffinity:1})}})}}e.AdditionalLinesWidget=r;function u(C,f,h,v,w){const S=v.get(33),L=v.get(118),D="none",T=v.get(95),M=v.get(51),A=v.get(50),P=v.get(67),N=new n.StringBuilder(1e4);N.appendString('
    ');for(let x=0,W=h.length;x');const H=y.isBasicASCII(q),z=y.containsRTL(q),U=i.LineTokens.createEmpty(q,w);(0,g.renderViewLine)(new g.RenderLineInput(A.isMonospace&&!S,A.canUseHalfwidthRightwardsArrow,q,!1,H,z,0,U,V.decorations,f,0,A.spaceWidth,A.middotWidth,A.wsmiddotWidth,L,D,T,M!==_.EditorFontLigatures.OFF,null),N),N.appendString("
    ")}N.appendString(""),(0,m.applyFontInfo)(C,A);const O=N.build(),F=e.ttPolicy?e.ttPolicy.createHTML(O):O;C.innerHTML=F}e.ttPolicy=(0,d.createTrustedTypesPolicy)("editorGhostText",{createHTML:C=>C})}),define(ne[680],se([1,0,147,17,27,2,45]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextualMultiDocumentHighlightFeature=void 0;class m{constructor(){this.selector={language:"*"}}provideDocumentHighlights(p,n,o){const t=[],i=p.getWordAtPosition({lineNumber:n.lineNumber,column:n.column});return i?p.isDisposed()?void 0:p.findMatches(i.word,!0,!1,!0,d.USUAL_WORD_SEPARATORS,!1).map(g=>({range:g.range,kind:I.DocumentHighlightKind.Text})):Promise.resolve(t)}provideMultiDocumentHighlights(p,n,o,t){const i=new y.ResourceMap,s=p.getWordAtPosition({lineNumber:n.lineNumber,column:n.column});if(!s)return Promise.resolve(i);for(const g of[p,...o]){if(g.isDisposed())continue;const l=g.findMatches(s.word,!0,!1,!0,d.USUAL_WORD_SEPARATORS,!1).map(a=>({range:a.range,kind:I.DocumentHighlightKind.Text}));l&&i.set(g.uri,l)}return i}}let _=class extends E.Disposable{constructor(p){super(),this._register(p.documentHighlightProvider.register("*",new m)),this._register(p.multiDocumentHighlightProvider.register("*",new m))}};e.TextualMultiDocumentHighlightFeature=_,e.TextualMultiDocumentHighlightFeature=_=ke([ce(0,k.ILanguageFeaturesService)],_)}),define(ne[153],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IStandaloneThemeService=void 0,e.IStandaloneThemeService=(0,d.createDecorator)("themeService")}),define(ne[137],se([1,0,3,7]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibilitySignal=e.SoundSource=e.Sound=e.AcknowledgeDocCommentsToken=e.IAccessibilitySignalService=void 0,e.IAccessibilitySignalService=(0,k.createDecorator)("accessibilitySignalService"),e.AcknowledgeDocCommentsToken=Symbol("AcknowledgeDocCommentsToken");class I{static register(_){return new I(_.fileName)}static{this.error=I.register({fileName:"error.mp3"})}static{this.warning=I.register({fileName:"warning.mp3"})}static{this.success=I.register({fileName:"success.mp3"})}static{this.foldedArea=I.register({fileName:"foldedAreas.mp3"})}static{this.break=I.register({fileName:"break.mp3"})}static{this.quickFixes=I.register({fileName:"quickFixes.mp3"})}static{this.taskCompleted=I.register({fileName:"taskCompleted.mp3"})}static{this.taskFailed=I.register({fileName:"taskFailed.mp3"})}static{this.terminalBell=I.register({fileName:"terminalBell.mp3"})}static{this.diffLineInserted=I.register({fileName:"diffLineInserted.mp3"})}static{this.diffLineDeleted=I.register({fileName:"diffLineDeleted.mp3"})}static{this.diffLineModified=I.register({fileName:"diffLineModified.mp3"})}static{this.chatRequestSent=I.register({fileName:"chatRequestSent.mp3"})}static{this.chatResponseReceived1=I.register({fileName:"chatResponseReceived1.mp3"})}static{this.chatResponseReceived2=I.register({fileName:"chatResponseReceived2.mp3"})}static{this.chatResponseReceived3=I.register({fileName:"chatResponseReceived3.mp3"})}static{this.chatResponseReceived4=I.register({fileName:"chatResponseReceived4.mp3"})}static{this.clear=I.register({fileName:"clear.mp3"})}static{this.save=I.register({fileName:"save.mp3"})}static{this.format=I.register({fileName:"format.mp3"})}static{this.voiceRecordingStarted=I.register({fileName:"voiceRecordingStarted.mp3"})}static{this.voiceRecordingStopped=I.register({fileName:"voiceRecordingStopped.mp3"})}static{this.progress=I.register({fileName:"progress.mp3"})}constructor(_){this.fileName=_}}e.Sound=I;class E{constructor(_){this.randomOneOf=_}}e.SoundSource=E;class y{constructor(_,b,p,n,o,t){this.sound=_,this.name=b,this.legacySoundSettingsKey=p,this.settingsKey=n,this.legacyAnnouncementSettingsKey=o,this.announcementMessage=t}static{this._signals=new Set}static register(_){const b=new E("randomOneOf"in _.sound?_.sound.randomOneOf:[_.sound]),p=new y(b,_.name,_.legacySoundSettingsKey,_.settingsKey,_.legacyAnnouncementSettingsKey,_.announcementMessage);return y._signals.add(p),p}static{this.errorAtPosition=y.register({name:(0,d.localize)(1428,"Error at Position"),sound:I.error,announcementMessage:(0,d.localize)(1429,"Error"),settingsKey:"accessibility.signals.positionHasError",delaySettingsKey:"accessibility.signalOptions.delays.errorAtPosition"})}static{this.warningAtPosition=y.register({name:(0,d.localize)(1430,"Warning at Position"),sound:I.warning,announcementMessage:(0,d.localize)(1431,"Warning"),settingsKey:"accessibility.signals.positionHasWarning",delaySettingsKey:"accessibility.signalOptions.delays.warningAtPosition"})}static{this.errorOnLine=y.register({name:(0,d.localize)(1432,"Error on Line"),sound:I.error,legacySoundSettingsKey:"audioCues.lineHasError",legacyAnnouncementSettingsKey:"accessibility.alert.error",announcementMessage:(0,d.localize)(1433,"Error on Line"),settingsKey:"accessibility.signals.lineHasError"})}static{this.warningOnLine=y.register({name:(0,d.localize)(1434,"Warning on Line"),sound:I.warning,legacySoundSettingsKey:"audioCues.lineHasWarning",legacyAnnouncementSettingsKey:"accessibility.alert.warning",announcementMessage:(0,d.localize)(1435,"Warning on Line"),settingsKey:"accessibility.signals.lineHasWarning"})}static{this.foldedArea=y.register({name:(0,d.localize)(1436,"Folded Area on Line"),sound:I.foldedArea,legacySoundSettingsKey:"audioCues.lineHasFoldedArea",legacyAnnouncementSettingsKey:"accessibility.alert.foldedArea",announcementMessage:(0,d.localize)(1437,"Folded"),settingsKey:"accessibility.signals.lineHasFoldedArea"})}static{this.break=y.register({name:(0,d.localize)(1438,"Breakpoint on Line"),sound:I.break,legacySoundSettingsKey:"audioCues.lineHasBreakpoint",legacyAnnouncementSettingsKey:"accessibility.alert.breakpoint",announcementMessage:(0,d.localize)(1439,"Breakpoint"),settingsKey:"accessibility.signals.lineHasBreakpoint"})}static{this.inlineSuggestion=y.register({name:(0,d.localize)(1440,"Inline Suggestion on Line"),sound:I.quickFixes,legacySoundSettingsKey:"audioCues.lineHasInlineSuggestion",settingsKey:"accessibility.signals.lineHasInlineSuggestion"})}static{this.terminalQuickFix=y.register({name:(0,d.localize)(1441,"Terminal Quick Fix"),sound:I.quickFixes,legacySoundSettingsKey:"audioCues.terminalQuickFix",legacyAnnouncementSettingsKey:"accessibility.alert.terminalQuickFix",announcementMessage:(0,d.localize)(1442,"Quick Fix"),settingsKey:"accessibility.signals.terminalQuickFix"})}static{this.onDebugBreak=y.register({name:(0,d.localize)(1443,"Debugger Stopped on Breakpoint"),sound:I.break,legacySoundSettingsKey:"audioCues.onDebugBreak",legacyAnnouncementSettingsKey:"accessibility.alert.onDebugBreak",announcementMessage:(0,d.localize)(1444,"Breakpoint"),settingsKey:"accessibility.signals.onDebugBreak"})}static{this.noInlayHints=y.register({name:(0,d.localize)(1445,"No Inlay Hints on Line"),sound:I.error,legacySoundSettingsKey:"audioCues.noInlayHints",legacyAnnouncementSettingsKey:"accessibility.alert.noInlayHints",announcementMessage:(0,d.localize)(1446,"No Inlay Hints"),settingsKey:"accessibility.signals.noInlayHints"})}static{this.taskCompleted=y.register({name:(0,d.localize)(1447,"Task Completed"),sound:I.taskCompleted,legacySoundSettingsKey:"audioCues.taskCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.taskCompleted",announcementMessage:(0,d.localize)(1448,"Task Completed"),settingsKey:"accessibility.signals.taskCompleted"})}static{this.taskFailed=y.register({name:(0,d.localize)(1449,"Task Failed"),sound:I.taskFailed,legacySoundSettingsKey:"audioCues.taskFailed",legacyAnnouncementSettingsKey:"accessibility.alert.taskFailed",announcementMessage:(0,d.localize)(1450,"Task Failed"),settingsKey:"accessibility.signals.taskFailed"})}static{this.terminalCommandFailed=y.register({name:(0,d.localize)(1451,"Terminal Command Failed"),sound:I.error,legacySoundSettingsKey:"audioCues.terminalCommandFailed",legacyAnnouncementSettingsKey:"accessibility.alert.terminalCommandFailed",announcementMessage:(0,d.localize)(1452,"Command Failed"),settingsKey:"accessibility.signals.terminalCommandFailed"})}static{this.terminalCommandSucceeded=y.register({name:(0,d.localize)(1453,"Terminal Command Succeeded"),sound:I.success,announcementMessage:(0,d.localize)(1454,"Command Succeeded"),settingsKey:"accessibility.signals.terminalCommandSucceeded"})}static{this.terminalBell=y.register({name:(0,d.localize)(1455,"Terminal Bell"),sound:I.terminalBell,legacySoundSettingsKey:"audioCues.terminalBell",legacyAnnouncementSettingsKey:"accessibility.alert.terminalBell",announcementMessage:(0,d.localize)(1456,"Terminal Bell"),settingsKey:"accessibility.signals.terminalBell"})}static{this.notebookCellCompleted=y.register({name:(0,d.localize)(1457,"Notebook Cell Completed"),sound:I.taskCompleted,legacySoundSettingsKey:"audioCues.notebookCellCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellCompleted",announcementMessage:(0,d.localize)(1458,"Notebook Cell Completed"),settingsKey:"accessibility.signals.notebookCellCompleted"})}static{this.notebookCellFailed=y.register({name:(0,d.localize)(1459,"Notebook Cell Failed"),sound:I.taskFailed,legacySoundSettingsKey:"audioCues.notebookCellFailed",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellFailed",announcementMessage:(0,d.localize)(1460,"Notebook Cell Failed"),settingsKey:"accessibility.signals.notebookCellFailed"})}static{this.diffLineInserted=y.register({name:(0,d.localize)(1461,"Diff Line Inserted"),sound:I.diffLineInserted,legacySoundSettingsKey:"audioCues.diffLineInserted",settingsKey:"accessibility.signals.diffLineInserted"})}static{this.diffLineDeleted=y.register({name:(0,d.localize)(1462,"Diff Line Deleted"),sound:I.diffLineDeleted,legacySoundSettingsKey:"audioCues.diffLineDeleted",settingsKey:"accessibility.signals.diffLineDeleted"})}static{this.diffLineModified=y.register({name:(0,d.localize)(1463,"Diff Line Modified"),sound:I.diffLineModified,legacySoundSettingsKey:"audioCues.diffLineModified",settingsKey:"accessibility.signals.diffLineModified"})}static{this.chatRequestSent=y.register({name:(0,d.localize)(1464,"Chat Request Sent"),sound:I.chatRequestSent,legacySoundSettingsKey:"audioCues.chatRequestSent",legacyAnnouncementSettingsKey:"accessibility.alert.chatRequestSent",announcementMessage:(0,d.localize)(1465,"Chat Request Sent"),settingsKey:"accessibility.signals.chatRequestSent"})}static{this.chatResponseReceived=y.register({name:(0,d.localize)(1466,"Chat Response Received"),legacySoundSettingsKey:"audioCues.chatResponseReceived",sound:{randomOneOf:[I.chatResponseReceived1,I.chatResponseReceived2,I.chatResponseReceived3,I.chatResponseReceived4]},settingsKey:"accessibility.signals.chatResponseReceived"})}static{this.progress=y.register({name:(0,d.localize)(1467,"Progress"),sound:I.progress,legacySoundSettingsKey:"audioCues.chatResponsePending",legacyAnnouncementSettingsKey:"accessibility.alert.progress",announcementMessage:(0,d.localize)(1468,"Progress"),settingsKey:"accessibility.signals.progress"})}static{this.clear=y.register({name:(0,d.localize)(1469,"Clear"),sound:I.clear,legacySoundSettingsKey:"audioCues.clear",legacyAnnouncementSettingsKey:"accessibility.alert.clear",announcementMessage:(0,d.localize)(1470,"Clear"),settingsKey:"accessibility.signals.clear"})}static{this.save=y.register({name:(0,d.localize)(1471,"Save"),sound:I.save,legacySoundSettingsKey:"audioCues.save",legacyAnnouncementSettingsKey:"accessibility.alert.save",announcementMessage:(0,d.localize)(1472,"Save"),settingsKey:"accessibility.signals.save"})}static{this.format=y.register({name:(0,d.localize)(1473,"Format"),sound:I.format,legacySoundSettingsKey:"audioCues.format",legacyAnnouncementSettingsKey:"accessibility.alert.format",announcementMessage:(0,d.localize)(1474,"Format"),settingsKey:"accessibility.signals.format"})}static{this.voiceRecordingStarted=y.register({name:(0,d.localize)(1475,"Voice Recording Started"),sound:I.voiceRecordingStarted,legacySoundSettingsKey:"audioCues.voiceRecordingStarted",settingsKey:"accessibility.signals.voiceRecordingStarted"})}static{this.voiceRecordingStopped=y.register({name:(0,d.localize)(1476,"Voice Recording Stopped"),sound:I.voiceRecordingStopped,legacySoundSettingsKey:"audioCues.voiceRecordingStopped",settingsKey:"accessibility.signals.voiceRecordingStopped"})}}e.AccessibilitySignal=y}),define(ne[117],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IClipboardService=void 0,e.IClipboardService=(0,d.createDecorator)("clipboardService")}),define(ne[24],se([1,0,6,53,2,73,19,7]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CommandsRegistry=e.ICommandService=void 0,e.ICommandService=(0,m.createDecorator)("commandService"),e.CommandsRegistry=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new d.Emitter,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(_,b){if(!_)throw new Error("invalid command");if(typeof _=="string"){if(!b)throw new Error("invalid command");return this.registerCommand({id:_,handler:b})}if(_.metadata&&Array.isArray(_.metadata.args)){const i=[];for(const g of _.metadata.args)i.push(g.constraint);const s=_.handler;_.handler=function(g,...c){return(0,y.validateConstraints)(c,i),s(g,...c)}}const{id:p}=_;let n=this._commands.get(p);n||(n=new E.LinkedList,this._commands.set(p,n));const o=n.unshift(_),t=(0,I.toDisposable)(()=>{o(),this._commands.get(p)?.isEmpty()&&this._commands.delete(p)});return this._onDidRegisterCommand.fire(p),t}registerCommandAlias(_,b){return e.CommandsRegistry.registerCommand(_,(p,...n)=>p.get(e.ICommandService).executeCommand(b,...n))}getCommand(_){const b=this._commands.get(_);if(!(!b||b.isEmpty()))return k.Iterable.first(b)}getCommands(){const _=new Map;for(const b of this._commands.keys()){const p=this.getCommand(b);p&&_.set(b,p)}return _}},e.CommandsRegistry.registerCommand("noop",()=>{})}),define(ne[386],se([1,0,18,8,2,19,22,51,24,17]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeLensModel=void 0,e.getCodeLensModel=n;class p{constructor(){this.lenses=[],this._disposables=new I.DisposableStore}dispose(){this._disposables.dispose()}get isDisposed(){return this._disposables.isDisposed}add(t,i){this._disposables.add(t);for(const s of t.lenses)this.lenses.push({symbol:s,provider:i})}}e.CodeLensModel=p;async function n(o,t,i){const s=o.ordered(t),g=new Map,c=new p,l=s.map(async(a,r)=>{g.set(a,r);try{const u=await Promise.resolve(a.provideCodeLenses(t,i));u&&c.add(u,a)}catch(u){(0,k.onUnexpectedExternalError)(u)}});return await Promise.all(l),c.lenses=c.lenses.sort((a,r)=>a.symbol.range.startLineNumberr.symbol.range.startLineNumber?1:g.get(a.provider)g.get(r.provider)?1:a.symbol.range.startColumnr.symbol.range.startColumn?1:0),c}_.CommandsRegistry.registerCommand("_executeCodeLensProvider",function(o,...t){let[i,s]=t;(0,E.assertType)(y.URI.isUri(i)),(0,E.assertType)(typeof s=="number"||!s);const{codeLensProvider:g}=o.get(b.ILanguageFeaturesService),c=o.get(m.IModelService).getModel(i);if(!c)throw(0,k.illegalArgument)();const l=[],a=new I.DisposableStore;return n(g,c,d.CancellationToken.None).then(r=>{a.add(r);const u=[];for(const C of r.lenses)s==null||C.symbol.command?l.push(C.symbol):s-- >0&&C.provider.resolveCodeLens&&u.push(Promise.resolve(C.provider.resolveCodeLens(c,C.symbol,d.CancellationToken.None)).then(f=>l.push(f||C.symbol)));return Promise.all(u)}).then(()=>l).finally(()=>{setTimeout(()=>a.dispose(),100)})})}),define(ne[681],se([1,0,13,18,8,2,19,22,4,51,24,17]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LinksList=e.Link=void 0,e.getLinks=i;class o{constructor(g,c){this._link=g,this._provider=c}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(g){return this._link.url?this._link.url:typeof this._provider.resolveLink=="function"?Promise.resolve(this._provider.resolveLink(this._link,g)).then(c=>(this._link=c||this._link,this._link.url?this.resolve(g):Promise.reject(new Error("missing")))):Promise.reject(new Error("missing"))}}e.Link=o;class t{constructor(g){this._disposables=new E.DisposableStore;let c=[];for(const[l,a]of g){const r=l.links.map(u=>new o(u,a));c=t._union(c,r),(0,E.isDisposable)(l)&&this._disposables.add(l)}this.links=c}dispose(){this._disposables.dispose(),this.links.length=0}static _union(g,c){const l=[];let a,r,u,C;for(a=0,u=0,r=g.length,C=c.length;aPromise.resolve(r.provideLinks(g,c)).then(C=>{C&&(l[u]=[C,r])},I.onUnexpectedExternalError));return Promise.all(a).then(()=>{const r=new t((0,d.coalesce)(l));return c.isCancellationRequested?(r.dispose(),new t([])):r})}p.CommandsRegistry.registerCommand("_executeLinkProvider",async(s,...g)=>{let[c,l]=g;(0,y.assertType)(c instanceof m.URI),typeof l!="number"&&(l=0);const{linkProvider:a}=s.get(n.ILanguageFeaturesService),r=s.get(b.IModelService).getModel(c);if(!r)return[];const u=await i(a,r,k.CancellationToken.None);if(!u)return[];for(let f=0;f0?h[0]:[]}async function g(C,f,h,v,w){const S=s(C,f),L=await Promise.all(S.map(async D=>{let T,M=null;try{T=await D.provideDocumentSemanticTokens(f,D===h?v:null,w)}catch(A){M=A,T=null}return(!T||!n(T)&&!o(T))&&(T=null),new t(D,T,M)}));for(const D of L){if(D.error)throw D.error;if(D.tokens)return D}return L.length>0?L[0]:null}function c(C,f){const h=C.orderedGroups(f);return h.length>0?h[0]:null}class l{constructor(f,h){this.provider=f,this.tokens=h}}function a(C,f){return C.has(f)}function r(C,f){const h=C.orderedGroups(f);return h.length>0?h[0]:[]}async function u(C,f,h,v){const w=r(C,f),S=await Promise.all(w.map(async L=>{let D;try{D=await L.provideDocumentRangeSemanticTokens(f,h,v)}catch(T){(0,k.onUnexpectedExternalError)(T),D=null}return(!D||!n(D))&&(D=null),new l(L,D)}));for(const L of S)if(L.tokens)return L;return S.length>0?S[0]:null}y.CommandsRegistry.registerCommand("_provideDocumentSemanticTokensLegend",async(C,...f)=>{const[h]=f;(0,m.assertType)(h instanceof I.URI);const v=C.get(E.IModelService).getModel(h);if(!v)return;const{documentSemanticTokensProvider:w}=C.get(p.ILanguageFeaturesService),S=c(w,v);return S?S[0].getLegend():C.get(y.ICommandService).executeCommand("_provideDocumentRangeSemanticTokensLegend",h)}),y.CommandsRegistry.registerCommand("_provideDocumentSemanticTokens",async(C,...f)=>{const[h]=f;(0,m.assertType)(h instanceof I.URI);const v=C.get(E.IModelService).getModel(h);if(!v)return;const{documentSemanticTokensProvider:w}=C.get(p.ILanguageFeaturesService);if(!i(w,v))return C.get(y.ICommandService).executeCommand("_provideDocumentRangeSemanticTokens",h,v.getFullModelRange());const S=await g(w,v,null,null,d.CancellationToken.None);if(!S)return;const{provider:L,tokens:D}=S;if(!D||!n(D))return;const T=(0,_.encodeSemanticTokensDto)({id:0,type:"full",data:D.data});return D.resultId&&L.releaseDocumentSemanticTokens(D.resultId),T}),y.CommandsRegistry.registerCommand("_provideDocumentRangeSemanticTokensLegend",async(C,...f)=>{const[h,v]=f;(0,m.assertType)(h instanceof I.URI);const w=C.get(E.IModelService).getModel(h);if(!w)return;const{documentRangeSemanticTokensProvider:S}=C.get(p.ILanguageFeaturesService),L=r(S,w);if(L.length===0)return;if(L.length===1)return L[0].getLegend();if(!v||!b.Range.isIRange(v))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),L[0].getLegend();const D=await u(S,w,b.Range.lift(v),d.CancellationToken.None);if(D)return D.provider.getLegend()}),y.CommandsRegistry.registerCommand("_provideDocumentRangeSemanticTokens",async(C,...f)=>{const[h,v]=f;(0,m.assertType)(h instanceof I.URI),(0,m.assertType)(b.Range.isIRange(v));const w=C.get(E.IModelService).getModel(h);if(!w)return;const{documentRangeSemanticTokensProvider:S}=C.get(p.ILanguageFeaturesService),L=await u(S,w,b.Range.lift(v),d.CancellationToken.None);if(!(!L||!L.tokens))return(0,_.encodeSemanticTokensDto)({id:0,type:"full",data:L.tokens.data})})}),define(ne[28],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IConfigurationService=void 0,e.toValuesTree=k,e.addToValueTree=I,e.removeFromValueTree=E,e.getConfigurationValue=m,e.getLanguageTagSettingPlainKey=_,e.IConfigurationService=(0,d.createDecorator)("configurationService");function k(b,p){const n=Object.create(null);for(const o in b)I(n,o,b[o],p);return n}function I(b,p,n,o){const t=p.split("."),i=t.pop();let s=b;for(let g=0;g"u"?n:i}function _(b){return b.replace(/[\[\]]/g,"")}}),define(ne[388],se([1,0,18,8,22,4,51,24,17,385,28]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getColors=n,e.getColorPresentations=o;async function n(l,a,r,u=!0){return g(new t,l,a,r,u)}function o(l,a,r,u){return Promise.resolve(r.provideColorPresentations(l,a,u))}class t{constructor(){}async compute(a,r,u,C){const f=await a.provideDocumentColors(r,u);if(Array.isArray(f))for(const h of f)C.push({colorInfo:h,provider:a});return Array.isArray(f)}}class i{constructor(){}async compute(a,r,u,C){const f=await a.provideDocumentColors(r,u);if(Array.isArray(f))for(const h of f)C.push({range:h.range,color:[h.color.red,h.color.green,h.color.blue,h.color.alpha]});return Array.isArray(f)}}class s{constructor(a){this.colorInfo=a}async compute(a,r,u,C){const f=await a.provideColorPresentations(r,this.colorInfo,d.CancellationToken.None);return Array.isArray(f)&&C.push(...f),Array.isArray(f)}}async function g(l,a,r,u,C){let f=!1,h;const v=[],w=a.ordered(r);for(let S=w.length-1;S>=0;S--){const L=w[S];if(L instanceof b.DefaultDocumentColorProvider)h=L;else try{await l.compute(L,r,u,v)&&(f=!0)}catch(D){(0,k.onUnexpectedExternalError)(D)}}return f?v:h&&C?(await l.compute(h,r,u,v),v):[]}function c(l,a){const{colorProvider:r}=l.get(_.ILanguageFeaturesService),u=l.get(y.IModelService).getModel(a);if(!u)throw(0,k.illegalArgument)();const C=l.get(p.IConfigurationService).getValue("editor.defaultColorDecorators",{resource:a});return{model:u,colorProviderRegistry:r,isDefaultColorDecoratorsEnabled:C}}m.CommandsRegistry.registerCommand("_executeDocumentColorProvider",function(l,...a){const[r]=a;if(!(r instanceof I.URI))throw(0,k.illegalArgument)();const{model:u,colorProviderRegistry:C,isDefaultColorDecoratorsEnabled:f}=c(l,r);return g(new i,C,u,d.CancellationToken.None,f)}),m.CommandsRegistry.registerCommand("_executeColorPresentationProvider",function(l,...a){const[r,u]=a,{uri:C,range:f}=u;if(!(C instanceof I.URI)||!Array.isArray(r)||r.length!==4||!E.Range.isIRange(f))throw(0,k.illegalArgument)();const{model:h,colorProviderRegistry:v,isDefaultColorDecoratorsEnabled:w}=c(l,C),[S,L,D,T]=r;return g(new s({range:f,color:{red:S,green:L,blue:D,alpha:T}}),v,h,d.CancellationToken.None,w)})}),define(ne[389],se([1,0,2,27,177,344,28]),function(oe,e,d,k,I,E,y){"use strict";var m;Object.defineProperty(e,"__esModule",{value:!0}),e.MonarchTokenizer=void 0;const _=5;class b{static{this._INSTANCE=new b(_)}static create(a,r){return this._INSTANCE.create(a,r)}constructor(a){this._maxCacheDepth=a,this._entries=Object.create(null)}create(a,r){if(a!==null&&a.depth>=this._maxCacheDepth)return new p(a,r);let u=p.getStackElementId(a);u.length>0&&(u+="|"),u+=r;let C=this._entries[u];return C||(C=new p(a,r),this._entries[u]=C,C)}}class p{constructor(a,r){this.parent=a,this.state=r,this.depth=(this.parent?this.parent.depth:0)+1}static getStackElementId(a){let r="";for(;a!==null;)r.length>0&&(r+="|"),r+=a.state,a=a.parent;return r}static _equals(a,r){for(;a!==null&&r!==null;){if(a===r)return!0;if(a.state!==r.state)return!1;a=a.parent,r=r.parent}return a===null&&r===null}equals(a){return p._equals(this,a)}push(a){return b.create(this,a)}pop(){return this.parent}popall(){let a=this;for(;a.parent;)a=a.parent;return a}switchTo(a){return b.create(this.parent,a)}}class n{constructor(a,r){this.languageId=a,this.state=r}equals(a){return this.languageId===a.languageId&&this.state.equals(a.state)}clone(){return this.state.clone()===this.state?this:new n(this.languageId,this.state)}}class o{static{this._INSTANCE=new o(_)}static create(a,r){return this._INSTANCE.create(a,r)}constructor(a){this._maxCacheDepth=a,this._entries=Object.create(null)}create(a,r){if(r!==null)return new t(a,r);if(a!==null&&a.depth>=this._maxCacheDepth)return new t(a,r);const u=p.getStackElementId(a);let C=this._entries[u];return C||(C=new t(a,null),this._entries[u]=C,C)}}class t{constructor(a,r){this.stack=a,this.embeddedLanguageData=r}clone(){return(this.embeddedLanguageData?this.embeddedLanguageData.clone():null)===this.embeddedLanguageData?this:o.create(this.stack,this.embeddedLanguageData)}equals(a){return!(a instanceof t)||!this.stack.equals(a.stack)?!1:this.embeddedLanguageData===null&&a.embeddedLanguageData===null?!0:this.embeddedLanguageData===null||a.embeddedLanguageData===null?!1:this.embeddedLanguageData.equals(a.embeddedLanguageData)}}class i{constructor(){this._tokens=[],this._languageId=null,this._lastTokenType=null,this._lastTokenLanguage=null}enterLanguage(a){this._languageId=a}emit(a,r){this._lastTokenType===r&&this._lastTokenLanguage===this._languageId||(this._lastTokenType=r,this._lastTokenLanguage=this._languageId,this._tokens.push(new k.Token(a,r,this._languageId)))}nestedLanguageTokenize(a,r,u,C){const f=u.languageId,h=u.state,v=k.TokenizationRegistry.get(f);if(!v)return this.enterLanguage(f),this.emit(C,""),h;const w=v.tokenize(a,r,h);if(C!==0)for(const S of w.tokens)this._tokens.push(new k.Token(S.offset+C,S.type,S.language));else this._tokens=this._tokens.concat(w.tokens);return this._lastTokenType=null,this._lastTokenLanguage=null,this._languageId=null,w.endState}finalize(a){return new k.TokenizationResult(this._tokens,a)}}class s{constructor(a,r){this._languageService=a,this._theme=r,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}enterLanguage(a){this._currentLanguageId=this._languageService.languageIdCodec.encodeLanguageId(a)}emit(a,r){const u=this._theme.match(this._currentLanguageId,r)|1024;this._lastTokenMetadata!==u&&(this._lastTokenMetadata=u,this._tokens.push(a),this._tokens.push(u))}static _merge(a,r,u){const C=a!==null?a.length:0,f=r.length,h=u!==null?u.length:0;if(C===0&&f===0&&h===0)return new Uint32Array(0);if(C===0&&f===0)return u;if(f===0&&h===0)return a;const v=new Uint32Array(C+f+h);a!==null&&v.set(a);for(let w=0;w{if(h)return;let w=!1;for(let S=0,L=v.changedLanguages.length;S{v.affectsConfiguration("editor.maxTokenizationLineLength")&&(this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}))}))}getLoadStatus(){const a=[];for(const r in this._embeddedLanguages){const u=k.TokenizationRegistry.get(r);if(u){if(u instanceof m){const C=u.getLoadStatus();C.loaded===!1&&a.push(C.promise)}continue}k.TokenizationRegistry.isResolved(r)||a.push(k.TokenizationRegistry.getOrCreate(r))}return a.length===0?{loaded:!0}:{loaded:!1,promise:Promise.all(a).then(r=>{})}}getInitialState(){const a=b.create(null,this._lexer.start);return o.create(a,null)}tokenize(a,r,u){if(a.length>=this._maxTokenizationLineLength)return(0,I.nullTokenize)(this._languageId,u);const C=new i,f=this._tokenize(a,r,u,C);return C.finalize(f)}tokenizeEncoded(a,r,u){if(a.length>=this._maxTokenizationLineLength)return(0,I.nullTokenizeEncoded)(this._languageService.languageIdCodec.encodeLanguageId(this._languageId),u);const C=new s(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme),f=this._tokenize(a,r,u,C);return C.finalize(f)}_tokenize(a,r,u,C){return u.embeddedLanguageData?this._nestedTokenize(a,r,u,0,C):this._myTokenize(a,r,u,0,C)}_findLeavingNestedLanguageOffset(a,r){let u=this._lexer.tokenizer[r.stack.state];if(!u&&(u=E.findRules(this._lexer,r.stack.state),!u))throw E.createError(this._lexer,"tokenizer state is not defined: "+r.stack.state);let C=-1,f=!1;for(const h of u){if(!E.isIAction(h.action)||h.action.nextEmbedded!=="@pop")continue;f=!0;let v=h.resolveRegex(r.stack.state);const w=v.source;if(w.substr(0,4)==="^(?:"&&w.substr(w.length-1,1)===")"){const L=(v.ignoreCase?"i":"")+(v.unicode?"u":"");v=new RegExp(w.substr(4,w.length-5),L)}const S=a.search(v);S===-1||S!==0&&h.matchOnlyAtLineStart||(C===-1||S0&&f.nestedLanguageTokenize(v,!1,u.embeddedLanguageData,C);const w=a.substring(h);return this._myTokenize(w,r,u,C+h,f)}_safeRuleName(a){return a?a.name:"(unknown)"}_myTokenize(a,r,u,C,f){f.enterLanguage(this._languageId);const h=a.length,v=r&&this._lexer.includeLF?a+` +`:a,w=v.length;let S=u.embeddedLanguageData,L=u.stack,D=0,T=null,M=!0;for(;M||D=w)break;M=!1;let U=this._lexer.tokenizer[O];if(!U&&(U=E.findRules(this._lexer,O),!U))throw E.createError(this._lexer,"tokenizer state is not defined: "+O);const j=v.substr(D);for(const Y of U)if((D===0||!Y.matchOnlyAtLineStart)&&(F=j.match(Y.resolveRegex(O)),F)){x=F[0],W=Y.action;break}}if(F||(F=[""],x=""),W||(D=this._lexer.maxStack)throw E.createError(this._lexer,"maximum tokenizer stack size reached: ["+L.state+","+L.parent.state+",...]");L=L.push(O)}else if(W.next==="@pop"){if(L.depth<=1)throw E.createError(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(V));L=L.pop()}else if(W.next==="@popall")L=L.popall();else{let U=E.substituteMatches(this._lexer,W.next,x,F,O);if(U[0]==="@"&&(U=U.substr(1)),E.findRules(this._lexer,U))L=L.push(U);else throw E.createError(this._lexer,"trying to set a next state '"+U+"' that is undefined in rule: "+this._safeRuleName(V))}}W.log&&typeof W.log=="string"&&E.log(this._lexer,this._lexer.languageId+": "+E.substituteMatches(this._lexer,W.log,x,F,O))}if(H===null)throw E.createError(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(V));const z=U=>{const j=this._languageService.getLanguageIdByLanguageName(U)||this._languageService.getLanguageIdByMimeType(U)||U,Y=this._getNestedEmbeddedLanguageData(j);if(D0)throw E.createError(this._lexer,"groups cannot be nested: "+this._safeRuleName(V));if(F.length!==H.length+1)throw E.createError(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(V));let U=0;for(let j=1;ji});class p{static colorizeElement(s,g,c,l){l=l||{};const a=l.theme||"vs",r=l.mimeType||c.getAttribute("lang")||c.getAttribute("data-lang");if(!r)return console.error("Mode not detected"),Promise.resolve();const u=g.getLanguageIdByMimeType(r)||r;s.setTheme(a);const C=c.firstChild?c.firstChild.nodeValue:"";c.className+=" "+a;const f=h=>{const v=b?.createHTML(h)??h;c.innerHTML=v};return this.colorize(g,C||"",u,l).then(f,h=>console.error(h))}static async colorize(s,g,c,l){const a=s.languageIdCodec;let r=4;l&&typeof l.tabSize=="number"&&(r=l.tabSize),k.startsWithUTF8BOM(g)&&(g=g.substr(1));const u=k.splitLines(g);if(!s.isRegisteredLanguageId(c))return o(u,r,a);const C=await I.TokenizationRegistry.getOrCreate(c);return C?n(u,r,C,a):o(u,r,a)}static colorizeLine(s,g,c,l,a=4){const r=m.ViewLineRenderingData.isBasicASCII(s,g),u=m.ViewLineRenderingData.containsRTL(s,r,c);return(0,y.renderViewLine2)(new y.RenderLineInput(!1,!0,s,!1,r,u,0,l,[],a,0,0,0,0,-1,"none",!1,!1,null)).html}static colorizeModelLine(s,g,c=4){const l=s.getLineContent(g);s.tokenization.forceTokenization(g);const r=s.tokenization.getLineTokens(g).inflate();return this.colorizeLine(l,s.mightContainNonBasicASCII(),s.mightContainRTL(),r,c)}}e.Colorizer=p;function n(i,s,g,c){return new Promise((l,a)=>{const r=()=>{const u=t(i,s,g,c);if(g instanceof _.MonarchTokenizer){const C=g.getLoadStatus();if(C.loaded===!1){C.promise.then(r,a);return}}l(u)};r()})}function o(i,s,g){let c=[];const a=new Uint32Array(2);a[0]=0,a[1]=33587200;for(let r=0,u=i.length;r")}return c.join("")}function t(i,s,g,c){let l=[],a=g.getInitialState();for(let r=0,u=i.length;r"),a=f.endState}return l.join("")}}),define(ne[12],se([1,0,16,11,672,7,3]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IContextKeyService=e.RawContextKey=e.ContextKeyOrExpr=e.ContextKeyAndExpr=e.ContextKeyNotRegexExpr=e.ContextKeyRegexExpr=e.ContextKeySmallerEqualsExpr=e.ContextKeySmallerExpr=e.ContextKeyGreaterEqualsExpr=e.ContextKeyGreaterExpr=e.ContextKeyNotExpr=e.ContextKeyNotEqualsExpr=e.ContextKeyNotInExpr=e.ContextKeyInExpr=e.ContextKeyEqualsExpr=e.ContextKeyDefinedExpr=e.ContextKeyTrueExpr=e.ContextKeyFalseExpr=e.ContextKeyExpr=e.Parser=void 0,e.expressionsAreEqualWithConstantSubstitution=r,e.implies=U;const m=new Map;m.set("false",!1),m.set("true",!0),m.set("isMac",d.isMacintosh),m.set("isLinux",d.isLinux),m.set("isWindows",d.isWindows),m.set("isWeb",d.isWeb),m.set("isMacNative",d.isMacintosh&&!d.isWeb),m.set("isEdge",d.isEdge),m.set("isFirefox",d.isFirefox),m.set("isChrome",d.isChrome),m.set("isSafari",d.isSafari);const _=Object.prototype.hasOwnProperty,b={regexParsingWithErrorRecovery:!0},p=(0,y.localize)(1514,"Empty context key expression"),n=(0,y.localize)(1515,"Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively."),o=(0,y.localize)(1516,"'in' after 'not'."),t=(0,y.localize)(1517,"closing parenthesis ')'"),i=(0,y.localize)(1518,"Unexpected token"),s=(0,y.localize)(1519,"Did you forget to put && or || before the token?"),g=(0,y.localize)(1520,"Unexpected end of expression"),c=(0,y.localize)(1521,"Did you forget to put a context key?");class l{static{this._parseError=new Error}constructor(K=b){this._config=K,this._scanner=new I.Scanner,this._tokens=[],this._current=0,this._parsingErrors=[],this._flagsGYRe=/g|y/g}parse(K){if(K===""){this._parsingErrors.push({message:p,offset:0,lexeme:"",additionalInfo:n});return}this._tokens=this._scanner.reset(K).scan(),this._current=0,this._parsingErrors=[];try{const R=this._expr();if(!this._isAtEnd()){const J=this._peek(),ie=J.type===17?s:void 0;throw this._parsingErrors.push({message:i,offset:J.offset,lexeme:I.Scanner.getLexeme(J),additionalInfo:ie}),l._parseError}return R}catch(R){if(R!==l._parseError)throw R;return}}_expr(){return this._or()}_or(){const K=[this._and()];for(;this._matchOne(16);){const R=this._and();K.push(R)}return K.length===1?K[0]:a.or(...K)}_and(){const K=[this._term()];for(;this._matchOne(15);){const R=this._term();K.push(R)}return K.length===1?K[0]:a.and(...K)}_term(){if(this._matchOne(2)){const K=this._peek();switch(K.type){case 11:return this._advance(),C.INSTANCE;case 12:return this._advance(),f.INSTANCE;case 0:{this._advance();const R=this._expr();return this._consume(1,t),R?.negate()}case 17:return this._advance(),D.create(K.lexeme);default:throw this._errExpectedButGot("KEY | true | false | '(' expression ')'",K)}}return this._primary()}_primary(){const K=this._peek();switch(K.type){case 11:return this._advance(),a.true();case 12:return this._advance(),a.false();case 0:{this._advance();const R=this._expr();return this._consume(1,t),R}case 17:{const R=K.lexeme;if(this._advance(),this._matchOne(9)){const ie=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),ie.type!==10)throw this._errExpectedButGot("REGEX",ie);const ue=ie.lexeme,he=ue.lastIndexOf("/"),pe=he===ue.length-1?void 0:this._removeFlagsGY(ue.substring(he+1));let ae;try{ae=new RegExp(ue.substring(1,he),pe)}catch{throw this._errExpectedButGot("REGEX",ie)}return O.create(R,ae)}switch(ie.type){case 10:case 19:{const ue=[ie.lexeme];this._advance();let he=this._peek(),pe=0;for(let X=0;X=0){const ee=ue.slice(pe+1,ae),de=ue[ae+1]==="i"?"i":"";try{he=new RegExp(ee,de)}catch{throw this._errExpectedButGot("REGEX",ie)}}}if(he===null)throw this._errExpectedButGot("REGEX",ie);return O.create(R,he)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,o);const ie=this._value();return a.notIn(R,ie)}switch(this._peek().type){case 3:{this._advance();const ie=this._value();if(this._previous().type===18)return a.equals(R,ie);switch(ie){case"true":return a.has(R);case"false":return a.not(R);default:return a.equals(R,ie)}}case 4:{this._advance();const ie=this._value();if(this._previous().type===18)return a.notEquals(R,ie);switch(ie){case"true":return a.not(R);case"false":return a.has(R);default:return a.notEquals(R,ie)}}case 5:return this._advance(),P.create(R,this._value());case 6:return this._advance(),N.create(R,this._value());case 7:return this._advance(),M.create(R,this._value());case 8:return this._advance(),A.create(R,this._value());case 13:return this._advance(),a.in(R,this._value());default:return a.has(R)}}case 20:throw this._parsingErrors.push({message:g,offset:K.offset,lexeme:"",additionalInfo:c}),l._parseError;default:throw this._errExpectedButGot(`true | false | KEY + | KEY '=~' REGEX + | KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`,this._peek())}}_value(){const K=this._peek();switch(K.type){case 17:case 18:return this._advance(),K.lexeme;case 11:return this._advance(),"true";case 12:return this._advance(),"false";case 13:return this._advance(),"in";default:return""}}_removeFlagsGY(K){return K.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(K){return this._check(K)?(this._advance(),!0):!1}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(K,R){if(this._check(K))return this._advance();throw this._errExpectedButGot(R,this._peek())}_errExpectedButGot(K,R,J){const ie=(0,y.localize)(1522,`Expected: {0} +Received: '{1}'.`,K,I.Scanner.getLexeme(R)),ue=R.offset,he=I.Scanner.getLexeme(R);return this._parsingErrors.push({message:ie,offset:ue,lexeme:he,additionalInfo:J}),l._parseError}_check(K){return this._peek().type===K}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}}e.Parser=l;class a{static false(){return C.INSTANCE}static true(){return f.INSTANCE}static has(K){return h.create(K)}static equals(K,R){return v.create(K,R)}static notEquals(K,R){return L.create(K,R)}static regex(K,R){return O.create(K,R)}static in(K,R){return w.create(K,R)}static notIn(K,R){return S.create(K,R)}static not(K){return D.create(K)}static and(...K){return W.create(K,null,!0)}static or(...K){return V.create(K,null,!0)}static{this._parser=new l({regexParsingWithErrorRecovery:!1})}static deserialize(K){return K==null?void 0:this._parser.parse(K)}}e.ContextKeyExpr=a;function r(G,K){const R=G?G.substituteConstants():void 0,J=K?K.substituteConstants():void 0;return!R&&!J?!0:!R||!J?!1:R.equals(J)}function u(G,K){return G.cmp(K)}class C{static{this.INSTANCE=new C}constructor(){this.type=0}cmp(K){return this.type-K.type}equals(K){return K.type===this.type}substituteConstants(){return this}evaluate(K){return!1}serialize(){return"false"}keys(){return[]}negate(){return f.INSTANCE}}e.ContextKeyFalseExpr=C;class f{static{this.INSTANCE=new f}constructor(){this.type=1}cmp(K){return this.type-K.type}equals(K){return K.type===this.type}substituteConstants(){return this}evaluate(K){return!0}serialize(){return"true"}keys(){return[]}negate(){return C.INSTANCE}}e.ContextKeyTrueExpr=f;class h{static create(K,R=null){const J=m.get(K);return typeof J=="boolean"?J?f.INSTANCE:C.INSTANCE:new h(K,R)}constructor(K,R){this.key=K,this.negated=R,this.type=2}cmp(K){return K.type!==this.type?this.type-K.type:H(this.key,K.key)}equals(K){return K.type===this.type?this.key===K.key:!1}substituteConstants(){const K=m.get(this.key);return typeof K=="boolean"?K?f.INSTANCE:C.INSTANCE:this}evaluate(K){return!!K.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=D.create(this.key,this)),this.negated}}e.ContextKeyDefinedExpr=h;class v{static create(K,R,J=null){if(typeof R=="boolean")return R?h.create(K,J):D.create(K,J);const ie=m.get(K);return typeof ie=="boolean"?R===(ie?"true":"false")?f.INSTANCE:C.INSTANCE:new v(K,R,J)}constructor(K,R,J){this.key=K,this.value=R,this.negated=J,this.type=4}cmp(K){return K.type!==this.type?this.type-K.type:z(this.key,this.value,K.key,K.value)}equals(K){return K.type===this.type?this.key===K.key&&this.value===K.value:!1}substituteConstants(){const K=m.get(this.key);if(typeof K=="boolean"){const R=K?"true":"false";return this.value===R?f.INSTANCE:C.INSTANCE}return this}evaluate(K){return K.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=L.create(this.key,this.value,this)),this.negated}}e.ContextKeyEqualsExpr=v;class w{static create(K,R){return new w(K,R)}constructor(K,R){this.key=K,this.valueKey=R,this.type=10,this.negated=null}cmp(K){return K.type!==this.type?this.type-K.type:z(this.key,this.valueKey,K.key,K.valueKey)}equals(K){return K.type===this.type?this.key===K.key&&this.valueKey===K.valueKey:!1}substituteConstants(){return this}evaluate(K){const R=K.getValue(this.valueKey),J=K.getValue(this.key);return Array.isArray(R)?R.includes(J):typeof J=="string"&&typeof R=="object"&&R!==null?_.call(R,J):!1}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=S.create(this.key,this.valueKey)),this.negated}}e.ContextKeyInExpr=w;class S{static create(K,R){return new S(K,R)}constructor(K,R){this.key=K,this.valueKey=R,this.type=11,this._negated=w.create(K,R)}cmp(K){return K.type!==this.type?this.type-K.type:this._negated.cmp(K._negated)}equals(K){return K.type===this.type?this._negated.equals(K._negated):!1}substituteConstants(){return this}evaluate(K){return!this._negated.evaluate(K)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}}e.ContextKeyNotInExpr=S;class L{static create(K,R,J=null){if(typeof R=="boolean")return R?D.create(K,J):h.create(K,J);const ie=m.get(K);return typeof ie=="boolean"?R===(ie?"true":"false")?C.INSTANCE:f.INSTANCE:new L(K,R,J)}constructor(K,R,J){this.key=K,this.value=R,this.negated=J,this.type=5}cmp(K){return K.type!==this.type?this.type-K.type:z(this.key,this.value,K.key,K.value)}equals(K){return K.type===this.type?this.key===K.key&&this.value===K.value:!1}substituteConstants(){const K=m.get(this.key);if(typeof K=="boolean"){const R=K?"true":"false";return this.value===R?C.INSTANCE:f.INSTANCE}return this}evaluate(K){return K.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=v.create(this.key,this.value,this)),this.negated}}e.ContextKeyNotEqualsExpr=L;class D{static create(K,R=null){const J=m.get(K);return typeof J=="boolean"?J?C.INSTANCE:f.INSTANCE:new D(K,R)}constructor(K,R){this.key=K,this.negated=R,this.type=3}cmp(K){return K.type!==this.type?this.type-K.type:H(this.key,K.key)}equals(K){return K.type===this.type?this.key===K.key:!1}substituteConstants(){const K=m.get(this.key);return typeof K=="boolean"?K?C.INSTANCE:f.INSTANCE:this}evaluate(K){return!K.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=h.create(this.key,this)),this.negated}}e.ContextKeyNotExpr=D;function T(G,K){if(typeof G=="string"){const R=parseFloat(G);isNaN(R)||(G=R)}return typeof G=="string"||typeof G=="number"?K(G):C.INSTANCE}class M{static create(K,R,J=null){return T(R,ie=>new M(K,ie,J))}constructor(K,R,J){this.key=K,this.value=R,this.negated=J,this.type=12}cmp(K){return K.type!==this.type?this.type-K.type:z(this.key,this.value,K.key,K.value)}equals(K){return K.type===this.type?this.key===K.key&&this.value===K.value:!1}substituteConstants(){return this}evaluate(K){return typeof this.value=="string"?!1:parseFloat(K.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=N.create(this.key,this.value,this)),this.negated}}e.ContextKeyGreaterExpr=M;class A{static create(K,R,J=null){return T(R,ie=>new A(K,ie,J))}constructor(K,R,J){this.key=K,this.value=R,this.negated=J,this.type=13}cmp(K){return K.type!==this.type?this.type-K.type:z(this.key,this.value,K.key,K.value)}equals(K){return K.type===this.type?this.key===K.key&&this.value===K.value:!1}substituteConstants(){return this}evaluate(K){return typeof this.value=="string"?!1:parseFloat(K.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=P.create(this.key,this.value,this)),this.negated}}e.ContextKeyGreaterEqualsExpr=A;class P{static create(K,R,J=null){return T(R,ie=>new P(K,ie,J))}constructor(K,R,J){this.key=K,this.value=R,this.negated=J,this.type=14}cmp(K){return K.type!==this.type?this.type-K.type:z(this.key,this.value,K.key,K.value)}equals(K){return K.type===this.type?this.key===K.key&&this.value===K.value:!1}substituteConstants(){return this}evaluate(K){return typeof this.value=="string"?!1:parseFloat(K.getValue(this.key))new N(K,ie,J))}constructor(K,R,J){this.key=K,this.value=R,this.negated=J,this.type=15}cmp(K){return K.type!==this.type?this.type-K.type:z(this.key,this.value,K.key,K.value)}equals(K){return K.type===this.type?this.key===K.key&&this.value===K.value:!1}substituteConstants(){return this}evaluate(K){return typeof this.value=="string"?!1:parseFloat(K.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=M.create(this.key,this.value,this)),this.negated}}e.ContextKeySmallerEqualsExpr=N;class O{static create(K,R){return new O(K,R)}constructor(K,R){this.key=K,this.regexp=R,this.type=7,this.negated=null}cmp(K){if(K.type!==this.type)return this.type-K.type;if(this.keyK.key)return 1;const R=this.regexp?this.regexp.source:"",J=K.regexp?K.regexp.source:"";return RJ?1:0}equals(K){if(K.type===this.type){const R=this.regexp?this.regexp.source:"",J=K.regexp?K.regexp.source:"";return this.key===K.key&&R===J}return!1}substituteConstants(){return this}evaluate(K){const R=K.getValue(this.key);return this.regexp?this.regexp.test(R):!1}serialize(){const K=this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:"/invalid/";return`${this.key} =~ ${K}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=F.create(this)),this.negated}}e.ContextKeyRegexExpr=O;class F{static create(K){return new F(K)}constructor(K){this._actual=K,this.type=8}cmp(K){return K.type!==this.type?this.type-K.type:this._actual.cmp(K._actual)}equals(K){return K.type===this.type?this._actual.equals(K._actual):!1}substituteConstants(){return this}evaluate(K){return!this._actual.evaluate(K)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}negate(){return this._actual}}e.ContextKeyNotRegexExpr=F;function x(G){let K=null;for(let R=0,J=G.length;RK.expr.length)return 1;for(let R=0,J=this.expr.length;R1;){const he=ie[ie.length-1];if(he.type!==9)break;ie.pop();const pe=ie.pop(),ae=ie.length===0,ee=V.create(he.expr.map(de=>W.create([de,pe],null,J)),null,ae);ee&&(ie.push(ee),ie.sort(u))}if(ie.length===1)return ie[0];if(J){for(let he=0;heK.serialize()).join(" && ")}keys(){const K=[];for(const R of this.expr)K.push(...R.keys());return K}negate(){if(!this.negated){const K=[];for(const R of this.expr)K.push(R.negate());this.negated=V.create(K,this,!0)}return this.negated}}e.ContextKeyAndExpr=W;class V{static create(K,R,J){return V._normalizeArr(K,R,J)}constructor(K,R){this.expr=K,this.negated=R,this.type=9}cmp(K){if(K.type!==this.type)return this.type-K.type;if(this.expr.lengthK.expr.length)return 1;for(let R=0,J=this.expr.length;RK.serialize()).join(" || ")}keys(){const K=[];for(const R of this.expr)K.push(...R.keys());return K}negate(){if(!this.negated){const K=[];for(const R of this.expr)K.push(R.negate());for(;K.length>1;){const R=K.shift(),J=K.shift(),ie=[];for(const ue of Y(R))for(const he of Y(J))ie.push(W.create([ue,he],null,!1));K.unshift(V.create(ie,null,!1))}this.negated=V.create(K,this,!0)}return this.negated}}e.ContextKeyOrExpr=V;class q extends h{static{this._info=[]}static all(){return q._info.values()}constructor(K,R,J){super(K,null),this._defaultValue=R,typeof J=="object"?q._info.push({...J,key:K}):J!==!0&&q._info.push({key:K,description:J,type:R!=null?typeof R:void 0})}bindTo(K){return K.createKey(this.key,this._defaultValue)}getValue(K){return K.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(K){return v.create(this.key,K)}}e.RawContextKey=q,e.IContextKeyService=(0,E.createDecorator)("contextKeyService");function H(G,K){return GK?1:0}function z(G,K,R,J){return GR?1:KJ?1:0}function U(G,K){if(G.type===0||K.type===1)return!0;if(G.type===9)return K.type===9?j(G.expr,K.expr):!1;if(K.type===9){for(const R of K.expr)if(U(G,R))return!0;return!1}if(G.type===6){if(K.type===6)return j(K.expr,G.expr);for(const R of G.expr)if(U(R,K))return!0;return!1}return G.equals(K)}function j(G,K){let R=0,J=0;for(;R{const i=this.model.read(o)?.state.read(o),s=!!i?.inlineCompletion&&i?.primaryGhostText!==void 0&&!i?.primaryGhostText.isEmpty();this.inlineCompletionVisible.set(s),i?.primaryGhostText&&i?.inlineCompletion&&this.suppressSuggestions.set(i.inlineCompletion.inlineCompletion.source.inlineCompletions.suppressSuggestions)})),this._register((0,d.autorun)(o=>{const t=this.model.read(o);let i=!1,s=!0;const g=t?.primaryGhostText.read(o);if(t?.selectedSuggestItem&&g&&g.parts.length>0){const{column:c,lines:l}=g.parts[0],a=l[0],r=t.textModel.getLineIndentColumn(g.lineNumber);if(c<=r){let C=(0,k.firstNonWhitespaceIndex)(a);C===-1&&(C=a.length-1),i=C>0;const f=t.textModel.getOptions().tabSize;s=I.CursorColumns.visibleColumnFromColumn(a,C+1,f){const[s,g,c]=i;(0,I.assertType)(E.URI.isUri(s)),(0,I.assertType)(y.Position.isIPosition(g)),(0,I.assertType)(typeof c=="string"||!c);const l=t.get(_.ILanguageFeaturesService),a=await t.get(b.ITextModelService).createModelReference(s);try{const r=await o(l.signatureHelpProvider,a.object.textEditorModel,y.Position.lift(g),{triggerKind:m.SignatureHelpTriggerKind.Invoke,isRetrigger:!1,triggerCharacter:c},d.CancellationToken.None);return r?(setTimeout(()=>r.dispose(),0),r.value):void 0}finally{a.dispose()}})}),define(ne[683],se([1,0,14,8,6,2,144,27,270]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ParameterHintsModel=void 0;var b;(function(o){o.Default={type:0};class t{constructor(g,c){this.request=g,this.previouslyActiveHints=c,this.type=2}}o.Pending=t;class i{constructor(g){this.hints=g,this.type=1}}o.Active=i})(b||(b={}));class p extends E.Disposable{static{this.DEFAULT_DELAY=120}constructor(t,i,s=p.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new I.Emitter),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=b.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new E.MutableDisposable),this.triggerChars=new y.CharacterSet,this.retriggerChars=new y.CharacterSet,this.triggerId=0,this.editor=t,this.providers=i,this.throttledDelayer=new d.Delayer(s),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(g=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(g=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(g=>this.onCursorChange(g))),this._register(this.editor.onDidChangeModelContent(g=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(g=>this.onDidType(g))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(t){this._state.type===2&&this._state.request.cancel(),this._state=t}cancel(t=!1){this.state=b.Default,this.throttledDelayer.cancel(),t||this._onChangedHints.fire(void 0)}trigger(t,i){const s=this.editor.getModel();if(!s||!this.providers.has(s))return;const g=++this.triggerId;this._pendingTriggers.push(t),this.throttledDelayer.trigger(()=>this.doTrigger(g),i).catch(k.onUnexpectedError)}next(){if(this.state.type!==1)return;const t=this.state.hints.signatures.length,i=this.state.hints.activeSignature,s=i%t===t-1,g=this.editor.getOption(86).cycle;if((t<2||s)&&!g){this.cancel();return}this.updateActiveSignature(s&&g?0:i+1)}previous(){if(this.state.type!==1)return;const t=this.state.hints.signatures.length,i=this.state.hints.activeSignature,s=i===0,g=this.editor.getOption(86).cycle;if((t<2||s)&&!g){this.cancel();return}this.updateActiveSignature(s&&g?t-1:i-1)}updateActiveSignature(t){this.state.type===1&&(this.state=new b.Active({...this.state.hints,activeSignature:t}),this._onChangedHints.fire(this.state.hints))}async doTrigger(t){const i=this.state.type===1||this.state.type===2,s=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;const g=this._pendingTriggers.reduce(n);this._pendingTriggers=[];const c={triggerKind:g.triggerKind,triggerCharacter:g.triggerCharacter,isRetrigger:i,activeSignatureHelp:s};if(!this.editor.hasModel())return!1;const l=this.editor.getModel(),a=this.editor.getPosition();this.state=new b.Pending((0,d.createCancelablePromise)(r=>(0,_.provideSignatureHelp)(this.providers,l,a,c,r)),s);try{const r=await this.state.request;return t!==this.triggerId?(r?.dispose(),!1):!r||!r.value.signatures||r.value.signatures.length===0?(r?.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1):(this.state=new b.Active(r.value),this._lastSignatureHelpResult.value=r,this._onChangedHints.fire(this.state.hints),!0)}catch(r){return t===this.triggerId&&(this.state=b.Default),(0,k.onUnexpectedError)(r),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return this.state.type===1||this.state.type===2||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();const t=this.editor.getModel();if(t)for(const i of this.providers.ordered(t)){for(const s of i.signatureHelpTriggerCharacters||[])if(s.length){const g=s.charCodeAt(0);this.triggerChars.add(g),this.retriggerChars.add(g)}for(const s of i.signatureHelpRetriggerCharacters||[])s.length&&this.retriggerChars.add(s.charCodeAt(0))}}onDidType(t){if(!this.triggerOnType)return;const i=t.length-1,s=t.charCodeAt(i);(this.triggerChars.has(s)||this.isTriggered&&this.retriggerChars.has(s))&&this.trigger({triggerKind:m.SignatureHelpTriggerKind.TriggerCharacter,triggerCharacter:t.charAt(i)})}onCursorChange(t){t.source==="mouse"?this.cancel():this.isTriggered&&this.trigger({triggerKind:m.SignatureHelpTriggerKind.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:m.SignatureHelpTriggerKind.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(86).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}}e.ParameterHintsModel=p;function n(o,t){switch(t.triggerKind){case m.SignatureHelpTriggerKind.Invoke:return t;case m.SignatureHelpTriggerKind.ContentChange:return o;case m.SignatureHelpTriggerKind.TriggerCharacter:default:return t}}}),define(ne[684],se([1,0,12]),function(oe,e,d){"use strict";var k;Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestAlternatives=void 0;let I=class{static{k=this}static{this.OtherSuggestions=new d.RawContextKey("hasOtherSuggestions",!1)}constructor(y,m){this._editor=y,this._index=0,this._ckOtherSuggestions=k.OtherSuggestions.bindTo(m)}dispose(){this.reset()}reset(){this._ckOtherSuggestions.reset(),this._listener?.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:y,index:m},_){if(y.items.length===0){this.reset();return}if(k._moveIndex(!0,y,m)===m){this.reset();return}this._acceptNext=_,this._model=y,this._index=m,this._listener=this._editor.onDidChangeCursorPosition(()=>{this._ignore||this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(y,m,_){let b=_;for(let p=m.items.length;p>0&&(b=(b+m.items.length+(y?1:-1))%m.items.length,!(b===_||!m.items[b].completion.additionalTextEdits));p--);return b}next(){this._move(!0)}prev(){this._move(!1)}_move(y){if(this._model)try{this._ignore=!0,this._index=k._moveIndex(y,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};e.SuggestAlternatives=I,e.SuggestAlternatives=I=k=ke([ce(1,d.IContextKeyService)],I)}),define(ne[685],se([1,0,12]),function(oe,e,d){"use strict";var k;Object.defineProperty(e,"__esModule",{value:!0}),e.WordContextKey=void 0;let I=class{static{k=this}static{this.AtEnd=new d.RawContextKey("atEndOfWord",!1)}constructor(y,m){this._editor=y,this._enabled=!1,this._ckAtEnd=k.AtEnd.bindTo(m),this._configListener=this._editor.onDidChangeConfiguration(_=>_.hasChanged(124)&&this._update()),this._update()}dispose(){this._configListener.dispose(),this._selectionListener?.dispose(),this._ckAtEnd.reset()}_update(){const y=this._editor.getOption(124)==="on";if(this._enabled!==y)if(this._enabled=y,this._enabled){const m=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}const _=this._editor.getModel(),b=this._editor.getSelection(),p=_.getWordAtPosition(b.getStartPosition());if(!p){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(p.endColumn===b.getStartPosition().column)};this._selectionListener=this._editor.onDidChangeCursorSelection(m),m()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}};e.WordContextKey=I,e.WordContextKey=I=k=ke([ce(1,d.IContextKeyService)],I)}),define(ne[61],se([1,0,12,7]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CONTEXT_ACCESSIBILITY_MODE_ENABLED=e.IAccessibilityService=void 0,e.IAccessibilityService=(0,k.createDecorator)("accessibilityService"),e.CONTEXT_ACCESSIBILITY_MODE_ENABLED=new d.RawContextKey("accessibilityModeEnabled",!1)}),define(ne[686],se([1,0,64,13,6,2,60,16,362,366,546,229,37,165,261,61,5,253]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ComputedEditorOptions=e.EditorConfiguration=void 0;let l=class extends E.Disposable{constructor(w,S,L,D,T){super(),this._accessibilityService=T,this._onDidChange=this._register(new I.Emitter),this.onDidChange=this._onDidChange.event,this._onDidChangeFast=this._register(new I.Emitter),this.onDidChangeFast=this._onDidChangeFast.event,this._isDominatedByLongLines=!1,this._viewLineCount=1,this._lineNumbersDigitCount=1,this._reservedHeight=0,this._glyphMarginDecorationLaneCount=1,this._computeOptionsMemory=new o.ComputeOptionsMemory,this.isSimpleWidget=w,this.contextMenuId=S,this._containerObserver=this._register(new _.ElementSizeObserver(D,L.dimension)),this._targetWindowId=(0,g.getWindow)(D).vscodeWindowId,this._rawOptions=h(L),this._validatedOptions=f.validateOptions(this._rawOptions),this.options=this._computeOptions(),this.options.get(13)&&this._containerObserver.startObserving(),this._register(t.EditorZoom.onDidChangeZoomLevel(()=>this._recomputeOptions())),this._register(n.TabFocus.onDidChangeTabFocus(()=>this._recomputeOptions())),this._register(this._containerObserver.onDidChange(()=>this._recomputeOptions())),this._register(b.FontMeasurements.onDidChange(()=>this._recomputeOptions())),this._register(c.PixelRatio.getInstance((0,g.getWindow)(D)).onDidChange(()=>this._recomputeOptions())),this._register(this._accessibilityService.onDidChangeScreenReaderOptimized(()=>this._recomputeOptions()))}_recomputeOptions(){const w=this._computeOptions(),S=f.checkEquals(this.options,w);S!==null&&(this.options=w,this._onDidChangeFast.fire(S),this._onDidChange.fire(S))}_computeOptions(){const w=this._readEnvConfiguration(),S=i.BareFontInfo.createFromValidatedSettings(this._validatedOptions,w.pixelRatio,this.isSimpleWidget),L=this._readFontInfo(S),D={memory:this._computeOptionsMemory,outerWidth:w.outerWidth,outerHeight:w.outerHeight-this._reservedHeight,fontInfo:L,extraEditorClassName:w.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:w.emptySelectionClipboard,pixelRatio:w.pixelRatio,tabFocusMode:n.TabFocus.getTabFocusMode(),accessibilitySupport:w.accessibilitySupport,glyphMarginDecorationLaneCount:this._glyphMarginDecorationLaneCount};return f.computeOptions(this._validatedOptions,D)}_readEnvConfiguration(){return{extraEditorClassName:r(),outerWidth:this._containerObserver.getWidth(),outerHeight:this._containerObserver.getHeight(),emptySelectionClipboard:d.isWebKit||d.isFirefox,pixelRatio:c.PixelRatio.getInstance((0,g.getWindowById)(this._targetWindowId,!0).window).value,accessibilitySupport:this._accessibilityService.isScreenReaderOptimized()?2:this._accessibilityService.getAccessibilitySupport()}}_readFontInfo(w){return b.FontMeasurements.readFontInfo((0,g.getWindowById)(this._targetWindowId,!0).window,w)}getRawOptions(){return this._rawOptions}updateOptions(w){const S=h(w);f.applyUpdate(this._rawOptions,S)&&(this._validatedOptions=f.validateOptions(this._rawOptions),this._recomputeOptions())}observeContainer(w){this._containerObserver.observe(w)}setIsDominatedByLongLines(w){this._isDominatedByLongLines!==w&&(this._isDominatedByLongLines=w,this._recomputeOptions())}setModelLineCount(w){const S=a(w);this._lineNumbersDigitCount!==S&&(this._lineNumbersDigitCount=S,this._recomputeOptions())}setViewLineCount(w){this._viewLineCount!==w&&(this._viewLineCount=w,this._recomputeOptions())}setReservedHeight(w){this._reservedHeight!==w&&(this._reservedHeight=w,this._recomputeOptions())}setGlyphMarginDecorationLaneCount(w){this._glyphMarginDecorationLaneCount!==w&&(this._glyphMarginDecorationLaneCount=w,this._recomputeOptions())}};e.EditorConfiguration=l,e.EditorConfiguration=l=ke([ce(4,s.IAccessibilityService)],l);function a(v){let w=0;for(;v;)v=Math.floor(v/10),w++;return w||1}function r(){let v="";return!d.isSafari&&!d.isWebkitWebView&&(v+="no-user-select "),d.isSafari&&(v+="no-minimap-shadow ",v+="enable-user-select "),m.isMacintosh&&(v+="mac "),v}class u{constructor(){this._values=[]}_read(w){return this._values[w]}get(w){return this._values[w]}_write(w,S){this._values[w]=S}}class C{constructor(){this._values=[]}_read(w){if(w>=this._values.length)throw new Error("Cannot read uninitialized value");return this._values[w]}get(w){return this._read(w)}_write(w,S){this._values[w]=S}}e.ComputedEditorOptions=C;class f{static validateOptions(w){const S=new u;for(const L of o.editorOptionsRegistry){const D=L.name==="_never_"?void 0:w[L.name];S._write(L.id,L.validate(D))}return S}static computeOptions(w,S){const L=new C;for(const D of o.editorOptionsRegistry)L._write(D.id,D.compute(S,L,w._read(D.id)));return L}static _deepEquals(w,S){if(typeof w!="object"||typeof S!="object"||!w||!S)return w===S;if(Array.isArray(w)||Array.isArray(S))return Array.isArray(w)&&Array.isArray(S)?k.equals(w,S):!1;if(Object.keys(w).length!==Object.keys(S).length)return!1;for(const L in w)if(!f._deepEquals(w[L],S[L]))return!1;return!0}static checkEquals(w,S){const L=[];let D=!1;for(const T of o.editorOptionsRegistry){const M=!f._deepEquals(w._read(T.id),S._read(T.id));L[T.id]=M,M&&(D=!0)}return D?new o.ConfigurationChangedEvent(L):null}static applyUpdate(w,S){let L=!1;for(const D of o.editorOptionsRegistry)if(S.hasOwnProperty(D.name)){const T=D.applyUpdate(w[D.name],S[D.name]);w[D.name]=T.newValue,L=L||T.didChange}return L}}function h(v){const w=y.deepClone(v);return(0,p.migrateOptions)(w),w}}),define(ne[687],se([1,0,6,53,2,60,225,22,3,24,28,12]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextKeyService=e.AbstractContextKeyService=e.Context=void 0,e.setContext=v;const o="data-keybinding-context";class t{constructor(L,D){this._id=L,this._parent=D,this._value=Object.create(null),this._value._contextId=L}get value(){return{...this._value}}setValue(L,D){return this._value[L]!==D?(this._value[L]=D,!0):!1}removeValue(L){return L in this._value?(delete this._value[L],!0):!1}getValue(L){const D=this._value[L];return typeof D>"u"&&this._parent?this._parent.getValue(L):D}}e.Context=t;class i extends t{static{this.INSTANCE=new i}constructor(){super(-1,null)}setValue(L,D){return!1}removeValue(L){return!1}getValue(L){}}class s extends t{static{this._keyPrefix="config."}constructor(L,D,T){super(L,null),this._configurationService=D,this._values=y.TernarySearchTree.forConfigKeys(),this._listener=this._configurationService.onDidChangeConfiguration(M=>{if(M.source===7){const A=Array.from(this._values,([P])=>P);this._values.clear(),T.fire(new l(A))}else{const A=[];for(const P of M.affectedKeys){const N=`config.${P}`,O=this._values.findSuperstr(N);O!==void 0&&(A.push(...k.Iterable.map(O,([F])=>F)),this._values.deleteSuperstr(N)),this._values.has(N)&&(A.push(N),this._values.delete(N))}T.fire(new l(A))}})}dispose(){this._listener.dispose()}getValue(L){if(L.indexOf(s._keyPrefix)!==0)return super.getValue(L);if(this._values.has(L))return this._values.get(L);const D=L.substr(s._keyPrefix.length),T=this._configurationService.getValue(D);let M;switch(typeof T){case"number":case"boolean":case"string":M=T;break;default:Array.isArray(T)?M=JSON.stringify(T):M=T}return this._values.set(L,M),M}setValue(L,D){return super.setValue(L,D)}removeValue(L){return super.removeValue(L)}}class g{constructor(L,D,T){this._service=L,this._key=D,this._defaultValue=T,this.reset()}set(L){this._service.setContext(this._key,L)}reset(){typeof this._defaultValue>"u"?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}get(){return this._service.getContextKeyValue(this._key)}}class c{constructor(L){this.key=L}affectsSome(L){return L.has(this.key)}allKeysContainedIn(L){return this.affectsSome(L)}}class l{constructor(L){this.keys=L}affectsSome(L){for(const D of this.keys)if(L.has(D))return!0;return!1}allKeysContainedIn(L){return this.keys.every(D=>L.has(D))}}class a{constructor(L){this.events=L}affectsSome(L){for(const D of this.events)if(D.affectsSome(L))return!0;return!1}allKeysContainedIn(L){return this.events.every(D=>D.allKeysContainedIn(L))}}function r(S,L){return S.allKeysContainedIn(new Set(Object.keys(L)))}class u extends I.Disposable{constructor(L){super(),this._onDidChangeContext=this._register(new d.PauseableEmitter({merge:D=>new a(D)})),this.onDidChangeContext=this._onDidChangeContext.event,this._isDisposed=!1,this._myContextId=L}createKey(L,D){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new g(this,L,D)}bufferChangeEvents(L){this._onDidChangeContext.pause();try{L()}finally{this._onDidChangeContext.resume()}}createScoped(L){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new f(this,L)}contextMatchesRules(L){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");const D=this.getContextValuesContainer(this._myContextId);return L?L.evaluate(D):!0}getContextKeyValue(L){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(L)}setContext(L,D){if(this._isDisposed)return;const T=this.getContextValuesContainer(this._myContextId);T&&T.setValue(L,D)&&this._onDidChangeContext.fire(new c(L))}removeContext(L){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(L)&&this._onDidChangeContext.fire(new c(L))}getContext(L){return this._isDisposed?i.INSTANCE:this.getContextValuesContainer(h(L))}dispose(){super.dispose(),this._isDisposed=!0}}e.AbstractContextKeyService=u;let C=class extends u{constructor(L){super(0),this._contexts=new Map,this._lastContextId=0;const D=this._register(new s(this._myContextId,L,this._onDidChangeContext));this._contexts.set(this._myContextId,D)}getContextValuesContainer(L){return this._isDisposed?i.INSTANCE:this._contexts.get(L)||i.INSTANCE}createChildContext(L=this._myContextId){if(this._isDisposed)throw new Error("ContextKeyService has been disposed");const D=++this._lastContextId;return this._contexts.set(D,new t(D,this.getContextValuesContainer(L))),D}disposeContext(L){this._isDisposed||this._contexts.delete(L)}};e.ContextKeyService=C,e.ContextKeyService=C=ke([ce(0,p.IConfigurationService)],C);class f extends u{constructor(L,D){if(super(L.createChildContext()),this._parentChangeListener=this._register(new I.MutableDisposable),this._parent=L,this._updateParentChangeListener(),this._domNode=D,this._domNode.hasAttribute(o)){let T="";this._domNode.classList&&(T=Array.from(this._domNode.classList.values()).join(", ")),console.error(`Element already has context attribute${T?": "+T:""}`)}this._domNode.setAttribute(o,String(this._myContextId))}_updateParentChangeListener(){this._parentChangeListener.value=this._parent.onDidChangeContext(L=>{const T=this._parent.getContextValuesContainer(this._myContextId).value;r(L,T)||this._onDidChangeContext.fire(L)})}dispose(){this._isDisposed||(this._parent.disposeContext(this._myContextId),this._domNode.removeAttribute(o),super.dispose())}getContextValuesContainer(L){return this._isDisposed?i.INSTANCE:this._parent.getContextValuesContainer(L)}createChildContext(L=this._myContextId){if(this._isDisposed)throw new Error("ScopedContextKeyService has been disposed");return this._parent.createChildContext(L)}disposeContext(L){this._isDisposed||this._parent.disposeContext(L)}}function h(S){for(;S;){if(S.hasAttribute(o)){const L=S.getAttribute(o);return L?parseInt(L,10):NaN}S=S.parentElement}return 0}function v(S,L,D){S.get(n.IContextKeyService).createKey(String(L),w(D))}function w(S){return(0,E.cloneAndChange)(S,L=>{if(typeof L=="object"&&L.$mid===1)return m.URI.revive(L).toString();if(L instanceof m.URI)return L.toString()})}b.CommandsRegistry.registerCommand("_setContext",v),b.CommandsRegistry.registerCommand({id:"getContextKeyInfo",handler(){return[...n.RawContextKey.all()].sort((S,L)=>S.key.localeCompare(L.key))},metadata:{description:(0,_.localize)(1513,"A command that returns information about context keys"),args:[]}}),b.CommandsRegistry.registerCommand("_generateContextKeyInfo",function(){const S=[],L=new Set;for(const D of n.RawContextKey.all())L.has(D.key)||(L.add(D.key),S.push(D));S.sort((D,T)=>D.key.localeCompare(T.key)),console.log(JSON.stringify(S,void 0,2))})}),define(ne[179],se([1,0,16,3,12]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InputFocusedContext=e.InputFocusedContextKey=e.ProductQualityContext=e.IsDevelopmentContext=e.IsMobileContext=e.IsIOSContext=e.IsMacNativeContext=e.IsWebContext=e.IsWindowsContext=e.IsLinuxContext=e.IsMacContext=void 0,e.IsMacContext=new I.RawContextKey("isMac",d.isMacintosh,(0,k.localize)(1523,"Whether the operating system is macOS")),e.IsLinuxContext=new I.RawContextKey("isLinux",d.isLinux,(0,k.localize)(1524,"Whether the operating system is Linux")),e.IsWindowsContext=new I.RawContextKey("isWindows",d.isWindows,(0,k.localize)(1525,"Whether the operating system is Windows")),e.IsWebContext=new I.RawContextKey("isWeb",d.isWeb,(0,k.localize)(1526,"Whether the platform is a web browser")),e.IsMacNativeContext=new I.RawContextKey("isMacNative",d.isMacintosh&&!d.isWeb,(0,k.localize)(1527,"Whether the operating system is macOS on a non-browser platform")),e.IsIOSContext=new I.RawContextKey("isIOS",d.isIOS,(0,k.localize)(1528,"Whether the operating system is iOS")),e.IsMobileContext=new I.RawContextKey("isMobile",d.isMobile,(0,k.localize)(1529,"Whether the platform is a mobile web browser")),e.IsDevelopmentContext=new I.RawContextKey("isDevelopment",!1,!0),e.ProductQualityContext=new I.RawContextKey("productQualityType","",(0,k.localize)(1530,"Quality type of VS Code")),e.InputFocusedContextKey="inputFocus",e.InputFocusedContext=new I.RawContextKey(e.InputFocusedContextKey,!1,(0,k.localize)(1531,"Whether keyboard focus is inside an input box"))}),define(ne[58],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IContextMenuService=e.IContextViewService=void 0,e.IContextViewService=(0,d.createDecorator)("contextViewService"),e.IContextMenuService=(0,d.createDecorator)("contextMenuService")}),define(ne[180],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IDialogService=void 0,e.IDialogService=(0,d.createDecorator)("dialogService")}),define(ne[271],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IEnvironmentService=void 0,e.IEnvironmentService=(0,d.createDecorator)("environmentService")}),define(ne[118],se([1,0,7,2,28,5]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.nativeHoverDelegate=e.WorkbenchHoverDelegate=e.IHoverService=void 0,e.IHoverService=(0,d.createDecorator)("hoverService");let y=class extends k.Disposable{get delay(){return this.isInstantlyHovering()?0:this._delay}constructor(_,b,p={},n,o){super(),this.placement=_,this.instantHover=b,this.overrideOptions=p,this.configurationService=n,this.hoverService=o,this.lastHoverHideTime=0,this.timeLimit=200,this.hoverDisposables=this._register(new k.DisposableStore),this._delay=this.configurationService.getValue("workbench.hover.delay"),this._register(this.configurationService.onDidChangeConfiguration(t=>{t.affectsConfiguration("workbench.hover.delay")&&(this._delay=this.configurationService.getValue("workbench.hover.delay"))}))}showHover(_,b){const p=typeof this.overrideOptions=="function"?this.overrideOptions(_,b):this.overrideOptions;this.hoverDisposables.clear();const n=(0,E.isHTMLElement)(_.target)?[_.target]:_.target.targetElements;for(const t of n)this.hoverDisposables.add((0,E.addStandardDisposableListener)(t,"keydown",i=>{i.equals(9)&&this.hoverService.hideHover()}));const o=(0,E.isHTMLElement)(_.content)?void 0:_.content.toString();return this.hoverService.showHover({..._,...p,persistence:{hideOnKeyDown:!0,...p.persistence},id:o,appearance:{..._.appearance,compact:!0,skipFadeInAnimation:this.isInstantlyHovering(),...p.appearance}},b)}isInstantlyHovering(){return this.instantHover&&Date.now()-this.lastHoverHideTimea):void 0}dispose(){if(!this._isDisposed){this._isDisposed=!0,(0,I.dispose)(this._children),this._children.clear();for(const s of this._servicesToMaybeDispose)(0,I.isDisposable)(s)&&s.dispose();this._servicesToMaybeDispose.clear()}}_throwIfDisposed(){if(this._isDisposed)throw new Error("InstantiationService has been disposed")}createChild(s,g){this._throwIfDisposed();const c=this,l=new class extends o{dispose(){c._children.delete(l),super.dispose()}}(s,this._strict,this,this._enableTracing);return this._children.add(l),g?.add(l),l}invokeFunction(s,...g){this._throwIfDisposed();const c=t.traceInvocation(this._enableTracing,s);let l=!1;try{return s({get:r=>{if(l)throw(0,k.illegalState)("service accessor is only valid during the invocation of its target method");const u=this._getOrCreateServiceInstance(r,c);if(!u)throw new Error(`[invokeFunction] unknown service '${r}'`);return u}},...g)}finally{l=!0,c.stop()}}createInstance(s,...g){this._throwIfDisposed();let c,l;return s instanceof E.SyncDescriptor?(c=t.traceCreation(this._enableTracing,s.ctor),l=this._createInstance(s.ctor,s.staticArguments.concat(g),c)):(c=t.traceCreation(this._enableTracing,s),l=this._createInstance(s,g,c)),c.stop(),l}_createInstance(s,g=[],c){const l=m._util.getServiceDependencies(s).sort((u,C)=>u.index-C.index),a=[];for(const u of l){const C=this._getOrCreateServiceInstance(u.id,c);C||this._throwIfStrict(`[createInstance] ${s.name} depends on UNKNOWN service ${u.id}.`,!1),a.push(C)}const r=l.length>0?l[0].index:g.length;if(g.length!==r){console.trace(`[createInstance] First service dependency of ${s.name} at position ${r+1} conflicts with ${g.length} static arguments`);const u=r-g.length;u>0?g=g.concat(new Array(u)):g=g.slice(0,r)}return Reflect.construct(s,g.concat(a))}_setCreatedServiceInstance(s,g){if(this._services.get(s)instanceof E.SyncDescriptor)this._services.set(s,g);else if(this._parent)this._parent._setCreatedServiceInstance(s,g);else throw new Error("illegalState - setting UNKNOWN service instance")}_getServiceInstanceOrDescriptor(s){const g=this._services.get(s);return!g&&this._parent?this._parent._getServiceInstanceOrDescriptor(s):g}_getOrCreateServiceInstance(s,g){this._globalGraph&&this._globalGraphImplicitDependency&&this._globalGraph.insertEdge(this._globalGraphImplicitDependency,String(s));const c=this._getServiceInstanceOrDescriptor(s);return c instanceof E.SyncDescriptor?this._safeCreateAndCacheServiceInstance(s,c,g.branch(s,!0)):(g.branch(s,!1),c)}_safeCreateAndCacheServiceInstance(s,g,c){if(this._activeInstantiations.has(s))throw new Error(`illegal state - RECURSIVELY instantiating service '${s}'`);this._activeInstantiations.add(s);try{return this._createAndCacheServiceInstance(s,g,c)}finally{this._activeInstantiations.delete(s)}}_createAndCacheServiceInstance(s,g,c){const l=new y.Graph(C=>C.id.toString());let a=0;const r=[{id:s,desc:g,_trace:c}],u=new Set;for(;r.length;){const C=r.pop();if(!u.has(String(C.id))){if(u.add(String(C.id)),l.lookupOrInsertNode(C),a++>1e3)throw new n(l);for(const f of m._util.getServiceDependencies(C.desc.ctor)){const h=this._getServiceInstanceOrDescriptor(f.id);if(h||this._throwIfStrict(`[createInstance] ${s} depends on ${f.id} which is NOT registered.`,!0),this._globalGraph?.insertEdge(String(C.id),String(f.id)),h instanceof E.SyncDescriptor){const v={id:f.id,desc:h,_trace:C._trace.branch(f.id,!0)};l.insertEdge(C,v),r.push(v)}}}}for(;;){const C=l.roots();if(C.length===0){if(!l.isEmpty())throw new n(l);break}for(const{data:f}of C){if(this._getServiceInstanceOrDescriptor(f.id)instanceof E.SyncDescriptor){const v=this._createServiceInstanceWithOwner(f.id,f.desc.ctor,f.desc.staticArguments,f.desc.supportsDelayedInstantiation,f._trace);this._setCreatedServiceInstance(f.id,v)}l.removeNode(f)}}return this._getServiceInstanceOrDescriptor(s)}_createServiceInstanceWithOwner(s,g,c=[],l,a){if(this._services.get(s)instanceof E.SyncDescriptor)return this._createServiceInstance(s,g,c,l,a,this._servicesToMaybeDispose);if(this._parent)return this._parent._createServiceInstanceWithOwner(s,g,c,l,a);throw new Error(`illegalState - creating UNKNOWN service instance ${g.name}`)}_createServiceInstance(s,g,c=[],l,a,r){if(l){const u=new o(void 0,this._strict,this,this._enableTracing);u._globalGraphImplicitDependency=String(s);const C=new Map,f=new d.GlobalIdleValue(()=>{const h=u._createInstance(g,c,a);for(const[v,w]of C){const S=h[v];if(typeof S=="function")for(const L of w)L.disposable=S.apply(h,L.listener)}return C.clear(),r.add(h),h});return new Proxy(Object.create(null),{get(h,v){if(!f.isInitialized&&typeof v=="string"&&(v.startsWith("onDid")||v.startsWith("onWill"))){let L=C.get(v);return L||(L=new b.LinkedList,C.set(v,L)),(T,M,A)=>{if(f.isInitialized)return f.value[v](T,M,A);{const P={listener:[T,M,A],disposable:void 0},N=L.push(P);return(0,I.toDisposable)(()=>{N(),P.disposable?.dispose()})}}}if(v in h)return h[v];const w=f.value;let S=w[v];return typeof S!="function"||(S=S.bind(w),h[v]=S),S},set(h,v,w){return f.value[v]=w,!0},getPrototypeOf(h){return g.prototype}})}else{const u=this._createInstance(g,c,a);return r.add(u),u}}_throwIfStrict(s,g){if(g&&console.warn(s),this._strict)throw new Error(s)}}e.InstantiationService=o;class t{static{this.all=new Set}static{this._None=new class extends t{constructor(){super(0,null)}stop(){}branch(){return this}}}static traceInvocation(s,g){return s?new t(2,g.name||new Error().stack.split(` +`).slice(3,4).join(` +`)):t._None}static traceCreation(s,g){return s?new t(1,g.name):t._None}static{this._totals=0}constructor(s,g){this.type=s,this.name=g,this._start=Date.now(),this._dep=[]}branch(s,g){const c=new t(3,s.toString());return this._dep.push([s,g,c]),c}stop(){const s=Date.now()-this._start;t._totals+=s;let g=!1;function c(a,r){const u=[],C=new Array(a+1).join(" ");for(const[f,h,v]of r._dep)if(h&&v){g=!0,u.push(`${C}CREATES -> ${f}`);const w=c(a+1,v);w&&u.push(w)}else u.push(`${C}uses -> ${f}`);return u.join(` +`)}const l=[`${this.type===1?"CREATE":"CALL"} ${this.name}`,`${c(1,this)}`,`DONE, took ${s.toFixed(2)}ms (grand total ${t._totals.toFixed(2)}ms)`];(s>2||g)&&t.all.add(l.join(` +`))}}e.Trace=t}),define(ne[689],se([1,0,8,247,140]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BaseResolvedKeybinding=void 0;class E extends I.ResolvedKeybinding{constructor(m,_){if(super(),_.length===0)throw(0,d.illegalArgument)("chords");this._os=m,this._chords=_}getLabel(){return k.UILabelProvider.toLabel(this._os,this._chords,m=>this._getLabel(m))}getAriaLabel(){return k.AriaLabelProvider.toLabel(this._os,this._chords,m=>this._getAriaLabel(m))}getElectronAccelerator(){return this._chords.length>1||this._chords[0].isDuplicateModifierCase()?null:k.ElectronAcceleratorLabelProvider.toLabel(this._os,this._chords,m=>this._getElectronAccelerator(m))}getUserSettingsLabel(){return k.UserSettingsLabelProvider.toLabel(this._os,this._chords,m=>this._getUserSettingsLabel(m))}hasMultipleChords(){return this._chords.length>1}getChords(){return this._chords.map(m=>this._getChord(m))}_getChord(m){return new I.ResolvedChord(m.ctrlKey,m.shiftKey,m.altKey,m.metaKey,this._getLabel(m),this._getAriaLabel(m))}getDispatchChords(){return this._chords.map(m=>this._getChordDispatch(m))}getSingleModifierDispatchChords(){return this._chords.map(m=>this._getSingleModifierChordDispatch(m))}}e.BaseResolvedKeybinding=E}),define(ne[31],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IKeybindingService=void 0,e.IKeybindingService=(0,d.createDecorator)("keybindingService")}),define(ne[391],se([1,0,5,174,2,31]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorHoverStatusBar=void 0;const y=d.$;let m=class extends I.Disposable{get hasContent(){return this._hasContent}constructor(b){super(),this._keybindingService=b,this.actions=[],this._hasContent=!1,this.hoverElement=y("div.hover-row.status-bar"),this.hoverElement.tabIndex=0,this.actionsElement=d.append(this.hoverElement,y("div.actions"))}addAction(b){const p=this._keybindingService.lookupKeybinding(b.commandId),n=p?p.getLabel():null;this._hasContent=!0;const o=this._register(k.HoverAction.render(this.actionsElement,b,n));return this.actions.push(o),o}append(b){const p=d.append(this.actionsElement,b);return this._hasContent=!0,p}};e.EditorHoverStatusBar=m,e.EditorHoverStatusBar=m=ke([ce(0,E.IKeybindingService)],m)}),define(ne[690],se([1,0,5,31,670,12,28,61,20,174,6]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.ContentHoverWidget=void 0;const o=30,t=6;let i=class extends I.ResizableContentWidget{static{n=this}static{this.ID="editor.contrib.resizableContentHoverWidget"}static{this._lastDimensions=new d.Dimension(0,0)}get isVisibleFromKeyboard(){return this._renderedHover?.source===1}get isVisible(){return this._hoverVisibleKey.get()??!1}get isFocused(){return this._hoverFocusedKey.get()??!1}constructor(c,l,a,r,u){const C=c.getOption(67)+8,f=150,h=new d.Dimension(f,C);super(c,h),this._configurationService=a,this._accessibilityService=r,this._keybindingService=u,this._hover=this._register(new b.HoverWidget),this._onDidResize=this._register(new p.Emitter),this.onDidResize=this._onDidResize.event,this._minimumSize=h,this._hoverVisibleKey=_.EditorContextKeys.hoverVisible.bindTo(l),this._hoverFocusedKey=_.EditorContextKeys.hoverFocused.bindTo(l),d.append(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._register(this._editor.onDidLayoutChange(()=>{this.isVisible&&this._updateMaxDimensions()})),this._register(this._editor.onDidChangeConfiguration(w=>{w.hasChanged(50)&&this._updateFont()}));const v=this._register(d.trackFocus(this._resizableNode.domNode));this._register(v.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(v.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._setRenderedHover(void 0),this._editor.addContentWidget(this)}dispose(){super.dispose(),this._renderedHover?.dispose(),this._editor.removeContentWidget(this)}getId(){return n.ID}static _applyDimensions(c,l,a){const r=typeof l=="number"?`${l}px`:l,u=typeof a=="number"?`${a}px`:a;c.style.width=r,c.style.height=u}_setContentsDomNodeDimensions(c,l){const a=this._hover.contentsDomNode;return n._applyDimensions(a,c,l)}_setContainerDomNodeDimensions(c,l){const a=this._hover.containerDomNode;return n._applyDimensions(a,c,l)}_setHoverWidgetDimensions(c,l){this._setContentsDomNodeDimensions(c,l),this._setContainerDomNodeDimensions(c,l),this._layoutContentWidget()}static _applyMaxDimensions(c,l,a){const r=typeof l=="number"?`${l}px`:l,u=typeof a=="number"?`${a}px`:a;c.style.maxWidth=r,c.style.maxHeight=u}_setHoverWidgetMaxDimensions(c,l){n._applyMaxDimensions(this._hover.contentsDomNode,c,l),n._applyMaxDimensions(this._hover.containerDomNode,c,l),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof c=="number"?`${c}px`:c),this._layoutContentWidget()}_setAdjustedHoverWidgetDimensions(c){this._setHoverWidgetMaxDimensions("none","none");const l=c.width,a=c.height;this._setHoverWidgetDimensions(l,a)}_updateResizableNodeMaxDimensions(){const c=this._findMaximumRenderingWidth()??1/0,l=this._findMaximumRenderingHeight()??1/0;this._resizableNode.maxSize=new d.Dimension(c,l),this._setHoverWidgetMaxDimensions(c,l)}_resize(c){n._lastDimensions=new d.Dimension(c.width,c.height),this._setAdjustedHoverWidgetDimensions(c),this._resizableNode.layout(c.height,c.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),this._onDidResize.fire()}_findAvailableSpaceVertically(){const c=this._renderedHover?.showAtPosition;if(c)return this._positionPreference===1?this._availableVerticalSpaceAbove(c):this._availableVerticalSpaceBelow(c)}_findMaximumRenderingHeight(){const c=this._findAvailableSpaceVertically();if(!c)return;let l=t;return Array.from(this._hover.contentsDomNode.children).forEach(a=>{l+=a.clientHeight}),Math.min(c,l)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");const c=Array.from(this._hover.contentsDomNode.children).some(l=>l.scrollWidth>l.clientWidth);return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),c}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;const c=this._isHoverTextOverflowing(),l=typeof this._contentWidth>"u"?0:this._contentWidth-2;return c||this._hover.containerDomNode.clientWidththis._renderedHover.closestMouseDistance+4?!1:(this._renderedHover.closestMouseDistance=Math.min(this._renderedHover.closestMouseDistance,r),!0)}_setRenderedHover(c){this._renderedHover?.dispose(),this._renderedHover=c,this._hoverVisibleKey.set(!!c),this._hover.containerDomNode.classList.toggle("hidden",!c)}_updateFont(){const{fontSize:c,lineHeight:l}=this._editor.getOption(50),a=this._hover.contentsDomNode;a.style.fontSize=`${c}px`,a.style.lineHeight=`${l/c}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(u=>this._editor.applyFontInfo(u))}_updateContent(c){const l=this._hover.contentsDomNode;l.style.paddingBottom="",l.textContent="",l.appendChild(c)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){const c=Math.max(this._editor.getLayoutInfo().height/4,250,n._lastDimensions.height),l=Math.max(this._editor.getLayoutInfo().width*.66,500,n._lastDimensions.width);this._setHoverWidgetMaxDimensions(l,c)}_render(c){this._setRenderedHover(c),this._updateFont(),this._updateContent(c.domNode),this._updateMaxDimensions(),this.onContentsChanged(),this._editor.render()}getPosition(){return this._renderedHover?{position:this._renderedHover.showAtPosition,secondaryPosition:this._renderedHover.showAtSecondaryPosition,positionAffinity:this._renderedHover.shouldAppearBeforeContent?3:void 0,preference:[this._positionPreference??1]}:null}show(c){if(!this._editor||!this._editor.hasModel())return;this._render(c);const l=d.getTotalHeight(this._hover.containerDomNode),a=c.showAtPosition;this._positionPreference=this._findPositionPreference(l,a)??1,this.onContentsChanged(),c.shouldFocus&&this._hover.containerDomNode.focus(),this._onDidResize.fire();const u=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&(0,b.getHoverAccessibleViewHint)(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),this._keybindingService.lookupKeybinding("editor.action.accessibleView")?.getAriaLabel()??"");u&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+u)}hide(){if(!this._renderedHover)return;const c=this._renderedHover.shouldFocus||this._hoverFocusedKey.get();this._setRenderedHover(void 0),this._resizableNode.maxSize=new d.Dimension(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),c&&this._editor.focus()}_removeConstraintsRenderNormally(){const c=this._editor.getLayoutInfo();this._resizableNode.layout(c.height,c.width),this._setHoverWidgetDimensions("auto","auto")}setMinimumDimensions(c){this._minimumSize=new d.Dimension(Math.max(this._minimumSize.width,c.width),Math.max(this._minimumSize.height,c.height)),this._updateMinimumWidth()}_updateMinimumWidth(){const c=typeof this._contentWidth>"u"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new d.Dimension(c,this._minimumSize.height)}onContentsChanged(){this._removeConstraintsRenderNormally();const c=this._hover.containerDomNode;let l=d.getTotalHeight(c),a=d.getTotalWidth(c);if(this._resizableNode.layout(l,a),this._setHoverWidgetDimensions(a,l),l=d.getTotalHeight(c),a=d.getTotalWidth(c),this._contentWidth=a,this._updateMinimumWidth(),this._resizableNode.layout(l,a),this._renderedHover?.showAtPosition){const r=d.getTotalHeight(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(r,this._renderedHover.showAtPosition)}this._layoutContentWidget()}focus(){this._hover.containerDomNode.focus()}scrollUp(){const c=this._hover.scrollbar.getScrollPosition().scrollTop,l=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:c-l.lineHeight})}scrollDown(){const c=this._hover.scrollbar.getScrollPosition().scrollTop,l=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:c+l.lineHeight})}scrollLeft(){const c=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:c-o})}scrollRight(){const c=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:c+o})}pageUp(){const c=this._hover.scrollbar.getScrollPosition().scrollTop,l=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:c-l})}pageDown(){const c=this._hover.scrollbar.getScrollPosition().scrollTop,l=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:c+l})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};e.ContentHoverWidget=i,e.ContentHoverWidget=i=n=ke([ce(1,E.IContextKeyService),ce(2,y.IConfigurationService),ce(3,m.IAccessibilityService),ce(4,k.IKeybindingService)],i);function s(g,c,l,a,r,u){const C=l+r/2,f=a+u/2,h=Math.max(Math.abs(g-C)-r/2,0),v=Math.max(Math.abs(c-f)-u/2,0);return Math.sqrt(h*h+v*v)}}),define(ne[392],se([1,0,12]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.KeybindingResolver=e.NoMatchingKb=void 0,e.NoMatchingKb={kind:0};const k={kind:1};function I(_,b,p){return{kind:2,commandId:_,commandArgs:b,isBubble:p}}class E{constructor(b,p,n){this._log=n,this._defaultKeybindings=b,this._defaultBoundCommands=new Map;for(const o of b){const t=o.command;t&&t.charAt(0)!=="-"&&this._defaultBoundCommands.set(t,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=E.handleRemovals([].concat(b).concat(p));for(let o=0,t=this._keybindings.length;o"u"){this._map.set(b,[p]),this._addToLookupMap(p);return}for(let o=n.length-1;o>=0;o--){const t=n[o];if(t.command===p.command)continue;let i=!0;for(let s=1;s"u"?(p=[b],this._lookupMap.set(b.command,p)):p.push(b)}_removeFromLookupMap(b){if(!b.command)return;const p=this._lookupMap.get(b.command);if(!(typeof p>"u")){for(let n=0,o=p.length;n"u"||n.length===0)return null;if(n.length===1)return n[0];for(let o=n.length-1;o>=0;o--){const t=n[o];if(p.contextMatchesRules(t.when))return t}return n[n.length-1]}resolve(b,p,n){const o=[...p,n];this._log(`| Resolving ${o}`);const t=this._map.get(o[0]);if(t===void 0)return this._log("\\ No keybinding entries."),e.NoMatchingKb;let i=null;if(o.length<2)i=t;else{i=[];for(let g=0,c=t.length;gl.chords.length)continue;let a=!0;for(let r=1;r=0;n--){const o=p[n];if(E._contextMatchesRules(b,o.when))return o}return null}static _contextMatchesRules(b,p){return p?p.evaluate(b):!0}}e.KeybindingResolver=E;function y(_){return _?`${_.serialize()}`:"no when condition"}function m(_){return _.extensionId?_.isBuiltinExtension?`built-in extension ${_.extensionId}`:`user extension ${_.extensionId}`:_.isDefault?"built-in":"user"}}),define(ne[691],se([1,0,14,8,6,300,2,3,392]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractKeybindingService=void 0;const b=/^(cursor|delete|undo|redo|tab|editor\.action\.clipboard)/;class p extends y.Disposable{get onDidUpdateKeybindings(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:I.Event.None}get inChordMode(){return this._currentChords.length>0}constructor(t,i,s,g,c){super(),this._contextKeyService=t,this._commandService=i,this._telemetryService=s,this._notificationService=g,this._logService=c,this._onDidUpdateKeybindings=this._register(new I.Emitter),this._currentChords=[],this._currentChordChecker=new d.IntervalTimer,this._currentChordStatusMessage=null,this._ignoreSingleModifiers=n.EMPTY,this._currentSingleModifier=null,this._currentSingleModifierClearTimeout=new d.TimeoutTimer,this._currentlyDispatchingCommandId=null,this._logging=!1}dispose(){super.dispose()}_log(t){this._logging&&this._logService.info(`[KeybindingService]: ${t}`)}getKeybindings(){return this._getResolver().getKeybindings()}lookupKeybinding(t,i){const s=this._getResolver().lookupPrimaryKeybinding(t,i||this._contextKeyService);if(s)return s.resolvedKeybinding}dispatchEvent(t,i){return this._dispatch(t,i)}softDispatch(t,i){this._log("/ Soft dispatching keyboard event");const s=this.resolveKeyboardEvent(t);if(s.hasMultipleChords())return console.warn("keyboard event should not be mapped to multiple chords"),_.NoMatchingKb;const[g]=s.getDispatchChords();if(g===null)return this._log("\\ Keyboard event cannot be dispatched"),_.NoMatchingKb;const c=this._contextKeyService.getContext(i),l=this._currentChords.map(({keypress:a})=>a);return this._getResolver().resolve(c,l,g)}_scheduleLeaveChordMode(){const t=Date.now();this._currentChordChecker.cancelAndSet(()=>{if(!this._documentHasFocus()){this._leaveChordMode();return}Date.now()-t>5e3&&this._leaveChordMode()},500)}_expectAnotherChord(t,i){switch(this._currentChords.push({keypress:t,label:i}),this._currentChords.length){case 0:throw(0,k.illegalState)("impossible");case 1:this._currentChordStatusMessage=this._notificationService.status(m.localize(1538,"({0}) was pressed. Waiting for second key of chord...",i));break;default:{const s=this._currentChords.map(({label:g})=>g).join(", ");this._currentChordStatusMessage=this._notificationService.status(m.localize(1539,"({0}) was pressed. Waiting for next key of chord...",s))}}this._scheduleLeaveChordMode(),E.IME.enabled&&E.IME.disable()}_leaveChordMode(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChords=[],E.IME.enable()}_dispatch(t,i){return this._doDispatch(this.resolveKeyboardEvent(t),i,!1)}_singleModifierDispatch(t,i){const s=this.resolveKeyboardEvent(t),[g]=s.getSingleModifierDispatchChords();if(g)return this._ignoreSingleModifiers.has(g)?(this._log(`+ Ignoring single modifier ${g} due to it being pressed together with other keys.`),this._ignoreSingleModifiers=n.EMPTY,this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1):(this._ignoreSingleModifiers=n.EMPTY,this._currentSingleModifier===null?(this._log(`+ Storing single modifier for possible chord ${g}.`),this._currentSingleModifier=g,this._currentSingleModifierClearTimeout.cancelAndSet(()=>{this._log("+ Clearing single modifier due to 300ms elapsed."),this._currentSingleModifier=null},300),!1):g===this._currentSingleModifier?(this._log(`/ Dispatching single modifier chord ${g} ${g}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,this._doDispatch(s,i,!0)):(this._log(`+ Clearing single modifier due to modifier mismatch: ${this._currentSingleModifier} ${g}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1));const[c]=s.getChords();return this._ignoreSingleModifiers=new n(c),this._currentSingleModifier!==null&&this._log("+ Clearing single modifier due to other key up."),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1}_doDispatch(t,i,s=!1){let g=!1;if(t.hasMultipleChords())return console.warn("Unexpected keyboard event mapped to multiple chords"),!1;let c=null,l=null;if(s){const[C]=t.getSingleModifierDispatchChords();c=C,l=C?[C]:[]}else[c]=t.getDispatchChords(),l=this._currentChords.map(({keypress:C})=>C);if(c===null)return this._log("\\ Keyboard event cannot be dispatched in keydown phase."),g;const a=this._contextKeyService.getContext(i),r=t.getLabel(),u=this._getResolver().resolve(a,l,c);switch(u.kind){case 0:{if(this._logService.trace("KeybindingService#dispatch",r,"[ No matching keybinding ]"),this.inChordMode){const C=this._currentChords.map(({label:f})=>f).join(", ");this._log(`+ Leaving multi-chord mode: Nothing bound to "${C}, ${r}".`),this._notificationService.status(m.localize(1540,"The key combination ({0}, {1}) is not a command.",C,r),{hideAfter:10*1e3}),this._leaveChordMode(),g=!0}return g}case 1:return this._logService.trace("KeybindingService#dispatch",r,"[ Several keybindings match - more chords needed ]"),g=!0,this._expectAnotherChord(c,r),this._log(this._currentChords.length===1?"+ Entering multi-chord mode...":"+ Continuing multi-chord mode..."),g;case 2:{if(this._logService.trace("KeybindingService#dispatch",r,`[ Will dispatch command ${u.commandId} ]`),u.commandId===null||u.commandId===""){if(this.inChordMode){const C=this._currentChords.map(({label:f})=>f).join(", ");this._log(`+ Leaving chord mode: Nothing bound to "${C}, ${r}".`),this._notificationService.status(m.localize(1541,"The key combination ({0}, {1}) is not a command.",C,r),{hideAfter:10*1e3}),this._leaveChordMode(),g=!0}}else{this.inChordMode&&this._leaveChordMode(),u.isBubble||(g=!0),this._log(`+ Invoking command ${u.commandId}.`),this._currentlyDispatchingCommandId=u.commandId;try{typeof u.commandArgs>"u"?this._commandService.executeCommand(u.commandId).then(void 0,C=>this._notificationService.warn(C)):this._commandService.executeCommand(u.commandId,u.commandArgs).then(void 0,C=>this._notificationService.warn(C))}finally{this._currentlyDispatchingCommandId=null}b.test(u.commandId)||this._telemetryService.publicLog2("workbenchActionExecuted",{id:u.commandId,from:"keybinding",detail:t.getUserSettingsLabel()??void 0})}return g}}}mightProducePrintableCharacter(t){return t.ctrlKey||t.metaKey?!1:t.keyCode>=31&&t.keyCode<=56||t.keyCode>=21&&t.keyCode<=30}}e.AbstractKeybindingService=p;class n{static{this.EMPTY=new n(null)}constructor(t){this._ctrlKey=t?t.ctrlKey:!1,this._shiftKey=t?t.shiftKey:!1,this._altKey=t?t.altKey:!1,this._metaKey=t?t.metaKey:!1}has(t){switch(t){case"ctrl":return this._ctrlKey;case"shift":return this._shiftKey;case"alt":return this._altKey;case"meta":return this._metaKey}}}}),define(ne[393],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResolvedKeybindingItem=void 0,e.toEmptyArrayIfContainsNull=k;class d{constructor(E,y,m,_,b,p,n){this._resolvedKeybindingItemBrand=void 0,this.resolvedKeybinding=E,this.chords=E?k(E.getDispatchChords()):[],E&&this.chords.length===0&&(this.chords=k(E.getSingleModifierDispatchChords())),this.bubble=y?y.charCodeAt(0)===94:!1,this.command=this.bubble?y.substr(1):y,this.commandArgs=m,this.when=_,this.isDefault=b,this.extensionId=p,this.isBuiltinExtension=n}}e.ResolvedKeybindingItem=d;function k(I){const E=[];for(let y=0,m=I.length;ythis._toKeyCodeChord(n)));return p.length>0?[new y(p,b)]:[]}}e.USLayoutResolvedKeybinding=y}),define(ne[181],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ILabelService=void 0,e.ILabelService=(0,d.createDecorator)("labelService")}),define(ne[119],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ILayoutService=void 0,e.ILayoutService=(0,d.createDecorator)("layoutService")}),define(ne[394],se([1,0,5,52,13,6,34,49,119]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorScopedLayoutService=void 0;let b=class{get mainContainer(){return(0,I.firstOrDefault)(this._codeEditorService.listCodeEditors())?.getContainerDomNode()??k.mainWindow.document.body}get activeContainer(){return(this._codeEditorService.getFocusedCodeEditor()??this._codeEditorService.getActiveCodeEditor())?.getContainerDomNode()??this.mainContainer}get mainContainerDimension(){return d.getClientArea(this.mainContainer)}get activeContainerDimension(){return d.getClientArea(this.activeContainer)}get containers(){return(0,I.coalesce)(this._codeEditorService.listCodeEditors().map(o=>o.getContainerDomNode()))}getContainer(){return this.activeContainer}whenContainerStylesLoaded(){}focus(){this._codeEditorService.getFocusedCodeEditor()?.focus()}constructor(o){this._codeEditorService=o,this.onDidLayoutMainContainer=E.Event.None,this.onDidLayoutActiveContainer=E.Event.None,this.onDidLayoutContainer=E.Event.None,this.onDidChangeActiveContainer=E.Event.None,this.onDidAddContainer=E.Event.None,this.mainContainerOffset={top:0,quickPickTop:0},this.activeContainerOffset={top:0,quickPickTop:0}}};b=ke([ce(0,y.ICodeEditorService)],b);let p=class extends b{get mainContainer(){return this._container}constructor(o,t){super(t),this._container=o}};e.EditorScopedLayoutService=p,e.EditorScopedLayoutService=p=ke([ce(1,y.ICodeEditorService)],p),(0,m.registerSingleton)(_.ILayoutService,b,1)}),define(ne[693],se([1,0,5,52,6,2,61,28,12,119]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibilityService=void 0;let p=class extends E.Disposable{constructor(o,t,i){super(),this._contextKeyService=o,this._layoutService=t,this._configurationService=i,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new I.Emitter,this._onDidChangeReducedMotion=new I.Emitter,this._onDidChangeLinkUnderline=new I.Emitter,this._accessibilityModeEnabledContext=y.CONTEXT_ACCESSIBILITY_MODE_ENABLED.bindTo(this._contextKeyService);const s=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration(c=>{c.affectsConfiguration("editor.accessibilitySupport")&&(s(),this._onDidChangeScreenReaderOptimized.fire()),c.affectsConfiguration("workbench.reduceMotion")&&(this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._onDidChangeReducedMotion.fire())})),s(),this._register(this.onDidChangeScreenReaderOptimized(()=>s()));const g=k.mainWindow.matchMedia("(prefers-reduced-motion: reduce)");this._systemMotionReduced=g.matches,this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._linkUnderlinesEnabled=this._configurationService.getValue("accessibility.underlineLinks"),this.initReducedMotionListeners(g),this.initLinkUnderlineListeners()}initReducedMotionListeners(o){this._register((0,d.addDisposableListener)(o,"change",()=>{this._systemMotionReduced=o.matches,this._configMotionReduced==="auto"&&this._onDidChangeReducedMotion.fire()}));const t=()=>{const i=this.isMotionReduced();this._layoutService.mainContainer.classList.toggle("reduce-motion",i),this._layoutService.mainContainer.classList.toggle("enable-motion",!i)};t(),this._register(this.onDidChangeReducedMotion(()=>t()))}initLinkUnderlineListeners(){this._register(this._configurationService.onDidChangeConfiguration(t=>{if(t.affectsConfiguration("accessibility.underlineLinks")){const i=this._configurationService.getValue("accessibility.underlineLinks");this._linkUnderlinesEnabled=i,this._onDidChangeLinkUnderline.fire()}}));const o=()=>{const t=this._linkUnderlinesEnabled;this._layoutService.mainContainer.classList.toggle("underline-links",t)};o(),this._register(this.onDidChangeLinkUnderlines(()=>o()))}onDidChangeLinkUnderlines(o){return this._onDidChangeLinkUnderline.event(o)}get onDidChangeScreenReaderOptimized(){return this._onDidChangeScreenReaderOptimized.event}isScreenReaderOptimized(){const o=this._configurationService.getValue("editor.accessibilitySupport");return o==="on"||o==="auto"&&this._accessibilitySupport===2}get onDidChangeReducedMotion(){return this._onDidChangeReducedMotion.event}isMotionReduced(){const o=this._configMotionReduced;return o==="on"||o==="auto"&&this._systemMotionReduced}getAccessibilitySupport(){return this._accessibilitySupport}};e.AccessibilityService=p,e.AccessibilityService=p=ke([ce(0,_.IContextKeyService),ce(1,b.ILayoutService),ce(2,m.IConfigurationService)],p)}),define(ne[395],se([1,0,353,2,119,5]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextViewService=e.ContextViewHandler=void 0;let y=class extends k.Disposable{constructor(b){super(),this.layoutService=b,this.contextView=this._register(new d.ContextView(this.layoutService.mainContainer,1)),this.layout(),this._register(b.onDidLayoutContainer(()=>this.layout()))}showContextView(b,p,n){let o;p?p===this.layoutService.getContainer((0,E.getWindow)(p))?o=1:n?o=3:o=2:o=1,this.contextView.setContainer(p??this.layoutService.activeContainer,o),this.contextView.show(b);const t={close:()=>{this.openContextView===t&&this.hideContextView()}};return this.openContextView=t,t}layout(){this.contextView.layout()}hideContextView(b){this.contextView.hide(b),this.openContextView=void 0}};e.ContextViewHandler=y,e.ContextViewHandler=y=ke([ce(0,I.ILayoutService)],y);class m extends y{getContextViewElement(){return this.contextView.getViewElement()}}e.ContextViewService=m}),define(ne[62],se([1,0,6,2,12,7]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CONTEXT_LOG_LEVEL=e.MultiplexLogger=e.ConsoleLogger=e.AbstractLogger=e.DEFAULT_LOG_LEVEL=e.LogLevel=e.ILogService=void 0,e.LogLevelToString=p,e.ILogService=(0,E.createDecorator)("logService");var y;(function(n){n[n.Off=0]="Off",n[n.Trace=1]="Trace",n[n.Debug=2]="Debug",n[n.Info=3]="Info",n[n.Warning=4]="Warning",n[n.Error=5]="Error"})(y||(e.LogLevel=y={})),e.DEFAULT_LOG_LEVEL=y.Info;class m extends k.Disposable{constructor(){super(...arguments),this.level=e.DEFAULT_LOG_LEVEL,this._onDidChangeLogLevel=this._register(new d.Emitter),this.onDidChangeLogLevel=this._onDidChangeLogLevel.event}setLevel(o){this.level!==o&&(this.level=o,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(o){return this.level!==y.Off&&this.level<=o}}e.AbstractLogger=m;class _ extends m{constructor(o=e.DEFAULT_LOG_LEVEL,t=!0){super(),this.useColors=t,this.setLevel(o)}trace(o,...t){this.checkLogLevel(y.Trace)&&(this.useColors?console.log("%cTRACE","color: #888",o,...t):console.log(o,...t))}debug(o,...t){this.checkLogLevel(y.Debug)&&(this.useColors?console.log("%cDEBUG","background: #eee; color: #888",o,...t):console.log(o,...t))}info(o,...t){this.checkLogLevel(y.Info)&&(this.useColors?console.log("%c INFO","color: #33f",o,...t):console.log(o,...t))}warn(o,...t){this.checkLogLevel(y.Warning)&&(this.useColors?console.log("%c WARN","color: #993",o,...t):console.log(o,...t))}error(o,...t){this.checkLogLevel(y.Error)&&(this.useColors?console.log("%c ERR","color: #f33",o,...t):console.error(o,...t))}}e.ConsoleLogger=_;class b extends m{constructor(o){super(),this.loggers=o,o.length&&this.setLevel(o[0].getLevel())}setLevel(o){for(const t of this.loggers)t.setLevel(o);super.setLevel(o)}trace(o,...t){for(const i of this.loggers)i.trace(o,...t)}debug(o,...t){for(const i of this.loggers)i.debug(o,...t)}info(o,...t){for(const i of this.loggers)i.info(o,...t)}warn(o,...t){for(const i of this.loggers)i.warn(o,...t)}error(o,...t){for(const i of this.loggers)i.error(o,...t)}dispose(){for(const o of this.loggers)o.dispose();super.dispose()}}e.MultiplexLogger=b;function p(n){switch(n){case y.Trace:return"trace";case y.Debug:return"debug";case y.Info:return"info";case y.Warning:return"warn";case y.Error:return"error";case y.Off:return"off"}}e.CONTEXT_LOG_LEVEL=new I.RawContextKey("logLevel",p(y.Info))}),define(ne[212],se([1,0,64,5,93,47,296,14,6,2,128,11,310,23,61,62]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextAreaWrapper=e.ClipboardEventUtils=e.TextAreaInput=e.InMemoryClipboardMetadataManager=e.CopyOptions=e.TextAreaSyntethicEvents=void 0;var g;(function(u){u.Tap="-monaco-textarea-synthetic-tap"})(g||(e.TextAreaSyntethicEvents=g={})),e.CopyOptions={forceCopyWithSyntaxHighlighting:!1};class c{static{this.INSTANCE=new c}constructor(){this._lastState=null}set(C,f){this._lastState={lastCopiedValue:C,data:f}}get(C){return this._lastState&&this._lastState.lastCopiedValue===C?this._lastState.data:(this._lastState=null,null)}}e.InMemoryClipboardMetadataManager=c;class l{constructor(){this._lastTypeTextLength=0}handleCompositionUpdate(C){C=C||"";const f={text:C,replacePrevCharCnt:this._lastTypeTextLength,replaceNextCharCnt:0,positionDelta:0};return this._lastTypeTextLength=C.length,f}}let a=class extends b.Disposable{get textAreaState(){return this._textAreaState}constructor(C,f,h,v,w,S){super(),this._host=C,this._textArea=f,this._OS=h,this._browser=v,this._accessibilityService=w,this._logService=S,this._onFocus=this._register(new _.Emitter),this.onFocus=this._onFocus.event,this._onBlur=this._register(new _.Emitter),this.onBlur=this._onBlur.event,this._onKeyDown=this._register(new _.Emitter),this.onKeyDown=this._onKeyDown.event,this._onKeyUp=this._register(new _.Emitter),this.onKeyUp=this._onKeyUp.event,this._onCut=this._register(new _.Emitter),this.onCut=this._onCut.event,this._onPaste=this._register(new _.Emitter),this.onPaste=this._onPaste.event,this._onType=this._register(new _.Emitter),this.onType=this._onType.event,this._onCompositionStart=this._register(new _.Emitter),this.onCompositionStart=this._onCompositionStart.event,this._onCompositionUpdate=this._register(new _.Emitter),this.onCompositionUpdate=this._onCompositionUpdate.event,this._onCompositionEnd=this._register(new _.Emitter),this.onCompositionEnd=this._onCompositionEnd.event,this._onSelectionChangeRequest=this._register(new _.Emitter),this.onSelectionChangeRequest=this._onSelectionChangeRequest.event,this._asyncFocusGainWriteScreenReaderContent=this._register(new b.MutableDisposable),this._asyncTriggerCut=this._register(new m.RunOnceScheduler(()=>this._onCut.fire(),0)),this._textAreaState=o.TextAreaState.EMPTY,this._selectionChangeListener=null,this._accessibilityService.isScreenReaderOptimized()&&this.writeNativeTextAreaContent("ctor"),this._register(_.Event.runAndSubscribe(this._accessibilityService.onDidChangeScreenReaderOptimized,()=>{this._accessibilityService.isScreenReaderOptimized()&&!this._asyncFocusGainWriteScreenReaderContent.value?this._asyncFocusGainWriteScreenReaderContent.value=this._register(new m.RunOnceScheduler(()=>this.writeNativeTextAreaContent("asyncFocusGain"),0)):this._asyncFocusGainWriteScreenReaderContent.clear()})),this._hasFocus=!1,this._currentComposition=null;let L=null;this._register(this._textArea.onKeyDown(D=>{const T=new E.StandardKeyboardEvent(D);(T.keyCode===114||this._currentComposition&&T.keyCode===1)&&T.stopPropagation(),T.equals(9)&&T.preventDefault(),L=T,this._onKeyDown.fire(T)})),this._register(this._textArea.onKeyUp(D=>{const T=new E.StandardKeyboardEvent(D);this._onKeyUp.fire(T)})),this._register(this._textArea.onCompositionStart(D=>{o._debugComposition&&console.log("[compositionstart]",D);const T=new l;if(this._currentComposition){this._currentComposition=T;return}if(this._currentComposition=T,this._OS===2&&L&&L.equals(114)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===D.data&&(L.code==="ArrowRight"||L.code==="ArrowLeft")){o._debugComposition&&console.log("[compositionstart] Handling long press case on macOS + arrow key",D),T.handleCompositionUpdate("x"),this._onCompositionStart.fire({data:D.data});return}if(this._browser.isAndroid){this._onCompositionStart.fire({data:D.data});return}this._onCompositionStart.fire({data:D.data})})),this._register(this._textArea.onCompositionUpdate(D=>{o._debugComposition&&console.log("[compositionupdate]",D);const T=this._currentComposition;if(!T)return;if(this._browser.isAndroid){const A=o.TextAreaState.readFromTextArea(this._textArea,this._textAreaState),P=o.TextAreaState.deduceAndroidCompositionInput(this._textAreaState,A);this._textAreaState=A,this._onType.fire(P),this._onCompositionUpdate.fire(D);return}const M=T.handleCompositionUpdate(D.data);this._textAreaState=o.TextAreaState.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(M),this._onCompositionUpdate.fire(D)})),this._register(this._textArea.onCompositionEnd(D=>{o._debugComposition&&console.log("[compositionend]",D);const T=this._currentComposition;if(!T)return;if(this._currentComposition=null,this._browser.isAndroid){const A=o.TextAreaState.readFromTextArea(this._textArea,this._textAreaState),P=o.TextAreaState.deduceAndroidCompositionInput(this._textAreaState,A);this._textAreaState=A,this._onType.fire(P),this._onCompositionEnd.fire();return}const M=T.handleCompositionUpdate(D.data);this._textAreaState=o.TextAreaState.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(M),this._onCompositionEnd.fire()})),this._register(this._textArea.onInput(D=>{if(o._debugComposition&&console.log("[input]",D),this._textArea.setIgnoreSelectionChangeTime("received input event"),this._currentComposition)return;const T=o.TextAreaState.readFromTextArea(this._textArea,this._textAreaState),M=o.TextAreaState.deduceInput(this._textAreaState,T,this._OS===2);M.replacePrevCharCnt===0&&M.text.length===1&&(n.isHighSurrogate(M.text.charCodeAt(0))||M.text.charCodeAt(0)===127)||(this._textAreaState=T,(M.text!==""||M.replacePrevCharCnt!==0||M.replaceNextCharCnt!==0||M.positionDelta!==0)&&this._onType.fire(M))})),this._register(this._textArea.onCut(D=>{this._textArea.setIgnoreSelectionChangeTime("received cut event"),this._ensureClipboardGetsEditorSelection(D),this._asyncTriggerCut.schedule()})),this._register(this._textArea.onCopy(D=>{this._ensureClipboardGetsEditorSelection(D)})),this._register(this._textArea.onPaste(D=>{if(this._textArea.setIgnoreSelectionChangeTime("received paste event"),D.preventDefault(),!D.clipboardData)return;let[T,M]=e.ClipboardEventUtils.getTextData(D.clipboardData);T&&(M=M||c.INSTANCE.get(T),this._onPaste.fire({text:T,metadata:M}))})),this._register(this._textArea.onFocus(()=>{const D=this._hasFocus;this._setHasFocus(!0),this._accessibilityService.isScreenReaderOptimized()&&this._browser.isSafari&&!D&&this._hasFocus&&(this._asyncFocusGainWriteScreenReaderContent.value||(this._asyncFocusGainWriteScreenReaderContent.value=new m.RunOnceScheduler(()=>this.writeNativeTextAreaContent("asyncFocusGain"),0)),this._asyncFocusGainWriteScreenReaderContent.value.schedule())})),this._register(this._textArea.onBlur(()=>{this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("blurWithoutCompositionEnd"),this._onCompositionEnd.fire()),this._setHasFocus(!1)})),this._register(this._textArea.onSyntheticTap(()=>{this._browser.isAndroid&&this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("tapWithoutCompositionEnd"),this._onCompositionEnd.fire())}))}_installSelectionChangeListener(){let C=0;return k.addDisposableListener(this._textArea.ownerDocument,"selectionchange",f=>{if(y.inputLatency.onSelectionChange(),!this._hasFocus||this._currentComposition||!this._browser.isChrome)return;const h=Date.now(),v=h-C;if(C=h,v<5)return;const w=h-this._textArea.getIgnoreSelectionChangeTime();if(this._textArea.resetSelectionChangeTime(),w<100||!this._textAreaState.selection)return;const S=this._textArea.getValue();if(this._textAreaState.value!==S)return;const L=this._textArea.getSelectionStart(),D=this._textArea.getSelectionEnd();if(this._textAreaState.selectionStart===L&&this._textAreaState.selectionEnd===D)return;const T=this._textAreaState.deduceEditorPosition(L),M=this._host.deduceModelPosition(T[0],T[1],T[2]),A=this._textAreaState.deduceEditorPosition(D),P=this._host.deduceModelPosition(A[0],A[1],A[2]),N=new t.Selection(M.lineNumber,M.column,P.lineNumber,P.column);this._onSelectionChangeRequest.fire(N)})}dispose(){super.dispose(),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)}focusTextArea(){this._setHasFocus(!0),this.refreshFocusState()}isFocused(){return this._hasFocus}refreshFocusState(){this._setHasFocus(this._textArea.hasFocus())}_setHasFocus(C){this._hasFocus!==C&&(this._hasFocus=C,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&this.writeNativeTextAreaContent("focusgain"),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}_setAndWriteTextAreaState(C,f){this._hasFocus||(f=f.collapseSelection()),f.writeToTextArea(C,this._textArea,this._hasFocus),this._textAreaState=f}writeNativeTextAreaContent(C){!this._accessibilityService.isScreenReaderOptimized()&&C==="render"||this._currentComposition||(this._logService.trace(`writeTextAreaState(reason: ${C})`),this._setAndWriteTextAreaState(C,this._host.getScreenReaderContent()))}_ensureClipboardGetsEditorSelection(C){const f=this._host.getDataToCopy(),h={version:1,isFromEmptySelection:f.isFromEmptySelection,multicursorText:f.multicursorText,mode:f.mode};c.INSTANCE.set(this._browser.isFirefox?f.text.replace(/\r\n/g,` +`):f.text,h),C.preventDefault(),C.clipboardData&&e.ClipboardEventUtils.setTextData(C.clipboardData,f.text,f.html,h)}};e.TextAreaInput=a,e.TextAreaInput=a=ke([ce(4,i.IAccessibilityService),ce(5,s.ILogService)],a),e.ClipboardEventUtils={getTextData(u){const C=u.getData(p.Mimes.text);let f=null;const h=u.getData("vscode-editor-data");if(typeof h=="string")try{f=JSON.parse(h),f.version!==1&&(f=null)}catch{}return C.length===0&&f===null&&u.files.length>0?[Array.prototype.slice.call(u.files,0).map(w=>w.name).join(` +`),null]:[C,f]},setTextData(u,C,f,h){u.setData(p.Mimes.text,C),typeof f=="string"&&u.setData("text/html",f),u.setData("vscode-editor-data",JSON.stringify(h))}};class r extends b.Disposable{get ownerDocument(){return this._actual.ownerDocument}constructor(C){super(),this._actual=C,this.onKeyDown=this._register(new I.DomEmitter(this._actual,"keydown")).event,this.onKeyUp=this._register(new I.DomEmitter(this._actual,"keyup")).event,this.onCompositionStart=this._register(new I.DomEmitter(this._actual,"compositionstart")).event,this.onCompositionUpdate=this._register(new I.DomEmitter(this._actual,"compositionupdate")).event,this.onCompositionEnd=this._register(new I.DomEmitter(this._actual,"compositionend")).event,this.onBeforeInput=this._register(new I.DomEmitter(this._actual,"beforeinput")).event,this.onInput=this._register(new I.DomEmitter(this._actual,"input")).event,this.onCut=this._register(new I.DomEmitter(this._actual,"cut")).event,this.onCopy=this._register(new I.DomEmitter(this._actual,"copy")).event,this.onPaste=this._register(new I.DomEmitter(this._actual,"paste")).event,this.onFocus=this._register(new I.DomEmitter(this._actual,"focus")).event,this.onBlur=this._register(new I.DomEmitter(this._actual,"blur")).event,this._onSyntheticTap=this._register(new _.Emitter),this.onSyntheticTap=this._onSyntheticTap.event,this._ignoreSelectionChangeTime=0,this._register(this.onKeyDown(()=>y.inputLatency.onKeyDown())),this._register(this.onBeforeInput(()=>y.inputLatency.onBeforeInput())),this._register(this.onInput(()=>y.inputLatency.onInput())),this._register(this.onKeyUp(()=>y.inputLatency.onKeyUp())),this._register(k.addDisposableListener(this._actual,g.Tap,()=>this._onSyntheticTap.fire()))}hasFocus(){const C=k.getShadowRoot(this._actual);return C?C.activeElement===this._actual:this._actual.isConnected?k.getActiveElement()===this._actual:!1}setIgnoreSelectionChangeTime(C){this._ignoreSelectionChangeTime=Date.now()}getIgnoreSelectionChangeTime(){return this._ignoreSelectionChangeTime}resetSelectionChangeTime(){this._ignoreSelectionChangeTime=0}getValue(){return this._actual.value}setValue(C,f){const h=this._actual;h.value!==f&&(this.setIgnoreSelectionChangeTime("setValue"),h.value=f)}getSelectionStart(){return this._actual.selectionDirection==="backward"?this._actual.selectionEnd:this._actual.selectionStart}getSelectionEnd(){return this._actual.selectionDirection==="backward"?this._actual.selectionStart:this._actual.selectionEnd}setSelectionRange(C,f,h){const v=this._actual;let w=null;const S=k.getShadowRoot(v);S?w=S.activeElement:w=k.getActiveElement();const L=k.getWindow(w),D=w===v,T=v.selectionStart,M=v.selectionEnd;if(D&&T===f&&M===h){d.isFirefox&&L.parent!==L&&v.focus();return}if(D){this.setIgnoreSelectionChangeTime("setSelectionRange"),v.setSelectionRange(f,h),d.isFirefox&&L.parent!==L&&v.focus();return}try{const A=k.saveParentsScrollTop(v);this.setIgnoreSelectionChangeTime("setSelectionRange"),v.focus(),v.setSelectionRange(f,h),k.restoreParentsScrollTop(v,A)}catch{}}}e.TextAreaWrapper=r}),define(ne[79],se([1,0,129,45,141,271,49,7,62,42]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LanguageFeatureDebounceService=e.ILanguageFeatureDebounceService=void 0,e.ILanguageFeatureDebounceService=(0,m.createDecorator)("ILanguageFeatureDebounceService");var p;(function(i){const s=new WeakMap;let g=0;function c(l){let a=s.get(l);return a===void 0&&(a=++g,s.set(l,a)),a}i.of=c})(p||(p={}));class n{constructor(s){this._default=s}get(s){return this._default}update(s,g){return this._default}default(){return this._default}}class o{constructor(s,g,c,l,a,r){this._logService=s,this._name=g,this._registry=c,this._default=l,this._min=a,this._max=r,this._cache=new k.LRUCache(50,.7)}_key(s){return s.id+this._registry.all(s).reduce((g,c)=>(0,d.doHash)(p.of(c),g),0)}get(s){const g=this._key(s),c=this._cache.get(g);return c?(0,I.clamp)(c.value,this._min,this._max):this.default()}update(s,g){const c=this._key(s);let l=this._cache.get(c);l||(l=new I.SlidingWindowAverage(6),this._cache.set(c,l));const a=(0,I.clamp)(l.update(g),this._min,this._max);return(0,b.matchesScheme)(s.uri,"output")||this._logService.trace(`[DEBOUNCE: ${this._name}] for ${s.uri.toString()} is ${a}ms`),a}_overall(){const s=new I.MovingAverage;for(const[,g]of this._cache)s.update(g.value);return s.value}default(){const s=this._overall()|0||this._default;return(0,I.clamp)(s,this._min,this._max)}}let t=class{constructor(s,g){this._logService=s,this._data=new Map,this._isDev=g.isExtensionDevelopment||!g.isBuilt}for(s,g,c){const l=c?.min??50,a=c?.max??l**2,r=c?.key??void 0,u=`${p.of(s)},${l}${r?","+r:""}`;let C=this._data.get(u);return C||(this._isDev?(this._logService.debug(`[DEBOUNCE: ${g}] is disabled in developed mode`),C=new n(l*1.5)):C=new o(this._logService,g,s,this._overallAverage()|0||l*1.5,l,a),this._data.set(u,C)),C}_overallAverage(){const s=new I.MovingAverage;for(const g of this._data.values())s.update(g.default());return s.value}};e.LanguageFeatureDebounceService=t,e.LanguageFeatureDebounceService=t=ke([ce(0,_.ILogService),ce(1,E.IEnvironmentService)],t),(0,y.registerSingleton)(e.ILanguageFeatureDebounceService,t,1)}),define(ne[182],se([1,0,13,18,8,53,45,9,4,79,7,49,51,2,17]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OutlineModelService=e.IOutlineModelService=e.OutlineModel=e.OutlineGroup=e.OutlineElement=e.TreeElement=void 0;class s{remove(){this.parent?.children.delete(this.id)}static findId(u,C){let f;typeof u=="string"?f=`${C.id}/${u}`:(f=`${C.id}/${u.name}`,C.children.get(f)!==void 0&&(f=`${C.id}/${u.name}_${u.range.startLineNumber}_${u.range.startColumn}`));let h=f;for(let v=0;C.children.get(h)!==void 0;v++)h=`${f}_${v}`;return h}static empty(u){return u.children.size===0}}e.TreeElement=s;class g extends s{constructor(u,C,f){super(),this.id=u,this.parent=C,this.symbol=f,this.children=new Map}}e.OutlineElement=g;class c extends s{constructor(u,C,f,h){super(),this.id=u,this.parent=C,this.label=f,this.order=h,this.children=new Map}}e.OutlineGroup=c;class l extends s{static create(u,C,f){const h=new k.CancellationTokenSource(f),v=new l(C.uri),w=u.ordered(C),S=w.map((D,T)=>{const M=s.findId(`provider_${T}`,v),A=new c(M,v,D.displayName??"Unknown Outline Provider",T);return Promise.resolve(D.provideDocumentSymbols(C,h.token)).then(P=>{for(const N of P||[])l._makeOutlineElement(N,A);return A},P=>((0,I.onUnexpectedExternalError)(P),A)).then(P=>{s.empty(P)?P.remove():v._groups.set(M,P)})}),L=u.onDidChange(()=>{const D=u.ordered(C);(0,d.equals)(D,w)||h.cancel()});return Promise.all(S).then(()=>h.token.isCancellationRequested&&!f.isCancellationRequested?l.create(u,C,f):v._compact()).finally(()=>{h.dispose(),L.dispose(),h.dispose()})}static _makeOutlineElement(u,C){const f=s.findId(u,C),h=new g(f,C,u);if(u.children)for(const v of u.children)l._makeOutlineElement(v,h);C.children.set(h.id,h)}constructor(u){super(),this.uri=u,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let u=0;for(const[C,f]of this._groups)f.children.size===0?this._groups.delete(C):u+=1;if(u!==1)this.children=this._groups;else{const C=E.Iterable.first(this._groups.values());for(const[,f]of C.children)f.parent=this,this.children.set(f.id,f)}return this}getTopLevelSymbols(){const u=[];for(const C of this.children.values())C instanceof g?u.push(C.symbol):u.push(...E.Iterable.map(C.children.values(),f=>f.symbol));return u.sort((C,f)=>_.Range.compareRangesUsingStarts(C.range,f.range))}asListOfDocumentSymbols(){const u=this.getTopLevelSymbols(),C=[];return l._flattenDocumentSymbols(C,u,""),C.sort((f,h)=>m.Position.compare(_.Range.getStartPosition(f.range),_.Range.getStartPosition(h.range))||m.Position.compare(_.Range.getEndPosition(h.range),_.Range.getEndPosition(f.range)))}static _flattenDocumentSymbols(u,C,f){for(const h of C)u.push({kind:h.kind,tags:h.tags,name:h.name,detail:h.detail,containerName:h.containerName||f,range:h.range,selectionRange:h.selectionRange,children:void 0}),h.children&&l._flattenDocumentSymbols(u,h.children,h.name)}}e.OutlineModel=l,e.IOutlineModelService=(0,p.createDecorator)("IOutlineModelService");let a=class{constructor(u,C,f){this._languageFeaturesService=u,this._disposables=new t.DisposableStore,this._cache=new y.LRUCache(10,.7),this._debounceInformation=C.for(u.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(f.onModelRemoved(h=>{this._cache.delete(h.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(u,C){const f=this._languageFeaturesService.documentSymbolProvider,h=f.ordered(u);let v=this._cache.get(u.id);if(!v||v.versionId!==u.getVersionId()||!(0,d.equals)(v.provider,h)){const S=new k.CancellationTokenSource;v={versionId:u.getVersionId(),provider:h,promiseCnt:0,source:S,promise:l.create(f,u,S.token),model:void 0},this._cache.set(u.id,v);const L=Date.now();v.promise.then(D=>{v.model=D,this._debounceInformation.update(u,Date.now()-L)}).catch(D=>{this._cache.delete(u.id)})}if(v.model)return v.model;v.promiseCnt+=1;const w=C.onCancellationRequested(()=>{--v.promiseCnt===0&&(v.source.cancel(),this._cache.delete(u.id))});try{return await v.promise}finally{w.dispose()}}};e.OutlineModelService=a,e.OutlineModelService=a=ke([ce(0,i.ILanguageFeaturesService),ce(1,b.ILanguageFeatureDebounceService),ce(2,o.IModelService)],a),(0,n.registerSingleton)(e.IOutlineModelService,a,1)}),define(ne[694],se([1,0,13,21,383,88,17,182,2,6]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0});let p=class extends _.Disposable{constructor(o,t,i){super(),this._textModel=o,this._languageFeaturesService=t,this._outlineModelService=i,this._currentModel=(0,k.observableValue)(this,void 0);const s=(0,k.observableSignalFromEvent)("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),g=(0,k.observableSignalFromEvent)("_textModel.onDidChangeContent",b.Event.debounce(c=>this._textModel.onDidChangeContent(c),()=>{},100));this._register((0,k.autorunWithStore)(async(c,l)=>{s.read(c),g.read(c);const a=l.add(new E.DisposableCancellationTokenSource),r=await this._outlineModelService.getOrCreate(this._textModel,a.token);l.isDisposed||this._currentModel.set(r,void 0)}))}getBreadcrumbItems(o,t){const i=this._currentModel.read(t);if(!i)return[];const s=i.asListOfDocumentSymbols().filter(g=>o.contains(g.range.startLineNumber)&&!o.contains(g.range.endLineNumber));return s.sort((0,d.reverseOrder)((0,d.compareBy)(g=>g.range.endLineNumber-g.range.startLineNumber,d.numberComparator))),s.map(g=>({name:g.name,kind:g.kind,startLineNumber:g.range.startLineNumber}))}};p=ke([ce(1,y.ILanguageFeaturesService),ce(2,m.IOutlineModelService)],p),I.HideUnchangedRegionsFeature.setBreadcrumbsSourceFactory((n,o)=>o.createInstance(p,n))}),define(ne[695],se([1,0,18,19,22,78,182,24]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),m.CommandsRegistry.registerCommand("_executeDocumentSymbolProvider",async function(_,...b){const[p]=b;(0,k.assertType)(I.URI.isUri(p));const n=_.get(y.IOutlineModelService),t=await _.get(E.ITextModelService).createModelReference(p);try{return(await n.getOrCreate(t.object.textEditorModel,d.CancellationToken.None)).getTopLevelSymbols()}finally{t.dispose()}})}),define(ne[696],se([1,0,64,5,52,14,6,129,2,22,119,62]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";var o;Object.defineProperty(e,"__esModule",{value:!0}),e.BrowserClipboardService=void 0;const t="application/vnd.code.resources";let i=class extends _.Disposable{static{o=this}constructor(g,c){super(),this.layoutService=g,this.logService=c,this.mapTextToType=new Map,this.findText="",this.resources=[],this.resourcesStateHash=void 0,(d.isSafari||d.isWebkitWebView)&&this.installWebKitWriteTextWorkaround(),this._register(y.Event.runAndSubscribe(k.onDidRegisterWindow,({window:l,disposables:a})=>{a.add((0,k.addDisposableListener)(l.document,"copy",()=>this.clearResourcesState()))},{window:I.mainWindow,disposables:this._store}))}installWebKitWriteTextWorkaround(){const g=()=>{const c=new E.DeferredPromise;this.webKitPendingClipboardWritePromise&&!this.webKitPendingClipboardWritePromise.isSettled&&this.webKitPendingClipboardWritePromise.cancel(),this.webKitPendingClipboardWritePromise=c,(0,k.getActiveWindow)().navigator.clipboard.write([new ClipboardItem({"text/plain":c.p})]).catch(async l=>{(!(l instanceof Error)||l.name!=="NotAllowedError"||!c.isRejected)&&this.logService.error(l)})};this._register(y.Event.runAndSubscribe(this.layoutService.onDidAddContainer,({container:c,disposables:l})=>{l.add((0,k.addDisposableListener)(c,"click",g)),l.add((0,k.addDisposableListener)(c,"keydown",g))},{container:this.layoutService.mainContainer,disposables:this._store}))}async writeText(g,c){if(this.clearResourcesState(),c){this.mapTextToType.set(c,g);return}if(this.webKitPendingClipboardWritePromise)return this.webKitPendingClipboardWritePromise.complete(g);try{return await(0,k.getActiveWindow)().navigator.clipboard.writeText(g)}catch(l){console.error(l)}this.fallbackWriteText(g)}fallbackWriteText(g){const c=(0,k.getActiveDocument)(),l=c.activeElement,a=c.body.appendChild((0,k.$)("textarea",{"aria-hidden":!0}));a.style.height="1px",a.style.width="1px",a.style.position="absolute",a.value=g,a.focus(),a.select(),c.execCommand("copy"),(0,k.isHTMLElement)(l)&&l.focus(),a.remove()}async readText(g){if(g)return this.mapTextToType.get(g)||"";try{return await(0,k.getActiveWindow)().navigator.clipboard.readText()}catch(c){console.error(c)}return""}async readFindText(){return this.findText}async writeFindText(g){this.findText=g}static{this.MAX_RESOURCE_STATE_SOURCE_LENGTH=1e3}async readResources(){try{const c=await(0,k.getActiveWindow)().navigator.clipboard.read();for(const l of c)if(l.types.includes(`web ${t}`)){const a=await l.getType(`web ${t}`);return JSON.parse(await a.text()).map(u=>b.URI.from(u))}}catch{}const g=await this.computeResourcesStateHash();return this.resourcesStateHash!==g&&this.clearResourcesState(),this.resources}async computeResourcesStateHash(){if(this.resources.length===0)return;const g=await this.readText();return(0,m.hash)(g.substring(0,o.MAX_RESOURCE_STATE_SOURCE_LENGTH))}clearInternalState(){this.clearResourcesState()}clearResourcesState(){this.resources=[],this.resourcesStateHash=void 0}};e.BrowserClipboardService=i,e.BrowserClipboardService=i=o=ke([ce(0,p.ILayoutService),ce(1,n.ILogService)],i)}),define(ne[697],se([1,0,2,62]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LogService=void 0;class I extends d.Disposable{constructor(y,m=[]){super(),this.logger=new k.MultiplexLogger([y,...m]),this._register(y.onDidChangeLogLevel(_=>this.setLevel(_)))}get onDidChangeLogLevel(){return this.logger.onDidChangeLogLevel}setLevel(y){this.logger.setLevel(y)}getLevel(){return this.logger.getLevel()}trace(y,...m){this.logger.trace(y,...m)}debug(y,...m){this.logger.debug(y,...m)}info(y,...m){this.logger.info(y,...m)}warn(y,...m){this.logger.warn(y,...m)}error(y,...m){this.logger.error(y,...m)}}e.LogService=I}),define(ne[108],se([1,0,111,3,7]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IMarkerService=e.IMarkerData=e.MarkerSeverity=void 0;var E;(function(m){m[m.Hint=1]="Hint",m[m.Info=2]="Info",m[m.Warning=4]="Warning",m[m.Error=8]="Error"})(E||(e.MarkerSeverity=E={})),function(m){function _(t,i){return i-t}m.compare=_;const b=Object.create(null);b[m.Error]=(0,k.localize)(1569,"Error"),b[m.Warning]=(0,k.localize)(1570,"Warning"),b[m.Info]=(0,k.localize)(1571,"Info");function p(t){return b[t]||""}m.toString=p;function n(t){switch(t){case d.default.Error:return m.Error;case d.default.Warning:return m.Warning;case d.default.Info:return m.Info;case d.default.Ignore:return m.Hint}}m.fromSeverity=n;function o(t){switch(t){case m.Error:return d.default.Error;case m.Warning:return d.default.Warning;case m.Info:return d.default.Info;case m.Hint:return d.default.Ignore}}m.toSeverity=o}(E||(e.MarkerSeverity=E={}));var y;(function(m){const _="";function b(n){return p(n,!0)}m.makeKey=b;function p(n,o){const t=[_];return n.source?t.push(n.source.replace("\xA6","\\\xA6")):t.push(_),n.code?typeof n.code=="string"?t.push(n.code.replace("\xA6","\\\xA6")):t.push(n.code.value.replace("\xA6","\\\xA6")):t.push(_),n.severity!==void 0&&n.severity!==null?t.push(E.toString(n.severity)):t.push(_),n.message&&o?t.push(n.message.replace("\xA6","\\\xA6")):t.push(_),n.startLineNumber!==void 0&&n.startLineNumber!==null?t.push(n.startLineNumber.toString()):t.push(_),n.startColumn!==void 0&&n.startColumn!==null?t.push(n.startColumn.toString()):t.push(_),n.endLineNumber!==void 0&&n.endLineNumber!==null?t.push(n.endLineNumber.toString()):t.push(_),n.endColumn!==void 0&&n.endColumn!==null?t.push(n.endColumn.toString()):t.push(_),t.push(_),t.join("\xA6")}m.makeKeyOptionalMessage=p})(y||(e.IMarkerData=y={})),e.IMarkerService=(0,I.createDecorator)("markerService")}),define(ne[698],se([1,0,13,6,2,73,11,22,4,49,7,108,28]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IMarkerNavigationService=e.MarkerList=e.MarkerCoordinate=void 0;class t{constructor(c,l,a){this.marker=c,this.index=l,this.total=a}}e.MarkerCoordinate=t;let i=class{constructor(c,l,a){this._markerService=l,this._configService=a,this._onDidChange=new k.Emitter,this.onDidChange=this._onDidChange.event,this._dispoables=new I.DisposableStore,this._markers=[],this._nextIdx=-1,m.URI.isUri(c)?this._resourceFilter=f=>f.toString()===c.toString():c&&(this._resourceFilter=c);const r=this._configService.getValue("problems.sortOrder"),u=(f,h)=>{let v=(0,y.compare)(f.resource.toString(),h.resource.toString());return v===0&&(r==="position"?v=_.Range.compareRangesUsingStarts(f,h)||n.MarkerSeverity.compare(f.severity,h.severity):v=n.MarkerSeverity.compare(f.severity,h.severity)||_.Range.compareRangesUsingStarts(f,h)),v},C=()=>{this._markers=this._markerService.read({resource:m.URI.isUri(c)?c:void 0,severities:n.MarkerSeverity.Error|n.MarkerSeverity.Warning|n.MarkerSeverity.Info}),typeof c=="function"&&(this._markers=this._markers.filter(f=>this._resourceFilter(f.resource))),this._markers.sort(u)};C(),this._dispoables.add(l.onMarkerChanged(f=>{(!this._resourceFilter||f.some(h=>this._resourceFilter(h)))&&(C(),this._nextIdx=-1,this._onDidChange.fire())}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(c){return!this._resourceFilter&&!c?!0:!this._resourceFilter||!c?!1:this._resourceFilter(c)}get selected(){const c=this._markers[this._nextIdx];return c&&new t(c,this._nextIdx+1,this._markers.length)}_initIdx(c,l,a){let r=!1,u=this._markers.findIndex(C=>C.resource.toString()===c.uri.toString());u<0&&(u=(0,d.binarySearch)(this._markers,{resource:c.uri},(C,f)=>(0,y.compare)(C.resource.toString(),f.resource.toString())),u<0&&(u=~u));for(let C=u;Cr.resource.toString()===c.toString());if(!(a<0)){for(;ai[1])}}class p{constructor(t){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new E.ResourceMap,this._service=t,this._subscription=t.onMarkerChanged(this._update,this)}dispose(){this._subscription.dispose()}_update(t){for(const i of t){const s=this._data.get(i);s&&this._substract(s);const g=this._resourceStats(i);this._add(g),this._data.set(i,g)}}_resourceStats(t){const i={errors:0,warnings:0,infos:0,unknowns:0};if(e.unsupportedSchemas.has(t.scheme))return i;for(const{severity:s}of this._service.read({resource:t}))s===_.MarkerSeverity.Error?i.errors+=1:s===_.MarkerSeverity.Warning?i.warnings+=1:s===_.MarkerSeverity.Info?i.infos+=1:i.unknowns+=1;return i}_substract(t){this.errors-=t.errors,this.warnings-=t.warnings,this.infos-=t.infos,this.unknowns-=t.unknowns}_add(t){this.errors+=t.errors,this.warnings+=t.warnings,this.infos+=t.infos,this.unknowns+=t.unknowns}}class n{constructor(){this._onMarkerChanged=new k.DebounceEmitter({delay:0,merge:n._merge}),this.onMarkerChanged=this._onMarkerChanged.event,this._data=new b,this._stats=new p(this)}dispose(){this._stats.dispose(),this._onMarkerChanged.dispose()}remove(t,i){for(const s of i||[])this.changeOne(t,s,[])}changeOne(t,i,s){if((0,d.isFalsyOrEmpty)(s))this._data.delete(i,t)&&this._onMarkerChanged.fire([i]);else{const g=[];for(const c of s){const l=n._toMarker(t,i,c);l&&g.push(l)}this._data.set(i,t,g),this._onMarkerChanged.fire([i])}}static _toMarker(t,i,s){let{code:g,severity:c,message:l,source:a,startLineNumber:r,startColumn:u,endLineNumber:C,endColumn:f,relatedInformation:h,tags:v}=s;if(l)return r=r>0?r:1,u=u>0?u:1,C=C>=r?C:r,f=f>0?f:u,{resource:i,owner:t,code:g,severity:c,message:l,source:a,startLineNumber:r,startColumn:u,endLineNumber:C,endColumn:f,relatedInformation:h,tags:v}}changeAll(t,i){const s=[],g=this._data.values(t);if(g)for(const c of g){const l=I.Iterable.first(c);l&&(s.push(l.resource),this._data.delete(l.resource,t))}if((0,d.isNonEmptyArray)(i)){const c=new E.ResourceMap;for(const{resource:l,marker:a}of i){const r=n._toMarker(t,l,a);if(!r)continue;const u=c.get(l);u?u.push(r):(c.set(l,[r]),s.push(l))}for(const[l,a]of c)this._data.set(l,t,a)}s.length>0&&this._onMarkerChanged.fire(s)}read(t=Object.create(null)){let{owner:i,resource:s,severities:g,take:c}=t;if((!c||c<0)&&(c=-1),i&&s){const l=this._data.get(s,i);if(l){const a=[];for(const r of l)if(n._accept(r,g)){const u=a.push(r);if(c>0&&u===c)break}return a}else return[]}else if(!i&&!s){const l=[];for(const a of this._data.values())for(const r of a)if(n._accept(r,g)){const u=l.push(r);if(c>0&&u===c)return l}return l}else{const l=this._data.values(s??i),a=[];for(const r of l)for(const u of r)if(n._accept(u,g)){const C=a.push(u);if(c>0&&C===c)return a}return a}}static _accept(t,i){return i===void 0||(i&t.severity)===t.severity}static _merge(t){const i=new E.ResourceMap;for(const s of t)for(const g of s)i.set(g,!0);return Array.from(i.keys())}}e.MarkerService=n}),define(ne[50],se([1,0,111,7]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.NoOpNotification=e.INotificationService=e.Severity=void 0,e.Severity=d.default,e.INotificationService=(0,k.createDecorator)("notificationService");class I{}e.NoOpNotification=I}),define(ne[396],se([1,0,5,258,41,346,8,6,2,152,268,3,12,58,7,31,50,508]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";var c;Object.defineProperty(e,"__esModule",{value:!0}),e.PostEditWidgetManager=void 0;let l=class extends _.Disposable{static{c=this}static{this.baseId="editor.widget.postEditWidget"}constructor(u,C,f,h,v,w,S,L,D,T){super(),this.typeId=u,this.editor=C,this.showCommand=h,this.range=v,this.edits=w,this.onSelectNewEdit=S,this._contextMenuService=L,this._keybindingService=T,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=f.bindTo(D),this.visibleContext.set(!0),this._register((0,_.toDisposable)(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register((0,_.toDisposable)(()=>this.editor.removeContentWidget(this))),this._register(this.editor.onDidChangeCursorPosition(M=>{v.containsPosition(M.position)||this.dispose()})),this._register(m.Event.runAndSubscribe(T.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){const u=this._keybindingService.lookupKeybinding(this.showCommand.id)?.getLabel();this.button.element.title=this.showCommand.label+(u?` (${u})`:"")}create(){this.domNode=d.$(".post-edit-widget"),this.button=this._register(new k.Button(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(d.addDisposableListener(this.domNode,d.EventType.CLICK,()=>this.showSelector()))}getId(){return c.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{const u=d.getDomNodePagePosition(this.button.element);return{x:u.left+u.width,y:u.top+u.height}},getActions:()=>this.edits.allEdits.map((u,C)=>(0,I.toAction)({id:"",label:u.title,checked:C===this.edits.activeEditIndex,run:()=>{if(C!==this.edits.activeEditIndex)return this.onSelectNewEdit(C)}}))})}};l=c=ke([ce(7,t.IContextMenuService),ce(8,o.IContextKeyService),ce(9,s.IKeybindingService)],l);let a=class extends _.Disposable{constructor(u,C,f,h,v,w,S){super(),this._id=u,this._editor=C,this._visibleContext=f,this._showCommand=h,this._instantiationService=v,this._bulkEditService=w,this._notificationService=S,this._currentWidget=this._register(new _.MutableDisposable),this._register(m.Event.any(C.onDidChangeModel,C.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(u,C,f,h,v){const w=this._editor.getModel();if(!w||!u.length)return;const S=C.allEdits.at(C.activeEditIndex);if(!S)return;const L=async F=>{const x=this._editor.getModel();x&&(await x.undo(),this.applyEditAndShowIfNeeded(u,{activeEditIndex:F,allEdits:C.allEdits},f,h,v))},D=(F,x)=>{(0,y.isCancellationError)(F)||(this._notificationService.error(x),f&&this.show(u[0],C,L))};let T;try{T=await h(S,v)}catch(F){return D(F,(0,n.localize)(845,`Error resolving edit '{0}': +{1}`,S.title,(0,E.toErrorMessage)(F)))}if(v.isCancellationRequested)return;const M=(0,p.createCombinedWorkspaceEdit)(w.uri,u,T),A=u[0],P=w.deltaDecorations([],[{range:A,options:{description:"paste-line-suffix",stickiness:0}}]);this._editor.focus();let N,O;try{N=await this._bulkEditService.apply(M,{editor:this._editor,token:v}),O=w.getDecorationRange(P[0])}catch(F){return D(F,(0,n.localize)(846,`Error applying edit '{0}': +{1}`,S.title,(0,E.toErrorMessage)(F)))}finally{w.deltaDecorations(P,[])}v.isCancellationRequested||f&&N.isApplied&&C.allEdits.length>1&&this.show(O??A,C,L)}show(u,C,f){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(l,this._id,this._editor,this._visibleContext,this._showCommand,u,C,f))}clear(){this._currentWidget.clear()}tryShowSelector(){this._currentWidget.value?.showSelector()}};e.PostEditWidgetManager=a,e.PostEditWidgetManager=a=ke([ce(4,i.IInstantiationService),ce(5,b.IBulkEditService),ce(6,g.INotificationService)],a)}),define(ne[397],se([1,0,21,189]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.observableConfigValue=I,e.bindContextKey=E;function I(y,m,_){return(0,k.observableFromEventOpts)({debugName:()=>`Configuration Key "${y}"`},b=>_.onDidChangeConfiguration(p=>{p.affectsConfiguration(y)&&b(p)}),()=>_.getValue(y)??m)}function E(y,m,_){const b=y.bindTo(m);return(0,d.autorunOpts)({debugName:()=>`Set Context Key "${y.key}"`},p=>{b.set(_(p))})}}),define(ne[700],se([1,0,349,171,21,7]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.wrapInReloadableClass1=_;class y{constructor(n){this.instantiationService=n}init(...n){}}function m(p,n){return class extends n{constructor(){super(...arguments),this._autorun=void 0}init(...t){this._autorun=(0,I.autorunWithStore)((i,s)=>{const g=(0,k.readHotReloadableExport)(p(),i);s.add(this.instantiationService.createInstance(g,...t))})}dispose(){this._autorun?.dispose()}}}function _(p){return(0,d.isHotReloadEnabled)()?m(p,b):p()}let b=class extends y{constructor(n,o){super(o),this.init(n)}};b=ke([ce(1,E.IInstantiationService)],b)}),define(ne[59],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IOpenerService=void 0,e.extractSelection=k,e.IOpenerService=(0,d.createDecorator)("openerService");function k(I){let E;const y=/^L?(\d+)(?:,(\d+))?(-L?(\d+)(?:,(\d+))?)?/.exec(I.fragment);return y&&(E={startLineNumber:parseInt(y[1]),startColumn:y[2]?parseInt(y[2]):1,endLineNumber:y[4]?parseInt(y[4]):void 0,endColumn:y[4]?y[5]?parseInt(y[5]):1:void 0},I=I.with({fragment:""})),{selection:E,uri:I}}}),define(ne[701],se([1,0,5,52,18,73,45,252,42,48,22,34,24,673,59]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OpenerService=void 0;let s=class{constructor(a){this._commandService=a}async open(a,r){if(!(0,_.matchesScheme)(a,_.Schemas.command))return!1;if(!r?.allowCommands||(typeof a=="string"&&(a=p.URI.parse(a)),Array.isArray(r.allowCommands)&&!r.allowCommands.includes(a.path)))return!0;let u=[];try{u=(0,m.parse)(decodeURIComponent(a.query))}catch{try{u=(0,m.parse)(a.query)}catch{}}return Array.isArray(u)||(u=[u]),await this._commandService.executeCommand(a.path,...u),!0}};s=ke([ce(0,o.ICommandService)],s);let g=class{constructor(a){this._editorService=a}async open(a,r){typeof a=="string"&&(a=p.URI.parse(a));const{selection:u,uri:C}=(0,i.extractSelection)(a);return a=C,a.scheme===_.Schemas.file&&(a=(0,b.normalizePath)(a)),await this._editorService.openCodeEditor({resource:a,options:{selection:u,source:r?.fromUserGesture?t.EditorOpenSource.USER:t.EditorOpenSource.API,...r?.editorOptions}},this._editorService.getFocusedCodeEditor(),r?.openToSide),!0}};g=ke([ce(0,n.ICodeEditorService)],g);let c=class{constructor(a,r){this._openers=new E.LinkedList,this._validators=new E.LinkedList,this._resolvers=new E.LinkedList,this._resolvedUriTargets=new y.ResourceMap(u=>u.with({path:null,fragment:null,query:null}).toString()),this._externalOpeners=new E.LinkedList,this._defaultExternalOpener={openExternal:async u=>((0,_.matchesSomeScheme)(u,_.Schemas.http,_.Schemas.https)?d.windowOpenNoOpener(u):k.mainWindow.location.href=u,!0)},this._openers.push({open:async(u,C)=>C?.openExternal||(0,_.matchesSomeScheme)(u,_.Schemas.mailto,_.Schemas.http,_.Schemas.https,_.Schemas.vsls)?(await this._doOpenExternal(u,C),!0):!1}),this._openers.push(new s(r)),this._openers.push(new g(a))}registerOpener(a){return{dispose:this._openers.unshift(a)}}async open(a,r){const u=typeof a=="string"?p.URI.parse(a):a,C=this._resolvedUriTargets.get(u)??a;for(const f of this._validators)if(!await f.shouldOpen(C,r))return!1;for(const f of this._openers)if(await f.open(a,r))return!0;return!1}async resolveExternalUri(a,r){for(const u of this._resolvers)try{const C=await u.resolveExternalUri(a,r);if(C)return this._resolvedUriTargets.has(C.resolved)||this._resolvedUriTargets.set(C.resolved,a),C}catch{}throw new Error("Could not resolve external URI: "+a.toString())}async _doOpenExternal(a,r){const u=typeof a=="string"?p.URI.parse(a):a;let C;try{C=(await this.resolveExternalUri(u,r)).resolved}catch{C=u}let f;if(typeof a=="string"&&u.toString()===C.toString()?f=a:f=encodeURI(C.toString(!0)),r?.allowContributedOpeners){const h=typeof r?.allowContributedOpeners=="string"?r?.allowContributedOpeners:void 0;for(const v of this._externalOpeners)if(await v.openExternal(f,{sourceUri:u,preferredOpenerId:h},I.CancellationToken.None))return!0}return this._defaultExternalOpener.openExternal(f,{sourceUri:u},I.CancellationToken.None)}dispose(){this._validators.clear()}};e.OpenerService=c,e.OpenerService=c=ke([ce(0,n.ICodeEditorService),ce(1,o.ICommandService)],c)}),define(ne[702],se([1,0,5,93,47,69,6,2,59,44,118,543]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Link=void 0;let n=class extends m.Disposable{get enabled(){return this._enabled}set enabled(t){t?(this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1):(this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0),this._enabled=t}constructor(t,i,s={},g,c){super(),this._link=i,this._hoverService=g,this._enabled=!0,this.el=(0,d.append)(t,(0,d.$)("a.monaco-link",{tabIndex:i.tabIndex??0,href:i.href},i.label)),this.hoverDelegate=s.hoverDelegate??(0,b.getDefaultHoverDelegate)("mouse"),this.setTooltip(i.title),this.el.setAttribute("role","button");const l=this._register(new k.DomEmitter(this.el,"click")),a=this._register(new k.DomEmitter(this.el,"keypress")),r=y.Event.chain(a.event,f=>f.map(h=>new I.StandardKeyboardEvent(h)).filter(h=>h.keyCode===3)),u=this._register(new k.DomEmitter(this.el,E.EventType.Tap)).event;this._register(E.Gesture.addTarget(this.el));const C=y.Event.any(l.event,r,u);this._register(C(f=>{this.enabled&&(d.EventHelper.stop(f,!0),s?.opener?s.opener(this._link.href):c.open(this._link.href,{allowCommands:!0}))})),this.enabled=!0}setTooltip(t){this.hoverDelegate.showNativeHover?this.el.title=t??"":!this.hover&&t?this.hover=this._register(this._hoverService.setupManagedHover(this.hoverDelegate,this.el,t)):this.hover&&this.hover.update(t)}};e.Link=n,e.Link=n=ke([ce(3,p.IHoverService),ce(4,_.IOpenerService)],n)}),define(ne[96],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IEditorProgressService=e.Progress=e.emptyProgressRunner=e.IProgressService=void 0,e.IProgressService=(0,d.createDecorator)("progressService"),e.emptyProgressRunner=Object.freeze({total(){},worked(){},done(){}});class k{static{this.None=Object.freeze({report(){}})}constructor(E){this.callback=E}report(E){this._value=E,this.callback(this._value)}}e.Progress=k,e.IEditorProgressService=(0,d.createDecorator)("editorProgressService")}),define(ne[703],se([1,0,14,18,2,19]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PickerQuickAccessProvider=e.TriggerAction=void 0;var y;(function(p){p[p.NO_ACTION=0]="NO_ACTION",p[p.CLOSE_PICKER=1]="CLOSE_PICKER",p[p.REFRESH_PICKER=2]="REFRESH_PICKER",p[p.REMOVE_ITEM=3]="REMOVE_ITEM"})(y||(e.TriggerAction=y={}));function m(p){const n=p;return Array.isArray(n.items)}function _(p){const n=p;return!!n.picks&&n.additionalPicks instanceof Promise}class b extends I.Disposable{constructor(n,o){super(),this.prefix=n,this.options=o}provide(n,o,t){const i=new I.DisposableStore;n.canAcceptInBackground=!!this.options?.canAcceptInBackground,n.matchOnLabel=n.matchOnDescription=n.matchOnDetail=n.sortByLabel=!1;let s;const g=i.add(new I.MutableDisposable),c=async()=>{const a=g.value=new I.DisposableStore;s?.dispose(!0),n.busy=!1,s=new k.CancellationTokenSource(o);const r=s.token;let u=n.value.substring(this.prefix.length);this.options?.shouldSkipTrimPickFilter||(u=u.trim());const C=this._getPicks(u,a,r,t),f=(v,w)=>{let S,L;if(m(v)?(S=v.items,L=v.active):S=v,S.length===0){if(w)return!1;(u.length>0||n.hideInput)&&this.options?.noResultsPick&&((0,E.isFunction)(this.options.noResultsPick)?S=[this.options.noResultsPick(u)]:S=[this.options.noResultsPick])}return n.items=S,L&&(n.activeItems=[L]),!0},h=async v=>{let w=!1,S=!1;await Promise.all([(async()=>{typeof v.mergeDelay=="number"&&(await(0,d.timeout)(v.mergeDelay),r.isCancellationRequested)||S||(w=f(v.picks,!0))})(),(async()=>{n.busy=!0;try{const L=await v.additionalPicks;if(r.isCancellationRequested)return;let D,T;m(v.picks)?(D=v.picks.items,T=v.picks.active):D=v.picks;let M,A;if(m(L)?(M=L.items,A=L.active):M=L,M.length>0||!w){let P;if(!T&&!A){const N=n.activeItems[0];N&&D.indexOf(N)!==-1&&(P=N)}f({items:[...D,...M],active:T||A||P})}}finally{r.isCancellationRequested||(n.busy=!1),S=!0}})()])};if(C!==null)if(_(C))await h(C);else if(!(C instanceof Promise))f(C);else{n.busy=!0;try{const v=await C;if(r.isCancellationRequested)return;_(v)?await h(v):f(v)}finally{r.isCancellationRequested||(n.busy=!1)}}};i.add(n.onDidChangeValue(()=>c())),c(),i.add(n.onDidAccept(a=>{if(t?.handleAccept){a.inBackground||n.hide(),t.handleAccept?.(n.activeItems[0]);return}const[r]=n.selectedItems;typeof r?.accept=="function"&&(a.inBackground||n.hide(),r.accept(n.keyMods,a))}));const l=async(a,r)=>{if(typeof r.trigger!="function")return;const u=r.buttons?.indexOf(a)??-1;if(u>=0){const C=r.trigger(u,n.keyMods),f=typeof C=="number"?C:await C;if(o.isCancellationRequested)return;switch(f){case y.NO_ACTION:break;case y.CLOSE_PICKER:n.hide();break;case y.REFRESH_PICKER:c();break;case y.REMOVE_ITEM:{const h=n.items.indexOf(r);if(h!==-1){const v=n.items.slice(),w=v.splice(h,1),S=n.activeItems.filter(D=>D!==w[0]),L=n.keepScrollPosition;n.keepScrollPosition=!0,n.items=v,S&&(n.activeItems=S),n.keepScrollPosition=L}break}}}};return i.add(n.onDidTriggerItemButton(({button:a,item:r})=>l(a,r))),i.add(n.onDidTriggerSeparatorButton(({button:a,separator:r})=>l(a,r))),i}}e.PickerQuickAccessProvider=b}),define(ne[704],se([1,0,5,260,2,111,228]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputBox=void 0;const y=d.$;class m extends I.Disposable{constructor(b,p,n){super(),this.parent=b,this.onKeyDown=t=>d.addStandardDisposableListener(this.findInput.inputBox.inputElement,d.EventType.KEY_DOWN,t),this.onDidChange=t=>this.findInput.onDidChange(t),this.container=d.append(this.parent,y(".quick-input-box")),this.findInput=this._register(new k.FindInput(this.container,void 0,{label:"",inputBoxStyles:p,toggleStyles:n}));const o=this.findInput.inputBox.inputElement;o.role="combobox",o.ariaHasPopup="menu",o.ariaAutoComplete="list",o.ariaExpanded="true"}get value(){return this.findInput.getValue()}set value(b){this.findInput.setValue(b)}select(b=null){this.findInput.inputBox.select(b)}getSelection(){return this.findInput.inputBox.getSelection()}isSelectionAtEnd(){return this.findInput.inputBox.isSelectionAtEnd()}get placeholder(){return this.findInput.inputBox.inputElement.getAttribute("placeholder")||""}set placeholder(b){this.findInput.inputBox.setPlaceHolder(b)}get password(){return this.findInput.inputBox.inputElement.type==="password"}set password(b){this.findInput.inputBox.inputElement.type=b?"password":"text"}set enabled(b){this.findInput.inputBox.inputElement.toggleAttribute("readonly",!b)}set toggles(b){this.findInput.setAdditionalToggles(b)}setAttribute(b,p){this.findInput.inputBox.inputElement.setAttribute(b,p)}showDecoration(b){b===E.default.Ignore?this.findInput.clearMessage():this.findInput.showMessage({type:b===E.default.Info?1:b===E.default.Warning?2:3,content:""})}stylesForType(b){return this.findInput.inputBox.stylesForType(b===E.default.Info?1:b===E.default.Warning?2:3)}setFocus(){this.findInput.focus()}layout(){this.findInput.inputBox.layout()}}e.QuickInputBox=m}),define(ne[398],se([1,0,5,93,6,47,69,114,187,446,3,228]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.quickInputButtonToAction=i,e.renderQuickInputDescription=s;const n={},o=new _.IdGenerator("quick-input-button-icon-");function t(g){if(!g)return;let c;const l=g.dark.toString();return n[l]?c=n[l]:(c=o.nextId(),d.createCSSRule(`.${c}, .hc-light .${c}`,`background-image: ${d.asCSSUrl(g.light||g.dark)}`),d.createCSSRule(`.vs-dark .${c}, .hc-black .${c}`,`background-image: ${d.asCSSUrl(g.dark)}`),n[l]=c),c}function i(g,c,l){let a=g.iconClass||t(g.iconPath);return g.alwaysVisible&&(a=a?`${a} always-visible`:"always-visible"),{id:c,label:"",tooltip:g.tooltip||"",class:a,enabled:!0,run:l}}function s(g,c,l){d.reset(c);const a=(0,b.parseLinkedText)(g);let r=0;for(const u of a.nodes)if(typeof u=="string")c.append(...(0,m.renderLabelWithIcons)(u));else{let C=u.title;!C&&u.href.startsWith("command:")?C=(0,p.localize)(1598,"Click to execute command '{0}'",u.href.substring(8)):C||(C=u.href);const f=d.$("a",{href:u.href,title:C,tabIndex:r++},u.label);f.style.textDecoration="underline";const h=D=>{d.isEventLike(D)&&d.EventHelper.stop(D,!0),l.callback(u.href)},v=l.disposables.add(new k.DomEmitter(f,d.EventType.CLICK)).event,w=l.disposables.add(new k.DomEmitter(f,d.EventType.KEY_DOWN)).event,S=I.Event.chain(w,D=>D.filter(T=>{const M=new E.StandardKeyboardEvent(T);return M.equals(10)||M.equals(3)}));l.disposables.add(y.Gesture.addTarget(f));const L=l.disposables.add(new k.DomEmitter(f,y.EventType.Tap)).event;I.Event.any(v,L,S)(h,null,l.disposables),c.appendChild(f)}}}),define(ne[66],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IQuickInputService=e.quickPickItemScorerAccessor=e.QuickPickItemScorerAccessor=e.QuickInputButtonLocation=e.QuickPickFocus=e.ItemActivation=e.QuickInputHideReason=e.NO_KEY_MODS=void 0,e.NO_KEY_MODS={ctrlCmd:!1,alt:!1};var k;(function(_){_[_.Blur=1]="Blur",_[_.Gesture=2]="Gesture",_[_.Other=3]="Other"})(k||(e.QuickInputHideReason=k={}));var I;(function(_){_[_.NONE=0]="NONE",_[_.FIRST=1]="FIRST",_[_.SECOND=2]="SECOND",_[_.LAST=3]="LAST"})(I||(e.ItemActivation=I={}));var E;(function(_){_[_.First=1]="First",_[_.Second=2]="Second",_[_.Last=3]="Last",_[_.Next=4]="Next",_[_.Previous=5]="Previous",_[_.NextPage=6]="NextPage",_[_.PreviousPage=7]="PreviousPage",_[_.NextSeparator=8]="NextSeparator",_[_.PreviousSeparator=9]="PreviousSeparator"})(E||(e.QuickPickFocus=E={}));var y;(function(_){_[_.Title=1]="Title",_[_.Inline=2]="Inline"})(y||(e.QuickInputButtonLocation=y={}));class m{constructor(b){this.options=b}}e.QuickPickItemScorerAccessor=m,e.quickPickItemScorerAccessor=new m,e.IQuickInputService=(0,d.createDecorator)("quickInputService")}),define(ne[272],se([1,0,5,47,175,13,14,26,6,2,16,111,30,3,66,398,28,118,12,228]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputHoverDelegate=e.InputBox=e.QuickPick=e.backButton=e.endOfQuickInputBoxContext=e.EndOfQuickInputBoxContextKey=e.endOfQuickInputBoxContextKeyValue=e.QuickInputTypeContextKey=e.quickInputTypeContextKeyValue=e.inQuickInputContext=e.InQuickInputContextKey=e.inQuickInputContextKeyValue=void 0,e.inQuickInputContextKeyValue="inQuickInput",e.InQuickInputContextKey=new l.RawContextKey(e.inQuickInputContextKeyValue,!1,(0,t.localize)(1580,"Whether keyboard focus is inside the quick input control")),e.inQuickInputContext=l.ContextKeyExpr.has(e.inQuickInputContextKeyValue),e.quickInputTypeContextKeyValue="quickInputType",e.QuickInputTypeContextKey=new l.RawContextKey(e.quickInputTypeContextKeyValue,void 0,(0,t.localize)(1581,"The type of the currently visible quick input")),e.endOfQuickInputBoxContextKeyValue="cursorAtEndOfQuickInputBox",e.EndOfQuickInputBoxContextKey=new l.RawContextKey(e.endOfQuickInputBoxContextKeyValue,!1,(0,t.localize)(1582,"Whether the cursor in the quick input is at the end of the input box")),e.endOfQuickInputBoxContext=l.ContextKeyExpr.has(e.endOfQuickInputBoxContextKeyValue),e.backButton={iconClass:o.ThemeIcon.asClassName(m.Codicon.quickInputBack),tooltip:(0,t.localize)(1583,"Back"),handle:-1};class a extends b.Disposable{static{this.noPromptMessage=(0,t.localize)(1584,"Press 'Enter' to confirm your input or 'Escape' to cancel")}constructor(h){super(),this.ui=h,this._widgetUpdated=!1,this.visible=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!1,this._leftButtons=[],this._rightButtons=[],this._inlineButtons=[],this.buttonsUpdated=!1,this._toggles=[],this.togglesUpdated=!1,this.noValidationMessage=a.noPromptMessage,this._severity=n.default.Ignore,this.onDidTriggerButtonEmitter=this._register(new _.Emitter),this.onDidHideEmitter=this._register(new _.Emitter),this.onWillHideEmitter=this._register(new _.Emitter),this.onDisposeEmitter=this._register(new _.Emitter),this.visibleDisposables=this._register(new b.DisposableStore),this.onDidHide=this.onDidHideEmitter.event}get title(){return this._title}set title(h){this._title=h,this.update()}get description(){return this._description}set description(h){this._description=h,this.update()}get step(){return this._steps}set step(h){this._steps=h,this.update()}get totalSteps(){return this._totalSteps}set totalSteps(h){this._totalSteps=h,this.update()}get enabled(){return this._enabled}set enabled(h){this._enabled=h,this.update()}get contextKey(){return this._contextKey}set contextKey(h){this._contextKey=h,this.update()}get busy(){return this._busy}set busy(h){this._busy=h,this.update()}get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(h){const v=this._ignoreFocusOut!==h&&!p.isIOS;this._ignoreFocusOut=h&&!p.isIOS,v&&this.update()}get titleButtons(){return this._leftButtons.length?[...this._leftButtons,this._rightButtons]:this._rightButtons}get buttons(){return[...this._leftButtons,...this._rightButtons,...this._inlineButtons]}set buttons(h){this._leftButtons=h.filter(v=>v===e.backButton),this._rightButtons=h.filter(v=>v!==e.backButton&&v.location!==i.QuickInputButtonLocation.Inline),this._inlineButtons=h.filter(v=>v.location===i.QuickInputButtonLocation.Inline),this.buttonsUpdated=!0,this.update()}get toggles(){return this._toggles}set toggles(h){this._toggles=h??[],this.togglesUpdated=!0,this.update()}get validationMessage(){return this._validationMessage}set validationMessage(h){this._validationMessage=h,this.update()}get severity(){return this._severity}set severity(h){this._severity=h,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.onDidTriggerButton(h=>{this.buttons.indexOf(h)!==-1&&this.onDidTriggerButtonEmitter.fire(h)})),this.ui.show(this),this.visible=!0,this._lastValidationMessage=void 0,this._lastSeverity=void 0,this.buttons.length&&(this.buttonsUpdated=!0),this.toggles.length&&(this.togglesUpdated=!0),this.update())}hide(){this.visible&&this.ui.hide()}didHide(h=i.QuickInputHideReason.Other){this.visible=!1,this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:h})}willHide(h=i.QuickInputHideReason.Other){this.onWillHideEmitter.fire({reason:h})}update(){if(!this.visible)return;const h=this.getTitle();h&&this.ui.title.textContent!==h?this.ui.title.textContent=h:!h&&this.ui.title.innerHTML!==" "&&(this.ui.title.innerText="\xA0");const v=this.getDescription();if(this.ui.description1.textContent!==v&&(this.ui.description1.textContent=v),this.ui.description2.textContent!==v&&(this.ui.description2.textContent=v),this._widgetUpdated&&(this._widgetUpdated=!1,this._widget?d.reset(this.ui.widget,this._widget):d.reset(this.ui.widget)),this.busy&&!this.busyDelay&&(this.busyDelay=new y.TimeoutTimer,this.busyDelay.setIfNotSet(()=>{this.visible&&this.ui.progressBar.infinite()},800)),!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();const S=this._leftButtons.map((T,M)=>(0,s.quickInputButtonToAction)(T,`id-${M}`,async()=>this.onDidTriggerButtonEmitter.fire(T)));this.ui.leftActionBar.push(S,{icon:!0,label:!1}),this.ui.rightActionBar.clear();const L=this._rightButtons.map((T,M)=>(0,s.quickInputButtonToAction)(T,`id-${M}`,async()=>this.onDidTriggerButtonEmitter.fire(T)));this.ui.rightActionBar.push(L,{icon:!0,label:!1}),this.ui.inlineActionBar.clear();const D=this._inlineButtons.map((T,M)=>(0,s.quickInputButtonToAction)(T,`id-${M}`,async()=>this.onDidTriggerButtonEmitter.fire(T)));this.ui.inlineActionBar.push(D,{icon:!0,label:!1})}if(this.togglesUpdated){this.togglesUpdated=!1;const S=this.toggles?.filter(L=>L instanceof I.Toggle)??[];this.ui.inputBox.toggles=S}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey);const w=this.validationMessage||this.noValidationMessage;this._lastValidationMessage!==w&&(this._lastValidationMessage=w,d.reset(this.ui.message),(0,s.renderQuickInputDescription)(w,this.ui.message,{callback:S=>{this.ui.linkOpenerDelegate(S)},disposables:this.visibleDisposables})),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}getTitle(){return this.title&&this.step?`${this.title} (${this.getSteps()})`:this.title?this.title:this.step?this.getSteps():""}getDescription(){return this.description||""}getSteps(){return this.step&&this.totalSteps?(0,t.localize)(1585,"{0}/{1}",this.step,this.totalSteps):this.step?String(this.step):""}showMessageDecoration(h){if(this.ui.inputBox.showDecoration(h),h!==n.default.Ignore){const v=this.ui.inputBox.stylesForType(h);this.ui.message.style.color=v.foreground?`${v.foreground}`:"",this.ui.message.style.backgroundColor=v.background?`${v.background}`:"",this.ui.message.style.border=v.border?`1px solid ${v.border}`:"",this.ui.message.style.marginBottom="-2px"}else this.ui.message.style.color="",this.ui.message.style.backgroundColor="",this.ui.message.style.border="",this.ui.message.style.marginBottom=""}dispose(){this.hide(),this.onDisposeEmitter.fire(),super.dispose()}}class r extends a{constructor(){super(...arguments),this._value="",this.onDidChangeValueEmitter=this._register(new _.Emitter),this.onWillAcceptEmitter=this._register(new _.Emitter),this.onDidAcceptEmitter=this._register(new _.Emitter),this.onDidCustomEmitter=this._register(new _.Emitter),this._items=[],this.itemsUpdated=!1,this._canSelectMany=!1,this._canAcceptInBackground=!1,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._keepScrollPosition=!1,this._itemActivation=i.ItemActivation.FIRST,this._activeItems=[],this.activeItemsUpdated=!1,this.activeItemsToConfirm=[],this.onDidChangeActiveEmitter=this._register(new _.Emitter),this._selectedItems=[],this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=[],this.onDidChangeSelectionEmitter=this._register(new _.Emitter),this.onDidTriggerItemButtonEmitter=this._register(new _.Emitter),this.onDidTriggerSeparatorButtonEmitter=this._register(new _.Emitter),this.valueSelectionUpdated=!0,this._ok="default",this._customButton=!1,this._focusEventBufferer=new _.EventBufferer,this.type="quickPick",this.filterValue=h=>h,this.onDidChangeValue=this.onDidChangeValueEmitter.event,this.onWillAccept=this.onWillAcceptEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event,this.onDidChangeActive=this.onDidChangeActiveEmitter.event,this.onDidChangeSelection=this.onDidChangeSelectionEmitter.event,this.onDidTriggerItemButton=this.onDidTriggerItemButtonEmitter.event,this.onDidTriggerSeparatorButton=this.onDidTriggerSeparatorButtonEmitter.event}static{this.DEFAULT_ARIA_LABEL=(0,t.localize)(1586,"Type to narrow down results.")}get quickNavigate(){return this._quickNavigate}set quickNavigate(h){this._quickNavigate=h,this.update()}get value(){return this._value}set value(h){this.doSetValue(h)}doSetValue(h,v){this._value!==h&&(this._value=h,v||this.update(),this.visible&&this.ui.list.filter(this.filterValue(this._value))&&this.trySelectFirst(),this.onDidChangeValueEmitter.fire(this._value))}set ariaLabel(h){this._ariaLabel=h,this.update()}get ariaLabel(){return this._ariaLabel}get placeholder(){return this._placeholder}set placeholder(h){this._placeholder=h,this.update()}get items(){return this._items}get scrollTop(){return this.ui.list.scrollTop}set scrollTop(h){this.ui.list.scrollTop=h}set items(h){this._items=h,this.itemsUpdated=!0,this.update()}get canSelectMany(){return this._canSelectMany}set canSelectMany(h){this._canSelectMany=h,this.update()}get canAcceptInBackground(){return this._canAcceptInBackground}set canAcceptInBackground(h){this._canAcceptInBackground=h}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(h){this._matchOnDescription=h,this.update()}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(h){this._matchOnDetail=h,this.update()}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(h){this._matchOnLabel=h,this.update()}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(h){this._matchOnLabelMode=h,this.update()}get sortByLabel(){return this._sortByLabel}set sortByLabel(h){this._sortByLabel=h,this.update()}get keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(h){this._keepScrollPosition=h}get itemActivation(){return this._itemActivation}set itemActivation(h){this._itemActivation=h}get activeItems(){return this._activeItems}set activeItems(h){this._activeItems=h,this.activeItemsUpdated=!0,this.update()}get selectedItems(){return this._selectedItems}set selectedItems(h){this._selectedItems=h,this.selectedItemsUpdated=!0,this.update()}get keyMods(){return this._quickNavigate?i.NO_KEY_MODS:this.ui.keyMods}get valueSelection(){const h=this.ui.inputBox.getSelection();if(h)return[h.start,h.end]}set valueSelection(h){this._valueSelection=h,this.valueSelectionUpdated=!0,this.update()}get customButton(){return this._customButton}set customButton(h){this._customButton=h,this.update()}get customLabel(){return this._customButtonLabel}set customLabel(h){this._customButtonLabel=h,this.update()}get customHover(){return this._customButtonHover}set customHover(h){this._customButtonHover=h,this.update()}get ok(){return this._ok}set ok(h){this._ok=h,this.update()}get hideInput(){return!!this._hideInput}set hideInput(h){this._hideInput=h,this.update()}trySelectFirst(){this.canSelectMany||this.ui.list.focus(i.QuickPickFocus.First)}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(h=>{this.doSetValue(h,!0)})),this.visibleDisposables.add(this.ui.onDidAccept(()=>{this.canSelectMany?this.ui.list.getCheckedElements().length||(this._selectedItems=[],this.onDidChangeSelectionEmitter.fire(this.selectedItems)):this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(!1)})),this.visibleDisposables.add(this.ui.onDidCustom(()=>{this.onDidCustomEmitter.fire()})),this.visibleDisposables.add(this._focusEventBufferer.wrapEvent(this.ui.list.onDidChangeFocus,(h,v)=>v)(h=>{this.activeItemsUpdated||this.activeItemsToConfirm!==this._activeItems&&(0,E.equals)(h,this._activeItems,(v,w)=>v===w)||(this._activeItems=h,this.onDidChangeActiveEmitter.fire(h))})),this.visibleDisposables.add(this.ui.list.onDidChangeSelection(({items:h,event:v})=>{if(this.canSelectMany){h.length&&this.ui.list.setSelectedElements([]);return}this.selectedItemsToConfirm!==this._selectedItems&&(0,E.equals)(h,this._selectedItems,(w,S)=>w===S)||(this._selectedItems=h,this.onDidChangeSelectionEmitter.fire(h),h.length&&this.handleAccept(d.isMouseEvent(v)&&v.button===1))})),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements(h=>{!this.canSelectMany||!this.visible||this.selectedItemsToConfirm!==this._selectedItems&&(0,E.equals)(h,this._selectedItems,(v,w)=>v===w)||(this._selectedItems=h,this.onDidChangeSelectionEmitter.fire(h))})),this.visibleDisposables.add(this.ui.list.onButtonTriggered(h=>this.onDidTriggerItemButtonEmitter.fire(h))),this.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered(h=>this.onDidTriggerSeparatorButtonEmitter.fire(h))),this.visibleDisposables.add(this.registerQuickNavigation()),this.valueSelectionUpdated=!0),super.show()}handleAccept(h){let v=!1;this.onWillAcceptEmitter.fire({veto:()=>v=!0}),v||this.onDidAcceptEmitter.fire({inBackground:h})}registerQuickNavigation(){return d.addDisposableListener(this.ui.container,d.EventType.KEY_UP,h=>{if(this.canSelectMany||!this._quickNavigate)return;const v=new k.StandardKeyboardEvent(h),w=v.keyCode;this._quickNavigate.keybindings.some(D=>{const T=D.getChords();return T.length>1?!1:T[0].shiftKey&&w===4?!(v.ctrlKey||v.altKey||v.metaKey):!!(T[0].altKey&&w===6||T[0].ctrlKey&&w===5||T[0].metaKey&&w===57)})&&(this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!1)),this._quickNavigate=void 0)})}update(){if(!this.visible)return;const h=this.keepScrollPosition?this.scrollTop:0,v=!!this.description,w={title:!!this.title||!!this.step||!!this.titleButtons.length,description:v,checkAll:this.canSelectMany&&!this._hideCheckAll,checkBox:this.canSelectMany,inputBox:!this._hideInput,progressBar:!this._hideInput||v,visibleCount:!0,count:this.canSelectMany&&!this._hideCountBadge,ok:this.ok==="default"?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage,customButton:this.customButton};this.ui.setVisibilities(w),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||"");let S=this.ariaLabel;!S&&w.inputBox&&(S=this.placeholder||r.DEFAULT_ARIA_LABEL,this.title&&(S+=` - ${this.title}`)),this.ui.list.ariaLabel!==S&&(this.ui.list.ariaLabel=S??null),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.matchOnLabelMode=this.matchOnLabelMode,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated&&(this.itemsUpdated=!1,this._focusEventBufferer.bufferEvents(()=>{switch(this.ui.list.setElements(this.items),this.ui.list.shouldLoop=!this.canSelectMany,this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),this._itemActivation){case i.ItemActivation.NONE:this._itemActivation=i.ItemActivation.FIRST;break;case i.ItemActivation.SECOND:this.ui.list.focus(i.QuickPickFocus.Second),this._itemActivation=i.ItemActivation.FIRST;break;case i.ItemActivation.LAST:this.ui.list.focus(i.QuickPickFocus.Last),this._itemActivation=i.ItemActivation.FIRST;break;default:this.trySelectFirst();break}})),this.ui.container.classList.contains("show-checkboxes")!==!!this.canSelectMany&&(this.canSelectMany?this.ui.list.clearFocus():this.trySelectFirst()),this.activeItemsUpdated&&(this.activeItemsUpdated=!1,this.activeItemsToConfirm=this._activeItems,this.ui.list.setFocusedElements(this.activeItems),this.activeItemsToConfirm===this._activeItems&&(this.activeItemsToConfirm=null)),this.selectedItemsUpdated&&(this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=this._selectedItems,this.canSelectMany?this.ui.list.setCheckedElements(this.selectedItems):this.ui.list.setSelectedElements(this.selectedItems),this.selectedItemsToConfirm===this._selectedItems&&(this.selectedItemsToConfirm=null)),this.ui.customButton.label=this.customLabel||"",this.ui.customButton.element.title=this.customHover||"",w.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(i.QuickPickFocus.First)),this.keepScrollPosition&&(this.scrollTop=h)}focus(h){this.ui.list.focus(h),this.canSelectMany&&this.ui.list.domFocus()}accept(h){h&&!this._canAcceptInBackground||this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(h??!1))}}e.QuickPick=r;class u extends a{constructor(){super(...arguments),this._value="",this.valueSelectionUpdated=!0,this._password=!1,this.onDidValueChangeEmitter=this._register(new _.Emitter),this.onDidAcceptEmitter=this._register(new _.Emitter),this.type="inputBox",this.onDidChangeValue=this.onDidValueChangeEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event}get value(){return this._value}set value(h){this._value=h||"",this.update()}get placeholder(){return this._placeholder}set placeholder(h){this._placeholder=h,this.update()}get password(){return this._password}set password(h){this._password=h,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(h=>{h!==this.value&&(this._value=h,this.onDidValueChangeEmitter.fire(h))})),this.visibleDisposables.add(this.ui.onDidAccept(()=>this.onDidAcceptEmitter.fire())),this.valueSelectionUpdated=!0),super.show()}update(){if(!this.visible)return;this.ui.container.classList.remove("hidden-input");const h={title:!!this.title||!!this.step||!!this.titleButtons.length,description:!!this.description||!!this.step,inputBox:!0,message:!0,progressBar:!0};this.ui.setVisibilities(h),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||""),this.ui.inputBox.password!==this.password&&(this.ui.inputBox.password=this.password)}}e.InputBox=u;let C=class extends c.WorkbenchHoverDelegate{constructor(h,v){super("element",!1,w=>this.getOverrideOptions(w),h,v)}getOverrideOptions(h){const v=(d.isHTMLElement(h.content)?h.content.textContent??"":typeof h.content=="string"?h.content:h.content.value).includes(` +`);return{persistence:{hideOnKeyDown:!1},appearance:{showHoverHint:v,skipFadeInAnimation:!0}}}};e.QuickInputHoverDelegate=C,e.QuickInputHoverDelegate=C=ke([ce(0,g.IConfigurationService),ce(1,c.IHoverService)],C)}),define(ne[38],se([1,0,90,19]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Registry=void 0;class I{constructor(){this.data=new Map}add(y,m){d.ok(k.isString(y)),d.ok(k.isObject(m)),d.ok(!this.data.has(y),"There is already an extension with this id"),this.data.set(y,m)}as(y){return this.data.get(y)||null}}e.Registry=new I}),define(ne[399],se([1,0,38]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LocalSelectionTransfer=e.Extensions=e.CodeDataTransfers=void 0,e.CodeDataTransfers={EDITORS:"CodeEditors",FILES:"CodeFiles"};class k{}e.Extensions={DragAndDropContribution:"workbench.contributions.dragAndDrop"},d.Registry.add(e.Extensions.DragAndDropContribution,new k);class I{static{this.INSTANCE=new I}constructor(){}static getInstance(){return I.INSTANCE}hasData(y){return y&&y===this.proto}getData(y){if(this.hasData(y))return this.data}}e.LocalSelectionTransfer=I}),define(ne[400],se([1,0,224,194,128,22,399]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.toVSDataTransfer=m,e.toExternalVSDataTransfer=p;function m(n){const o=new k.VSDataTransfer;for(const t of n.items){const i=t.type;if(t.kind==="string"){const s=new Promise(g=>t.getAsString(g));o.append(i,(0,k.createStringDataTransferItem)(s))}else if(t.kind==="file"){const s=t.getAsFile();s&&o.append(i,_(s))}}return o}function _(n){const o=n.path?E.URI.parse(n.path):void 0;return(0,k.createFileDataTransferItem)(n.name,o,async()=>new Uint8Array(await n.arrayBuffer()))}const b=Object.freeze([y.CodeDataTransfers.EDITORS,y.CodeDataTransfers.FILES,d.DataTransfers.RESOURCES,d.DataTransfers.INTERNAL_URI_LIST]);function p(n,o=!1){const t=m(n),i=t.get(d.DataTransfers.INTERNAL_URI_LIST);if(i)t.replace(I.Mimes.uriList,i);else if(o||!t.has(I.Mimes.uriList)){const s=[];for(const g of n.items){const c=g.getAsFile();if(c){const l=c.path;try{l?s.push(E.URI.file(l).toString()):s.push(E.URI.parse(c.name,!0).toString())}catch{}}}s.length&&t.replace(I.Mimes.uriList,(0,k.createStringDataTransferItem)(k.UriList.create(s)))}for(const s of b)t.delete(s);return t}}),define(ne[273],se([1,0,6,38]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Extensions=void 0,e.Extensions={JSONContribution:"base.contributions.json"};function I(m){return m.length>0&&m.charAt(m.length-1)==="#"?m.substring(0,m.length-1):m}class E{constructor(){this._onDidChangeSchema=new d.Emitter,this.schemasById={}}registerSchema(_,b){this.schemasById[I(_)]=b,this._onDidChangeSchema.fire(_)}notifySchemaChanged(_){this._onDidChangeSchema.fire(_)}}const y=new E;k.Registry.add(e.Extensions.JSONContribution,y)}),define(ne[109],se([1,0,13,6,19,3,28,273,38]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.OVERRIDE_PROPERTY_REGEX=e.OVERRIDE_PROPERTY_PATTERN=e.resourceLanguageSettingsSchemaId=e.resourceSettings=e.windowSettings=e.machineOverridableSettings=e.machineSettings=e.applicationSettings=e.allSettings=e.Extensions=void 0,e.overrideIdentifiersFromKey=t,e.getDefaultValue=i,e.validateProperty=g,e.Extensions={Configuration:"base.contributions.configuration"},e.allSettings={properties:{},patternProperties:{}},e.applicationSettings={properties:{},patternProperties:{}},e.machineSettings={properties:{},patternProperties:{}},e.machineOverridableSettings={properties:{},patternProperties:{}},e.windowSettings={properties:{},patternProperties:{}},e.resourceSettings={properties:{},patternProperties:{}},e.resourceLanguageSettingsSchemaId="vscode://schemas/settings/resourceLanguage";const b=_.Registry.as(m.Extensions.JSONContribution);class p{constructor(){this.registeredConfigurationDefaults=[],this.overrideIdentifiers=new Set,this._onDidSchemaChange=new k.Emitter,this._onDidUpdateConfiguration=new k.Emitter,this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:E.localize(1503,"Default Language Configuration Overrides"),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},b.registerSchema(e.resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(l,a=!0){this.registerConfigurations([l],a)}registerConfigurations(l,a=!0){const r=new Set;this.doRegisterConfigurations(l,a,r),b.registerSchema(e.resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:r})}registerDefaultConfigurations(l){const a=new Set;this.doRegisterDefaultConfigurations(l,a),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:a,defaultsOverrides:!0})}doRegisterDefaultConfigurations(l,a){this.registeredConfigurationDefaults.push(...l);const r=[];for(const{overrides:u,source:C}of l)for(const f in u){a.add(f);const h=this.configurationDefaultsOverrides.get(f)??this.configurationDefaultsOverrides.set(f,{configurationDefaultOverrides:[]}).get(f),v=u[f];if(h.configurationDefaultOverrides.push({value:v,source:C}),e.OVERRIDE_PROPERTY_REGEX.test(f)){const w=this.mergeDefaultConfigurationsForOverrideIdentifier(f,v,C,h.configurationDefaultOverrideValue);if(!w)continue;h.configurationDefaultOverrideValue=w,this.updateDefaultOverrideProperty(f,w,C),r.push(...t(f))}else{const w=this.mergeDefaultConfigurationsForConfigurationProperty(f,v,C,h.configurationDefaultOverrideValue);if(!w)continue;h.configurationDefaultOverrideValue=w;const S=this.configurationProperties[f];S&&(this.updatePropertyDefaultValue(f,S),this.updateSchema(f,S))}}this.doRegisterOverrideIdentifiers(r)}updateDefaultOverrideProperty(l,a,r){const u={type:"object",default:a.value,description:E.localize(1504,"Configure settings to be overridden for the {0} language.",(0,y.getLanguageTagSettingPlainKey)(l)),$ref:e.resourceLanguageSettingsSchemaId,defaultDefaultValue:a.value,source:r,defaultValueSource:r};this.configurationProperties[l]=u,this.defaultLanguageConfigurationOverridesNode.properties[l]=u}mergeDefaultConfigurationsForOverrideIdentifier(l,a,r,u){const C=u?.value||{},f=u?.source??new Map;if(!(f instanceof Map)){console.error("objectConfigurationSources is not a Map");return}for(const h of Object.keys(a)){const v=a[h];if(I.isObject(v)&&(I.isUndefined(C[h])||I.isObject(C[h]))){if(C[h]={...C[h]??{},...v},r)for(const S in v)f.set(`${h}.${S}`,r)}else C[h]=v,r?f.set(h,r):f.delete(h)}return{value:C,source:f}}mergeDefaultConfigurationsForConfigurationProperty(l,a,r,u){const C=this.configurationProperties[l],f=u?.value??C?.defaultDefaultValue;let h=r;if(I.isObject(a)&&(C!==void 0&&C.type==="object"||C===void 0&&(I.isUndefined(f)||I.isObject(f)))){if(h=u?.source??new Map,!(h instanceof Map)){console.error("defaultValueSource is not a Map");return}for(const w in a)r&&h.set(`${l}.${w}`,r);a={...I.isObject(f)?f:{},...a}}return{value:a,source:h}}registerOverrideIdentifiers(l){this.doRegisterOverrideIdentifiers(l),this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(l){for(const a of l)this.overrideIdentifiers.add(a);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(l,a,r){l.forEach(u=>{this.validateAndRegisterProperties(u,a,u.extensionInfo,u.restrictedProperties,void 0,r),this.configurationContributors.push(u),this.registerJSONConfiguration(u)})}validateAndRegisterProperties(l,a=!0,r,u,C=3,f){C=I.isUndefinedOrNull(l.scope)?C:l.scope;const h=l.properties;if(h)for(const w in h){const S=h[w];if(a&&g(w,S)){delete h[w];continue}if(S.source=r,S.defaultDefaultValue=h[w].default,this.updatePropertyDefaultValue(w,S),e.OVERRIDE_PROPERTY_REGEX.test(w)?S.scope=void 0:(S.scope=I.isUndefinedOrNull(S.scope)?C:S.scope,S.restricted=I.isUndefinedOrNull(S.restricted)?!!u?.includes(w):S.restricted),h[w].hasOwnProperty("included")&&!h[w].included){this.excludedConfigurationProperties[w]=h[w],delete h[w];continue}else this.configurationProperties[w]=h[w],h[w].policy?.name&&this.policyConfigurations.set(h[w].policy.name,w);!h[w].deprecationMessage&&h[w].markdownDeprecationMessage&&(h[w].deprecationMessage=h[w].markdownDeprecationMessage),f.add(w)}const v=l.allOf;if(v)for(const w of v)this.validateAndRegisterProperties(w,a,r,u,C,f)}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}registerJSONConfiguration(l){const a=r=>{const u=r.properties;if(u)for(const f in u)this.updateSchema(f,u[f]);r.allOf?.forEach(a)};a(l)}updateSchema(l,a){switch(e.allSettings.properties[l]=a,a.scope){case 1:e.applicationSettings.properties[l]=a;break;case 2:e.machineSettings.properties[l]=a;break;case 6:e.machineOverridableSettings.properties[l]=a;break;case 3:e.windowSettings.properties[l]=a;break;case 4:e.resourceSettings.properties[l]=a;break;case 5:e.resourceSettings.properties[l]=a,this.resourceLanguageSettingsSchema.properties[l]=a;break}}updateOverridePropertyPatternKey(){for(const l of this.overrideIdentifiers.values()){const a=`[${l}]`,r={type:"object",description:E.localize(1505,"Configure editor settings to be overridden for a language."),errorMessage:E.localize(1506,"This setting does not support per-language configuration."),$ref:e.resourceLanguageSettingsSchemaId};this.updatePropertyDefaultValue(a,r),e.allSettings.properties[a]=r,e.applicationSettings.properties[a]=r,e.machineSettings.properties[a]=r,e.machineOverridableSettings.properties[a]=r,e.windowSettings.properties[a]=r,e.resourceSettings.properties[a]=r}}registerOverridePropertyPatternKey(){const l={type:"object",description:E.localize(1507,"Configure editor settings to be overridden for a language."),errorMessage:E.localize(1508,"This setting does not support per-language configuration."),$ref:e.resourceLanguageSettingsSchemaId};e.allSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=l,e.applicationSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=l,e.machineSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=l,e.machineOverridableSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=l,e.windowSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=l,e.resourceSettings.patternProperties[e.OVERRIDE_PROPERTY_PATTERN]=l,this._onDidSchemaChange.fire()}updatePropertyDefaultValue(l,a){const r=this.configurationDefaultsOverrides.get(l)?.configurationDefaultOverrideValue;let u,C;r&&(!a.disallowConfigurationDefault||!r.source)&&(u=r.value,C=r.source),I.isUndefined(u)&&(u=a.defaultDefaultValue,C=void 0),I.isUndefined(u)&&(u=i(a.type)),a.default=u,a.defaultValueSource=C}}const n="\\[([^\\]]+)\\]",o=new RegExp(n,"g");e.OVERRIDE_PROPERTY_PATTERN=`^(${n})+$`,e.OVERRIDE_PROPERTY_REGEX=new RegExp(e.OVERRIDE_PROPERTY_PATTERN);function t(c){const l=[];if(e.OVERRIDE_PROPERTY_REGEX.test(c)){let a=o.exec(c);for(;a?.length;){const r=a[1].trim();r&&l.push(r),a=o.exec(c)}}return(0,d.distinct)(l)}function i(c){switch(Array.isArray(c)?c[0]:c){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}const s=new p;_.Registry.add(e.Extensions.Configuration,s);function g(c,l){return c.trim()?e.OVERRIDE_PROPERTY_REGEX.test(c)?E.localize(1510,"Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",c):s.getConfigurationProperties()[c]!==void 0?E.localize(1511,"Cannot register '{0}'. This property is already registered.",c):l.policy?.name&&s.getPolicyConfigurations().get(l.policy?.name)!==void 0?E.localize(1512,"Cannot register '{0}'. The associated policy {1} is already registered with {2}.",c,l.policy?.name,s.getPolicyConfigurations().get(l.policy?.name)):null:E.localize(1509,"Cannot register an empty property")}}),define(ne[274],se([1,0,308,37,197,3,109,38]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.editorConfigurationBaseNode=void 0,e.isEditorConfigurationKey=o,e.isDiffEditorConfigurationKey=t,e.editorConfigurationBaseNode=Object.freeze({id:"editor",order:5,type:"object",title:E.localize(133,"Editor"),scope:5});const _={...e.editorConfigurationBaseNode,properties:{"editor.tabSize":{type:"number",default:I.EDITOR_MODEL_DEFAULTS.tabSize,minimum:1,markdownDescription:E.localize(134,"The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.indentSize":{anyOf:[{type:"string",enum:["tabSize"]},{type:"number",minimum:1}],default:"tabSize",markdownDescription:E.localize(135,'The number of spaces used for indentation or `"tabSize"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.')},"editor.insertSpaces":{type:"boolean",default:I.EDITOR_MODEL_DEFAULTS.insertSpaces,markdownDescription:E.localize(136,"Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.detectIndentation":{type:"boolean",default:I.EDITOR_MODEL_DEFAULTS.detectIndentation,markdownDescription:E.localize(137,"Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.","`#editor.tabSize#`","`#editor.insertSpaces#`")},"editor.trimAutoWhitespace":{type:"boolean",default:I.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,description:E.localize(138,"Remove trailing auto inserted whitespace.")},"editor.largeFileOptimizations":{type:"boolean",default:I.EDITOR_MODEL_DEFAULTS.largeFileOptimizations,description:E.localize(139,"Special handling for large files to disable certain memory intensive features.")},"editor.wordBasedSuggestions":{enum:["off","currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[E.localize(140,"Turn off Word Based Suggestions."),E.localize(141,"Only suggest words from the active document."),E.localize(142,"Suggest words from all open documents of the same language."),E.localize(143,"Suggest words from all open documents.")],description:E.localize(144,"Controls whether completions should be computed based on words in the document and from which documents they are computed.")},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[E.localize(145,"Semantic highlighting enabled for all color themes."),E.localize(146,"Semantic highlighting disabled for all color themes."),E.localize(147,"Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.")],default:"configuredByTheme",description:E.localize(148,"Controls whether the semanticHighlighting is shown for the languages that support it.")},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:E.localize(149,"Keep peek editors open even when double-clicking their content or when hitting `Escape`.")},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:E.localize(150,"Lines above this length will not be tokenized for performance reasons")},"editor.experimental.asyncTokenization":{type:"boolean",default:!0,description:E.localize(151,"Controls whether the tokenization should happen asynchronously on a web worker."),tags:["experimental"]},"editor.experimental.asyncTokenizationLogging":{type:"boolean",default:!1,description:E.localize(152,"Controls whether async tokenization should be logged. For debugging only.")},"editor.experimental.asyncTokenizationVerification":{type:"boolean",default:!1,description:E.localize(153,"Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only."),tags:["experimental"]},"editor.experimental.treeSitterTelemetry":{type:"boolean",default:!1,markdownDescription:E.localize(154,"Controls whether tree sitter parsing should be turned on and telemetry collected. Setting `editor.experimental.preferTreeSitter` for specific languages will take precedence."),tags:["experimental"]},"editor.language.brackets":{type:["array","null"],default:null,description:E.localize(155,"Defines the bracket symbols that increase or decrease the indentation."),items:{type:"array",items:[{type:"string",description:E.localize(156,"The opening bracket character or string sequence.")},{type:"string",description:E.localize(157,"The closing bracket character or string sequence.")}]}},"editor.language.colorizedBracketPairs":{type:["array","null"],default:null,description:E.localize(158,"Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled."),items:{type:"array",items:[{type:"string",description:E.localize(159,"The opening bracket character or string sequence.")},{type:"string",description:E.localize(160,"The closing bracket character or string sequence.")}]}},"diffEditor.maxComputationTime":{type:"number",default:d.diffEditorDefaultOptions.maxComputationTime,description:E.localize(161,"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.")},"diffEditor.maxFileSize":{type:"number",default:d.diffEditorDefaultOptions.maxFileSize,description:E.localize(162,"Maximum file size in MB for which to compute diffs. Use 0 for no limit.")},"diffEditor.renderSideBySide":{type:"boolean",default:d.diffEditorDefaultOptions.renderSideBySide,description:E.localize(163,"Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.renderSideBySideInlineBreakpoint":{type:"number",default:d.diffEditorDefaultOptions.renderSideBySideInlineBreakpoint,description:E.localize(164,"If the diff editor width is smaller than this value, the inline view is used.")},"diffEditor.useInlineViewWhenSpaceIsLimited":{type:"boolean",default:d.diffEditorDefaultOptions.useInlineViewWhenSpaceIsLimited,description:E.localize(165,"If enabled and the editor width is too small, the inline view is used.")},"diffEditor.renderMarginRevertIcon":{type:"boolean",default:d.diffEditorDefaultOptions.renderMarginRevertIcon,description:E.localize(166,"When enabled, the diff editor shows arrows in its glyph margin to revert changes.")},"diffEditor.renderGutterMenu":{type:"boolean",default:d.diffEditorDefaultOptions.renderGutterMenu,description:E.localize(167,"When enabled, the diff editor shows a special gutter for revert and stage actions.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:d.diffEditorDefaultOptions.ignoreTrimWhitespace,description:E.localize(168,"When enabled, the diff editor ignores changes in leading or trailing whitespace.")},"diffEditor.renderIndicators":{type:"boolean",default:d.diffEditorDefaultOptions.renderIndicators,description:E.localize(169,"Controls whether the diff editor shows +/- indicators for added/removed changes.")},"diffEditor.codeLens":{type:"boolean",default:d.diffEditorDefaultOptions.diffCodeLens,description:E.localize(170,"Controls whether the editor shows CodeLens.")},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:d.diffEditorDefaultOptions.diffWordWrap,markdownEnumDescriptions:[E.localize(171,"Lines will never wrap."),E.localize(172,"Lines will wrap at the viewport width."),E.localize(173,"Lines will wrap according to the {0} setting.","`#editor.wordWrap#`")]},"diffEditor.diffAlgorithm":{type:"string",enum:["legacy","advanced"],default:d.diffEditorDefaultOptions.diffAlgorithm,markdownEnumDescriptions:[E.localize(174,"Uses the legacy diffing algorithm."),E.localize(175,"Uses the advanced diffing algorithm.")],tags:["experimental"]},"diffEditor.hideUnchangedRegions.enabled":{type:"boolean",default:d.diffEditorDefaultOptions.hideUnchangedRegions.enabled,markdownDescription:E.localize(176,"Controls whether the diff editor shows unchanged regions.")},"diffEditor.hideUnchangedRegions.revealLineCount":{type:"integer",default:d.diffEditorDefaultOptions.hideUnchangedRegions.revealLineCount,markdownDescription:E.localize(177,"Controls how many lines are used for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.minimumLineCount":{type:"integer",default:d.diffEditorDefaultOptions.hideUnchangedRegions.minimumLineCount,markdownDescription:E.localize(178,"Controls how many lines are used as a minimum for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.contextLineCount":{type:"integer",default:d.diffEditorDefaultOptions.hideUnchangedRegions.contextLineCount,markdownDescription:E.localize(179,"Controls how many lines are used as context when comparing unchanged regions."),minimum:1},"diffEditor.experimental.showMoves":{type:"boolean",default:d.diffEditorDefaultOptions.experimental.showMoves,markdownDescription:E.localize(180,"Controls whether the diff editor should show detected code moves.")},"diffEditor.experimental.showEmptyDecorations":{type:"boolean",default:d.diffEditorDefaultOptions.experimental.showEmptyDecorations,description:E.localize(181,"Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.")},"diffEditor.experimental.useTrueInlineView":{type:"boolean",default:d.diffEditorDefaultOptions.experimental.useTrueInlineView,description:E.localize(182,"If enabled and the editor uses the inline view, word changes are rendered inline.")}}};function b(s){return typeof s.type<"u"||typeof s.anyOf<"u"}for(const s of k.editorOptionsRegistry){const g=s.schema;if(typeof g<"u")if(b(g))_.properties[`editor.${s.name}`]=g;else for(const c in g)Object.hasOwnProperty.call(g,c)&&(_.properties[c]=g[c])}let p=null;function n(){return p===null&&(p=Object.create(null),Object.keys(_.properties).forEach(s=>{p[s]=!0})),p}function o(s){return n()[`editor.${s}`]||!1}function t(s){return n()[`diffEditor.${s}`]||!1}m.Registry.as(y.Extensions.Configuration).registerConfiguration(_)}),define(ne[70],se([1,0,3,6,38,128,109]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PLAINTEXT_EXTENSION=e.PLAINTEXT_LANGUAGE_ID=e.ModesRegistry=e.EditorModesRegistry=e.Extensions=void 0,e.Extensions={ModesRegistry:"editor.modesRegistry"};class m{constructor(){this._onDidChangeLanguages=new k.Emitter,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[]}registerLanguage(b){return this._languages.push(b),this._onDidChangeLanguages.fire(void 0),{dispose:()=>{for(let p=0,n=this._languages.length;p{}};const r=new y.DisposableStore,u=r.add((0,d.renderMarkdown)(c,{...this._getRenderOptions(c,r),...l},a));return u.element.classList.add("rendered-markdown"),{element:u.element,dispose:()=>r.dispose()}}_getRenderOptions(c,l){return{codeBlockRenderer:async(a,r)=>{let u;a?u=this._languageService.getLanguageIdByLanguageName(a):this._options.editor&&(u=this._options.editor.getModel()?.getLanguageId()),u||(u=b.PLAINTEXT_LANGUAGE_ID);const C=await(0,p.tokenizeToString)(this._languageService,r,u),f=document.createElement("span");if(f.innerHTML=o._ttpTokenizer?.createHTML(C)??C,this._options.editor){const h=this._options.editor.getOption(50);(0,m.applyFontInfo)(f,h)}else this._options.codeBlockFontFamily&&(f.style.fontFamily=this._options.codeBlockFontFamily);return this._options.codeBlockFontSize!==void 0&&(f.style.fontSize=this._options.codeBlockFontSize),f},asyncRenderCallback:()=>this._onDidRenderAsync.fire(),actionHandler:{callback:a=>i(this._openerService,a,c.isTrusted),disposables:l}}}};e.MarkdownRenderer=t,e.MarkdownRenderer=t=o=ke([ce(1,_.ILanguageService),ce(2,n.IOpenerService)],t);async function i(g,c,l){try{return await g.open(c,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:s(l)})}catch(a){return(0,I.onUnexpectedError)(a),!1}}function s(g){return g===!0?!0:g&&Array.isArray(g.enabledCommands)?g.enabledCommands:!1}}),define(ne[705],se([1,0,2,6,5,31,28,37,174,85,59,7,120,57,3,16,61,46,480]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HoverWidget=void 0;const l=I.$;let a=class extends b.Widget{get _targetWindow(){return I.getWindow(this._target.targetElements[0])}get _targetDocumentElement(){return I.getWindow(this._target.targetElements[0]).document.documentElement}get isDisposed(){return this._isDisposed}get isMouseIn(){return this._lockMouseTracker.isMouseIn}get domNode(){return this._hover.containerDomNode}get onDispose(){return this._onDispose.event}get onRequestLayout(){return this._onRequestLayout.event}get anchor(){return this._hoverPosition===2?0:1}get x(){return this._x}get y(){return this._y}get isLocked(){return this._isLocked}set isLocked(f){this._isLocked!==f&&(this._isLocked=f,this._hoverContainer.classList.toggle("locked",this._isLocked))}constructor(f,h,v,w,S,L){super(),this._keybindingService=h,this._configurationService=v,this._openerService=w,this._instantiationService=S,this._accessibilityService=L,this._messageListeners=new d.DisposableStore,this._isDisposed=!1,this._forcePosition=!1,this._x=0,this._y=0,this._isLocked=!1,this._enableFocusTraps=!1,this._addedFocusTrap=!1,this._onDispose=this._register(new k.Emitter),this._onRequestLayout=this._register(new k.Emitter),this._linkHandler=f.linkHandler||(N=>(0,o.openLinkFromMarkdown)(this._openerService,N,(0,t.isMarkdownString)(f.content)?f.content.isTrusted:void 0)),this._target="targetElements"in f.target?f.target:new u(f.target),this._hoverPointer=f.appearance?.showPointer?l("div.workbench-hover-pointer"):void 0,this._hover=this._register(new _.HoverWidget),this._hover.containerDomNode.classList.add("workbench-hover","fadeIn"),f.appearance?.compact&&this._hover.containerDomNode.classList.add("workbench-hover","compact"),f.appearance?.skipFadeInAnimation&&this._hover.containerDomNode.classList.add("skip-fade-in"),f.additionalClasses&&this._hover.containerDomNode.classList.add(...f.additionalClasses),f.position?.forcePosition&&(this._forcePosition=!0),f.trapFocus&&(this._enableFocusTraps=!0),this._hoverPosition=f.position?.hoverPosition??3,this.onmousedown(this._hover.containerDomNode,N=>N.stopPropagation()),this.onkeydown(this._hover.containerDomNode,N=>{N.equals(9)&&this.dispose()}),this._register(I.addDisposableListener(this._targetWindow,"blur",()=>this.dispose()));const D=l("div.hover-row.markdown-hover"),T=l("div.hover-contents");if(typeof f.content=="string")T.textContent=f.content,T.style.whiteSpace="pre-wrap";else if(I.isHTMLElement(f.content))T.appendChild(f.content),T.classList.add("html-hover-contents");else{const N=f.content,O=this._instantiationService.createInstance(o.MarkdownRenderer,{codeBlockFontFamily:this._configurationService.getValue("editor").fontFamily||m.EDITOR_FONT_DEFAULTS.fontFamily}),{element:F}=O.render(N,{actionHandler:{callback:x=>this._linkHandler(x),disposables:this._messageListeners},asyncRenderCallback:()=>{T.classList.add("code-hover-contents"),this.layout(),this._onRequestLayout.fire()}});T.appendChild(F)}if(D.appendChild(T),this._hover.contentsDomNode.appendChild(D),f.actions&&f.actions.length>0){const N=l("div.hover-row.status-bar"),O=l("div.actions");f.actions.forEach(F=>{const x=this._keybindingService.lookupKeybinding(F.commandId),W=x?x.getLabel():null;_.HoverAction.render(O,{label:F.label,commandId:F.commandId,run:V=>{F.run(V),this.dispose()},iconClass:F.iconClass},W)}),N.appendChild(O),this._hover.containerDomNode.appendChild(N)}this._hoverContainer=l("div.workbench-hover-container"),this._hoverPointer&&this._hoverContainer.appendChild(this._hoverPointer),this._hoverContainer.appendChild(this._hover.containerDomNode);let M;if(f.actions&&f.actions.length>0?M=!1:f.persistence?.hideOnHover===void 0?M=typeof f.content=="string"||(0,t.isMarkdownString)(f.content)&&!f.content.value.includes("](")&&!f.content.value.includes(""):M=f.persistence.hideOnHover,f.appearance?.showHoverHint){const N=l("div.hover-row.status-bar"),O=l("div.info");O.textContent=(0,i.localize)(68,"Hold {0} key to mouse over",s.isMacintosh?"Option":"Alt"),N.appendChild(O),this._hover.containerDomNode.appendChild(N)}const A=[...this._target.targetElements];M||A.push(this._hoverContainer);const P=this._register(new r(A));if(this._register(P.onMouseOut(()=>{this._isLocked||this.dispose()})),M){const N=[...this._target.targetElements,this._hoverContainer];this._lockMouseTracker=this._register(new r(N)),this._register(this._lockMouseTracker.onMouseOut(()=>{this._isLocked||this.dispose()}))}else this._lockMouseTracker=P}addFocusTrap(){if(!this._enableFocusTraps||this._addedFocusTrap)return;this._addedFocusTrap=!0;const f=this._hover.containerDomNode,h=this.findLastFocusableChild(this._hover.containerDomNode);if(h){const v=I.prepend(this._hoverContainer,l("div")),w=I.append(this._hoverContainer,l("div"));v.tabIndex=0,w.tabIndex=0,this._register(I.addDisposableListener(w,"focus",S=>{f.focus(),S.preventDefault()})),this._register(I.addDisposableListener(v,"focus",S=>{h.focus(),S.preventDefault()}))}}findLastFocusableChild(f){if(f.hasChildNodes())for(let h=0;h=0)return S}const w=this.findLastFocusableChild(v);if(w)return w}}render(f){f.appendChild(this._hoverContainer);const v=this._hoverContainer.contains(this._hoverContainer.ownerDocument.activeElement)&&(0,_.getHoverAccessibleViewHint)(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),this._keybindingService.lookupKeybinding("editor.action.accessibleView")?.getAriaLabel());v&&(0,c.status)(v),this.layout(),this.addFocusTrap()}layout(){this._hover.containerDomNode.classList.remove("right-aligned"),this._hover.contentsDomNode.style.maxHeight="";const f=A=>{const P=I.getDomNodeZoomLevel(A),N=A.getBoundingClientRect();return{top:N.top*P,bottom:N.bottom*P,right:N.right*P,left:N.left*P}},h=this._target.targetElements.map(A=>f(A)),{top:v,right:w,bottom:S,left:L}=h[0],D=w-L,T=S-v,M={top:v,right:w,bottom:S,left:L,width:D,height:T,center:{x:L+D/2,y:v+T/2}};if(this.adjustHorizontalHoverPosition(M),this.adjustVerticalHoverPosition(M),this.adjustHoverMaxHeight(M),this._hoverContainer.style.padding="",this._hoverContainer.style.margin="",this._hoverPointer){switch(this._hoverPosition){case 1:M.left+=3,M.right+=3,this._hoverContainer.style.paddingLeft="3px",this._hoverContainer.style.marginLeft="-3px";break;case 0:M.left-=3,M.right-=3,this._hoverContainer.style.paddingRight="3px",this._hoverContainer.style.marginRight="-3px";break;case 2:M.top+=3,M.bottom+=3,this._hoverContainer.style.paddingTop="3px",this._hoverContainer.style.marginTop="-3px";break;case 3:M.top-=3,M.bottom-=3,this._hoverContainer.style.paddingBottom="3px",this._hoverContainer.style.marginBottom="-3px";break}M.center.x=M.left+D/2,M.center.y=M.top+T/2}this.computeXCordinate(M),this.computeYCordinate(M),this._hoverPointer&&(this._hoverPointer.classList.remove("top"),this._hoverPointer.classList.remove("left"),this._hoverPointer.classList.remove("right"),this._hoverPointer.classList.remove("bottom"),this.setHoverPointerPosition(M)),this._hover.onContentsChanged()}computeXCordinate(f){const h=this._hover.containerDomNode.clientWidth+2;this._target.x!==void 0?this._x=this._target.x:this._hoverPosition===1?this._x=f.right:this._hoverPosition===0?this._x=f.left-h:(this._hoverPointer?this._x=f.center.x-this._hover.containerDomNode.clientWidth/2:this._x=f.left,this._x+h>=this._targetDocumentElement.clientWidth&&(this._hover.containerDomNode.classList.add("right-aligned"),this._x=Math.max(this._targetDocumentElement.clientWidth-h-2,this._targetDocumentElement.clientLeft))),this._xthis._targetWindow.innerHeight&&(this._y=f.bottom)}adjustHorizontalHoverPosition(f){if(this._target.x!==void 0)return;const h=this._hoverPointer?3:0;if(this._forcePosition){const v=h+2;this._hoverPosition===1?this._hover.containerDomNode.style.maxWidth=`${this._targetDocumentElement.clientWidth-f.right-v}px`:this._hoverPosition===0&&(this._hover.containerDomNode.style.maxWidth=`${f.left-v}px`);return}this._hoverPosition===1?this._targetDocumentElement.clientWidth-f.right=this._hover.containerDomNode.clientWidth+h?this._hoverPosition=0:this._hoverPosition=2):this._hoverPosition===0&&(f.left=this._hover.containerDomNode.clientWidth+h?this._hoverPosition=1:this._hoverPosition=2),f.left-this._hover.containerDomNode.clientWidth-h<=this._targetDocumentElement.clientLeft&&(this._hoverPosition=1))}adjustVerticalHoverPosition(f){if(this._target.y!==void 0||this._forcePosition)return;const h=this._hoverPointer?3:0;this._hoverPosition===3?f.top-this._hover.containerDomNode.clientHeight-h<0&&(this._hoverPosition=2):this._hoverPosition===2&&f.bottom+this._hover.containerDomNode.clientHeight+h>this._targetWindow.innerHeight&&(this._hoverPosition=3)}adjustHoverMaxHeight(f){let h=this._targetWindow.innerHeight/2;if(this._forcePosition){const v=(this._hoverPointer?3:0)+2;this._hoverPosition===3?h=Math.min(h,f.top-v):this._hoverPosition===2&&(h=Math.min(h,this._targetWindow.innerHeight-f.bottom-v))}if(this._hover.containerDomNode.style.maxHeight=`${h}px`,this._hover.contentsDomNode.clientHeightf.height?this._hoverPointer.style.top=`${f.center.y-(this._y-h)-3}px`:this._hoverPointer.style.top=`${Math.round(h/2)-3}px`;break}case 3:case 2:{this._hoverPointer.classList.add(this._hoverPosition===3?"bottom":"top");const h=this._hover.containerDomNode.clientWidth;let v=Math.round(h/2)-3;const w=this._x+v;(wf.right)&&(v=f.center.x-this._x-3),this._hoverPointer.style.left=`${v}px`;break}}}focus(){this._hover.containerDomNode.focus()}dispose(){this._isDisposed||(this._onDispose.fire(),this._hoverContainer.remove(),this._messageListeners.dispose(),this._target.dispose(),super.dispose()),this._isDisposed=!0}};e.HoverWidget=a,e.HoverWidget=a=ke([ce(1,E.IKeybindingService),ce(2,y.IConfigurationService),ce(3,p.IOpenerService),ce(4,n.IInstantiationService),ce(5,g.IAccessibilityService)],a);class r extends b.Widget{get onMouseOut(){return this._onMouseOut.event}get isMouseIn(){return this._isMouseIn}constructor(f){super(),this._elements=f,this._isMouseIn=!0,this._onMouseOut=this._register(new k.Emitter),this._elements.forEach(h=>this.onmouseover(h,()=>this._onTargetMouseOver(h))),this._elements.forEach(h=>this.onmouseleave(h,()=>this._onTargetMouseLeave(h)))}_onTargetMouseOver(f){this._isMouseIn=!0,this._clearEvaluateMouseStateTimeout(f)}_onTargetMouseLeave(f){this._isMouseIn=!1,this._evaluateMouseState(f)}_evaluateMouseState(f){this._clearEvaluateMouseStateTimeout(f),this._mouseTimeout=I.getWindow(f).setTimeout(()=>this._fireIfMouseOutside(),0)}_clearEvaluateMouseStateTimeout(f){this._mouseTimeout&&(I.getWindow(f).clearTimeout(this._mouseTimeout),this._mouseTimeout=void 0)}_fireIfMouseOutside(){this._isMouseIn||this._onMouseOut.fire()}}class u{constructor(f){this._element=f,this.targetElements=[this._element]}dispose(){}}}),define(ne[36],se([1,0,6,2,11,147,131,568,659,569,571,208,7,28,43,49,70,660]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ResolvedLanguageConfiguration=e.LanguageConfigurationRegistry=e.LanguageConfigurationChangeEvent=e.LanguageConfigurationService=e.ILanguageConfigurationService=e.LanguageConfigurationServiceChangeEvent=void 0,e.getIndentationAtPosition=h;class l{constructor(A){this.languageId=A}affects(A){return this.languageId?this.languageId===A:!0}}e.LanguageConfigurationServiceChangeEvent=l,e.ILanguageConfigurationService=(0,o.createDecorator)("languageConfigurationService");let a=class extends k.Disposable{constructor(A,P){super(),this.configurationService=A,this.languageService=P,this._registry=this._register(new D),this.onDidChangeEmitter=this._register(new d.Emitter),this.onDidChange=this.onDidChangeEmitter.event,this.configurations=new Map;const N=new Set(Object.values(u));this._register(this.configurationService.onDidChangeConfiguration(O=>{const F=O.change.keys.some(W=>N.has(W)),x=O.change.overrides.filter(([W,V])=>V.some(q=>N.has(q))).map(([W])=>W);if(F)this.configurations.clear(),this.onDidChangeEmitter.fire(new l(void 0));else for(const W of x)this.languageService.isRegisteredLanguageId(W)&&(this.configurations.delete(W),this.onDidChangeEmitter.fire(new l(W)))})),this._register(this._registry.onDidChange(O=>{this.configurations.delete(O.languageId),this.onDidChangeEmitter.fire(new l(O.languageId))}))}register(A,P,N){return this._registry.register(A,P,N)}getLanguageConfiguration(A){let P=this.configurations.get(A);return P||(P=r(A,this._registry,this.configurationService,this.languageService),this.configurations.set(A,P)),P}};e.LanguageConfigurationService=a,e.LanguageConfigurationService=a=ke([ce(0,t.IConfigurationService),ce(1,i.ILanguageService)],a);function r(M,A,P,N){let O=A.getLanguageConfiguration(M);if(!O){if(!N.isRegisteredLanguageId(M))return new T(M,{});O=new T(M,{})}const F=C(O.languageId,P),x=w([O.underlyingConfig,F]);return new T(O.languageId,x)}const u={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};function C(M,A){const P=A.getValue(u.brackets,{overrideIdentifier:M}),N=A.getValue(u.colorizedBracketPairs,{overrideIdentifier:M});return{brackets:f(P),colorizedBracketPairs:f(N)}}function f(M){if(Array.isArray(M))return M.map(A=>{if(!(!Array.isArray(A)||A.length!==2))return[A[0],A[1]]}).filter(A=>!!A)}function h(M,A,P){const N=M.getLineContent(A);let O=I.getLeadingWhitespace(N);return O.length>P-1&&(O=O.substring(0,P-1)),O}class v{constructor(A){this.languageId=A,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(A,P){const N=new S(A,P,++this._order);return this._entries.push(N),this._resolved=null,(0,k.toDisposable)(()=>{for(let O=0;OA.configuration)))}}function w(M){let A={comments:void 0,brackets:void 0,wordPattern:void 0,indentationRules:void 0,onEnterRules:void 0,autoClosingPairs:void 0,surroundingPairs:void 0,autoCloseBefore:void 0,folding:void 0,colorizedBracketPairs:void 0,__electricCharacterSupport:void 0};for(const P of M)A={comments:P.comments||A.comments,brackets:P.brackets||A.brackets,wordPattern:P.wordPattern||A.wordPattern,indentationRules:P.indentationRules||A.indentationRules,onEnterRules:P.onEnterRules||A.onEnterRules,autoClosingPairs:P.autoClosingPairs||A.autoClosingPairs,surroundingPairs:P.surroundingPairs||A.surroundingPairs,autoCloseBefore:P.autoCloseBefore||A.autoCloseBefore,folding:P.folding||A.folding,colorizedBracketPairs:P.colorizedBracketPairs||A.colorizedBracketPairs,__electricCharacterSupport:P.__electricCharacterSupport||A.__electricCharacterSupport};return A}class S{constructor(A,P,N){this.configuration=A,this.priority=P,this.order=N}static cmp(A,P){return A.priority===P.priority?A.order-P.order:A.priority-P.priority}}class L{constructor(A){this.languageId=A}}e.LanguageConfigurationChangeEvent=L;class D extends k.Disposable{constructor(){super(),this._entries=new Map,this._onDidChange=this._register(new d.Emitter),this.onDidChange=this._onDidChange.event,this._register(this.register(g.PLAINTEXT_LANGUAGE_ID,{brackets:[["(",")"],["[","]"],["{","}"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],colorizedBracketPairs:[],folding:{offSide:!0}},0))}register(A,P,N=0){let O=this._entries.get(A);O||(O=new v(A),this._entries.set(A,O));const F=O.register(P,N);return this._onDidChange.fire(new L(A)),(0,k.toDisposable)(()=>{F.dispose(),this._onDidChange.fire(new L(A))})}getLanguageConfiguration(A){return this._entries.get(A)?.getResolvedConfiguration()||null}}e.LanguageConfigurationRegistry=D;class T{constructor(A,P){this.languageId=A,this.underlyingConfig=P,this._brackets=null,this._electricCharacter=null,this._onEnterSupport=this.underlyingConfig.brackets||this.underlyingConfig.indentationRules||this.underlyingConfig.onEnterRules?new p.OnEnterSupport(this.underlyingConfig):null,this.comments=T._handleComments(this.underlyingConfig),this.characterPair=new m.CharacterPairSupport(this.underlyingConfig),this.wordDefinition=this.underlyingConfig.wordPattern||E.DEFAULT_WORD_REGEXP,this.indentationRules=this.underlyingConfig.indentationRules,this.underlyingConfig.indentationRules?this.indentRulesSupport=new b.IndentRulesSupport(this.underlyingConfig.indentationRules):this.indentRulesSupport=null,this.foldingRules=this.underlyingConfig.folding||{},this.bracketsNew=new c.LanguageBracketsConfiguration(A,this.underlyingConfig)}getWordDefinition(){return(0,E.ensureValidWordDefinition)(this.wordDefinition)}get brackets(){return!this._brackets&&this.underlyingConfig.brackets&&(this._brackets=new n.RichEditBrackets(this.languageId,this.underlyingConfig.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new _.BracketElectricCharacterSupport(this.brackets)),this._electricCharacter}onEnter(A,P,N,O){return this._onEnterSupport?this._onEnterSupport.onEnter(A,P,N,O):null}getAutoClosingPairs(){return new y.AutoClosingPairs(this.characterPair.getAutoClosingPairs())}getAutoCloseBeforeSet(A){return this.characterPair.getAutoCloseBeforeSet(A)}getSurroundingPairs(){return this.characterPair.getSurroundingPairs()}static _handleComments(A){const P=A.comments;if(!P)return null;const N={};if(P.lineComment&&(N.lineCommentToken=P.lineComment),P.blockComment){const[O,F]=P.blockComment;N.blockCommentStartToken=O,N.blockCommentEndToken=F}return N}}e.ResolvedLanguageConfiguration=T,(0,s.registerSingleton)(e.ILanguageConfigurationService,a,1)}),define(ne[401],se([1,0,14,2,361,646,4,36,666,51,211,13,62,54,8,17,232,105,55,52,5,373,326]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorWorkerClient=e.EditorWorkerService=void 0;const f=5*60*1e3;function h(T,M){const A=T.getModel(M);return!(!A||A.isTooLargeForSyncing())}let v=class extends k.Disposable{constructor(M,A,P,N,O,F){super(),this._languageConfigurationService=O,this._modelService=A,this._workerManager=this._register(new S(M,this._modelService)),this._logService=N,this._register(F.linkProvider.register({language:"*",hasAccessToAllModels:!0},{provideLinks:async(x,W)=>{if(!h(this._modelService,x.uri))return Promise.resolve({links:[]});const q=await(await this._workerWithResources([x.uri])).$computeLinks(x.uri.toString());return q&&{links:q}}})),this._register(F.completionProvider.register("*",new w(this._workerManager,P,this._modelService,this._languageConfigurationService)))}dispose(){super.dispose()}canComputeUnicodeHighlights(M){return h(this._modelService,M)}async computedUnicodeHighlights(M,A,P){return(await this._workerWithResources([M])).$computeUnicodeHighlights(M.toString(),A,P)}async computeDiff(M,A,P,N){const F=await(await this._workerWithResources([M,A],!0)).$computeDiff(M.toString(),A.toString(),P,N);if(!F)return null;return{identical:F.identical,quitEarly:F.quitEarly,changes:W(F.changes),moves:F.moves.map(V=>new g.MovedText(new c.LineRangeMapping(new l.LineRange(V[0],V[1]),new l.LineRange(V[2],V[3])),W(V[4])))};function W(V){return V.map(q=>new c.DetailedLineRangeMapping(new l.LineRange(q[0],q[1]),new l.LineRange(q[2],q[3]),q[4]?.map(H=>new c.RangeMapping(new y.Range(H[0],H[1],H[2],H[3]),new y.Range(H[4],H[5],H[6],H[7])))))}}async computeMoreMinimalEdits(M,A,P=!1){if((0,n.isNonEmptyArray)(A)){if(!h(this._modelService,M))return Promise.resolve(A);const N=t.StopWatch.create(),O=this._workerWithResources([M]).then(F=>F.$computeMoreMinimalEdits(M.toString(),A,P));return O.finally(()=>this._logService.trace("FORMAT#computeMoreMinimalEdits",M.toString(!0),N.elapsed())),Promise.race([O,(0,d.timeout)(1e3).then(()=>A)])}else return Promise.resolve(void 0)}canNavigateValueSet(M){return h(this._modelService,M)}async navigateValueSet(M,A,P){const N=this._modelService.getModel(M);if(!N)return null;const O=this._languageConfigurationService.getLanguageConfiguration(N.getLanguageId()).getWordDefinition(),F=O.source,x=O.flags;return(await this._workerWithResources([M])).$navigateValueSet(M.toString(),A,P,F,x)}canComputeWordRanges(M){return h(this._modelService,M)}async computeWordRanges(M,A){const P=this._modelService.getModel(M);if(!P)return Promise.resolve(null);const N=this._languageConfigurationService.getLanguageConfiguration(P.getLanguageId()).getWordDefinition(),O=N.source,F=N.flags;return(await this._workerWithResources([M])).$computeWordRanges(M.toString(),A,O,F)}async findSectionHeaders(M,A){return(await this._workerWithResources([M])).$findSectionHeaders(M.toString(),A)}async computeDefaultDocumentColors(M){return(await this._workerWithResources([M])).$computeDefaultDocumentColors(M.toString())}async _workerWithResources(M,A=!1){return await(await this._workerManager.withWorker()).workerWithSyncedResources(M,A)}};e.EditorWorkerService=v,e.EditorWorkerService=v=ke([ce(1,b.IModelService),ce(2,p.ITextResourceConfigurationService),ce(3,o.ILogService),ce(4,m.ILanguageConfigurationService),ce(5,s.ILanguageFeaturesService)],v);class w{constructor(M,A,P,N){this.languageConfigurationService=N,this._debugDisplayName="wordbasedCompletions",this._workerManager=M,this._configurationService=A,this._modelService=P}async provideCompletionItems(M,A){const P=this._configurationService.getValue(M.uri,A,"editor");if(P.wordBasedSuggestions==="off")return;const N=[];if(P.wordBasedSuggestions==="currentDocument")h(this._modelService,M.uri)&&N.push(M.uri);else for(const H of this._modelService.getModels())h(this._modelService,H.uri)&&(H===M?N.unshift(H.uri):(P.wordBasedSuggestions==="allDocuments"||H.getLanguageId()===M.getLanguageId())&&N.push(H.uri));if(N.length===0)return;const O=this.languageConfigurationService.getLanguageConfiguration(M.getLanguageId()).getWordDefinition(),F=M.getWordAtPosition(A),x=F?new y.Range(A.lineNumber,F.startColumn,A.lineNumber,F.endColumn):y.Range.fromPositions(A),W=x.setEndPosition(A.lineNumber,A.column),q=await(await this._workerManager.withWorker()).textualSuggest(N,F?.word,O);if(q)return{duration:q.duration,suggestions:q.words.map(H=>({kind:18,label:H,insertText:H,range:{insert:W,replace:x}}))}}}let S=class extends k.Disposable{constructor(M,A){super(),this._workerDescriptor=M,this._modelService=A,this._editorWorkerClient=null,this._lastWorkerUsedTime=new Date().getTime(),this._register(new r.WindowIntervalTimer).cancelAndSet(()=>this._checkStopIdleWorker(),Math.round(f/2),a.mainWindow),this._register(this._modelService.onModelRemoved(N=>this._checkStopEmptyWorker()))}dispose(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),super.dispose()}_checkStopEmptyWorker(){if(!this._editorWorkerClient)return;this._modelService.getModels().length===0&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}_checkStopIdleWorker(){if(!this._editorWorkerClient)return;new Date().getTime()-this._lastWorkerUsedTime>f&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}withWorker(){return this._lastWorkerUsedTime=new Date().getTime(),this._editorWorkerClient||(this._editorWorkerClient=new D(this._workerDescriptor,!1,this._modelService)),Promise.resolve(this._editorWorkerClient)}};S=ke([ce(1,b.IModelService)],S);class L{constructor(M){this._instance=M,this.proxy=this._instance}dispose(){this._instance.dispose()}setChannel(M,A){throw new Error("Not supported")}}let D=class extends k.Disposable{constructor(M,A,P){super(),this._workerDescriptor=M,this._disposed=!1,this._modelService=P,this._keepIdleModels=A,this._worker=null,this._modelManager=null}fhr(M,A){throw new Error("Not implemented!")}_getOrCreateWorker(){if(!this._worker)try{this._worker=this._register((0,E.createWebWorker)(this._workerDescriptor)),C.EditorWorkerHost.setChannel(this._worker,this._createEditorWorkerHost())}catch(M){(0,I.logOnceWebWorkerWarning)(M),this._worker=this._createFallbackLocalWorker()}return this._worker}async _getProxy(){try{const M=this._getOrCreateWorker().proxy;return await M.$ping(),M}catch(M){return(0,I.logOnceWebWorkerWarning)(M),this._worker=this._createFallbackLocalWorker(),this._worker.proxy}}_createFallbackLocalWorker(){return new L(new _.EditorSimpleWorker(this._createEditorWorkerHost(),null))}_createEditorWorkerHost(){return{$fhr:(M,A)=>this.fhr(M,A)}}_getOrCreateModelManager(M){return this._modelManager||(this._modelManager=this._register(new u.WorkerTextModelSyncClient(M,this._modelService,this._keepIdleModels))),this._modelManager}async workerWithSyncedResources(M,A=!1){if(this._disposed)return Promise.reject((0,i.canceled)());const P=await this._getProxy();return this._getOrCreateModelManager(P).ensureSyncedResources(M,A),P}async textualSuggest(M,A,P){const N=await this.workerWithSyncedResources(M),O=P.source,F=P.flags;return N.$textualSuggest(M.map(x=>x.toString()),A,O,F)}dispose(){super.dispose(),this._disposed=!0}};e.EditorWorkerClient=D,e.EditorWorkerClient=D=ke([ce(2,b.IModelService)],D)}),define(ne[275],se([1,0,131,36,240]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getEnterAction=E;function E(y,m,_,b){m.tokenization.forceTokenization(_.startLineNumber);const p=m.getLanguageIdAtPosition(_.startLineNumber,_.startColumn),n=b.getLanguageConfiguration(p);if(!n)return null;const t=new I.IndentationContextProcessor(m,b).getProcessedTokenContextAroundRange(_),i=t.previousLineProcessedTokens.getLineContent(),s=t.beforeRangeProcessedTokens.getLineContent(),g=t.afterRangeProcessedTokens.getLineContent(),c=n.onEnter(y,i,s,g);if(!c)return null;const l=c.indentAction;let a=c.appendText;const r=c.removeText||0;a?l===d.IndentAction.Indent&&(a=" "+a):l===d.IndentAction.Indent||l===d.IndentAction.IndentOutdent?a=" ":a="";let u=(0,k.getIndentationAtPosition)(m,_.startLineNumber,_.startColumn);return r&&(u=u.substring(0,u.length-r)),{indentAction:l,appendText:a,removeText:r,indentation:u}}}),define(ne[183],se([1,0,11,94,4,23,275,36]),function(oe,e,d,k,I,E,y,m){"use strict";var _;Object.defineProperty(e,"__esModule",{value:!0}),e.ShiftCommand=void 0;const b=Object.create(null);function p(o,t){if(t<=0)return"";b[o]||(b[o]=["",o]);const i=b[o];for(let s=i.length;s<=t;s++)i[s]=i[s-1]+o;return i[t]}let n=_=class{static unshiftIndent(t,i,s,g,c){const l=k.CursorColumns.visibleColumnFromColumn(t,i,s);if(c){const a=p(" ",g),u=k.CursorColumns.prevIndentTabStop(l,g)/g;return p(a,u)}else{const a=" ",u=k.CursorColumns.prevRenderTabStop(l,s)/s;return p(a,u)}}static shiftIndent(t,i,s,g,c){const l=k.CursorColumns.visibleColumnFromColumn(t,i,s);if(c){const a=p(" ",g),u=k.CursorColumns.nextIndentTabStop(l,g)/g;return p(a,u)}else{const a=" ",u=k.CursorColumns.nextRenderTabStop(l,s)/s;return p(a,u)}}constructor(t,i,s){this._languageConfigurationService=s,this._opts=i,this._selection=t,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}_addEditOperation(t,i,s){this._useLastEditRangeForCursorEndPosition?t.addTrackedEditOperation(i,s):t.addEditOperation(i,s)}getEditOperations(t,i){const s=this._selection.startLineNumber;let g=this._selection.endLineNumber;this._selection.endColumn===1&&s!==g&&(g=g-1);const{tabSize:c,indentSize:l,insertSpaces:a}=this._opts,r=s===g;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(t.getLineContent(s))&&(this._useLastEditRangeForCursorEndPosition=!0);let u=0,C=0;for(let f=s;f<=g;f++,u=C){C=0;const h=t.getLineContent(f);let v=d.firstNonWhitespaceIndex(h);if(this._opts.isUnshift&&(h.length===0||v===0)||!r&&!this._opts.isUnshift&&h.length===0)continue;if(v===-1&&(v=h.length),f>1&&k.CursorColumns.visibleColumnFromColumn(h,v+1,c)%l!==0&&t.tokenization.isCheapToTokenize(f-1)){const L=(0,y.getEnterAction)(this._opts.autoIndent,t,new I.Range(f-1,t.getLineMaxColumn(f-1),f-1,t.getLineMaxColumn(f-1)),this._languageConfigurationService);if(L){if(C=u,L.appendText)for(let D=0,T=L.appendText.length;Dx(H,K),unshiftIndent:K=>W(H,K)},H.languageConfigurationService);if(Y===null)return null;const G=(0,o.getIndentationAtPosition)(z,U.startLineNumber,U.startColumn);return Y===H.normalizeIndentation(G)?null:Y}static _getIndentationAndAutoClosingPairEdits(H,z,U,j,Y){const G=U.map(({selection:R,indentation:J})=>{if(Y!==null){const ie=this._getEditFromIndentationAndSelection(H,z,J,R,j,!1);return new T(ie,R,j,Y)}else{const ie=this._getEditFromIndentationAndSelection(H,z,J,R,j,!0);return F(ie.range,ie.text,!1)}}),K={shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1};return new m.EditOperationResult(4,G,K)}static _getEditFromIndentationAndSelection(H,z,U,j,Y,G=!0){const K=j.startLineNumber,R=z.getLineFirstNonWhitespaceColumn(K);let J=H.normalizeIndentation(U);if(R!==0){const ue=z.getLineContent(K);J+=ue.substring(R-1,j.startColumn-1)}return J+=G?Y:"",{range:new b.Range(K,1,j.endLineNumber,j.endColumn),text:J}}}e.AutoIndentOperation=g;class c{static getEdits(H,z,U,j,Y,G){if(O(z,U,j,Y,G))return this._runAutoClosingOvertype(H,j,G)}static _runAutoClosingOvertype(H,z,U){const j=[];for(let Y=0,G=z.length;Ynew I.ReplaceCommand(new b.Range(K.positionLineNumber,K.positionColumn,K.positionLineNumber,K.positionColumn+1),"",!1));return new m.EditOperationResult(4,G,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}}}e.AutoClosingOvertypeWithInterceptorsOperation=l;class a{static getEdits(H,z,U,j,Y,G){if(!G){const K=this.getAutoClosingPairClose(H,z,U,j,Y);if(K!==null)return this._runAutoClosingOpenCharType(U,j,Y,K)}}static _runAutoClosingOpenCharType(H,z,U,j){const Y=[];for(let G=0,K=H.length;G{const ee=ae.getPosition();return Y?{lineNumber:ee.lineNumber,beforeColumn:ee.column-j.length,afterColumn:ee.column}:{lineNumber:ee.lineNumber,beforeColumn:ee.column,afterColumn:ee.column}}),K=this._findAutoClosingPairOpen(H,z,G.map(ae=>new p.Position(ae.lineNumber,ae.beforeColumn)),j);if(!K)return null;let R,J;if((0,m.isQuote)(j)?(R=H.autoClosingQuotes,J=H.shouldAutoCloseBefore.quote):(H.blockCommentStartToken?K.open.includes(H.blockCommentStartToken):!1)?(R=H.autoClosingComments,J=H.shouldAutoCloseBefore.comment):(R=H.autoClosingBrackets,J=H.shouldAutoCloseBefore.bracket),R==="never")return null;const ue=this._findContainedAutoClosingPair(H,K),he=ue?ue.close:"";let pe=!0;for(const ae of G){const{lineNumber:ee,beforeColumn:de,afterColumn:ge}=ae,X=z.getLineContent(ee),B=X.substring(0,de-1),$=X.substring(ge-1);if($.startsWith(he)||(pe=!1),$.length>0){const re=$.charAt(0);if(!this._isBeforeClosingBrace(H,$)&&!J(re))return null}if(K.open.length===1&&(j==="'"||j==='"')&&R!=="always"){const re=(0,_.getMapForWordSeparators)(H.wordSeparators,[]);if(B.length>0){const le=B.charCodeAt(B.length-1);if(re.get(le)===0)return null}}if(!z.tokenization.isCheapToTokenize(ee))return null;z.tokenization.forceTokenization(ee);const Q=z.tokenization.getLineTokens(ee),Z=(0,t.createScopedLineTokens)(Q,de-1);if(!K.shouldAutoClose(Z,de-Z.firstCharOffset))return null;const te=K.findNeutralCharacter();if(te){const re=z.tokenization.getTokenTypeIfInsertingCharacter(ee,de,te);if(!K.isOK(re))return null}}return pe?K.close.substring(0,K.close.length-he.length):K.close}static _findContainedAutoClosingPair(H,z){if(z.open.length<=1)return null;const U=z.close.charAt(z.close.length-1),j=H.autoClosingPairs.autoClosingPairsCloseByEnd.get(U)||[];let Y=null;for(const G of j)G.open!==z.open&&z.open.includes(G.open)&&z.close.endsWith(G.close)&&(!Y||G.open.length>Y.open.length)&&(Y=G);return Y}static _findAutoClosingPairOpen(H,z,U,j){const Y=H.autoClosingPairs.autoClosingPairsOpenByEnd.get(j);if(!Y)return null;let G=null;for(const K of Y)if(G===null||K.open.length>G.open.length){let R=!0;for(const J of U)if(z.getValueInRange(new b.Range(J.lineNumber,J.column-K.open.length+1,J.lineNumber,J.column))+j!==K.open){R=!1;break}R&&(G=K)}return G}static _isBeforeClosingBrace(H,z){const U=z.charAt(0),j=H.autoClosingPairs.autoClosingPairsOpenByStart.get(U)||[],Y=H.autoClosingPairs.autoClosingPairsCloseByStart.get(U)||[],G=j.some(R=>z.startsWith(R.open)),K=Y.some(R=>z.startsWith(R.close));return!G&&K}}e.AutoClosingOpenCharTypeOperation=a;class r{static getEdits(H,z,U,j,Y){if(!Y&&this._isSurroundSelectionType(H,z,U,j))return this._runSurroundSelectionType(H,U,j)}static _runSurroundSelectionType(H,z,U){const j=[];for(let Y=0,G=z.length;Y=4){const R=(0,i.getIndentForEnter)(H.autoIndent,z,j,{unshiftIndent:J=>W(H,J),shiftIndent:J=>x(H,J),normalizeIndentation:J=>H.normalizeIndentation(J)},H.languageConfigurationService);if(R){let J=H.visibleColumnFromColumn(z,j.getEndPosition());const ie=j.endColumn,ue=z.getLineContent(j.endLineNumber),he=k.firstNonWhitespaceIndex(ue);if(he>=0?j=j.setEndPosition(j.endLineNumber,Math.max(j.endColumn,he+1)):j=j.setEndPosition(j.endLineNumber,z.getLineMaxColumn(j.endLineNumber)),U)return new I.ReplaceCommandWithoutChangingPosition(j,` +`+H.normalizeIndentation(R.afterEnter),!0);{let pe=0;return ie<=he+1&&(H.insertSpaces||(J=Math.ceil(J/H.indentSize)),pe=Math.min(J+1-H.normalizeIndentation(R.afterEnter).length-1,0)),new I.ReplaceCommandWithOffsetCursorState(j,` +`+H.normalizeIndentation(R.afterEnter),0,pe,!0)}}}return F(j,` +`+H.normalizeIndentation(K),U)}static lineInsertBefore(H,z,U){if(z===null||U===null)return[];const j=[];for(let Y=0,G=U.length;Ythis._compositionType(U,ie,Y,G,K,R));return new m.EditOperationResult(4,J,{shouldPushStackElementBefore:A(H,4),shouldPushStackElementAfter:!1})}static _compositionType(H,z,U,j,Y,G){if(!z.isEmpty())return null;const K=z.getPosition(),R=Math.max(1,K.column-j),J=Math.min(H.getLineMaxColumn(K.lineNumber),K.column+Y),ie=new b.Range(K.lineNumber,R,K.lineNumber,J);return H.getValueInRange(ie)===U&&G===0?null:new I.ReplaceCommandWithOffsetCursorState(ie,U,0,G)}}e.CompositionOperation=v;class w{static getEdits(H,z,U){const j=[];for(let G=0,K=z.length;G1){let K;for(K=U-1;K>=1;K--){const ie=z.getLineContent(K);if(k.lastNonWhitespaceIndex(ie)>=0)break}if(K<1)return null;const R=z.getLineMaxColumn(K),J=(0,s.getEnterAction)(H.autoIndent,z,new b.Range(K,R,K,R),H.languageConfigurationService);J&&(Y=J.indentation+J.appendText)}return j&&(j===n.IndentAction.Indent&&(Y=x(H,Y)),j===n.IndentAction.Outdent&&(Y=W(H,Y)),Y=H.normalizeIndentation(Y)),Y||null}static _replaceJumpToNextIndent(H,z,U,j){let Y="";const G=U.getStartPosition();if(H.insertSpaces){const K=H.visibleColumnFromColumn(z,G),R=H.indentSize,J=R-K%R;for(let ie=0;ie2?J.charCodeAt(R.column-2):0)===92&&ue)return!1;if(q.autoClosingOvertype==="auto"){let pe=!1;for(let ae=0,ee=U.length;ae0){const f=this._cursors.getSelections();for(let h=0;hL&&(w=w.slice(0,L),S=!0);const D=c.from(this._model,this);return this._cursors.setStates(w),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(f,h,v,D,S)}setCursorColumnSelectData(f){this._columnSelectData=f}revealAll(f,h,v,w,S,L){const D=this._cursors.getViewPositions();let T=null,M=null;D.length>1?M=this._cursors.getViewSelections():T=p.Range.fromPositions(D[0],D[0]),f.emitViewEvent(new t.ViewRevealRangeRequestEvent(h,v,T,M,w,S,L))}revealPrimary(f,h,v,w,S,L){const T=[this._cursors.getPrimaryCursor().viewState.selection];f.emitViewEvent(new t.ViewRevealRangeRequestEvent(h,v,null,T,w,S,L))}saveState(){const f=[],h=this._cursors.getSelections();for(let v=0,w=h.length;v0){const S=E.CursorState.fromModelSelections(v.resultingSelection);this.setStates(f,"modelChange",v.isUndoing?5:v.isRedoing?6:2,S)&&this.revealAll(f,"modelChange",!1,0,!0,0)}else{const S=this._cursors.readSelectionFromMarkers();this.setStates(f,"modelChange",2,E.CursorState.fromModelSelections(S))}}}getSelection(){return this._cursors.getPrimaryCursor().modelState.selection}getTopMostViewPosition(){return this._cursors.getTopMostViewPosition()}getBottomMostViewPosition(){return this._cursors.getBottomMostViewPosition()}getCursorColumnSelectData(){if(this._columnSelectData)return this._columnSelectData;const f=this._cursors.getPrimaryCursor(),h=f.viewState.selectionStart.getStartPosition(),v=f.viewState.position;return{isReal:!1,fromViewLineNumber:h.lineNumber,fromViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,h),toViewLineNumber:v.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,v)}}getSelections(){return this._cursors.getSelections()}setSelections(f,h,v,w){this.setStates(f,h,w,E.CursorState.fromModelSelections(v))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(f){this._prevEditOperationType=f}_pushAutoClosedAction(f,h){const v=[],w=[];for(let D=0,T=f.length;D0&&this._pushAutoClosedAction(v,w),this._prevEditOperationType=f.type}f.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(f){(!f||f.length===0)&&(f=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(f),this._cursors.normalize()}_emitStateChangedIfNecessary(f,h,v,w,S){const L=c.from(this._model,this);if(L.equals(w))return!1;const D=this._cursors.getSelections(),T=this._cursors.getViewSelections();if(f.emitViewEvent(new t.ViewCursorStateChangedEvent(T,D,v)),!w||w.cursorState.length!==L.cursorState.length||L.cursorState.some((M,A)=>!M.modelState.equals(w.cursorState[A].modelState))){const M=w?w.cursorState.map(P=>P.modelState.selection):null,A=w?w.modelVersionId:0;f.emitOutgoingEvent(new s.CursorStateChangedEvent(M,D,A,L.modelVersionId,h||"keyboard",v,S))}return!0}_findAutoClosingPairs(f){if(!f.length)return null;const h=[];for(let v=0,w=f.length;v=0)return null;const L=S.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!L)return null;const D=L[1],T=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(D);if(!T||T.length!==1)return null;const M=T[0].open,A=S.text.length-L[2].length-1,P=S.text.lastIndexOf(M,A-1);if(P===-1)return null;h.push([P,A])}return h}executeEdits(f,h,v,w){let S=null;h==="snippet"&&(S=this._findAutoClosingPairs(v)),S&&(v[0]._isTracked=!0);const L=[],D=[],T=this._model.pushEditOperations(this.getSelections(),v,M=>{if(S)for(let P=0,N=S.length;P0&&this._pushAutoClosedAction(L,D)}_executeEdit(f,h,v,w=0){if(this.context.cursorConfig.readOnly)return;const S=c.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),f()}catch(L){(0,d.onUnexpectedError)(L)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(h,v,w,S,!1)&&this.revealAll(h,v,!1,0,!0,0)}getAutoClosedCharacters(){return l.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(f){this._compositionState=new u(this._model,this.getSelections())}endComposition(f,h){const v=this._compositionState?this._compositionState.deduceOutcome(this._model,this.getSelections()):null;this._compositionState=null,this._executeEdit(()=>{h==="keyboard"&&this._executeEditOperation(_.TypeOperations.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,v,this.getSelections(),this.getAutoClosedCharacters()))},f,h)}type(f,h,v){this._executeEdit(()=>{if(v==="keyboard"){const w=h.length;let S=0;for(;S{const M=T.getPosition();return new n.Selection(M.lineNumber,M.column+S,M.lineNumber,M.column+S)});this.setSelections(f,L,D,0)}return}this._executeEdit(()=>{this._executeEditOperation(_.TypeOperations.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),h,v,w,S))},f,L)}paste(f,h,v,w,S){this._executeEdit(()=>{this._executeEditOperation(_.TypeOperations.paste(this.context.cursorConfig,this._model,this.getSelections(),h,v,w||[]))},f,S,4)}cut(f,h){this._executeEdit(()=>{this._executeEditOperation(m.DeleteOperations.cut(this.context.cursorConfig,this._model,this.getSelections()))},f,h)}executeCommand(f,h,v){this._executeEdit(()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new E.EditOperationResult(0,[h],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},f,v)}executeCommands(f,h,v){this._executeEdit(()=>{this._executeEditOperation(new E.EditOperationResult(0,h,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},f,v)}}e.CursorsController=g;class c{static from(f,h){return new c(f.getVersionId(),h.getCursorStates())}constructor(f,h){this.modelVersionId=f,this.cursorState=h}equals(f){if(!f||this.modelVersionId!==f.modelVersionId||this.cursorState.length!==f.cursorState.length)return!1;for(let h=0,v=this.cursorState.length;h=h.length||!h[v].strictContainsRange(f[v]))return!1;return!0}}class a{static executeCommands(f,h,v){const w={model:f,selectionsBefore:h,trackedRanges:[],trackedRangesDirection:[]},S=this._innerExecuteCommands(w,v);for(let L=0,D=w.trackedRanges.length;L0&&(L[0]._isTracked=!0);let D=f.model.pushEditOperations(f.selectionsBefore,L,M=>{const A=[];for(let O=0;OO.identifier.minor-F.identifier.minor,N=[];for(let O=0;O0?(A[O].sort(P),N[O]=h[O].computeCursorState(f.model,{getInverseEditOperations:()=>A[O],getTrackedSelection:F=>{const x=parseInt(F,10),W=f.model._getTrackedRange(f.trackedRanges[x]);return f.trackedRangesDirection[x]===0?new n.Selection(W.startLineNumber,W.startColumn,W.endLineNumber,W.endColumn):new n.Selection(W.endLineNumber,W.endColumn,W.startLineNumber,W.startColumn)}})):N[O]=f.selectionsBefore[O];return N});D||(D=f.selectionsBefore);const T=[];for(const M in S)S.hasOwnProperty(M)&&T.push(parseInt(M,10));T.sort((M,A)=>A-M);for(const M of T)D.splice(M,1);return D}static _arrayIsEmpty(f){for(let h=0,v=f.length;h{p.Range.isEmpty(P)&&N===""||w.push({identifier:{major:h,minor:S++},range:P,text:N,forceMoveMarkers:O,isAutoWhitespaceEdit:v.insertsAutoWhitespace})};let D=!1;const A={addEditOperation:L,addTrackedEditOperation:(P,N,O)=>{D=!0,L(P,N,O)},trackSelection:(P,N)=>{const O=n.Selection.liftSelection(P);let F;if(O.isEmpty())if(typeof N=="boolean")N?F=2:F=3;else{const V=f.model.getLineMaxColumn(O.startLineNumber);O.startColumn===V?F=2:F=3}else F=1;const x=f.trackedRanges.length,W=f.model._setTrackedRange(null,O,F);return f.trackedRanges[x]=W,f.trackedRangesDirection[x]=O.getDirection(),x.toString()}};try{v.getEditOperations(f.model,A)}catch(P){return(0,d.onUnexpectedError)(P),{operations:[],hadTrackedEditOperation:!1}}return{operations:w,hadTrackedEditOperation:D}}static _getLoserCursorMap(f){f=f.slice(0),f.sort((v,w)=>-p.Range.compareRangesUsingEnds(v.range,w.range));const h={};for(let v=1;vS.identifier.major?L=w.identifier.major:L=S.identifier.major,h[L.toString()]=!0;for(let D=0;D0&&v--}}return h}}e.CommandExecutor=a;class r{constructor(f,h,v){this.text=f,this.startSelection=h,this.endSelection=v}}class u{static _capture(f,h){const v=[];for(const w of h){if(w.startLineNumber!==w.endLineNumber)return null;v.push(new r(f.getLineContent(w.startLineNumber),w.startColumn-1,w.endColumn-1))}return v}constructor(f,h){this._original=u._capture(f,h)}deduceOutcome(f,h){if(!this._original)return null;const v=u._capture(f,h);if(!v||this._original.length!==v.length)return null;const w=[];for(let S=0,L=this._original.length;S{M.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})})),this._register(k.Event.filter(b.TreeSitterTokenizationRegistry.onDidChange,M=>M.changedLanguages.includes(this._languageId))(()=>{this.createPreferredTokenProvider()})),this.createPreferredTokenProvider()}createGrammarTokens(){return this._register(new C(this._languageService.languageIdCodec,this._textModel,()=>this._languageId,this._attachedViews))}createTreeSitterTokens(){return this._register(new s.TreeSitterTokens(this._treeSitterService,this._languageService.languageIdCodec,this._textModel,()=>this._languageId))}createTokens(h){const v=this._tokens!==void 0;this._tokens?.dispose(),this._tokens=h?this.createTreeSitterTokens():this.createGrammarTokens(),this._tokensDisposables.clear(),this._tokensDisposables.add(this._tokens.onDidChangeTokens(w=>{this._emitModelTokensChangedEvent(w)})),this._tokensDisposables.add(this._tokens.onDidChangeBackgroundTokenizationState(w=>{this._bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState()})),v&&this._tokens.resetTokenization()}createPreferredTokenProvider(){b.TreeSitterTokenizationRegistry.get(this._languageId)?this._tokens instanceof s.TreeSitterTokens||this.createTokens(!0):this._tokens instanceof C||this.createTokens(!1)}handleLanguageConfigurationServiceChange(h){h.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})}handleDidChangeContent(h){if(h.isFlush)this._semanticTokens.flush();else if(!h.isEolChange)for(const v of h.changes){const[w,S,L]=(0,E.countEOL)(v.text);this._semanticTokens.acceptEdit(v.range,w,S,L,v.text.length>0?v.text.charCodeAt(0):0)}this._tokens.handleDidChangeContent(h)}handleDidChangeAttached(){this._tokens.handleDidChangeAttached()}getLineTokens(h){this.validateLineNumber(h);const v=this._tokens.getLineTokens(h);return this._semanticTokens.addSparseTokens(h,v)}_emitModelTokensChangedEvent(h){this._textModel._isDisposing()||(this._bracketPairsTextModelPart.handleDidChangeTokens(h),this._onDidChangeTokens.fire(h))}validateLineNumber(h){if(h<1||h>this._textModel.getLineCount())throw new d.BugIndicatingError("Illegal value for lineNumber")}get hasTokens(){return this._tokens.hasTokens}resetTokenization(){this._tokens.resetTokenization()}get backgroundTokenizationState(){return this._tokens.backgroundTokenizationState}forceTokenization(h){this.validateLineNumber(h),this._tokens.forceTokenization(h)}hasAccurateTokensForLine(h){return this.validateLineNumber(h),this._tokens.hasAccurateTokensForLine(h)}isCheapToTokenize(h){return this.validateLineNumber(h),this._tokens.isCheapToTokenize(h)}tokenizeIfCheap(h){this.validateLineNumber(h),this._tokens.tokenizeIfCheap(h)}getTokenTypeIfInsertingCharacter(h,v,w){return this._tokens.getTokenTypeIfInsertingCharacter(h,v,w)}tokenizeLineWithEdit(h,v,w){return this._tokens.tokenizeLineWithEdit(h,v,w)}setSemanticTokens(h,v){this._semanticTokens.set(h,v),this._emitModelTokensChangedEvent({semanticTokensApplied:h!==null,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}hasCompleteSemanticTokens(){return this._semanticTokens.isComplete()}hasSomeSemanticTokens(){return!this._semanticTokens.isEmpty()}setPartialSemanticTokens(h,v){if(this.hasCompleteSemanticTokens())return;const w=this._textModel.validateRange(this._semanticTokens.setPartial(h,v));this._emitModelTokensChangedEvent({semanticTokensApplied:!0,ranges:[{fromLineNumber:w.startLineNumber,toLineNumber:w.endLineNumber}]})}getWordAtPosition(h){this.assertNotDisposed();const v=this._textModel.validatePosition(h),w=this._textModel.getLineContent(v.lineNumber),S=this.getLineTokens(v.lineNumber),L=S.findTokenIndexAtOffset(v.column-1),[D,T]=r._findLanguageBoundaries(S,L),M=(0,_.getWordAtText)(v.column,this.getLanguageConfiguration(S.getLanguageId(L)).getWordDefinition(),w.substring(D,T),D);if(M&&M.startColumn<=h.column&&h.column<=M.endColumn)return M;if(L>0&&D===v.column-1){const[A,P]=r._findLanguageBoundaries(S,L-1),N=(0,_.getWordAtText)(v.column,this.getLanguageConfiguration(S.getLanguageId(L-1)).getWordDefinition(),w.substring(A,P),A);if(N&&N.startColumn<=h.column&&h.column<=N.endColumn)return N}return null}getLanguageConfiguration(h){return this._languageConfigurationService.getLanguageConfiguration(h)}static _findLanguageBoundaries(h,v){const w=h.getLanguageId(v);let S=0;for(let D=v;D>=0&&h.getLanguageId(D)===w;D--)S=h.getStartOffset(D);let L=h.getLineContent().length;for(let D=v,T=h.getCount();D{const D=this.getLanguageId();L.changedLanguages.indexOf(D)!==-1&&this.resetTokenization()})),this.resetTokenization(),this._register(S.onDidChangeVisibleRanges(({view:L,state:D})=>{if(D){let T=this._attachedViewStates.get(L);T||(T=new i.AttachedViewHandler(()=>this.refreshRanges(T.lineRanges)),this._attachedViewStates.set(L,T)),T.handleStateChange(D)}else this._attachedViewStates.deleteAndDispose(L)}))}resetTokenization(h=!0){this._tokens.flush(),this._debugBackgroundTokens?.flush(),this._debugBackgroundStates&&(this._debugBackgroundStates=new t.TrackingTokenizationStateStore(this._textModel.getLineCount())),h&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]});const v=()=>{if(this._textModel.isTooLargeForTokenization())return[null,null];const L=b.TokenizationRegistry.get(this.getLanguageId());if(!L)return[null,null];let D;try{D=L.getInitialState()}catch(T){return(0,d.onUnexpectedError)(T),[null,null]}return[L,D]},[w,S]=v();if(w&&S?this._tokenizer=new t.TokenizerWithStateStoreAndTextModel(this._textModel.getLineCount(),w,this._textModel,this._languageIdCodec):this._tokenizer=null,this._backgroundTokenizer.clear(),this._defaultBackgroundTokenizer=null,this._tokenizer){const L={setTokens:D=>{this.setTokens(D)},backgroundTokenizationFinished:()=>{if(this._backgroundTokenizationState===2)return;const D=2;this._backgroundTokenizationState=D,this._onDidChangeBackgroundTokenizationState.fire()},setEndState:(D,T)=>{if(!this._tokenizer)return;const M=this._tokenizer.store.getFirstInvalidEndStateLineNumber();M!==null&&D>=M&&this._tokenizer?.store.setEndState(D,T)}};w&&w.createBackgroundTokenizer&&!w.backgroundTokenizerShouldOnlyVerifyTokens&&(this._backgroundTokenizer.value=w.createBackgroundTokenizer(this._textModel,L)),!this._backgroundTokenizer.value&&!this._textModel.isTooLargeForTokenization()&&(this._backgroundTokenizer.value=this._defaultBackgroundTokenizer=new t.DefaultBackgroundTokenizer(this._tokenizer,L),this._defaultBackgroundTokenizer.handleChanges()),w?.backgroundTokenizerShouldOnlyVerifyTokens&&w.createBackgroundTokenizer?(this._debugBackgroundTokens=new l.ContiguousTokensStore(this._languageIdCodec),this._debugBackgroundStates=new t.TrackingTokenizationStateStore(this._textModel.getLineCount()),this._debugBackgroundTokenizer.clear(),this._debugBackgroundTokenizer.value=w.createBackgroundTokenizer(this._textModel,{setTokens:D=>{this._debugBackgroundTokens?.setMultilineTokens(D,this._textModel)},backgroundTokenizationFinished(){},setEndState:(D,T)=>{this._debugBackgroundStates?.setEndState(D,T)}})):(this._debugBackgroundTokens=void 0,this._debugBackgroundStates=void 0,this._debugBackgroundTokenizer.value=void 0)}this.refreshAllVisibleLineTokens()}handleDidChangeAttached(){this._defaultBackgroundTokenizer?.handleChanges()}handleDidChangeContent(h){if(h.isFlush)this.resetTokenization(!1);else if(!h.isEolChange){for(const v of h.changes){const[w,S]=(0,E.countEOL)(v.text);this._tokens.acceptEdit(v.range,w,S),this._debugBackgroundTokens?.acceptEdit(v.range,w,S)}this._debugBackgroundStates?.acceptChanges(h.changes),this._tokenizer&&this._tokenizer.store.acceptChanges(h.changes),this._defaultBackgroundTokenizer?.handleChanges()}}setTokens(h){const{changes:v}=this._tokens.setMultilineTokens(h,this._textModel);return v.length>0&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:v}),{changes:v}}refreshAllVisibleLineTokens(){const h=y.LineRange.joinMany([...this._attachedViewStates].map(([v,w])=>w.lineRanges));this.refreshRanges(h)}refreshRanges(h){for(const v of h)this.refreshRange(v.startLineNumber,v.endLineNumberExclusive-1)}refreshRange(h,v){if(!this._tokenizer)return;h=Math.max(1,Math.min(this._textModel.getLineCount(),h)),v=Math.min(this._textModel.getLineCount(),v);const w=new c.ContiguousMultilineTokensBuilder,{heuristicTokens:S}=this._tokenizer.tokenizeHeuristically(w,h,v),L=this.setTokens(w.finalize());if(S)for(const D of L.changes)this._backgroundTokenizer.value?.requestTokens(D.fromLineNumber,D.toLineNumber+1);this._defaultBackgroundTokenizer?.checkFinished()}forceTokenization(h){const v=new c.ContiguousMultilineTokensBuilder;this._tokenizer?.updateTokensUntilLine(v,h),this.setTokens(v.finalize()),this._defaultBackgroundTokenizer?.checkFinished()}hasAccurateTokensForLine(h){return this._tokenizer?this._tokenizer.hasAccurateTokensForLine(h):!0}isCheapToTokenize(h){return this._tokenizer?this._tokenizer.isCheapToTokenize(h):!0}getLineTokens(h){const v=this._textModel.getLineContent(h),w=this._tokens.getTokens(this._textModel.getLanguageId(),h-1,v);if(this._debugBackgroundTokens&&this._debugBackgroundStates&&this._tokenizer&&this._debugBackgroundStates.getFirstInvalidEndStateLineNumberOrMax()>h&&this._tokenizer.store.getFirstInvalidEndStateLineNumberOrMax()>h){const S=this._debugBackgroundTokens.getTokens(this._textModel.getLanguageId(),h-1,v);!w.equals(S)&&this._debugBackgroundTokenizer.value?.reportMismatchingTokens&&this._debugBackgroundTokenizer.value.reportMismatchingTokens(h)}return w}getTokenTypeIfInsertingCharacter(h,v,w){if(!this._tokenizer)return 0;const S=this._textModel.validatePosition(new m.Position(h,v));return this.forceTokenization(S.lineNumber),this._tokenizer.getTokenTypeIfInsertingCharacter(S,w)}tokenizeLineWithEdit(h,v,w){if(!this._tokenizer)return null;const S=this._textModel.validatePosition(h);return this.forceTokenization(S.lineNumber),this._tokenizer.tokenizeLineWithEdit(S,v,w)}get hasTokens(){return this._tokens.hasTokens}}}),define(ne[708],se([1,0,42,48,22,70,382,30]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getIconClasses=b;const _=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function b(o,t,i,s,g){if(m.ThemeIcon.isThemeIcon(g))return[`codicon-${g.id}`,"predefined-file-icon"];if(I.URI.isUri(g))return[];const c=s===y.FileKind.ROOT_FOLDER?["rootfolder-icon"]:s===y.FileKind.FOLDER?["folder-icon"]:["file-icon"];if(i){let l;if(i.scheme===d.Schemas.data)l=k.DataUri.parseMetaData(i).get(k.DataUri.META_DATA_LABEL);else{const a=i.path.match(_);a?(l=n(a[2].toLowerCase()),a[1]&&c.push(`${n(a[1].toLowerCase())}-name-dir-icon`)):l=n(i.authority.toLowerCase())}if(s===y.FileKind.ROOT_FOLDER)c.push(`${l}-root-name-folder-icon`);else if(s===y.FileKind.FOLDER)c.push(`${l}-name-folder-icon`);else{if(l){if(c.push(`${l}-name-file-icon`),c.push("name-file-icon"),l.length<=255){const r=l.split(".");for(let u=1;u{h.mime===f.mime||h.userConfigured||(f.extension&&h.extension===f.extension&&console.warn(`Overwriting extension <<${f.extension}>> to now point to mime <<${f.mime}>>`),f.filename&&h.filename===f.filename&&console.warn(`Overwriting filename <<${f.filename}>> to now point to mime <<${f.mime}>>`),f.filepattern&&h.filepattern===f.filepattern&&console.warn(`Overwriting filepattern <<${f.filepattern}>> to now point to mime <<${f.mime}>>`),f.firstline&&h.firstline===f.firstline&&console.warn(`Overwriting firstline <<${f.firstline}>> to now point to mime <<${f.mime}>>`))})}function i(r,u){return{id:r.id,mime:r.mime,filename:r.filename,extension:r.extension,filepattern:r.filepattern,firstline:r.firstline,userConfigured:u,filenameLowercase:r.filename?r.filename.toLowerCase():void 0,extensionLowercase:r.extension?r.extension.toLowerCase():void 0,filepatternLowercase:r.filepattern?(0,d.parse)(r.filepattern.toLowerCase()):void 0,filepatternOnPath:r.filepattern?r.filepattern.indexOf(E.posix.sep)>=0:!1}}function s(){b=b.filter(r=>r.userConfigured),p=[]}function g(r,u){return c(r,u).map(C=>C.id)}function c(r,u){let C;if(r)switch(r.scheme){case I.Schemas.file:C=r.fsPath;break;case I.Schemas.data:{C=y.DataUri.parseMetaData(r).get(y.DataUri.META_DATA_LABEL);break}case I.Schemas.vscodeNotebookCell:C=void 0;break;default:C=r.path}if(!C)return[{id:"unknown",mime:k.Mimes.unknown}];C=C.toLowerCase();const f=(0,E.basename)(C),h=l(C,f,n);if(h)return[h,{id:_.PLAINTEXT_LANGUAGE_ID,mime:k.Mimes.text}];const v=l(C,f,p);if(v)return[v,{id:_.PLAINTEXT_LANGUAGE_ID,mime:k.Mimes.text}];if(u){const w=a(u);if(w)return[w,{id:_.PLAINTEXT_LANGUAGE_ID,mime:k.Mimes.text}]}return[{id:"unknown",mime:k.Mimes.unknown}]}function l(r,u,C){let f,h,v;for(let w=C.length-1;w>=0;w--){const S=C[w];if(u===S.filenameLowercase){f=S;break}if(S.filepattern&&(!h||S.filepattern.length>h.filepattern.length)){const L=S.filepatternOnPath?r:u;S.filepatternLowercase?.(L)&&(h=S)}S.extension&&(!v||S.extension.length>v.extension.length)&&u.endsWith(S.extensionLowercase)&&(v=S)}if(f)return f;if(h)return h;if(v)return v}function a(r){if((0,m.startsWithUTF8BOM)(r)&&(r=r.substr(1)),r.length>0)for(let u=b.length-1;u>=0;u--){const C=b[u];if(!C.firstline)continue;const f=r.match(C.firstline);if(f&&f.length>0)return C}}}),define(ne[710],se([1,0,6,2,11,709,70,109,38]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LanguagesRegistry=e.LanguageIdCodec=void 0;const b=Object.prototype.hasOwnProperty,p="vs.editor.nullLanguage";class n{constructor(){this._languageIdToLanguage=[],this._languageToLanguageId=new Map,this._register(p,0),this._register(y.PLAINTEXT_LANGUAGE_ID,1),this._nextLanguageId=2}_register(i,s){this._languageIdToLanguage[s]=i,this._languageToLanguageId.set(i,s)}register(i){if(this._languageToLanguageId.has(i))return;const s=this._nextLanguageId++;this._register(i,s)}encodeLanguageId(i){return this._languageToLanguageId.get(i)||0}decodeLanguageId(i){return this._languageIdToLanguage[i]||p}}e.LanguageIdCodec=n;class o extends k.Disposable{static{this.instanceCount=0}constructor(i=!0,s=!1){super(),this._onDidChange=this._register(new d.Emitter),this.onDidChange=this._onDidChange.event,o.instanceCount++,this._warnOnOverwrite=s,this.languageIdCodec=new n,this._dynamicLanguages=[],this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},i&&(this._initializeFromRegistry(),this._register(y.ModesRegistry.onDidChangeLanguages(g=>{this._initializeFromRegistry()})))}dispose(){o.instanceCount--,super.dispose()}_initializeFromRegistry(){this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},(0,E.clearPlatformLanguageAssociations)();const i=[].concat(y.ModesRegistry.getLanguages()).concat(this._dynamicLanguages);this._registerLanguages(i)}_registerLanguages(i){for(const s of i)this._registerLanguage(s);this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach(s=>{const g=this._languages[s];g.name&&(this._nameMap[g.name]=g.identifier),g.aliases.forEach(c=>{this._lowercaseNameMap[c.toLowerCase()]=g.identifier}),g.mimetypes.forEach(c=>{this._mimeTypesMap[c]=g.identifier})}),_.Registry.as(m.Extensions.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds()),this._onDidChange.fire()}_registerLanguage(i){const s=i.id;let g;b.call(this._languages,s)?g=this._languages[s]:(this.languageIdCodec.register(s),g={identifier:s,name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[],icons:[]},this._languages[s]=g),this._mergeLanguage(g,i)}_mergeLanguage(i,s){const g=s.id;let c=null;if(Array.isArray(s.mimetypes)&&s.mimetypes.length>0&&(i.mimetypes.push(...s.mimetypes),c=s.mimetypes[0]),c||(c=`text/x-${g}`,i.mimetypes.push(c)),Array.isArray(s.extensions)){s.configuration?i.extensions=s.extensions.concat(i.extensions):i.extensions=i.extensions.concat(s.extensions);for(const r of s.extensions)(0,E.registerPlatformLanguageAssociation)({id:g,mime:c,extension:r},this._warnOnOverwrite)}if(Array.isArray(s.filenames))for(const r of s.filenames)(0,E.registerPlatformLanguageAssociation)({id:g,mime:c,filename:r},this._warnOnOverwrite),i.filenames.push(r);if(Array.isArray(s.filenamePatterns))for(const r of s.filenamePatterns)(0,E.registerPlatformLanguageAssociation)({id:g,mime:c,filepattern:r},this._warnOnOverwrite);if(typeof s.firstLine=="string"&&s.firstLine.length>0){let r=s.firstLine;r.charAt(0)!=="^"&&(r="^"+r);try{const u=new RegExp(r);(0,I.regExpLeadsToEndlessLoop)(u)||(0,E.registerPlatformLanguageAssociation)({id:g,mime:c,firstline:u},this._warnOnOverwrite)}catch(u){console.warn(`[${s.id}]: Invalid regular expression \`${r}\`: `,u)}}i.aliases.push(g);let l=null;if(typeof s.aliases<"u"&&Array.isArray(s.aliases)&&(s.aliases.length===0?l=[null]:l=s.aliases),l!==null)for(const r of l)!r||r.length===0||i.aliases.push(r);const a=l!==null&&l.length>0;if(!(a&&l[0]===null)){const r=(a?l[0]:null)||g;(a||!i.name)&&(i.name=r)}s.configuration&&i.configurationFiles.push(s.configuration),s.icon&&i.icons.push(s.icon)}isRegisteredLanguageId(i){return i?b.call(this._languages,i):!1}getRegisteredLanguageIds(){return Object.keys(this._languages)}getLanguageIdByLanguageName(i){const s=i.toLowerCase();return b.call(this._lowercaseNameMap,s)?this._lowercaseNameMap[s]:null}getLanguageIdByMimeType(i){return i&&b.call(this._mimeTypesMap,i)?this._mimeTypesMap[i]:null}guessLanguageIdByFilepathOrFirstLine(i,s){return!i&&!s?[]:(0,E.getLanguageIds)(i,s)}}e.LanguagesRegistry=o}),define(ne[711],se([1,0,6,2,710,13,27,70,21]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LanguageService=void 0;class b extends k.Disposable{static{this.instanceCount=0}constructor(o=!1){super(),this._onDidRequestBasicLanguageFeatures=this._register(new d.Emitter),this.onDidRequestBasicLanguageFeatures=this._onDidRequestBasicLanguageFeatures.event,this._onDidRequestRichLanguageFeatures=this._register(new d.Emitter),this.onDidRequestRichLanguageFeatures=this._onDidRequestRichLanguageFeatures.event,this._onDidChange=this._register(new d.Emitter({leakWarningThreshold:200})),this.onDidChange=this._onDidChange.event,this._requestedBasicLanguages=new Set,this._requestedRichLanguages=new Set,b.instanceCount++,this._registry=this._register(new I.LanguagesRegistry(!0,o)),this.languageIdCodec=this._registry.languageIdCodec,this._register(this._registry.onDidChange(()=>this._onDidChange.fire()))}dispose(){b.instanceCount--,super.dispose()}isRegisteredLanguageId(o){return this._registry.isRegisteredLanguageId(o)}getLanguageIdByLanguageName(o){return this._registry.getLanguageIdByLanguageName(o)}getLanguageIdByMimeType(o){return this._registry.getLanguageIdByMimeType(o)}guessLanguageIdByFilepathOrFirstLine(o,t){const i=this._registry.guessLanguageIdByFilepathOrFirstLine(o,t);return(0,E.firstOrDefault)(i,null)}createById(o){return new p(this.onDidChange,()=>this._createAndGetLanguageIdentifier(o))}createByFilepathOrFirstLine(o,t){return new p(this.onDidChange,()=>{const i=this.guessLanguageIdByFilepathOrFirstLine(o,t);return this._createAndGetLanguageIdentifier(i)})}_createAndGetLanguageIdentifier(o){return(!o||!this.isRegisteredLanguageId(o))&&(o=m.PLAINTEXT_LANGUAGE_ID),o}requestBasicLanguageFeatures(o){this._requestedBasicLanguages.has(o)||(this._requestedBasicLanguages.add(o),this._onDidRequestBasicLanguageFeatures.fire(o))}requestRichLanguageFeatures(o){this._requestedRichLanguages.has(o)||(this._requestedRichLanguages.add(o),this.requestBasicLanguageFeatures(o),y.TokenizationRegistry.getOrCreate(o),this._onDidRequestRichLanguageFeatures.fire(o))}}e.LanguageService=b;class p{constructor(o,t){this._value=(0,_.observableFromEvent)(this,o,()=>t()),this.onDidChange=d.Event.fromObservable(this._value)}get languageId(){return this._value.get()}}}),define(ne[712],se([1,0,5,2,120,43,376,59,174,669,210]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.MarginHoverWidget=void 0;const o=d.$;let t=class extends k.Disposable{static{n=this}static{this.ID="editor.contrib.modesGlyphHoverWidget"}constructor(s,g,c){super(),this._renderDisposeables=this._register(new k.DisposableStore),this._editor=s,this._isVisible=!1,this._messages=[],this._hover=this._register(new _.HoverWidget),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._markdownRenderer=this._register(new I.MarkdownRenderer({editor:this._editor},g,c)),this._computer=new b.MarginHoverComputer(this._editor),this._hoverOperation=this._register(new y.HoverOperation(this._editor,this._computer)),this._register(this._hoverOperation.onResult(l=>{this._withResult(l.value)})),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration(l=>{l.hasChanged(50)&&this._updateFont()})),this._register(d.addStandardDisposableListener(this._hover.containerDomNode,"mouseleave",l=>{this._onMouseLeave(l)})),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return n.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(g=>this._editor.applyFontInfo(g))}_onModelDecorationsChanged(){this._isVisible&&(this._hoverOperation.cancel(),this._hoverOperation.start(0))}showsOrWillShow(s){const g=s.target;return g.type===2&&g.detail.glyphMarginLane?(this._startShowingAt(g.position.lineNumber,g.detail.glyphMarginLane),!0):g.type===3?(this._startShowingAt(g.position.lineNumber,"lineNo"),!0):!1}_startShowingAt(s,g){this._computer.lineNumber===s&&this._computer.lane===g||(this._hoverOperation.cancel(),this.hide(),this._computer.lineNumber=s,this._computer.lane=g,this._hoverOperation.start(0))}hide(){this._computer.lineNumber=-1,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(s){this._messages=s,this._messages.length>0?this._renderMessages(this._computer.lineNumber,this._messages):this.hide()}_renderMessages(s,g){this._renderDisposeables.clear();const c=document.createDocumentFragment();for(const l of g){const a=o("div.hover-row.markdown-hover"),r=d.append(a,o("div.hover-contents")),u=this._renderDisposeables.add(this._markdownRenderer.render(l.value));r.appendChild(u.element),c.appendChild(a)}this._updateContents(c),this._showAt(s)}_updateContents(s){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(s),this._updateFont()}_showAt(s){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const g=this._editor.getLayoutInfo(),c=this._editor.getTopForLineNumber(s),l=this._editor.getScrollTop(),a=this._editor.getOption(67),r=this._hover.containerDomNode.clientHeight,u=c-l-(r-a)/2,C=g.glyphMarginLeft+g.glyphMarginWidth+(this._computer.lane==="lineNo"?g.lineNumbersWidth:0);this._hover.containerDomNode.style.left=`${C}px`,this._hover.containerDomNode.style.top=`${Math.max(Math.round(u),0)}px`}_onMouseLeave(s){const g=this._editor.getDomNode();(!g||!(0,p.isMousePositionWithinElement)(g,s.x,s.y))&&this.hide()}};e.MarginHoverWidget=t,e.MarginHoverWidget=t=n=ke([ce(1,E.ILanguageService),ce(2,m.IOpenerService)],t)}),define(ne[713],se([1,0,2,7,14,210,712,196]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarginHoverController=void 0;const m=!1;let _=class extends d.Disposable{static{this.ID="editor.contrib.marginHover"}constructor(p,n){super(),this._editor=p,this._instantiationService=n,this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new d.DisposableStore,this._hoverState={mouseDown:!1},this._reactToEditorMouseMoveRunner=this._register(new I.RunOnceScheduler(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(o=>{o.hasChanged(60)&&(this._unhookListeners(),this._hookListeners())}))}_hookListeners(){const p=this._editor.getOption(60);this._hoverSettings={enabled:p.enabled,sticky:p.sticky,hidingDelay:p.hidingDelay},p.enabled?(this._listenersStore.add(this._editor.onMouseDown(n=>this._onEditorMouseDown(n))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(n=>this._onEditorMouseMove(n))),this._listenersStore.add(this._editor.onKeyDown(n=>this._onKeyDown(n)))):(this._listenersStore.add(this._editor.onMouseMove(n=>this._onEditorMouseMove(n))),this._listenersStore.add(this._editor.onKeyDown(n=>this._onKeyDown(n)))),this._listenersStore.add(this._editor.onMouseLeave(n=>this._onEditorMouseLeave(n))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this._hideWidgets()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(n=>this._onEditorScrollChanged(n)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(p){(p.scrollTopChanged||p.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(p){this._hoverState.mouseDown=!0,!this._isMouseOnMarginHoverWidget(p)&&this._hideWidgets()}_isMouseOnMarginHoverWidget(p){const n=this._glyphWidget?.getDomNode();return n?(0,E.isMousePositionWithinElement)(n,p.event.posx,p.event.posy):!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(p){this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),this._isMouseOnMarginHoverWidget(p))||m||this._hideWidgets()}_shouldNotRecomputeCurrentHoverWidget(p){const n=this._hoverSettings.sticky,o=this._isMouseOnMarginHoverWidget(p);return n&&o}_onEditorMouseMove(p){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._mouseMoveEvent=p,this._shouldNotRecomputeCurrentHoverWidget(p)){this._reactToEditorMouseMoveRunner.cancel();return}this._reactToEditorMouseMove(p)}_reactToEditorMouseMove(p){!p||this._tryShowHoverWidget(p)||m||this._hideWidgets()}_tryShowHoverWidget(p){return this._getOrCreateGlyphWidget().showsOrWillShow(p)}_onKeyDown(p){this._editor.hasModel()&&(p.keyCode===5||p.keyCode===6||p.keyCode===57||p.keyCode===4||this._hideWidgets())}_hideWidgets(){m||this._glyphWidget?.hide()}_getOrCreateGlyphWidget(){return this._glyphWidget||(this._glyphWidget=this._instantiationService.createInstance(y.MarginHoverWidget,this._editor)),this._glyphWidget}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._glyphWidget?.dispose()}};e.MarginHoverController=_,e.MarginHoverController=_=ke([ce(1,k.IInstantiationService)],_)}),define(ne[714],se([1,0,11,183,75,230,23,240]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getReindentEditOperations=_;function _(p,n,o,t){if(p.getLineCount()===1&&p.getLineMaxColumn(1)===1)return[];const i=n.getLanguageConfiguration(p.getLanguageId()).indentRulesSupport;if(!i)return[];const s=new m.ProcessedIndentRulesSupport(p,i,n);for(t=Math.min(t,p.getLineCount());o<=t&&s.shouldIgnore(o);)o++;if(o>t-1)return[];const{tabSize:g,indentSize:c,insertSpaces:l}=p.getOptions(),a=(v,w)=>(w=w||1,k.ShiftCommand.shiftIndent(v,v.length+w,g,c,l)),r=(v,w)=>(w=w||1,k.ShiftCommand.unshiftIndent(v,v.length+w,g,c,l)),u=[],C=p.getLineContent(o);let f=d.getLeadingWhitespace(C),h=f;s.shouldIncrease(o)?(h=a(h),f=a(f)):s.shouldIndentNextLine(o)&&(h=a(h)),o++;for(let v=o;v<=t;v++){if(b(p,v))continue;const w=p.getLineContent(v),S=d.getLeadingWhitespace(w),L=h;s.shouldDecrease(v,L)&&(h=r(h),f=r(f)),S!==h&&u.push(I.EditOperation.replaceMove(new y.Selection(v,1,v,S.length+1),(0,E.normalizeIndentation)(h,c,l))),!s.shouldIgnore(v)&&(s.shouldIncrease(v,L)?(f=a(f),h=f):s.shouldIndentNextLine(v,L)?h=a(h):h=f)}return u}function b(p,n){return p.tokenization.isCheapToTokenize(n)?p.tokenization.getLineTokens(n).getStandardTokenType(0)===2:!1}}),define(ne[715],se([1,0,18,102,82,2,21,4,104,113,27,36,17,378,246]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineCompletionWithUpdatedRange=e.UpToDateInlineCompletions=e.InlineCompletionsSource=void 0;let s=class extends E.Disposable{constructor(f,h,v,w,S){super(),this.textModel=f,this.versionId=h,this._debounceValue=v,this.languageFeaturesService=w,this.languageConfigurationService=S,this._updateOperation=this._register(new E.MutableDisposable),this.inlineCompletions=(0,y.disposableObservableValue)("inlineCompletions",void 0),this.suggestWidgetInlineCompletions=(0,y.disposableObservableValue)("suggestWidgetInlineCompletions",void 0),this._register(this.textModel.onDidChangeContent(()=>{this._updateOperation.clear()}))}fetch(f,h,v){const w=new c(f,h,this.textModel.getVersionId()),S=h.selectedSuggestionInfo?this.suggestWidgetInlineCompletions:this.inlineCompletions;if(this._updateOperation.value?.request.satisfies(w))return this._updateOperation.value.promise;if(S.get()?.request.satisfies(w))return Promise.resolve(!0);const L=!!this._updateOperation.value;this._updateOperation.clear();const D=new d.CancellationTokenSource,T=(async()=>{if((L||h.triggerKind===p.InlineCompletionTriggerKind.Automatic)&&await g(this._debounceValue.get(this.textModel),D.token),D.token.isCancellationRequested||this._store.isDisposed||this.textModel.getVersionId()!==w.versionId)return!1;const P=new Date,N=await(0,t.provideInlineCompletions)(this.languageFeaturesService.inlineCompletionsProvider,f,this.textModel,h,D.token,this.languageConfigurationService);if(D.token.isCancellationRequested||this._store.isDisposed||this.textModel.getVersionId()!==w.versionId)return!1;const O=new Date;this._debounceValue.update(this.textModel,O.getTime()-P.getTime());const F=new a(N,w,this.textModel,this.versionId);if(v){const x=v.toInlineCompletion(void 0);v.canBeReused(this.textModel,f)&&!N.has(x)&&F.prepend(v.inlineCompletion,x.range,!0)}return this._updateOperation.clear(),(0,y.transaction)(x=>{S.set(F,x)}),!0})(),M=new l(w,D,T);return this._updateOperation.value=M,T}clear(f){this._updateOperation.clear(),this.inlineCompletions.set(void 0,f),this.suggestWidgetInlineCompletions.set(void 0,f)}clearSuggestWidgetInlineCompletions(f){this._updateOperation.value?.request.context.selectedSuggestionInfo&&this._updateOperation.clear(),this.suggestWidgetInlineCompletions.set(void 0,f)}cancelUpdate(){this._updateOperation.clear()}};e.InlineCompletionsSource=s,e.InlineCompletionsSource=s=ke([ce(3,o.ILanguageFeaturesService),ce(4,n.ILanguageConfigurationService)],s);function g(C,f){return new Promise(h=>{let v;const w=setTimeout(()=>{v&&v.dispose(),h()},C);f&&(v=f.onCancellationRequested(()=>{clearTimeout(w),v&&v.dispose(),h()}))})}class c{constructor(f,h,v){this.position=f,this.context=h,this.versionId=v}satisfies(f){return this.position.equals(f.position)&&(0,k.equalsIfDefined)(this.context.selectedSuggestionInfo,f.context.selectedSuggestionInfo,(0,k.itemEquals)())&&(f.context.triggerKind===p.InlineCompletionTriggerKind.Automatic||this.context.triggerKind===p.InlineCompletionTriggerKind.Explicit)&&this.versionId===f.versionId}}class l{constructor(f,h,v){this.request=f,this.cancellationTokenSource=h,this.promise=v}dispose(){this.cancellationTokenSource.cancel()}}class a{get inlineCompletions(){return this._inlineCompletions}constructor(f,h,v,w){this.inlineCompletionProviderResult=f,this.request=h,this._textModel=v,this._versionId=w,this._refCount=1,this._prependedInlineCompletionItems=[];const S=v.deltaDecorations([],f.completions.map(L=>({range:L.range,options:{description:"inline-completion-tracking-range"}})));this._inlineCompletions=f.completions.map((L,D)=>new r(L,S[D],this._textModel,this._versionId))}clone(){return this._refCount++,this}dispose(){if(this._refCount--,this._refCount===0){setTimeout(()=>{this._textModel.isDisposed()||this._textModel.deltaDecorations(this._inlineCompletions.map(f=>f.decorationId),[])},0),this.inlineCompletionProviderResult.dispose();for(const f of this._prependedInlineCompletionItems)f.source.removeRef()}}prepend(f,h,v){v&&f.source.addRef();const w=this._textModel.deltaDecorations([],[{range:h,options:{description:"inline-completion-tracking-range"}}])[0];this._inlineCompletions.unshift(new r(f,w,this._textModel,this._versionId)),this._prependedInlineCompletionItems.push(f)}}e.UpToDateInlineCompletions=a;class r{get forwardStable(){return this.inlineCompletion.source.inlineCompletions.enableForwardStability??!1}constructor(f,h,v,w){this.inlineCompletion=f,this.decorationId=h,this._textModel=v,this._modelVersion=w,this.semanticId=JSON.stringify([this.inlineCompletion.filterText,this.inlineCompletion.insertText,this.inlineCompletion.range.getStartPosition().toString()]),this._updatedRange=(0,y.derivedOpts)({owner:this,equalsFn:m.Range.equalsRange},S=>(this._modelVersion.read(S),this._textModel.getDecorationRange(this.decorationId)))}toInlineCompletion(f){return this.inlineCompletion.withRange(this._updatedRange.read(f)??u)}toSingleTextEdit(f){return new _.SingleTextEdit(this._updatedRange.read(f)??u,this.inlineCompletion.insertText)}isVisible(f,h,v){const w=(0,i.singleTextRemoveCommonPrefix)(this._toFilterTextReplacement(v),f),S=this._updatedRange.read(v);if(!S||!this.inlineCompletion.range.getStartPosition().equals(S.getStartPosition())||h.lineNumber!==w.range.startLineNumber)return!1;const L=f.getValueInRange(w.range,1),D=w.text,T=Math.max(0,h.column-w.range.startColumn);let M=D.substring(0,T),A=D.substring(T),P=L.substring(0,T),N=L.substring(T);const O=f.getLineIndentColumn(w.range.startLineNumber);return w.range.startColumn<=O&&(P=P.trimStart(),P.length===0&&(N=N.trimStart()),M=M.trimStart(),M.length===0&&(A=A.trimStart())),M.startsWith(P)&&!!(0,I.matchesSubString)(N,A)}canBeReused(f,h){const v=this._updatedRange.read(void 0);return!!v&&v.containsPosition(h)&&this.isVisible(f,h,void 0)&&b.TextLength.ofRange(v).isGreaterThanOrEqualTo(b.TextLength.ofRange(this.inlineCompletion.range))}_toFilterTextReplacement(f){return new _.SingleTextEdit(this._updatedRange.read(f)??u,this.inlineCompletion.filterText)}}e.InlineCompletionWithUpdatedRange=r;const u=new m.Range(1,1,1,1)}),define(ne[716],se([1,0,11,183,4,23,131,36,338,241,275]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MoveLinesCommand=void 0;let n=class{constructor(t,i,s,g){this._languageConfigurationService=g,this._selection=t,this._isMovingDown=i,this._autoIndent=s,this._selectionId=null,this._moveEndLineSelectionShrink=!1}getEditOperations(t,i){const s=()=>t.getLanguageId(),g=(f,h)=>t.getLanguageIdAtPosition(f,h),c=t.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===c){this._selectionId=i.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=i.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let l=this._selection;l.startLineNumberT===l.startLineNumber?t.tokenization.getLineTokens(f):t.tokenization.getLineTokens(T),getLanguageId:s,getLanguageIdAtPosition:g},getLineContent:T=>T===l.startLineNumber?t.getLineContent(f):t.getLineContent(T)},D=(0,b.getGoodIndentForLine)(this._autoIndent,L,t.getLanguageIdAtPosition(f,1),l.startLineNumber,C,this._languageConfigurationService);if(D!==null){const T=d.getLeadingWhitespace(t.getLineContent(f)),M=_.getSpaceCnt(D,a),A=_.getSpaceCnt(T,a);M!==A&&(v=_.generateIndent(M,a,u)+this.trimStart(h))}}i.addEditOperation(new I.Range(l.startLineNumber,1,l.startLineNumber,1),v+` +`);const S=this.matchEnterRuleMovingDown(t,C,a,l.startLineNumber,f,v);if(S!==null)S!==0&&this.getIndentEditsOfMovingBlock(t,i,l,a,u,S);else{const L={tokenization:{getLineTokens:T=>T===l.startLineNumber?t.tokenization.getLineTokens(f):T>=l.startLineNumber+1&&T<=l.endLineNumber+1?t.tokenization.getLineTokens(T-1):t.tokenization.getLineTokens(T),getLanguageId:s,getLanguageIdAtPosition:g},getLineContent:T=>T===l.startLineNumber?v:T>=l.startLineNumber+1&&T<=l.endLineNumber+1?t.getLineContent(T-1):t.getLineContent(T)},D=(0,b.getGoodIndentForLine)(this._autoIndent,L,t.getLanguageIdAtPosition(f,1),l.startLineNumber+1,C,this._languageConfigurationService);if(D!==null){const T=d.getLeadingWhitespace(t.getLineContent(l.startLineNumber)),M=_.getSpaceCnt(D,a),A=_.getSpaceCnt(T,a);if(M!==A){const P=M-A;this.getIndentEditsOfMovingBlock(t,i,l,a,u,P)}}}}else i.addEditOperation(new I.Range(l.startLineNumber,1,l.startLineNumber,1),v+` +`)}else if(f=l.startLineNumber-1,h=t.getLineContent(f),i.addEditOperation(new I.Range(f,1,f+1,1),null),i.addEditOperation(new I.Range(l.endLineNumber,t.getLineMaxColumn(l.endLineNumber),l.endLineNumber,t.getLineMaxColumn(l.endLineNumber)),` +`+h),this.shouldAutoIndent(t,l)){const v={tokenization:{getLineTokens:S=>S===f?t.tokenization.getLineTokens(l.startLineNumber):t.tokenization.getLineTokens(S),getLanguageId:s,getLanguageIdAtPosition:g},getLineContent:S=>S===f?t.getLineContent(l.startLineNumber):t.getLineContent(S)},w=this.matchEnterRule(t,C,a,l.startLineNumber,l.startLineNumber-2);if(w!==null)w!==0&&this.getIndentEditsOfMovingBlock(t,i,l,a,u,w);else{const S=(0,b.getGoodIndentForLine)(this._autoIndent,v,t.getLanguageIdAtPosition(l.startLineNumber,1),f,C,this._languageConfigurationService);if(S!==null){const L=d.getLeadingWhitespace(t.getLineContent(l.startLineNumber)),D=_.getSpaceCnt(S,a),T=_.getSpaceCnt(L,a);if(D!==T){const M=D-T;this.getIndentEditsOfMovingBlock(t,i,l,a,u,M)}}}}}this._selectionId=i.trackSelection(l)}buildIndentConverter(t,i,s){return{shiftIndent:g=>k.ShiftCommand.shiftIndent(g,g.length+1,t,i,s),unshiftIndent:g=>k.ShiftCommand.unshiftIndent(g,g.length+1,t,i,s)}}parseEnterResult(t,i,s,g,c){if(c){let l=c.indentation;c.indentAction===y.IndentAction.None||c.indentAction===y.IndentAction.Indent?l=c.indentation+c.appendText:c.indentAction===y.IndentAction.IndentOutdent?l=c.indentation:c.indentAction===y.IndentAction.Outdent&&(l=i.unshiftIndent(c.indentation)+c.appendText);const a=t.getLineContent(g);if(this.trimStart(a).indexOf(this.trimStart(l))>=0){const r=d.getLeadingWhitespace(t.getLineContent(g));let u=d.getLeadingWhitespace(l);const C=(0,b.getIndentMetadata)(t,g,this._languageConfigurationService);C!==null&&C&2&&(u=i.unshiftIndent(u));const f=_.getSpaceCnt(u,s),h=_.getSpaceCnt(r,s);return f-h}}return null}matchEnterRuleMovingDown(t,i,s,g,c,l){if(d.lastNonWhitespaceIndex(l)>=0){const a=t.getLineMaxColumn(c),r=(0,p.getEnterAction)(this._autoIndent,t,new I.Range(c,a,c,a),this._languageConfigurationService);return this.parseEnterResult(t,i,s,g,r)}else{let a=g-1;for(;a>=1;){const C=t.getLineContent(a);if(d.lastNonWhitespaceIndex(C)>=0)break;a--}if(a<1||g>t.getLineCount())return null;const r=t.getLineMaxColumn(a),u=(0,p.getEnterAction)(this._autoIndent,t,new I.Range(a,r,a,r),this._languageConfigurationService);return this.parseEnterResult(t,i,s,g,u)}}matchEnterRule(t,i,s,g,c,l){let a=c;for(;a>=1;){let C;if(a===c&&l!==void 0?C=l:C=t.getLineContent(a),d.lastNonWhitespaceIndex(C)>=0)break;a--}if(a<1||g>t.getLineCount())return null;const r=t.getLineMaxColumn(a),u=(0,p.getEnterAction)(this._autoIndent,t,new I.Range(a,r,a,r),this._languageConfigurationService);return this.parseEnterResult(t,i,s,g,u)}trimStart(t){return t.replace(/^\s+/,"")}shouldAutoIndent(t,i){if(this._autoIndent<4||!t.tokenization.isCheapToTokenize(i.startLineNumber))return!1;const s=t.getLanguageIdAtPosition(i.startLineNumber,1),g=t.getLanguageIdAtPosition(i.endLineNumber,1);return!(s!==g||this._languageConfigurationService.getLanguageConfiguration(s).indentRulesSupport===null)}getIndentEditsOfMovingBlock(t,i,s,g,c,l){for(let a=s.startLineNumber;a<=s.endLineNumber;a++){const r=t.getLineContent(a),u=d.getLeadingWhitespace(r),f=_.getSpaceCnt(u,g)+l,h=_.generateIndent(f,g,c);h!==u&&(i.addEditOperation(new I.Range(a,1,a,u.length+1),h),a===s.endLineNumber&&s.endColumn<=u.length+1&&h===""&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(t,i){let s=i.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(s=s.setEndPosition(s.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&s.startLineNumber{a.hasChanged(50)&&this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose()}_configureFont(){const c=this._editor.getOptions(),l=c.get(50),a=l.getMassagedFontFamily(),r=c.get(120)||l.fontSize,u=c.get(121)||l.lineHeight,C=l.fontWeight,f=`${r}px`,h=`${u}px`;this.domNode.style.fontSize=f,this.domNode.style.lineHeight=`${u/r}`,this.domNode.style.fontWeight=C,this.domNode.style.fontFeatureSettings=l.fontFeatureSettings,this._type.style.fontFamily=a,this._close.style.height=h,this._close.style.width=h}getLayoutInfo(){const c=this._editor.getOption(121)||this._editor.getOption(50).lineHeight,l=this._borderWidth,a=l*2;return{lineHeight:c,borderWidth:l,borderHeight:a,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=n.localize(1345,"Loading..."),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,this.getLayoutInfo().lineHeight*2),this._onDidChangeContents.fire(this)}renderItem(c,l){this._renderDisposeable.clear();let{detail:a,documentation:r}=c.completion;if(l){let u="";u+=`score: ${c.score[0]} +`,u+=`prefix: ${c.word??"(no prefix)"} +`,u+=`word: ${c.completion.filterText?c.completion.filterText+" (filterText)":c.textLabel} +`,u+=`distance: ${c.distance} (localityBonus-setting) +`,u+=`index: ${c.idx}, based on ${c.completion.sortText&&`sortText: "${c.completion.sortText}"`||"label"} +`,u+=`commit_chars: ${c.completion.commitCharacters?.join("")} +`,r=new m.MarkdownString().appendCodeblock("empty",u),a=`Provider: ${c.provider._debugDisplayName}`}if(!l&&!t(c)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),a){const u=a.length>1e5?`${a.substr(0,1e5)}\u2026`:a;this._type.textContent=u,this._type.title=u,d.show(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(u))}else d.clearNode(this._type),this._type.title="",d.hide(this._type),this.domNode.classList.add("no-type");if(d.clearNode(this._docs),typeof r=="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=r;else if(r){this._docs.classList.add("markdown-docs"),d.clearNode(this._docs);const u=this._markdownRenderer.render(r);this._docs.appendChild(u.element),this._renderDisposeable.add(u),this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync(()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}))}this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=u=>{u.preventDefault(),u.stopPropagation()},this._close.onclick=u=>{u.preventDefault(),u.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get isEmpty(){return this.domNode.classList.contains("no-docs")}get size(){return this._size}layout(c,l){const a=new d.Dimension(c,l);d.Dimension.equals(a,this._size)||(this._size=a,d.size(this.domNode,c,l)),this._scrollbar.scanDomNode()}scrollDown(c=8){this._body.scrollTop+=c}scrollUp(c=8){this._body.scrollTop-=c}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}set borderWidth(c){this._borderWidth=c}get borderWidth(){return this._borderWidth}};e.SuggestDetailsWidget=i,e.SuggestDetailsWidget=i=ke([ce(1,o.IInstantiationService)],i);class s{constructor(c,l){this.widget=c,this._editor=l,this.allowEditorOverflow=!0,this._disposables=new _.DisposableStore,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new p.ResizableHTMLElement,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(c.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let a,r,u=0,C=0;this._disposables.add(this._resizable.onDidWillResize(()=>{a=this._topLeft,r=this._resizable.size})),this._disposables.add(this._resizable.onDidResize(f=>{if(a&&r){this.widget.layout(f.dimension.width,f.dimension.height);let h=!1;f.west&&(C=r.width-f.dimension.width,h=!0),f.north&&(u=r.height-f.dimension.height,h=!0),h&&this._applyTopLeft({top:a.top+u,left:a.left+C})}f.done&&(a=void 0,r=void 0,u=0,C=0,this._userSize=f.dimension)})),this._disposables.add(this.widget.onDidChangeContents(()=>{this._anchorBox&&this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){this._added||(this._editor.addOverlayWidget(this),this._added=!0)}hide(c=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),c&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(c,l){const a=c.getBoundingClientRect();this._anchorBox=a,this._preferAlignAtTop=l,this._placeAtAnchor(this._anchorBox,this._userSize??this.widget.size,l)}_placeAtAnchor(c,l,a){const r=d.getClientArea(this.getDomNode().ownerDocument.body),u=this.widget.getLayoutInfo(),C=new d.Dimension(220,2*u.lineHeight),f=c.top,h=function(){const x=r.width-(c.left+c.width+u.borderWidth+u.horizontalPadding),W=-u.borderWidth+c.left+c.width,V=new d.Dimension(x,r.height-c.top-u.borderHeight-u.verticalPadding),q=V.with(void 0,c.top+c.height-u.borderHeight-u.verticalPadding);return{top:f,left:W,fit:x-l.width,maxSizeTop:V,maxSizeBottom:q,minSize:C.with(Math.min(x,C.width))}}(),v=function(){const x=c.left-u.borderWidth-u.horizontalPadding,W=Math.max(u.horizontalPadding,c.left-l.width-u.borderWidth),V=new d.Dimension(x,r.height-c.top-u.borderHeight-u.verticalPadding),q=V.with(void 0,c.top+c.height-u.borderHeight-u.verticalPadding);return{top:f,left:W,fit:x-l.width,maxSizeTop:V,maxSizeBottom:q,minSize:C.with(Math.min(x,C.width))}}(),w=function(){const x=c.left,W=-u.borderWidth+c.top+c.height,V=new d.Dimension(c.width-u.borderHeight,r.height-c.top-c.height-u.verticalPadding);return{top:W,left:x,fit:V.height-l.height,maxSizeBottom:V,maxSizeTop:V,minSize:C.with(V.width)}}(),S=[h,v,w],L=S.find(x=>x.fit>=0)??S.sort((x,W)=>W.fit-x.fit)[0],D=c.top+c.height-u.borderHeight;let T,M=l.height;const A=Math.max(L.maxSizeTop.height,L.maxSizeBottom.height);M>A&&(M=A);let P;a?M<=L.maxSizeTop.height?(T=!0,P=L.maxSizeTop):(T=!1,P=L.maxSizeBottom):M<=L.maxSizeBottom.height?(T=!1,P=L.maxSizeBottom):(T=!0,P=L.maxSizeTop);let{top:N,left:O}=L;!T&&M>c.height&&(N=D-M);const F=this._editor.getDomNode();if(F){const x=F.getBoundingClientRect();N-=x.top,O-=x.left}this._applyTopLeft({left:O,top:N}),this._resizable.enableSashes(!T,L===h,T,L!==h),this._resizable.minSize=L.minSize,this._resizable.maxSize=P,this._resizable.layout(M,Math.min(P.width,l.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(c){this._topLeft=c,this._editor.layoutOverlayWidget(this)}}e.SuggestDetailsOverlay=s}),define(ne[403],se([1,0,13,45,60,19,22,28,109,38]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ConfigurationChangeEvent=e.Configuration=e.ConfigurationModelParser=e.ConfigurationModel=void 0;function p(g){return Object.isFrozen(g)?g:I.deepFreeze(g)}class n{static createEmptyModel(c){return new n({},[],[],void 0,c)}constructor(c,l,a,r,u){this._contents=c,this._keys=l,this._overrides=a,this.raw=r,this.logService=u,this.overrideConfigurations=new Map}get rawConfiguration(){if(!this._rawConfiguration)if(this.raw?.length){const c=this.raw.map(l=>{if(l instanceof n)return l;const a=new o("",this.logService);return a.parseRaw(l),a.configurationModel});this._rawConfiguration=c.reduce((l,a)=>a===l?a:l.merge(a),c[0])}else this._rawConfiguration=this;return this._rawConfiguration}get contents(){return this._contents}get overrides(){return this._overrides}get keys(){return this._keys}isEmpty(){return this._keys.length===0&&Object.keys(this._contents).length===0&&this._overrides.length===0}getValue(c){return c?(0,m.getConfigurationValue)(this.contents,c):this.contents}inspect(c,l){const a=this;return{get value(){return p(a.rawConfiguration.getValue(c))},get override(){return l?p(a.rawConfiguration.getOverrideValue(c,l)):void 0},get merged(){return p(l?a.rawConfiguration.override(l).getValue(c):a.rawConfiguration.getValue(c))},get overrides(){const r=[];for(const{contents:u,identifiers:C,keys:f}of a.rawConfiguration.overrides){const h=new n(u,f,[],void 0,a.logService).getValue(c);h!==void 0&&r.push({identifiers:C,value:h})}return r.length?p(r):void 0}}}getOverrideValue(c,l){const a=this.getContentsForOverrideIdentifer(l);return a?c?(0,m.getConfigurationValue)(a,c):a:void 0}override(c){let l=this.overrideConfigurations.get(c);return l||(l=this.createOverrideConfigurationModel(c),this.overrideConfigurations.set(c,l)),l}merge(...c){const l=I.deepClone(this.contents),a=I.deepClone(this.overrides),r=[...this.keys],u=this.raw?.length?[...this.raw]:[this];for(const C of c)if(u.push(...C.raw?.length?C.raw:[C]),!C.isEmpty()){this.mergeContents(l,C.contents);for(const f of C.overrides){const[h]=a.filter(v=>d.equals(v.identifiers,f.identifiers));h?(this.mergeContents(h.contents,f.contents),h.keys.push(...f.keys),h.keys=d.distinct(h.keys)):a.push(I.deepClone(f))}for(const f of C.keys)r.indexOf(f)===-1&&r.push(f)}return new n(l,r,a,u.every(C=>C instanceof n)?void 0:u,this.logService)}createOverrideConfigurationModel(c){const l=this.getContentsForOverrideIdentifer(c);if(!l||typeof l!="object"||!Object.keys(l).length)return this;const a={};for(const r of d.distinct([...Object.keys(this.contents),...Object.keys(l)])){let u=this.contents[r];const C=l[r];C&&(typeof u=="object"&&typeof C=="object"?(u=I.deepClone(u),this.mergeContents(u,C)):u=C),a[r]=u}return new n(a,this.keys,this.overrides,void 0,this.logService)}mergeContents(c,l){for(const a of Object.keys(l)){if(a in c&&E.isObject(c[a])&&E.isObject(l[a])){this.mergeContents(c[a],l[a]);continue}c[a]=I.deepClone(l[a])}}getContentsForOverrideIdentifer(c){let l=null,a=null;const r=u=>{u&&(a?this.mergeContents(a,u):a=I.deepClone(u))};for(const u of this.overrides)u.identifiers.length===1&&u.identifiers[0]===c?l=u.contents:u.identifiers.includes(c)&&r(u.contents);return r(l),a}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}setValue(c,l){this.updateValue(c,l,!1)}removeValue(c){const l=this.keys.indexOf(c);l!==-1&&(this.keys.splice(l,1),(0,m.removeFromValueTree)(this.contents,c),_.OVERRIDE_PROPERTY_REGEX.test(c)&&this.overrides.splice(this.overrides.findIndex(a=>d.equals(a.identifiers,(0,_.overrideIdentifiersFromKey)(c))),1))}updateValue(c,l,a){if((0,m.addToValueTree)(this.contents,c,l,r=>this.logService.error(r)),a=a||this.keys.indexOf(c)===-1,a&&this.keys.push(c),_.OVERRIDE_PROPERTY_REGEX.test(c)){const r=(0,_.overrideIdentifiersFromKey)(c),u={identifiers:r,keys:Object.keys(this.contents[c]),contents:(0,m.toValuesTree)(this.contents[c],f=>this.logService.error(f))},C=this.overrides.findIndex(f=>d.equals(f.identifiers,r));C!==-1?this.overrides[C]=u:this.overrides.push(u)}}}e.ConfigurationModel=n;class o{constructor(c,l){this._name=c,this.logService=l,this._raw=null,this._configurationModel=null,this._restrictedConfigurations=[]}get configurationModel(){return this._configurationModel||n.createEmptyModel(this.logService)}parseRaw(c,l){this._raw=c;const{contents:a,keys:r,overrides:u,restricted:C,hasExcludedProperties:f}=this.doParseRaw(c,l);this._configurationModel=new n(a,r,u,f?[c]:void 0,this.logService),this._restrictedConfigurations=C||[]}doParseRaw(c,l){const a=b.Registry.as(_.Extensions.Configuration).getConfigurationProperties(),r=this.filter(c,a,!0,l);c=r.raw;const u=(0,m.toValuesTree)(c,h=>this.logService.error(`Conflict in settings file ${this._name}: ${h}`)),C=Object.keys(c),f=this.toOverrides(c,h=>this.logService.error(`Conflict in settings file ${this._name}: ${h}`));return{contents:u,keys:C,overrides:f,restricted:r.restricted,hasExcludedProperties:r.hasExcludedProperties}}filter(c,l,a,r){let u=!1;if(!r?.scopes&&!r?.skipRestricted&&!r?.exclude?.length)return{raw:c,restricted:[],hasExcludedProperties:u};const C={},f=[];for(const h in c)if(_.OVERRIDE_PROPERTY_REGEX.test(h)&&a){const v=this.filter(c[h],l,!1,r);C[h]=v.raw,u=u||v.hasExcludedProperties,f.push(...v.restricted)}else{const v=l[h],w=v?typeof v.scope<"u"?v.scope:3:void 0;v?.restricted&&f.push(h),!r.exclude?.includes(h)&&(r.include?.includes(h)||(w===void 0||r.scopes===void 0||r.scopes.includes(w))&&!(r.skipRestricted&&v?.restricted))?C[h]=c[h]:u=!0}return{raw:C,restricted:f,hasExcludedProperties:u}}toOverrides(c,l){const a=[];for(const r of Object.keys(c))if(_.OVERRIDE_PROPERTY_REGEX.test(r)){const u={};for(const C in c[r])u[C]=c[r][C];a.push({identifiers:(0,_.overrideIdentifiersFromKey)(r),keys:Object.keys(u),contents:(0,m.toValuesTree)(u,l)})}return a}}e.ConfigurationModelParser=o;class t{constructor(c,l,a,r,u,C,f,h,v,w,S,L,D){this.key=c,this.overrides=l,this._value=a,this.overrideIdentifiers=r,this.defaultConfiguration=u,this.policyConfiguration=C,this.applicationConfiguration=f,this.userConfiguration=h,this.localUserConfiguration=v,this.remoteUserConfiguration=w,this.workspaceConfiguration=S,this.folderConfigurationModel=L,this.memoryConfigurationModel=D}toInspectValue(c){return c?.value!==void 0||c?.override!==void 0||c?.overrides!==void 0?c:void 0}get userInspectValue(){return this._userInspectValue||(this._userInspectValue=this.userConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userInspectValue}get user(){return this.toInspectValue(this.userInspectValue)}}class i{constructor(c,l,a,r,u,C,f,h,v,w){this._defaultConfiguration=c,this._policyConfiguration=l,this._applicationConfiguration=a,this._localUserConfiguration=r,this._remoteUserConfiguration=u,this._workspaceConfiguration=C,this._folderConfigurations=f,this._memoryConfiguration=h,this._memoryConfigurationByResource=v,this.logService=w,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new k.ResourceMap,this._userConfiguration=null}getValue(c,l,a){return this.getConsolidatedConfigurationModel(c,l,a).getValue(c)}updateValue(c,l,a={}){let r;a.resource?(r=this._memoryConfigurationByResource.get(a.resource),r||(r=n.createEmptyModel(this.logService),this._memoryConfigurationByResource.set(a.resource,r))):r=this._memoryConfiguration,l===void 0?r.removeValue(c):r.setValue(c,l),a.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(c,l,a){const r=this.getConsolidatedConfigurationModel(c,l,a),u=this.getFolderConfigurationModelForResource(l.resource,a),C=l.resource?this._memoryConfigurationByResource.get(l.resource)||this._memoryConfiguration:this._memoryConfiguration,f=new Set;for(const h of r.overrides)for(const v of h.identifiers)r.getOverrideValue(c,v)!==void 0&&f.add(v);return new t(c,l,r.getValue(c),f.size?[...f]:void 0,this._defaultConfiguration,this._policyConfiguration.isEmpty()?void 0:this._policyConfiguration,this.applicationConfiguration.isEmpty()?void 0:this.applicationConfiguration,this.userConfiguration,this.localUserConfiguration,this.remoteUserConfiguration,a?this._workspaceConfiguration:void 0,u||void 0,C)}get applicationConfiguration(){return this._applicationConfiguration}get userConfiguration(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration)),this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}getConsolidatedConfigurationModel(c,l,a){let r=this.getConsolidatedConfigurationModelForResource(l,a);return l.overrideIdentifier&&(r=r.override(l.overrideIdentifier)),!this._policyConfiguration.isEmpty()&&this._policyConfiguration.getValue(c)!==void 0&&(r=r.merge(this._policyConfiguration)),r}getConsolidatedConfigurationModelForResource({resource:c},l){let a=this.getWorkspaceConsolidatedConfiguration();if(l&&c){const r=l.getFolder(c);r&&(a=this.getFolderConsolidatedConfiguration(r.uri)||a);const u=this._memoryConfigurationByResource.get(c);u&&(a=a.merge(u))}return a}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.applicationConfiguration,this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration)),this._workspaceConsolidatedConfiguration}getFolderConsolidatedConfiguration(c){let l=this._foldersConsolidatedConfigurations.get(c);if(!l){const a=this.getWorkspaceConsolidatedConfiguration(),r=this._folderConfigurations.get(c);r?(l=a.merge(r),this._foldersConsolidatedConfigurations.set(c,l)):l=a}return l}getFolderConfigurationModelForResource(c,l){if(l&&c){const a=l.getFolder(c);if(a)return this._folderConfigurations.get(a.uri)}}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},policy:{contents:this._policyConfiguration.contents,overrides:this._policyConfiguration.overrides,keys:this._policyConfiguration.keys},application:{contents:this.applicationConfiguration.contents,overrides:this.applicationConfiguration.overrides,keys:this.applicationConfiguration.keys},user:{contents:this.userConfiguration.contents,overrides:this.userConfiguration.overrides,keys:this.userConfiguration.keys},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce((c,l)=>{const{contents:a,overrides:r,keys:u}=this._folderConfigurations.get(l);return c.push([l,{contents:a,overrides:r,keys:u}]),c},[])}}static parse(c,l){const a=this.parseConfigurationModel(c.defaults,l),r=this.parseConfigurationModel(c.policy,l),u=this.parseConfigurationModel(c.application,l),C=this.parseConfigurationModel(c.user,l),f=this.parseConfigurationModel(c.workspace,l),h=c.folders.reduce((v,w)=>(v.set(y.URI.revive(w[0]),this.parseConfigurationModel(w[1],l)),v),new k.ResourceMap);return new i(a,r,u,C,n.createEmptyModel(l),f,h,n.createEmptyModel(l),new k.ResourceMap,l)}static parseConfigurationModel(c,l){return new n(c.contents,c.keys,c.overrides,void 0,l)}}e.Configuration=i;class s{constructor(c,l,a,r,u){this.change=c,this.previous=l,this.currentConfiguraiton=a,this.currentWorkspace=r,this.logService=u,this._marker=` +`,this._markerCode1=this._marker.charCodeAt(0),this._markerCode2=46,this.affectedKeys=new Set,this._previousConfiguration=void 0;for(const C of c.keys)this.affectedKeys.add(C);for(const[,C]of c.overrides)for(const f of C)this.affectedKeys.add(f);this._affectsConfigStr=this._marker;for(const C of this.affectedKeys)this._affectsConfigStr+=C+this._marker}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=i.parse(this.previous.data,this.logService)),this._previousConfiguration}affectsConfiguration(c,l){const a=this._marker+c,r=this._affectsConfigStr.indexOf(a);if(r<0)return!1;const u=r+a.length;if(u>=this._affectsConfigStr.length)return!1;const C=this._affectsConfigStr.charCodeAt(u);if(C!==this._markerCode1&&C!==this._markerCode2)return!1;if(l){const f=this.previousConfiguration?this.previousConfiguration.getValue(c,l,this.previous?.workspace):void 0,h=this.currentConfiguraiton.getValue(c,l,this.currentWorkspace);return!I.equals(f,h)}return!0}}e.ConfigurationChangeEvent=s}),define(ne[717],se([1,0,2,403,109,38]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultConfiguration=void 0;class y extends d.Disposable{get configurationModel(){return this._configurationModel}constructor(_){super(),this.logService=_,this._configurationModel=k.ConfigurationModel.createEmptyModel(this.logService)}reload(){return this.resetConfigurationModel(),this.configurationModel}getConfigurationDefaultOverrides(){return{}}resetConfigurationModel(){this._configurationModel=k.ConfigurationModel.createEmptyModel(this.logService);const _=E.Registry.as(I.Extensions.Configuration).getConfigurationProperties();this.updateConfigurationModel(Object.keys(_),_)}updateConfigurationModel(_,b){const p=this.getConfigurationDefaultOverrides();for(const n of _){const o=p[n],t=b[n];o!==void 0?this._configurationModel.setValue(n,o):t?this._configurationModel.setValue(n,t.default):this._configurationModel.removeValue(n)}}}e.DefaultConfiguration=y}),define(ne[121],se([1,0,140,16,24,38,2,73]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Extensions=e.KeybindingsRegistry=void 0;class _{constructor(){this._coreKeybindings=new m.LinkedList,this._extensionKeybindings=[],this._cachedMergedKeybindings=null}static bindToCurrentPlatform(n){if(k.OS===1){if(n&&n.win)return n.win}else if(k.OS===2){if(n&&n.mac)return n.mac}else if(n&&n.linux)return n.linux;return n}registerKeybindingRule(n){const o=_.bindToCurrentPlatform(n),t=new y.DisposableStore;if(o&&o.primary){const i=(0,d.decodeKeybinding)(o.primary,k.OS);i&&t.add(this._registerDefaultKeybinding(i,n.id,n.args,n.weight,0,n.when))}if(o&&Array.isArray(o.secondary))for(let i=0,s=o.secondary.length;i{c(),this._cachedMergedKeybindings=null})}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(b)),this._cachedMergedKeybindings.slice(0)}}e.KeybindingsRegistry=new _,e.Extensions={EditorModes:"platform.keybindingsRegistry"},E.Registry.add(e.Extensions.EditorModes,e.KeybindingsRegistry);function b(p,n){if(p.weight1!==n.weight1)return p.weight1-n.weight1;if(p.command&&n.command){if(p.commandn.command)return 1}return p.weight2-n.weight2}}),define(ne[29],se([1,0,41,30,6,2,73,24,12,7,121]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.Action2=e.MenuItemAction=e.SubmenuItemAction=e.MenuRegistry=e.IMenuService=e.MenuId=void 0,e.isIMenuItem=o,e.isISubmenuItem=t,e.registerAction2=a;function o(r){return r.command!==void 0}function t(r){return r.submenu!==void 0}class i{static{this._instances=new Map}static{this.CommandPalette=new i("CommandPalette")}static{this.DebugBreakpointsContext=new i("DebugBreakpointsContext")}static{this.DebugCallStackContext=new i("DebugCallStackContext")}static{this.DebugConsoleContext=new i("DebugConsoleContext")}static{this.DebugVariablesContext=new i("DebugVariablesContext")}static{this.NotebookVariablesContext=new i("NotebookVariablesContext")}static{this.DebugHoverContext=new i("DebugHoverContext")}static{this.DebugWatchContext=new i("DebugWatchContext")}static{this.DebugToolBar=new i("DebugToolBar")}static{this.DebugToolBarStop=new i("DebugToolBarStop")}static{this.DebugCallStackToolbar=new i("DebugCallStackToolbar")}static{this.DebugCreateConfiguration=new i("DebugCreateConfiguration")}static{this.EditorContext=new i("EditorContext")}static{this.SimpleEditorContext=new i("SimpleEditorContext")}static{this.EditorContent=new i("EditorContent")}static{this.EditorLineNumberContext=new i("EditorLineNumberContext")}static{this.EditorContextCopy=new i("EditorContextCopy")}static{this.EditorContextPeek=new i("EditorContextPeek")}static{this.EditorContextShare=new i("EditorContextShare")}static{this.EditorTitle=new i("EditorTitle")}static{this.EditorTitleRun=new i("EditorTitleRun")}static{this.EditorTitleContext=new i("EditorTitleContext")}static{this.EditorTitleContextShare=new i("EditorTitleContextShare")}static{this.EmptyEditorGroup=new i("EmptyEditorGroup")}static{this.EmptyEditorGroupContext=new i("EmptyEditorGroupContext")}static{this.EditorTabsBarContext=new i("EditorTabsBarContext")}static{this.EditorTabsBarShowTabsSubmenu=new i("EditorTabsBarShowTabsSubmenu")}static{this.EditorTabsBarShowTabsZenModeSubmenu=new i("EditorTabsBarShowTabsZenModeSubmenu")}static{this.EditorActionsPositionSubmenu=new i("EditorActionsPositionSubmenu")}static{this.ExplorerContext=new i("ExplorerContext")}static{this.ExplorerContextShare=new i("ExplorerContextShare")}static{this.ExtensionContext=new i("ExtensionContext")}static{this.GlobalActivity=new i("GlobalActivity")}static{this.CommandCenter=new i("CommandCenter")}static{this.CommandCenterCenter=new i("CommandCenterCenter")}static{this.LayoutControlMenuSubmenu=new i("LayoutControlMenuSubmenu")}static{this.LayoutControlMenu=new i("LayoutControlMenu")}static{this.MenubarMainMenu=new i("MenubarMainMenu")}static{this.MenubarAppearanceMenu=new i("MenubarAppearanceMenu")}static{this.MenubarDebugMenu=new i("MenubarDebugMenu")}static{this.MenubarEditMenu=new i("MenubarEditMenu")}static{this.MenubarCopy=new i("MenubarCopy")}static{this.MenubarFileMenu=new i("MenubarFileMenu")}static{this.MenubarGoMenu=new i("MenubarGoMenu")}static{this.MenubarHelpMenu=new i("MenubarHelpMenu")}static{this.MenubarLayoutMenu=new i("MenubarLayoutMenu")}static{this.MenubarNewBreakpointMenu=new i("MenubarNewBreakpointMenu")}static{this.PanelAlignmentMenu=new i("PanelAlignmentMenu")}static{this.PanelPositionMenu=new i("PanelPositionMenu")}static{this.ActivityBarPositionMenu=new i("ActivityBarPositionMenu")}static{this.MenubarPreferencesMenu=new i("MenubarPreferencesMenu")}static{this.MenubarRecentMenu=new i("MenubarRecentMenu")}static{this.MenubarSelectionMenu=new i("MenubarSelectionMenu")}static{this.MenubarShare=new i("MenubarShare")}static{this.MenubarSwitchEditorMenu=new i("MenubarSwitchEditorMenu")}static{this.MenubarSwitchGroupMenu=new i("MenubarSwitchGroupMenu")}static{this.MenubarTerminalMenu=new i("MenubarTerminalMenu")}static{this.MenubarViewMenu=new i("MenubarViewMenu")}static{this.MenubarHomeMenu=new i("MenubarHomeMenu")}static{this.OpenEditorsContext=new i("OpenEditorsContext")}static{this.OpenEditorsContextShare=new i("OpenEditorsContextShare")}static{this.ProblemsPanelContext=new i("ProblemsPanelContext")}static{this.SCMInputBox=new i("SCMInputBox")}static{this.SCMChangesSeparator=new i("SCMChangesSeparator")}static{this.SCMChangesContext=new i("SCMChangesContext")}static{this.SCMIncomingChanges=new i("SCMIncomingChanges")}static{this.SCMIncomingChangesContext=new i("SCMIncomingChangesContext")}static{this.SCMIncomingChangesSetting=new i("SCMIncomingChangesSetting")}static{this.SCMOutgoingChanges=new i("SCMOutgoingChanges")}static{this.SCMOutgoingChangesContext=new i("SCMOutgoingChangesContext")}static{this.SCMOutgoingChangesSetting=new i("SCMOutgoingChangesSetting")}static{this.SCMIncomingChangesAllChangesContext=new i("SCMIncomingChangesAllChangesContext")}static{this.SCMIncomingChangesHistoryItemContext=new i("SCMIncomingChangesHistoryItemContext")}static{this.SCMOutgoingChangesAllChangesContext=new i("SCMOutgoingChangesAllChangesContext")}static{this.SCMOutgoingChangesHistoryItemContext=new i("SCMOutgoingChangesHistoryItemContext")}static{this.SCMChangeContext=new i("SCMChangeContext")}static{this.SCMResourceContext=new i("SCMResourceContext")}static{this.SCMResourceContextShare=new i("SCMResourceContextShare")}static{this.SCMResourceFolderContext=new i("SCMResourceFolderContext")}static{this.SCMResourceGroupContext=new i("SCMResourceGroupContext")}static{this.SCMSourceControl=new i("SCMSourceControl")}static{this.SCMSourceControlInline=new i("SCMSourceControlInline")}static{this.SCMSourceControlTitle=new i("SCMSourceControlTitle")}static{this.SCMHistoryTitle=new i("SCMHistoryTitle")}static{this.SCMTitle=new i("SCMTitle")}static{this.SearchContext=new i("SearchContext")}static{this.SearchActionMenu=new i("SearchActionContext")}static{this.StatusBarWindowIndicatorMenu=new i("StatusBarWindowIndicatorMenu")}static{this.StatusBarRemoteIndicatorMenu=new i("StatusBarRemoteIndicatorMenu")}static{this.StickyScrollContext=new i("StickyScrollContext")}static{this.TestItem=new i("TestItem")}static{this.TestItemGutter=new i("TestItemGutter")}static{this.TestProfilesContext=new i("TestProfilesContext")}static{this.TestMessageContext=new i("TestMessageContext")}static{this.TestMessageContent=new i("TestMessageContent")}static{this.TestPeekElement=new i("TestPeekElement")}static{this.TestPeekTitle=new i("TestPeekTitle")}static{this.TestCallStack=new i("TestCallStack")}static{this.TouchBarContext=new i("TouchBarContext")}static{this.TitleBarContext=new i("TitleBarContext")}static{this.TitleBarTitleContext=new i("TitleBarTitleContext")}static{this.TunnelContext=new i("TunnelContext")}static{this.TunnelPrivacy=new i("TunnelPrivacy")}static{this.TunnelProtocol=new i("TunnelProtocol")}static{this.TunnelPortInline=new i("TunnelInline")}static{this.TunnelTitle=new i("TunnelTitle")}static{this.TunnelLocalAddressInline=new i("TunnelLocalAddressInline")}static{this.TunnelOriginInline=new i("TunnelOriginInline")}static{this.ViewItemContext=new i("ViewItemContext")}static{this.ViewContainerTitle=new i("ViewContainerTitle")}static{this.ViewContainerTitleContext=new i("ViewContainerTitleContext")}static{this.ViewTitle=new i("ViewTitle")}static{this.ViewTitleContext=new i("ViewTitleContext")}static{this.CommentEditorActions=new i("CommentEditorActions")}static{this.CommentThreadTitle=new i("CommentThreadTitle")}static{this.CommentThreadActions=new i("CommentThreadActions")}static{this.CommentThreadAdditionalActions=new i("CommentThreadAdditionalActions")}static{this.CommentThreadTitleContext=new i("CommentThreadTitleContext")}static{this.CommentThreadCommentContext=new i("CommentThreadCommentContext")}static{this.CommentTitle=new i("CommentTitle")}static{this.CommentActions=new i("CommentActions")}static{this.CommentsViewThreadActions=new i("CommentsViewThreadActions")}static{this.InteractiveToolbar=new i("InteractiveToolbar")}static{this.InteractiveCellTitle=new i("InteractiveCellTitle")}static{this.InteractiveCellDelete=new i("InteractiveCellDelete")}static{this.InteractiveCellExecute=new i("InteractiveCellExecute")}static{this.InteractiveInputExecute=new i("InteractiveInputExecute")}static{this.InteractiveInputConfig=new i("InteractiveInputConfig")}static{this.ReplInputExecute=new i("ReplInputExecute")}static{this.IssueReporter=new i("IssueReporter")}static{this.NotebookToolbar=new i("NotebookToolbar")}static{this.NotebookStickyScrollContext=new i("NotebookStickyScrollContext")}static{this.NotebookCellTitle=new i("NotebookCellTitle")}static{this.NotebookCellDelete=new i("NotebookCellDelete")}static{this.NotebookCellInsert=new i("NotebookCellInsert")}static{this.NotebookCellBetween=new i("NotebookCellBetween")}static{this.NotebookCellListTop=new i("NotebookCellTop")}static{this.NotebookCellExecute=new i("NotebookCellExecute")}static{this.NotebookCellExecuteGoTo=new i("NotebookCellExecuteGoTo")}static{this.NotebookCellExecutePrimary=new i("NotebookCellExecutePrimary")}static{this.NotebookDiffCellInputTitle=new i("NotebookDiffCellInputTitle")}static{this.NotebookDiffCellMetadataTitle=new i("NotebookDiffCellMetadataTitle")}static{this.NotebookDiffCellOutputsTitle=new i("NotebookDiffCellOutputsTitle")}static{this.NotebookOutputToolbar=new i("NotebookOutputToolbar")}static{this.NotebookOutlineFilter=new i("NotebookOutlineFilter")}static{this.NotebookOutlineActionMenu=new i("NotebookOutlineActionMenu")}static{this.NotebookEditorLayoutConfigure=new i("NotebookEditorLayoutConfigure")}static{this.NotebookKernelSource=new i("NotebookKernelSource")}static{this.BulkEditTitle=new i("BulkEditTitle")}static{this.BulkEditContext=new i("BulkEditContext")}static{this.TimelineItemContext=new i("TimelineItemContext")}static{this.TimelineTitle=new i("TimelineTitle")}static{this.TimelineTitleContext=new i("TimelineTitleContext")}static{this.TimelineFilterSubMenu=new i("TimelineFilterSubMenu")}static{this.AccountsContext=new i("AccountsContext")}static{this.SidebarTitle=new i("SidebarTitle")}static{this.PanelTitle=new i("PanelTitle")}static{this.AuxiliaryBarTitle=new i("AuxiliaryBarTitle")}static{this.AuxiliaryBarHeader=new i("AuxiliaryBarHeader")}static{this.TerminalInstanceContext=new i("TerminalInstanceContext")}static{this.TerminalEditorInstanceContext=new i("TerminalEditorInstanceContext")}static{this.TerminalNewDropdownContext=new i("TerminalNewDropdownContext")}static{this.TerminalTabContext=new i("TerminalTabContext")}static{this.TerminalTabEmptyAreaContext=new i("TerminalTabEmptyAreaContext")}static{this.TerminalStickyScrollContext=new i("TerminalStickyScrollContext")}static{this.WebviewContext=new i("WebviewContext")}static{this.InlineCompletionsActions=new i("InlineCompletionsActions")}static{this.InlineEditsActions=new i("InlineEditsActions")}static{this.InlineEditActions=new i("InlineEditActions")}static{this.NewFile=new i("NewFile")}static{this.MergeInput1Toolbar=new i("MergeToolbar1Toolbar")}static{this.MergeInput2Toolbar=new i("MergeToolbar2Toolbar")}static{this.MergeBaseToolbar=new i("MergeBaseToolbar")}static{this.MergeInputResultToolbar=new i("MergeToolbarResultToolbar")}static{this.InlineSuggestionToolbar=new i("InlineSuggestionToolbar")}static{this.InlineEditToolbar=new i("InlineEditToolbar")}static{this.ChatContext=new i("ChatContext")}static{this.ChatCodeBlock=new i("ChatCodeblock")}static{this.ChatCompareBlock=new i("ChatCompareBlock")}static{this.ChatMessageTitle=new i("ChatMessageTitle")}static{this.ChatExecute=new i("ChatExecute")}static{this.ChatExecuteSecondary=new i("ChatExecuteSecondary")}static{this.ChatInputSide=new i("ChatInputSide")}static{this.AccessibleView=new i("AccessibleView")}static{this.MultiDiffEditorFileToolbar=new i("MultiDiffEditorFileToolbar")}static{this.DiffEditorHunkToolbar=new i("DiffEditorHunkToolbar")}static{this.DiffEditorSelectionToolbar=new i("DiffEditorSelectionToolbar")}constructor(u){if(i._instances.has(u))throw new TypeError(`MenuId with identifier '${u}' already exists. Use MenuId.for(ident) or a unique identifier`);i._instances.set(u,this),this.id=u}}e.MenuId=i,e.IMenuService=(0,b.createDecorator)("menuService");class s{static{this._all=new Map}static for(u){let C=this._all.get(u);return C||(C=new s(u),this._all.set(u,C)),C}static merge(u){const C=new Set;for(const f of u)f instanceof s&&C.add(f.id);return C}constructor(u){this.id=u,this.has=C=>C===u}}e.MenuRegistry=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new I.MicrotaskEmitter({merge:s.merge}),this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(r){return this._commands.set(r.id,r),this._onDidChangeMenu.fire(s.for(i.CommandPalette)),(0,E.toDisposable)(()=>{this._commands.delete(r.id)&&this._onDidChangeMenu.fire(s.for(i.CommandPalette))})}getCommand(r){return this._commands.get(r)}getCommands(){const r=new Map;return this._commands.forEach((u,C)=>r.set(C,u)),r}appendMenuItem(r,u){let C=this._menuItems.get(r);C||(C=new y.LinkedList,this._menuItems.set(r,C));const f=C.push(u);return this._onDidChangeMenu.fire(s.for(r)),(0,E.toDisposable)(()=>{f(),this._onDidChangeMenu.fire(s.for(r))})}appendMenuItems(r){const u=new E.DisposableStore;for(const{id:C,item:f}of r)u.add(this.appendMenuItem(C,f));return u}getMenuItems(r){let u;return this._menuItems.has(r)?u=[...this._menuItems.get(r)]:u=[],r===i.CommandPalette&&this._appendImplicitItems(u),u}_appendImplicitItems(r){const u=new Set;for(const C of r)o(C)&&(u.add(C.command.id),C.alt&&u.add(C.alt.id));this._commands.forEach((C,f)=>{u.has(f)||r.push({command:C})})}};class g extends d.SubmenuAction{constructor(u,C,f){super(`submenuitem.${u.submenu.id}`,typeof u.title=="string"?u.title:u.title.value,f,"submenu"),this.item=u,this.hideActions=C}}e.SubmenuItemAction=g;let c=n=class{static label(u,C){return C?.renderShortTitle&&u.shortTitle?typeof u.shortTitle=="string"?u.shortTitle:u.shortTitle.value:typeof u.title=="string"?u.title:u.title.value}constructor(u,C,f,h,v,w,S){this.hideActions=h,this.menuKeybinding=v,this._commandService=S,this.id=u.id,this.label=n.label(u,f),this.tooltip=(typeof u.tooltip=="string"?u.tooltip:u.tooltip?.value)??"",this.enabled=!u.precondition||w.contextMatchesRules(u.precondition),this.checked=void 0;let L;if(u.toggled){const D=u.toggled.condition?u.toggled:{condition:u.toggled};this.checked=w.contextMatchesRules(D.condition),this.checked&&D.tooltip&&(this.tooltip=typeof D.tooltip=="string"?D.tooltip:D.tooltip.value),this.checked&&k.ThemeIcon.isThemeIcon(D.icon)&&(L=D.icon),this.checked&&D.title&&(this.label=typeof D.title=="string"?D.title:D.title.value)}L||(L=k.ThemeIcon.isThemeIcon(u.icon)?u.icon:void 0),this.item=u,this.alt=C?new n(C,void 0,f,h,void 0,w,S):void 0,this._options=f,this.class=L&&k.ThemeIcon.asClassName(L)}run(...u){let C=[];return this._options?.arg&&(C=[...C,this._options.arg]),this._options?.shouldForwardArgs&&(C=[...C,...u]),this._commandService.executeCommand(this.id,...C)}};e.MenuItemAction=c,e.MenuItemAction=c=n=ke([ce(5,_.IContextKeyService),ce(6,m.ICommandService)],c);class l{constructor(u){this.desc=u}}e.Action2=l;function a(r){const u=[],C=new r,{f1:f,menu:h,keybinding:v,...w}=C.desc;if(m.CommandsRegistry.getCommand(w.id))throw new Error(`Cannot register two commands with the same id: ${w.id}`);if(u.push(m.CommandsRegistry.registerCommand({id:w.id,handler:(S,...L)=>C.run(S,...L),metadata:w.metadata})),Array.isArray(h))for(const S of h)u.push(e.MenuRegistry.appendMenuItem(S.id,{command:{...w,precondition:S.precondition===null?void 0:w.precondition},...S}));else h&&u.push(e.MenuRegistry.appendMenuItem(h.id,{command:{...w,precondition:h.precondition===null?void 0:w.precondition},...h}));if(f&&(u.push(e.MenuRegistry.appendMenuItem(i.CommandPalette,{command:w,when:w.precondition})),u.push(e.MenuRegistry.addCommand(w))),Array.isArray(v))for(const S of v)u.push(p.KeybindingsRegistry.registerKeybindingRule({...S,id:w.id,when:w.precondition?_.ContextKeyExpr.and(w.precondition,S.when):S.when}));else v&&u.push(p.KeybindingsRegistry.registerKeybindingRule({...v,id:w.id,when:w.precondition?_.ContextKeyExpr.and(w.precondition,v.when):v.when}));return{dispose(){(0,E.dispose)(u)}}}}),define(ne[718],se([1,0,46,229,3,29]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ToggleTabFocusModeAction=void 0;class y extends E.Action2{static{this.ID="editor.action.toggleTabFocusMode"}constructor(){super({id:y.ID,title:I.localize2(1383,"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:I.localize2(1384,"Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.")},f1:!0})}run(){const b=!k.TabFocus.getTabFocusMode();k.TabFocus.setTabFocusMode(b),b?(0,d.alert)(I.localize(1381,"Pressing Tab will now move focus to the next focusable element")):(0,d.alert)(I.localize(1382,"Pressing Tab will now insert the tab character"))}}e.ToggleTabFocusModeAction=y,(0,E.registerAction2)(y)}),define(ne[404],se([1,0,260,641,12,121,3,2,5]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextScopedReplaceInput=e.ContextScopedFindInput=e.historyNavigationVisible=void 0,e.registerAndCreateHistoryNavigationContext=i,e.historyNavigationVisible=new I.RawContextKey("suggestWidgetVisible",!1,(0,y.localize)(1537,"Whether suggestion are visible"));const b="historyNavigationWidgetFocus",p="historyNavigationForwardsEnabled",n="historyNavigationBackwardsEnabled";let o;const t=[];function i(c,l){if(t.includes(l))throw new Error("Cannot register the same widget multiple times");t.push(l);const a=new m.DisposableStore,r=new I.RawContextKey(b,!1).bindTo(c),u=new I.RawContextKey(p,!0).bindTo(c),C=new I.RawContextKey(n,!0).bindTo(c),f=()=>{r.set(!0),o=l},h=()=>{r.set(!1),o===l&&(o=void 0)};return(0,_.isActiveElement)(l.element)&&f(),a.add(l.onDidFocus(()=>f())),a.add(l.onDidBlur(()=>h())),a.add((0,m.toDisposable)(()=>{t.splice(t.indexOf(l),1),h()})),{historyNavigationForwardsEnablement:u,historyNavigationBackwardsEnablement:C,dispose(){a.dispose()}}}let s=class extends d.FindInput{constructor(l,a,r,u){super(l,a,r);const C=this._register(u.createScoped(this.inputBox.element));this._register(i(C,this.inputBox))}};e.ContextScopedFindInput=s,e.ContextScopedFindInput=s=ke([ce(3,I.IContextKeyService)],s);let g=class extends k.ReplaceInput{constructor(l,a,r,u,C=!1){super(l,a,C,r);const f=this._register(u.createScoped(this.inputBox.element));this._register(i(f,this.inputBox))}};e.ContextScopedReplaceInput=g,e.ContextScopedReplaceInput=g=ke([ce(3,I.IContextKeyService)],g),E.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:I.ContextKeyExpr.and(I.ContextKeyExpr.has(b),I.ContextKeyExpr.equals(n,!0),I.ContextKeyExpr.not("isComposing"),e.historyNavigationVisible.isEqualTo(!1)),primary:16,secondary:[528],handler:c=>{o?.showPreviousValue()}}),E.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:I.ContextKeyExpr.and(I.ContextKeyExpr.has(b),I.ContextKeyExpr.equals(p,!0),I.ContextKeyExpr.not("isComposing"),e.historyNavigationVisible.isEqualTo(!1)),primary:18,secondary:[530],handler:c=>{o?.showNextValue()}})}),define(ne[155],se([1,0,18,8,82,2,54,19,22,9,4,78,135,3,29,24,12,17,404]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickSuggestionsOptions=e.CompletionItemModel=e.CompletionOptions=e.CompletionItem=e.suggestWidgetStatusbarMenu=e.Context=void 0,e.getSnippetSuggestSupport=C,e.provideSuggestionItems=h,e.getSuggestionComparator=D,e.showSimpleSuggestions=T,e.Context={Visible:l.historyNavigationVisible,HasFocusedSuggestion:new g.RawContextKey("suggestWidgetHasFocusedSuggestion",!1,(0,t.localize)(1310,"Whether any suggestion is focused")),DetailsVisible:new g.RawContextKey("suggestWidgetDetailsVisible",!1,(0,t.localize)(1311,"Whether suggestion details are visible")),MultipleSuggestions:new g.RawContextKey("suggestWidgetMultipleSuggestions",!1,(0,t.localize)(1312,"Whether there are multiple suggestions to pick from")),MakesTextEdit:new g.RawContextKey("suggestionMakesTextEdit",!0,(0,t.localize)(1313,"Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new g.RawContextKey("acceptSuggestionOnEnter",!0,(0,t.localize)(1314,"Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new g.RawContextKey("suggestionHasInsertAndReplaceRange",!1,(0,t.localize)(1315,"Whether the current suggestion has insert and replace behaviour")),InsertMode:new g.RawContextKey("suggestionInsertMode",void 0,{type:"string",description:(0,t.localize)(1316,"Whether the default behaviour is to insert or replace")}),CanResolve:new g.RawContextKey("suggestionCanResolve",!1,(0,t.localize)(1317,"Whether the current suggestion supports to resolve further details"))},e.suggestWidgetStatusbarMenu=new i.MenuId("suggestWidgetStatusBar");class a{constructor(P,N,O,F){this.position=P,this.completion=N,this.container=O,this.provider=F,this.isInvalid=!1,this.score=I.FuzzyScore.Default,this.distance=0,this.textLabel=typeof N.label=="string"?N.label:N.label?.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=N.sortText&&N.sortText.toLowerCase(),this.filterTextLow=N.filterText&&N.filterText.toLowerCase(),this.extensionId=N.extensionId,p.Range.isIRange(N.range)?(this.editStart=new b.Position(N.range.startLineNumber,N.range.startColumn),this.editInsertEnd=new b.Position(N.range.endLineNumber,N.range.endColumn),this.editReplaceEnd=new b.Position(N.range.endLineNumber,N.range.endColumn),this.isInvalid=this.isInvalid||p.Range.spansMultipleLines(N.range)||N.range.startLineNumber!==P.lineNumber):(this.editStart=new b.Position(N.range.insert.startLineNumber,N.range.insert.startColumn),this.editInsertEnd=new b.Position(N.range.insert.endLineNumber,N.range.insert.endColumn),this.editReplaceEnd=new b.Position(N.range.replace.endLineNumber,N.range.replace.endColumn),this.isInvalid=this.isInvalid||p.Range.spansMultipleLines(N.range.insert)||p.Range.spansMultipleLines(N.range.replace)||N.range.insert.startLineNumber!==P.lineNumber||N.range.replace.startLineNumber!==P.lineNumber||N.range.insert.startColumn!==N.range.replace.startColumn),typeof F.resolveCompletionItem!="function"&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration!==void 0?this._resolveDuration:-1}async resolve(P){if(!this._resolveCache){const N=P.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),O=new y.StopWatch(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,P)).then(F=>{Object.assign(this.completion,F),this._resolveDuration=O.elapsed()},F=>{(0,k.isCancellationError)(F)&&(this._resolveCache=void 0,this._resolveDuration=void 0)}).finally(()=>{N.dispose()})}return this._resolveCache}}e.CompletionItem=a;class r{static{this.default=new r}constructor(P=2,N=new Set,O=new Set,F=new Map,x=!0){this.snippetSortOrder=P,this.kindFilter=N,this.providerFilter=O,this.providerItemsToReuse=F,this.showDeprecated=x}}e.CompletionOptions=r;let u;function C(){return u}class f{constructor(P,N,O,F){this.items=P,this.needsClipboard=N,this.durations=O,this.disposable=F}}e.CompletionItemModel=f;async function h(A,P,N,O=r.default,F={triggerKind:0},x=d.CancellationToken.None){const W=new y.StopWatch;N=N.clone();const V=P.getWordAtPosition(N),q=V?new p.Range(N.lineNumber,V.startColumn,N.lineNumber,V.endColumn):p.Range.fromPositions(N),H={replace:q,insert:q.setEndPosition(N.lineNumber,N.column)},z=[],U=new E.DisposableStore,j=[];let Y=!1;const G=(R,J,ie)=>{let ue=!1;if(!J)return ue;for(const he of J.suggestions)if(!O.kindFilter.has(he.kind)){if(!O.showDeprecated&&he?.tags?.includes(1))continue;he.range||(he.range=H),he.sortText||(he.sortText=typeof he.label=="string"?he.label:he.label.label),!Y&&he.insertTextRules&&he.insertTextRules&4&&(Y=o.SnippetParser.guessNeedsClipboard(he.insertText)),z.push(new a(N,he,J,R)),ue=!0}return(0,E.isDisposable)(J)&&U.add(J),j.push({providerName:R._debugDisplayName??"unknown_provider",elapsedProvider:J.duration??-1,elapsedOverall:ie.elapsed()}),ue},K=(async()=>{if(!u||O.kindFilter.has(27))return;const R=O.providerItemsToReuse.get(u);if(R){R.forEach(ue=>z.push(ue));return}if(O.providerFilter.size>0&&!O.providerFilter.has(u))return;const J=new y.StopWatch,ie=await u.provideCompletionItems(P,N,F,x);G(u,ie,J)})();for(const R of A.orderedGroups(P)){let J=!1;if(await Promise.all(R.map(async ie=>{if(O.providerItemsToReuse.has(ie)){const ue=O.providerItemsToReuse.get(ie);ue.forEach(he=>z.push(he)),J=J||ue.length>0;return}if(!(O.providerFilter.size>0&&!O.providerFilter.has(ie)))try{const ue=new y.StopWatch,he=await ie.provideCompletionItems(P,N,F,x);J=G(ie,he,ue)||J}catch(ue){(0,k.onUnexpectedExternalError)(ue)}})),J||x.isCancellationRequested)break}return await K,x.isCancellationRequested?(U.dispose(),Promise.reject(new k.CancellationError)):new f(z.sort(D(O.snippetSortOrder)),Y,{entries:j,elapsed:W.elapsed()},U)}function v(A,P){if(A.sortTextLow&&P.sortTextLow){if(A.sortTextLowP.sortTextLow)return 1}return A.textLabelP.textLabel?1:A.completion.kind-P.completion.kind}function w(A,P){if(A.completion.kind!==P.completion.kind){if(A.completion.kind===27)return-1;if(P.completion.kind===27)return 1}return v(A,P)}function S(A,P){if(A.completion.kind!==P.completion.kind){if(A.completion.kind===27)return 1;if(P.completion.kind===27)return-1}return v(A,P)}const L=new Map;L.set(0,w),L.set(2,S),L.set(1,v);function D(A){return L.get(A)}s.CommandsRegistry.registerCommand("_executeCompletionItemProvider",async(A,...P)=>{const[N,O,F,x]=P;(0,m.assertType)(_.URI.isUri(N)),(0,m.assertType)(b.Position.isIPosition(O)),(0,m.assertType)(typeof F=="string"||!F),(0,m.assertType)(typeof x=="number"||!x);const{completionProvider:W}=A.get(c.ILanguageFeaturesService),V=await A.get(n.ITextModelService).createModelReference(N);try{const q={incomplete:!1,suggestions:[]},H=[],z=V.object.textEditorModel.validatePosition(O),U=await h(W,V.object.textEditorModel,z,void 0,{triggerCharacter:F??void 0,triggerKind:F?1:0});for(const j of U.items)H.length<(x??0)&&H.push(j.resolve(d.CancellationToken.None)),q.incomplete=q.incomplete||j.container.incomplete,q.suggestions.push(j.completion);try{return await Promise.all(H),q}finally{setTimeout(()=>U.disposable.dispose(),100)}}finally{V.dispose()}});function T(A,P){A.getContribution("editor.contrib.suggestController")?.triggerSuggest(new Set().add(P),void 0,!0)}class M{static isAllOff(P){return P.other==="off"&&P.comments==="off"&&P.strings==="off"}static isAllOn(P){return P.other==="on"&&P.comments==="on"&&P.strings==="on"}static valueFor(P,N){switch(N){case 1:return P.comments;case 2:return P.strings;default:return P.other}}}e.QuickSuggestionsOptions=M}),define(ne[719],se([1,0,16,3,12,179,121,272,66]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0});const b={weight:200,when:I.ContextKeyExpr.and(I.ContextKeyExpr.equals(m.quickInputTypeContextKeyValue,"quickPick"),m.inQuickInputContext),metadata:{description:(0,k.localize)(1587,"Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.")}};function p(g,c={}){y.KeybindingsRegistry.registerCommandAndKeybindingRule({...b,...g,secondary:o(g.primary,g.secondary??[],c)})}const n=d.isMacintosh?256:2048;function o(g,c,l={}){return l.withAltMod&&c.push(512+g),l.withCtrlMod&&(c.push(n+g),l.withAltMod&&c.push(512+n+g)),l.withCmdMod&&d.isMacintosh&&(c.push(2048+g),l.withCtrlMod&&c.push(2304+g),l.withAltMod&&(c.push(2560+g),l.withCtrlMod&&c.push(2816+g))),c}function t(g,c){return l=>{const a=l.get(_.IQuickInputService).currentQuickInput;if(a)return c&&a.quickNavigate?a.focus(c):a.focus(g)}}p({id:"quickInput.pageNext",primary:12,handler:t(_.QuickPickFocus.NextPage)},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0}),p({id:"quickInput.pagePrevious",primary:11,handler:t(_.QuickPickFocus.PreviousPage)},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0}),p({id:"quickInput.first",primary:n+14,handler:t(_.QuickPickFocus.First)},{withAltMod:!0,withCmdMod:!0}),p({id:"quickInput.last",primary:n+13,handler:t(_.QuickPickFocus.Last)},{withAltMod:!0,withCmdMod:!0}),p({id:"quickInput.next",primary:18,handler:t(_.QuickPickFocus.Next)},{withCtrlMod:!0}),p({id:"quickInput.previous",primary:16,handler:t(_.QuickPickFocus.Previous)},{withCtrlMod:!0});const i=(0,k.localize)(1588,"If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator."),s=(0,k.localize)(1589,"If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.");d.isMacintosh?(p({id:"quickInput.nextSeparatorWithQuickAccessFallback",primary:2066,handler:t(_.QuickPickFocus.NextSeparator,_.QuickPickFocus.Next),metadata:{description:i}}),p({id:"quickInput.nextSeparator",primary:2578,secondary:[2322],handler:t(_.QuickPickFocus.NextSeparator)},{withCtrlMod:!0}),p({id:"quickInput.previousSeparatorWithQuickAccessFallback",primary:2064,handler:t(_.QuickPickFocus.PreviousSeparator,_.QuickPickFocus.Previous),metadata:{description:s}}),p({id:"quickInput.previousSeparator",primary:2576,secondary:[2320],handler:t(_.QuickPickFocus.PreviousSeparator)},{withCtrlMod:!0})):(p({id:"quickInput.nextSeparatorWithQuickAccessFallback",primary:530,handler:t(_.QuickPickFocus.NextSeparator,_.QuickPickFocus.Next),metadata:{description:i}}),p({id:"quickInput.nextSeparator",primary:2578,handler:t(_.QuickPickFocus.NextSeparator)}),p({id:"quickInput.previousSeparatorWithQuickAccessFallback",primary:528,handler:t(_.QuickPickFocus.PreviousSeparator,_.QuickPickFocus.Previous),metadata:{description:s}}),p({id:"quickInput.previousSeparator",primary:2576,handler:t(_.QuickPickFocus.PreviousSeparator)})),p({id:"quickInput.acceptInBackground",when:I.ContextKeyExpr.and(b.when,I.ContextKeyExpr.or(E.InputFocusedContext.negate(),m.endOfQuickInputBoxContext)),primary:17,weight:250,handler:g=>{g.get(_.IQuickInputService).currentQuickInput?.accept(!0)}},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0})}),define(ne[156],se([1,0,13,2,38]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickAccessRegistry=e.Extensions=e.DefaultQuickAccessFilterValue=void 0;var E;(function(m){m[m.PRESERVE=0]="PRESERVE",m[m.LAST=1]="LAST"})(E||(e.DefaultQuickAccessFilterValue=E={})),e.Extensions={Quickaccess:"workbench.contributions.quickaccess"};class y{constructor(){this.providers=[],this.defaultProvider=void 0}registerQuickAccessProvider(_){return _.prefix.length===0?this.defaultProvider=_:this.providers.push(_),this.providers.sort((b,p)=>p.prefix.length-b.prefix.length),(0,k.toDisposable)(()=>{this.providers.splice(this.providers.indexOf(_),1),this.defaultProvider===_&&(this.defaultProvider=void 0)})}getQuickAccessProviders(){return(0,d.coalesce)([this.defaultProvider,...this.providers])}getQuickAccessProvider(_){return _&&this.providers.find(p=>_.startsWith(p.prefix))||void 0||this.defaultProvider}}e.QuickAccessRegistry=y,I.Registry.add(e.Extensions.Quickaccess,new y)}),define(ne[720],se([1,0,3,38,2,31,156,66]),function(oe,e,d,k,I,E,y,m){"use strict";var _;Object.defineProperty(e,"__esModule",{value:!0}),e.HelpQuickAccessProvider=void 0;let b=class{static{_=this}static{this.PREFIX="?"}constructor(n,o){this.quickInputService=n,this.keybindingService=o,this.registry=k.Registry.as(y.Extensions.Quickaccess)}provide(n){const o=new I.DisposableStore;return o.add(n.onDidAccept(()=>{const[t]=n.selectedItems;t&&this.quickInputService.quickAccess.show(t.prefix,{preserveValue:!0})})),o.add(n.onDidChangeValue(t=>{const i=this.registry.getQuickAccessProvider(t.substr(_.PREFIX.length));i&&i.prefix&&i.prefix!==_.PREFIX&&this.quickInputService.quickAccess.show(i.prefix,{preserveValue:!0})})),n.items=this.getQuickAccessProviders().filter(t=>t.prefix!==_.PREFIX),o}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort((o,t)=>o.prefix.localeCompare(t.prefix)).flatMap(o=>this.createPicks(o))}createPicks(n){return n.helpEntries.map(o=>{const t=o.prefix||n.prefix,i=t||"\u2026";return{prefix:t,label:i,keybinding:o.commandId?this.keybindingService.lookupKeybinding(o.commandId):void 0,ariaLabel:(0,d.localize)(1579,"{0}, {1}",i,o.description),description:o.description}})}};e.HelpQuickAccessProvider=b,e.HelpQuickAccessProvider=b=_=ke([ce(0,m.IQuickInputService),ce(1,E.IKeybindingService)],b)}),define(ne[721],se([1,0,38,156,107,720]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),d.Registry.as(k.Extensions.Quickaccess).registerQuickAccessProvider({ctor:E.HelpQuickAccessProvider,prefix:"",helpEntries:[{description:I.QuickHelpNLS.helpQuickAccessActionLabel}]})}),define(ne[722],se([1,0,14,18,6,2,7,156,66,38]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickAccessController=void 0;let p=class extends E.Disposable{constructor(o,t){super(),this.quickInputService=o,this.instantiationService=t,this.registry=b.Registry.as(m.Extensions.Quickaccess),this.mapProviderToDescriptor=new Map,this.lastAcceptedPickerValues=new Map,this.visibleQuickAccess=void 0}show(o="",t){this.doShowOrPick(o,!1,t)}doShowOrPick(o,t,i){const[s,g]=this.getOrInstantiateProvider(o,i?.enabledProviderPrefixes),c=this.visibleQuickAccess,l=c?.descriptor;if(c&&g&&l===g){o!==g.prefix&&!i?.preserveValue&&(c.picker.value=o),this.adjustValueSelection(c.picker,g,i);return}if(g&&!i?.preserveValue){let v;if(c&&l&&l!==g){const w=c.value.substr(l.prefix.length);w&&(v=`${g.prefix}${w}`)}if(!v){const w=s?.defaultFilterValue;w===m.DefaultQuickAccessFilterValue.LAST?v=this.lastAcceptedPickerValues.get(g):typeof w=="string"&&(v=`${g.prefix}${w}`)}typeof v=="string"&&(o=v)}const a=c?.picker?.valueSelection,r=c?.picker?.value,u=new E.DisposableStore,C=u.add(this.quickInputService.createQuickPick({useSeparators:!0}));C.value=o,this.adjustValueSelection(C,g,i),C.placeholder=i?.placeholder??g?.placeholder,C.quickNavigate=i?.quickNavigateConfiguration,C.hideInput=!!C.quickNavigate&&!c,(typeof i?.itemActivation=="number"||i?.quickNavigateConfiguration)&&(C.itemActivation=i?.itemActivation??_.ItemActivation.SECOND),C.contextKey=g?.contextKey,C.filterValue=v=>v.substring(g?g.prefix.length:0);let f;t&&(f=new d.DeferredPromise,u.add(I.Event.once(C.onWillAccept)(v=>{v.veto(),C.hide()}))),u.add(this.registerPickerListeners(C,s,g,o,i));const h=u.add(new k.CancellationTokenSource);if(s&&u.add(s.provide(C,h.token,i?.providerOptions)),I.Event.once(C.onDidHide)(()=>{C.selectedItems.length===0&&h.cancel(),u.dispose(),f?.complete(C.selectedItems.slice(0))}),C.show(),a&&r===o&&(C.valueSelection=a),t)return f?.p}adjustValueSelection(o,t,i){let s;i?.preserveValue?s=[o.value.length,o.value.length]:s=[t?.prefix.length??0,o.value.length],o.valueSelection=s}registerPickerListeners(o,t,i,s,g){const c=new E.DisposableStore,l=this.visibleQuickAccess={picker:o,descriptor:i,value:s};return c.add((0,E.toDisposable)(()=>{l===this.visibleQuickAccess&&(this.visibleQuickAccess=void 0)})),c.add(o.onDidChangeValue(a=>{const[r]=this.getOrInstantiateProvider(a,g?.enabledProviderPrefixes);r!==t?this.show(a,{enabledProviderPrefixes:g?.enabledProviderPrefixes,preserveValue:!0,providerOptions:g?.providerOptions}):l.value=a})),i&&c.add(o.onDidAccept(()=>{this.lastAcceptedPickerValues.set(i,o.value)})),c}getOrInstantiateProvider(o,t){const i=this.registry.getQuickAccessProvider(o);if(!i||t&&!t?.includes(i.prefix))return[void 0,void 0];let s=this.mapProviderToDescriptor.get(i);return s||(s=this.instantiationService.createInstance(i.ctor),this.mapProviderToDescriptor.set(i,s)),[s,i]}};e.QuickAccessController=p,e.QuickAccessController=p=ke([ce(0,_.IQuickInputService),ce(1,y.IInstantiationService)],p)}),define(ne[723],se([1,0,26,30,111,544]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SeverityIcon=void 0;var E;(function(y){function m(_){switch(_){case I.default.Ignore:return"severity-ignore "+k.ThemeIcon.asClassName(d.Codicon.info);case I.default.Info:return k.ThemeIcon.asClassName(d.Codicon.info);case I.default.Warning:return k.ThemeIcon.asClassName(d.Codicon.warning);case I.default.Error:return k.ThemeIcon.asClassName(d.Codicon.error);default:return""}}y.className=m})(E||(e.SeverityIcon=E={}))}),define(ne[101],se([1,0,6,2,19,647,7]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InMemoryStorageService=e.AbstractStorageService=e.WillSaveStateReason=e.IStorageService=e.TARGET_KEY=void 0,e.loadKeyTargets=_,e.TARGET_KEY="__$__targetStorageMarker",e.IStorageService=(0,y.createDecorator)("storageService");var m;(function(n){n[n.NONE=0]="NONE",n[n.SHUTDOWN=1]="SHUTDOWN"})(m||(e.WillSaveStateReason=m={}));function _(n){const o=n.get(e.TARGET_KEY);if(o)try{return JSON.parse(o)}catch{}return Object.create(null)}class b extends k.Disposable{static{this.DEFAULT_FLUSH_INTERVAL=60*1e3}constructor(o={flushInterval:b.DEFAULT_FLUSH_INTERVAL}){super(),this.options=o,this._onDidChangeValue=this._register(new d.PauseableEmitter),this._onDidChangeTarget=this._register(new d.PauseableEmitter),this._onWillSaveState=this._register(new d.Emitter),this.onWillSaveState=this._onWillSaveState.event,this._workspaceKeyTargets=void 0,this._profileKeyTargets=void 0,this._applicationKeyTargets=void 0}onDidChangeValue(o,t,i){return d.Event.filter(this._onDidChangeValue.event,s=>s.scope===o&&(t===void 0||s.key===t),i)}emitDidChangeValue(o,t){const{key:i,external:s}=t;if(i===e.TARGET_KEY){switch(o){case-1:this._applicationKeyTargets=void 0;break;case 0:this._profileKeyTargets=void 0;break;case 1:this._workspaceKeyTargets=void 0;break}this._onDidChangeTarget.fire({scope:o})}else this._onDidChangeValue.fire({scope:o,key:i,target:this.getKeyTargets(o)[i],external:s})}get(o,t,i){return this.getStorage(t)?.get(o,i)}getBoolean(o,t,i){return this.getStorage(t)?.getBoolean(o,i)}getNumber(o,t,i){return this.getStorage(t)?.getNumber(o,i)}store(o,t,i,s,g=!1){if((0,I.isUndefinedOrNull)(t)){this.remove(o,i,g);return}this.withPausedEmitters(()=>{this.updateKeyTarget(o,i,s),this.getStorage(i)?.set(o,t,g)})}remove(o,t,i=!1){this.withPausedEmitters(()=>{this.updateKeyTarget(o,t,void 0),this.getStorage(t)?.delete(o,i)})}withPausedEmitters(o){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{o()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}updateKeyTarget(o,t,i,s=!1){const g=this.getKeyTargets(t);typeof i=="number"?g[o]!==i&&(g[o]=i,this.getStorage(t)?.set(e.TARGET_KEY,JSON.stringify(g),s)):typeof g[o]=="number"&&(delete g[o],this.getStorage(t)?.set(e.TARGET_KEY,JSON.stringify(g),s))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}getKeyTargets(o){switch(o){case-1:return this.applicationKeyTargets;case 0:return this.profileKeyTargets;default:return this.workspaceKeyTargets}}loadKeyTargets(o){const t=this.getStorage(o);return t?_(t):Object.create(null)}}e.AbstractStorageService=b;class p extends b{constructor(){super(),this.applicationStorage=this._register(new E.Storage(new E.InMemoryStorageDatabase,{hint:E.StorageHint.STORAGE_IN_MEMORY})),this.profileStorage=this._register(new E.Storage(new E.InMemoryStorageDatabase,{hint:E.StorageHint.STORAGE_IN_MEMORY})),this.workspaceStorage=this._register(new E.Storage(new E.InMemoryStorageDatabase,{hint:E.StorageHint.STORAGE_IN_MEMORY})),this._register(this.workspaceStorage.onDidChangeStorage(o=>this.emitDidChangeValue(1,o))),this._register(this.profileStorage.onDidChangeStorage(o=>this.emitDidChangeValue(0,o))),this._register(this.applicationStorage.onDidChangeStorage(o=>this.emitDidChangeValue(-1,o)))}getStorage(o){switch(o){case-1:return this.applicationStorage;case 0:return this.profileStorage;default:return this.workspaceStorage}}}e.InMemoryStorageService=p}),define(ne[724],se([1,0,6,45,4,386,49,7,101,52,5]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeLensCache=e.ICodeLensCache=void 0,e.ICodeLensCache=(0,m.createDecorator)("ICodeLensCache");class n{constructor(i,s){this.lineCount=i,this.data=s}}let o=class{constructor(i){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new k.LRUCache(20,.75);const s="codelens/cache";(0,p.runWhenWindowIdle)(b.mainWindow,()=>i.remove(s,1));const g="codelens/cache2",c=i.get(g,1,"{}");this._deserialize(c);const l=d.Event.filter(i.onWillSaveState,a=>a.reason===_.WillSaveStateReason.SHUTDOWN);d.Event.once(l)(a=>{i.store(g,this._serialize(),1,1)})}put(i,s){const g=s.lenses.map(a=>({range:a.symbol.range,command:a.symbol.command&&{id:"",title:a.symbol.command?.title}})),c=new E.CodeLensModel;c.add({lenses:g,dispose:()=>{}},this._fakeProvider);const l=new n(i.getLineCount(),c);this._cache.set(i.uri.toString(),l)}get(i){const s=this._cache.get(i.uri.toString());return s&&s.lineCount===i.getLineCount()?s.data:void 0}delete(i){this._cache.delete(i.uri.toString())}_serialize(){const i=Object.create(null);for(const[s,g]of this._cache){const c=new Set;for(const l of g.data.lenses)c.add(l.symbol.range.startLineNumber);i[s]={lineCount:g.lineCount,lines:[...c.values()]}}return JSON.stringify(i)}_deserialize(i){try{const s=JSON.parse(i);for(const g in s){const c=s[g],l=[];for(const r of c.lines)l.push({range:new I.Range(r,1,r,11)});const a=new E.CodeLensModel;a.add({lenses:l,dispose(){}},this._fakeProvider),this._cache.set(g,new n(c.lineCount,a))}}catch{}}};e.CodeLensCache=o,e.CodeLensCache=o=ke([ce(0,_.IStorageService)],o),(0,y.registerSingleton)(e.ICodeLensCache,o,1)}),define(ne[405],se([1,0,14,2,45,225,27,28,49,7,101]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.ISuggestMemoryService=e.SuggestMemoryService=e.PrefixMemory=e.LRUMemory=e.NoMemory=e.Memory=void 0;class o{constructor(l){this.name=l}select(l,a,r){if(r.length===0)return 0;const u=r[0].score[0];for(let C=0;Cv&&L.type===r[w].completion.kind&&L.insertText===r[w].completion.insertText&&(v=L.touch,h=w),r[w].completion.preselect&&f===-1)return f=w}return h!==-1?h:f!==-1?f:0}toJSON(){return this._cache.toJSON()}fromJSON(l){this._cache.clear();const a=0;for(const[r,u]of l)u.touch=a,u.type=typeof u.type=="number"?u.type:y.CompletionItemKinds.fromString(u.type),this._cache.set(r,u);this._seq=this._cache.size}}e.LRUMemory=i;class s extends o{constructor(){super("recentlyUsedByPrefix"),this._trie=E.TernarySearchTree.forStrings(),this._seq=0}memorize(l,a,r){const{word:u}=l.getWordUntilPosition(a),C=`${l.getLanguageId()}/${u}`;this._trie.set(C,{type:r.completion.kind,insertText:r.completion.insertText,touch:this._seq++})}select(l,a,r){const{word:u}=l.getWordUntilPosition(a);if(!u)return super.select(l,a,r);const C=`${l.getLanguageId()}/${u}`;let f=this._trie.get(C);if(f||(f=this._trie.findSubstr(C)),f)for(let h=0;hl.push([r,a])),l.sort((a,r)=>-(a[1].touch-r[1].touch)).forEach((a,r)=>a[1].touch=r),l.slice(0,200)}fromJSON(l){if(this._trie.clear(),l.length>0){this._seq=l[0][1].touch+1;for(const[a,r]of l)r.type=typeof r.type=="number"?r.type:y.CompletionItemKinds.fromString(r.type),this._trie.set(a,r)}}}e.PrefixMemory=s;let g=class{static{n=this}static{this._strategyCtors=new Map([["recentlyUsedByPrefix",s],["recentlyUsed",i],["first",t]])}static{this._storagePrefix="suggest/memories"}constructor(l,a){this._storageService=l,this._configService=a,this._disposables=new k.DisposableStore,this._persistSoon=new d.RunOnceScheduler(()=>this._saveState(),500),this._disposables.add(l.onWillSaveState(r=>{r.reason===p.WillSaveStateReason.SHUTDOWN&&this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(l,a,r){this._withStrategy(l,a).memorize(l,a,r),this._persistSoon.schedule()}select(l,a,r){return this._withStrategy(l,a).select(l,a,r)}_withStrategy(l,a){const r=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:l.getLanguageIdAtPosition(a.lineNumber,a.column),resource:l.uri});if(this._strategy?.name!==r){this._saveState();const u=n._strategyCtors.get(r)||t;this._strategy=new u;try{const f=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,h=this._storageService.get(`${n._storagePrefix}/${r}`,f);h&&this._strategy.fromJSON(JSON.parse(h))}catch{}}return this._strategy}_saveState(){if(this._strategy){const a=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,r=JSON.stringify(this._strategy);this._storageService.store(`${n._storagePrefix}/${this._strategy.name}`,r,a,1)}}};e.SuggestMemoryService=g,e.SuggestMemoryService=g=n=ke([ce(0,p.IStorageService),ce(1,m.IConfigurationService)],g),e.ISuggestMemoryService=(0,b.createDecorator)("ISuggestMemories"),(0,_.registerSingleton)(e.ISuggestMemoryService,g,1)}),define(ne[406],se([1,0,14,6,2,29,24,12,41,101,13,3,31]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";var t,i;Object.defineProperty(e,"__esModule",{value:!0}),e.MenuService=void 0,e.createConfigureKeybindingAction=u;let s=class{constructor(f,h,v){this._commandService=f,this._keybindingService=h,this._hiddenStates=new g(v)}createMenu(f,h,v){return new a(f,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...v},this._commandService,this._keybindingService,h)}getMenuActions(f,h,v){const w=new a(f,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...v},this._commandService,this._keybindingService,h),S=w.getActions(v);return w.dispose(),S}resetHiddenStates(f){this._hiddenStates.reset(f)}};e.MenuService=s,e.MenuService=s=ke([ce(0,y.ICommandService),ce(1,o.IKeybindingService),ce(2,b.IStorageService)],s);let g=class{static{t=this}static{this._key="menu.hiddenCommands"}constructor(f){this._storageService=f,this._disposables=new I.DisposableStore,this._onDidChange=new k.Emitter,this.onDidChange=this._onDidChange.event,this._ignoreChangeEvent=!1,this._hiddenByDefaultCache=new Map;try{const h=f.get(t._key,0,"{}");this._data=JSON.parse(h)}catch{this._data=Object.create(null)}this._disposables.add(f.onDidChangeValue(0,t._key,this._disposables)(()=>{if(!this._ignoreChangeEvent)try{const h=f.get(t._key,0,"{}");this._data=JSON.parse(h)}catch(h){console.log("FAILED to read storage after UPDATE",h)}this._onDidChange.fire()}))}dispose(){this._onDidChange.dispose(),this._disposables.dispose()}_isHiddenByDefault(f,h){return this._hiddenByDefaultCache.get(`${f.id}/${h}`)??!1}setDefaultState(f,h,v){this._hiddenByDefaultCache.set(`${f.id}/${h}`,v)}isHidden(f,h){const v=this._isHiddenByDefault(f,h),w=this._data[f.id]?.includes(h)??!1;return v?!w:w}updateHidden(f,h,v){this._isHiddenByDefault(f,h)&&(v=!v);const S=this._data[f.id];if(v)S?S.indexOf(h)<0&&S.push(h):this._data[f.id]=[h];else if(S){const L=S.indexOf(h);L>=0&&(0,p.removeFastWithoutKeepingOrder)(S,L),S.length===0&&delete this._data[f.id]}this._persist()}reset(f){if(f===void 0)this._data=Object.create(null),this._persist();else{for(const{id:h}of f)this._data[h]&&delete this._data[h];this._persist()}}_persist(){try{this._ignoreChangeEvent=!0;const f=JSON.stringify(this._data);this._storageService.store(t._key,f,0,0)}finally{this._ignoreChangeEvent=!1}}};g=t=ke([ce(0,b.IStorageService)],g);class c{constructor(f,h){this._id=f,this._collectContextKeysForSubmenus=h,this._menuGroups=[],this._allMenuIds=new Set,this._structureContextKeys=new Set,this._preconditionContextKeys=new Set,this._toggledContextKeys=new Set,this.refresh()}get allMenuIds(){return this._allMenuIds}get structureContextKeys(){return this._structureContextKeys}get preconditionContextKeys(){return this._preconditionContextKeys}get toggledContextKeys(){return this._toggledContextKeys}refresh(){this._menuGroups.length=0,this._allMenuIds.clear(),this._structureContextKeys.clear(),this._preconditionContextKeys.clear(),this._toggledContextKeys.clear();const f=this._sort(E.MenuRegistry.getMenuItems(this._id));let h;for(const v of f){const w=v.group||"";(!h||h[0]!==w)&&(h=[w,[]],this._menuGroups.push(h)),h[1].push(v),this._collectContextKeysAndSubmenuIds(v)}this._allMenuIds.add(this._id)}_sort(f){return f}_collectContextKeysAndSubmenuIds(f){if(c._fillInKbExprKeys(f.when,this._structureContextKeys),(0,E.isIMenuItem)(f)){if(f.command.precondition&&c._fillInKbExprKeys(f.command.precondition,this._preconditionContextKeys),f.command.toggled){const h=f.command.toggled.condition||f.command.toggled;c._fillInKbExprKeys(h,this._toggledContextKeys)}}else this._collectContextKeysForSubmenus&&(E.MenuRegistry.getMenuItems(f.submenu).forEach(this._collectContextKeysAndSubmenuIds,this),this._allMenuIds.add(f.submenu))}static _fillInKbExprKeys(f,h){if(f)for(const v of f.keys())h.add(v)}}let l=i=class extends c{constructor(f,h,v,w,S,L){super(f,v),this._hiddenStates=h,this._commandService=w,this._keybindingService=S,this._contextKeyService=L,this.refresh()}createActionGroups(f){const h=[];for(const v of this._menuGroups){const[w,S]=v;let L;for(const D of S)if(this._contextKeyService.contextMatchesRules(D.when)){const T=(0,E.isIMenuItem)(D);T&&this._hiddenStates.setDefaultState(this._id,D.command.id,!!D.isHiddenByDefault);const M=r(this._id,T?D.command:D,this._hiddenStates);if(T){const A=u(this._commandService,this._keybindingService,D.command.id,D.when);(L??=[]).push(new E.MenuItemAction(D.command,D.alt,f,M,A,this._contextKeyService,this._commandService))}else{const A=new i(D.submenu,this._hiddenStates,this._collectContextKeysForSubmenus,this._commandService,this._keybindingService,this._contextKeyService).createActionGroups(f),P=_.Separator.join(...A.map(N=>N[1]));P.length>0&&(L??=[]).push(new E.SubmenuItemAction(D,M,P))}}L&&L.length>0&&h.push([w,L])}return h}_sort(f){return f.sort(i._compareMenuItems)}static _compareMenuItems(f,h){const v=f.group,w=h.group;if(v!==w){if(v){if(!w)return-1}else return 1;if(v==="navigation")return-1;if(w==="navigation")return 1;const D=v.localeCompare(w);if(D!==0)return D}const S=f.order||0,L=h.order||0;return SL?1:i._compareTitles((0,E.isIMenuItem)(f)?f.command.title:f.title,(0,E.isIMenuItem)(h)?h.command.title:h.title)}static _compareTitles(f,h){const v=typeof f=="string"?f:f.original,w=typeof h=="string"?h:h.original;return v.localeCompare(w)}};l=i=ke([ce(3,y.ICommandService),ce(4,o.IKeybindingService),ce(5,m.IContextKeyService)],l);let a=class{constructor(f,h,v,w,S,L){this._disposables=new I.DisposableStore,this._menuInfo=new l(f,h,v.emitEventsForSubmenuChanges,w,S,L);const D=new d.RunOnceScheduler(()=>{this._menuInfo.refresh(),this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!0,isToggleChange:!0})},v.eventDebounceDelay);this._disposables.add(D),this._disposables.add(E.MenuRegistry.onDidChangeMenu(P=>{for(const N of this._menuInfo.allMenuIds)if(P.has(N)){D.schedule();break}}));const T=this._disposables.add(new I.DisposableStore),M=P=>{let N=!1,O=!1,F=!1;for(const x of P)if(N=N||x.isStructuralChange,O=O||x.isEnablementChange,F=F||x.isToggleChange,N&&O&&F)break;return{menu:this,isStructuralChange:N,isEnablementChange:O,isToggleChange:F}},A=()=>{T.add(L.onDidChangeContext(P=>{const N=P.affectsSome(this._menuInfo.structureContextKeys),O=P.affectsSome(this._menuInfo.preconditionContextKeys),F=P.affectsSome(this._menuInfo.toggledContextKeys);(N||O||F)&&this._onDidChange.fire({menu:this,isStructuralChange:N,isEnablementChange:O,isToggleChange:F})})),T.add(h.onDidChange(P=>{this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!1,isToggleChange:!1})}))};this._onDidChange=new k.DebounceEmitter({onWillAddFirstListener:A,onDidRemoveLastListener:T.clear.bind(T),delay:v.eventDebounceDelay,merge:M}),this.onDidChange=this._onDidChange.event}getActions(f){return this._menuInfo.createActionGroups(f)}dispose(){this._disposables.dispose(),this._onDidChange.dispose()}};a=ke([ce(3,y.ICommandService),ce(4,o.IKeybindingService),ce(5,m.IContextKeyService)],a);function r(C,f,h){const v=(0,E.isISubmenuItem)(f)?f.submenu.id:f.id,w=typeof f.title=="string"?f.title:f.title.value,S=(0,_.toAction)({id:`hide/${C.id}/${v}`,label:(0,n.localize)(1490,"Hide '{0}'",w),run(){h.updateHidden(C,v,!0)}}),L=(0,_.toAction)({id:`toggle/${C.id}/${v}`,label:w,get checked(){return!h.isHidden(C,v)},run(){h.updateHidden(C,v,!!this.checked)}});return{hide:S,toggle:L,get isHidden(){return!L.checked}}}function u(C,f,h,v=void 0,w=!0){return(0,_.toAction)({id:`configureKeybinding/${h}`,label:(0,n.localize)(1491,"Configure Keybinding"),enabled:w,run(){const L=!!!f.lookupKeybinding(h)&&v?v.serialize():void 0;C.executeCommand("workbench.action.openGlobalKeybindings",`@command:${h}`+(L?` +when:${L}`:""))}})}}),define(ne[63],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ITelemetryService=void 0,e.ITelemetryService=(0,d.createDecorator)("telemetryService")}),define(ne[15],se([1,0,3,22,34,9,51,78,29,24,12,7,121,38,63,19,62,5]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectAllCommand=e.RedoCommand=e.UndoCommand=e.EditorExtensionsRegistry=e.EditorAction2=e.MultiEditorAction=e.EditorAction=e.EditorCommand=e.ProxyCommand=e.MultiCommand=e.Command=void 0,e.registerModelAndPositionCommand=v,e.registerEditorCommand=w,e.registerEditorAction=S,e.registerMultiEditorAction=L,e.registerInstantiatedEditorAction=D,e.registerEditorContribution=T;class l{constructor(F){this.id=F.id,this.precondition=F.precondition,this._kbOpts=F.kbOpts,this._menuOpts=F.menuOpts,this.metadata=F.metadata}register(){if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){const F=Array.isArray(this._kbOpts)?this._kbOpts:[this._kbOpts];for(const x of F){let W=x.kbExpr;this.precondition&&(W?W=p.ContextKeyExpr.and(W,this.precondition):W=this.precondition);const V={id:this.id,weight:x.weight,args:x.args,when:W,primary:x.primary,secondary:x.secondary,win:x.win,linux:x.linux,mac:x.mac};o.KeybindingsRegistry.registerKeybindingRule(V)}}b.CommandsRegistry.registerCommand({id:this.id,handler:(F,x)=>this.runCommand(F,x),metadata:this.metadata})}_registerMenuItem(F){_.MenuRegistry.appendMenuItem(F.menuId,{group:F.group,command:{id:this.id,title:F.title,icon:F.icon,precondition:this.precondition},when:F.when,order:F.order})}}e.Command=l;class a extends l{constructor(){super(...arguments),this._implementations=[]}addImplementation(F,x,W,V){return this._implementations.push({priority:F,name:x,implementation:W,when:V}),this._implementations.sort((q,H)=>H.priority-q.priority),{dispose:()=>{for(let q=0;q{if(z.get(p.IContextKeyService).contextMatchesRules(W??void 0))return V(z,H,x)})}runCommand(F,x){return u.runEditorCommand(F,x,this.precondition,(W,V,q)=>this.runEditorCommand(W,V,q))}}e.EditorCommand=u;class C extends u{static convertOptions(F){let x;Array.isArray(F.menuOpts)?x=F.menuOpts:F.menuOpts?x=[F.menuOpts]:x=[];function W(V){return V.menuId||(V.menuId=_.MenuId.EditorContext),V.title||(V.title=F.label),V.when=p.ContextKeyExpr.and(F.precondition,V.when),V}return Array.isArray(F.contextMenuOpts)?x.push(...F.contextMenuOpts.map(W)):F.contextMenuOpts&&x.push(W(F.contextMenuOpts)),F.menuOpts=x,F}constructor(F){super(C.convertOptions(F)),this.label=F.label,this.alias=F.alias}runEditorCommand(F,x,W){return this.reportTelemetry(F,x),this.run(F,x,W||{})}reportTelemetry(F,x){F.get(i.ITelemetryService).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}e.EditorAction=C;class f extends C{constructor(){super(...arguments),this._implementations=[]}addImplementation(F,x){return this._implementations.push([F,x]),this._implementations.sort((W,V)=>V[0]-W[0]),{dispose:()=>{for(let W=0;W{const H=q.get(p.IContextKeyService),z=q.get(g.ILogService);if(!H.contextMatchesRules(this.desc.precondition??void 0)){z.debug("[EditorAction2] NOT running command because its precondition is FALSE",this.desc.id,this.desc.precondition?.serialize());return}return this.runEditorCommand(q,V,...x)})}}e.EditorAction2=h;function v(O,F){b.CommandsRegistry.registerCommand(O,function(x,...W){const V=x.get(n.IInstantiationService),[q,H]=W;(0,s.assertType)(k.URI.isUri(q)),(0,s.assertType)(E.Position.isIPosition(H));const z=x.get(y.IModelService).getModel(q);if(z){const U=E.Position.lift(H);return V.invokeFunction(F,z,U,...W.slice(2))}return x.get(m.ITextModelService).createModelReference(q).then(U=>new Promise((j,Y)=>{try{const G=V.invokeFunction(F,U.object.textEditorModel,E.Position.lift(H),W.slice(2));j(G)}catch(G){Y(G)}}).finally(()=>{U.dispose()}))})}function w(O){return P.INSTANCE.registerEditorCommand(O),O}function S(O){const F=new O;return P.INSTANCE.registerEditorAction(F),F}function L(O){return P.INSTANCE.registerEditorAction(O),O}function D(O){P.INSTANCE.registerEditorAction(O)}function T(O,F,x){P.INSTANCE.registerEditorContribution(O,F,x)}var M;(function(O){function F(H){return P.INSTANCE.getEditorCommand(H)}O.getEditorCommand=F;function x(){return P.INSTANCE.getEditorActions()}O.getEditorActions=x;function W(){return P.INSTANCE.getEditorContributions()}O.getEditorContributions=W;function V(H){return P.INSTANCE.getEditorContributions().filter(z=>H.indexOf(z.id)>=0)}O.getSomeEditorContributions=V;function q(){return P.INSTANCE.getDiffEditorContributions()}O.getDiffEditorContributions=q})(M||(e.EditorExtensionsRegistry=M={}));const A={EditorCommonContributions:"editor.contributions"};class P{static{this.INSTANCE=new P}constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(F,x,W){this.editorContributions.push({id:F,ctor:x,instantiation:W})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(F){F.register(),this.editorActions.push(F)}getEditorActions(){return this.editorActions}registerEditorCommand(F){F.register(),this.editorCommands[F.id]=F}getEditorCommand(F){return this.editorCommands[F]||null}}t.Registry.add(A.EditorCommonContributions,P.INSTANCE);function N(O){return O.register(),O}e.UndoCommand=N(new a({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:_.MenuId.MenubarEditMenu,group:"1_do",title:d.localize(62,"&&Undo"),order:1},{menuId:_.MenuId.CommandPalette,group:"",title:d.localize(63,"Undo"),order:1}]})),N(new r(e.UndoCommand,{id:"default:undo",precondition:void 0})),e.RedoCommand=N(new a({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:_.MenuId.MenubarEditMenu,group:"1_do",title:d.localize(64,"&&Redo"),order:2},{menuId:_.MenuId.CommandPalette,group:"",title:d.localize(65,"Redo"),order:1}]})),N(new r(e.RedoCommand,{id:"default:redo",precondition:void 0})),e.SelectAllCommand=N(new a({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:_.MenuId.MenubarSelectionMenu,group:"1_basic",title:d.localize(66,"&&Select All"),order:1},{menuId:_.MenuId.CommandPalette,group:"",title:d.localize(67,"Select All"),order:1}]}))}),define(ne[214],se([1,0,3,64,19,46,15,34,565,76,234,235,276,9,4,20,12,121,5,213]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CoreEditingCommands=e.CoreNavigationCommands=e.RevealLine_=e.EditorScroll_=e.CoreEditorCommand=void 0;const r=0;class u extends y.EditorCommand{runEditorCommand(P,N,O){const F=N._getViewModel();F&&this.runCoreEditorCommand(F,O||{})}}e.CoreEditorCommand=u;var C;(function(A){const P=function(O){if(!I.isObject(O))return!1;const F=O;return!(!I.isString(F.to)||!I.isUndefined(F.by)&&!I.isString(F.by)||!I.isUndefined(F.value)&&!I.isNumber(F.value)||!I.isUndefined(F.revealCursor)&&!I.isBoolean(F.revealCursor))};A.metadata={description:"Scroll editor in the given direction",args:[{name:"Editor scroll argument object",description:"Property-value pairs that can be passed through this argument:\n * 'to': A mandatory direction value.\n ```\n 'up', 'down'\n ```\n * 'by': Unit to move. Default is computed based on 'to' value.\n ```\n 'line', 'wrappedLine', 'page', 'halfPage', 'editor'\n ```\n * 'value': Number of units to move. Default is '1'.\n * 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n ",constraint:P,schema:{type:"object",required:["to"],properties:{to:{type:"string",enum:["up","down"]},by:{type:"string",enum:["line","wrappedLine","page","halfPage","editor"]},value:{type:"number",default:1},revealCursor:{type:"boolean"}}}}]},A.RawDirection={Up:"up",Right:"right",Down:"down",Left:"left"},A.RawUnit={Line:"line",WrappedLine:"wrappedLine",Page:"page",HalfPage:"halfPage",Editor:"editor",Column:"column"};function N(O){let F;switch(O.to){case A.RawDirection.Up:F=1;break;case A.RawDirection.Right:F=2;break;case A.RawDirection.Down:F=3;break;case A.RawDirection.Left:F=4;break;default:return null}let x;switch(O.by){case A.RawUnit.Line:x=1;break;case A.RawUnit.WrappedLine:x=2;break;case A.RawUnit.Page:x=3;break;case A.RawUnit.HalfPage:x=4;break;case A.RawUnit.Editor:x=5;break;case A.RawUnit.Column:x=6;break;default:x=2}const W=Math.floor(O.value||1),V=!!O.revealCursor;return{direction:F,unit:x,value:W,revealCursor:V,select:!!O.select}}A.parse=N})(C||(e.EditorScroll_=C={}));var f;(function(A){const P=function(N){if(!I.isObject(N))return!1;const O=N;return!(!I.isNumber(O.lineNumber)&&!I.isString(O.lineNumber)||!I.isUndefined(O.at)&&!I.isString(O.at))};A.metadata={description:"Reveal the given line at the given logical position",args:[{name:"Reveal line argument object",description:"Property-value pairs that can be passed through this argument:\n * 'lineNumber': A mandatory line number value.\n * 'at': Logical position at which line has to be revealed.\n ```\n 'top', 'center', 'bottom'\n ```\n ",constraint:P,schema:{type:"object",required:["lineNumber"],properties:{lineNumber:{type:["number","string"]},at:{type:"string",enum:["top","center","bottom"]}}}}]},A.RawAtArgument={Top:"top",Center:"center",Bottom:"bottom"}})(f||(e.RevealLine_=f={}));class h{constructor(P){P.addImplementation(1e4,"code-editor",(N,O)=>{const F=N.get(m.ICodeEditorService).getFocusedCodeEditor();return F&&F.hasTextFocus()?this._runEditorCommand(N,F,O):!1}),P.addImplementation(1e3,"generic-dom-input-textarea",(N,O)=>{const F=(0,l.getActiveElement)();return F&&["input","textarea"].indexOf(F.tagName.toLowerCase())>=0?(this.runDOMCommand(F),!0):!1}),P.addImplementation(0,"generic-dom",(N,O)=>{const F=N.get(m.ICodeEditorService).getActiveCodeEditor();return F?(F.focus(),this._runEditorCommand(N,F,O)):!1})}_runEditorCommand(P,N,O){const F=this.runEditorCommand(P,N,O);return F||!0}}var v;(function(A){class P extends u{constructor(ie){super(ie),this._inSelectionMode=ie.inSelectionMode}runCoreEditorCommand(ie,ue){if(!ue.position)return;ie.model.pushStackElement(),ie.setCursorStates(ue.source,3,[n.CursorMoveCommands.moveTo(ie,ie.getPrimaryCursorState(),this._inSelectionMode,ue.position,ue.viewPosition)])&&ue.revealType!==2&&ie.revealAllCursors(ue.source,!0,!0)}}A.MoveTo=(0,y.registerEditorCommand)(new P({id:"_moveTo",inSelectionMode:!1,precondition:void 0})),A.MoveToSelect=(0,y.registerEditorCommand)(new P({id:"_moveToSelect",inSelectionMode:!0,precondition:void 0}));class N extends u{runCoreEditorCommand(ie,ue){ie.model.pushStackElement();const he=this._getColumnSelectResult(ie,ie.getPrimaryCursorState(),ie.getCursorColumnSelectData(),ue);he!==null&&(ie.setCursorStates(ue.source,3,he.viewStates.map(pe=>b.CursorState.fromViewState(pe))),ie.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:he.fromLineNumber,fromViewVisualColumn:he.fromVisualColumn,toViewLineNumber:he.toLineNumber,toViewVisualColumn:he.toVisualColumn}),he.reversed?ie.revealTopMostCursor(ue.source):ie.revealBottomMostCursor(ue.source))}}A.ColumnSelect=(0,y.registerEditorCommand)(new class extends N{constructor(){super({id:"columnSelect",precondition:void 0})}_getColumnSelectResult(J,ie,ue,he){if(typeof he.position>"u"||typeof he.viewPosition>"u"||typeof he.mouseColumn>"u")return null;const pe=J.model.validatePosition(he.position),ae=J.coordinatesConverter.validateViewPosition(new t.Position(he.viewPosition.lineNumber,he.viewPosition.column),pe),ee=he.doColumnSelect?ue.fromViewLineNumber:ae.lineNumber,de=he.doColumnSelect?ue.fromViewVisualColumn:he.mouseColumn-1;return _.ColumnSelection.columnSelect(J.cursorConfig,J,ee,de,ae.lineNumber,he.mouseColumn-1)}}),A.CursorColumnSelectLeft=(0,y.registerEditorCommand)(new class extends N{constructor(){super({id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(J,ie,ue,he){return _.ColumnSelection.columnSelectLeft(J.cursorConfig,J,ue)}}),A.CursorColumnSelectRight=(0,y.registerEditorCommand)(new class extends N{constructor(){super({id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(J,ie,ue,he){return _.ColumnSelection.columnSelectRight(J.cursorConfig,J,ue)}});class O extends N{constructor(ie){super(ie),this._isPaged=ie.isPaged}_getColumnSelectResult(ie,ue,he,pe){return _.ColumnSelection.columnSelectUp(ie.cursorConfig,ie,he,this._isPaged)}}A.CursorColumnSelectUp=(0,y.registerEditorCommand)(new O({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:3600,linux:{primary:0}}})),A.CursorColumnSelectPageUp=(0,y.registerEditorCommand)(new O({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:3595,linux:{primary:0}}}));class F extends N{constructor(ie){super(ie),this._isPaged=ie.isPaged}_getColumnSelectResult(ie,ue,he,pe){return _.ColumnSelection.columnSelectDown(ie.cursorConfig,ie,he,this._isPaged)}}A.CursorColumnSelectDown=(0,y.registerEditorCommand)(new F({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:3602,linux:{primary:0}}})),A.CursorColumnSelectPageDown=(0,y.registerEditorCommand)(new F({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:3596,linux:{primary:0}}}));class x extends u{constructor(){super({id:"cursorMove",precondition:void 0,metadata:n.CursorMove.metadata})}runCoreEditorCommand(ie,ue){const he=n.CursorMove.parse(ue);he&&this._runCursorMove(ie,ue.source,he)}_runCursorMove(ie,ue,he){ie.model.pushStackElement(),ie.setCursorStates(ue,3,x._move(ie,ie.getCursorStates(),he)),ie.revealAllCursors(ue,!0)}static _move(ie,ue,he){const pe=he.select,ae=he.value;switch(he.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return n.CursorMoveCommands.simpleMove(ie,ue,he.direction,pe,ae,he.unit);case 11:case 13:case 12:case 14:return n.CursorMoveCommands.viewportMove(ie,ue,he.direction,pe,ae);default:return null}}}A.CursorMoveImpl=x,A.CursorMove=(0,y.registerEditorCommand)(new x);class W extends u{constructor(ie){super(ie),this._staticArgs=ie.args}runCoreEditorCommand(ie,ue){let he=this._staticArgs;this._staticArgs.value===-1&&(he={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:ue.pageSize||ie.cursorConfig.pageSize}),ie.model.pushStackElement(),ie.setCursorStates(ue.source,3,n.CursorMoveCommands.simpleMove(ie,ie.getCursorStates(),he.direction,he.select,he.value,he.unit)),ie.revealAllCursors(ue.source,!0)}}A.CursorLeft=(0,y.registerEditorCommand)(new W({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),A.CursorLeftSelect=(0,y.registerEditorCommand)(new W({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:1039}})),A.CursorRight=(0,y.registerEditorCommand)(new W({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),A.CursorRightSelect=(0,y.registerEditorCommand)(new W({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:1041}})),A.CursorUp=(0,y.registerEditorCommand)(new W({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),A.CursorUpSelect=(0,y.registerEditorCommand)(new W({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),A.CursorPageUp=(0,y.registerEditorCommand)(new W({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:11}})),A.CursorPageUpSelect=(0,y.registerEditorCommand)(new W({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:1035}})),A.CursorDown=(0,y.registerEditorCommand)(new W({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),A.CursorDownSelect=(0,y.registerEditorCommand)(new W({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),A.CursorPageDown=(0,y.registerEditorCommand)(new W({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:12}})),A.CursorPageDownSelect=(0,y.registerEditorCommand)(new W({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:1036}})),A.CreateCursor=(0,y.registerEditorCommand)(new class extends u{constructor(){super({id:"createCursor",precondition:void 0})}runCoreEditorCommand(J,ie){if(!ie.position)return;let ue;ie.wholeLine?ue=n.CursorMoveCommands.line(J,J.getPrimaryCursorState(),!1,ie.position,ie.viewPosition):ue=n.CursorMoveCommands.moveTo(J,J.getPrimaryCursorState(),!1,ie.position,ie.viewPosition);const he=J.getCursorStates();if(he.length>1){const pe=ue.modelState?ue.modelState.position:null,ae=ue.viewState?ue.viewState.position:null;for(let ee=0,de=he.length;eeae&&(pe=ae);const ee=new i.Range(pe,1,pe,J.model.getLineMaxColumn(pe));let de=0;if(ue.at)switch(ue.at){case f.RawAtArgument.Top:de=3;break;case f.RawAtArgument.Center:de=1;break;case f.RawAtArgument.Bottom:de=4;break;default:break}const ge=J.coordinatesConverter.convertModelRangeToViewRange(ee);J.revealRange(ie.source,!1,ge,de,0)}}),A.SelectAll=new class extends h{constructor(){super(y.SelectAllCommand)}runDOMCommand(J){k.isFirefox&&(J.focus(),J.select()),J.ownerDocument.execCommand("selectAll")}runEditorCommand(J,ie,ue){const he=ie._getViewModel();he&&this.runCoreEditorCommand(he,ue)}runCoreEditorCommand(J,ie){J.model.pushStackElement(),J.setCursorStates("keyboard",3,[n.CursorMoveCommands.selectAll(J,J.getPrimaryCursorState())])}},A.SetSelection=(0,y.registerEditorCommand)(new class extends u{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(J,ie){ie.selection&&(J.model.pushStackElement(),J.setCursorStates(ie.source,3,[b.CursorState.fromModelSelection(ie.selection)]))}})})(v||(e.CoreNavigationCommands=v={}));const w=g.ContextKeyExpr.and(s.EditorContextKeys.textInputFocus,s.EditorContextKeys.columnSelection);function S(A,P){c.KeybindingsRegistry.registerKeybindingRule({id:A,primary:P,when:w,weight:r+1})}S(v.CursorColumnSelectLeft.id,1039),S(v.CursorColumnSelectRight.id,1041),S(v.CursorColumnSelectUp.id,1040),S(v.CursorColumnSelectPageUp.id,1035),S(v.CursorColumnSelectDown.id,1042),S(v.CursorColumnSelectPageDown.id,1036);function L(A){return A.register(),A}var D;(function(A){class P extends y.EditorCommand{runEditorCommand(O,F,x){const W=F._getViewModel();W&&this.runCoreEditingCommand(F,W,x||{})}}A.CoreEditingCommand=P,A.LineBreakInsert=(0,y.registerEditorCommand)(new class extends P{constructor(){super({id:"lineBreakInsert",precondition:s.EditorContextKeys.writable,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(N,O,F){N.pushUndoStop(),N.executeCommands(this.id,a.EnterOperation.lineBreakInsert(O.cursorConfig,O.model,O.getCursorStates().map(x=>x.modelState.selection)))}}),A.Outdent=(0,y.registerEditorCommand)(new class extends P{constructor(){super({id:"outdent",precondition:s.EditorContextKeys.writable,kbOpts:{weight:r,kbExpr:g.ContextKeyExpr.and(s.EditorContextKeys.editorTextFocus,s.EditorContextKeys.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(N,O,F){N.pushUndoStop(),N.executeCommands(this.id,o.TypeOperations.outdent(O.cursorConfig,O.model,O.getCursorStates().map(x=>x.modelState.selection))),N.pushUndoStop()}}),A.Tab=(0,y.registerEditorCommand)(new class extends P{constructor(){super({id:"tab",precondition:s.EditorContextKeys.writable,kbOpts:{weight:r,kbExpr:g.ContextKeyExpr.and(s.EditorContextKeys.editorTextFocus,s.EditorContextKeys.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(N,O,F){N.pushUndoStop(),N.executeCommands(this.id,o.TypeOperations.tab(O.cursorConfig,O.model,O.getCursorStates().map(x=>x.modelState.selection))),N.pushUndoStop()}}),A.DeleteLeft=(0,y.registerEditorCommand)(new class extends P{constructor(){super({id:"deleteLeft",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(N,O,F){const[x,W]=p.DeleteOperations.deleteLeft(O.getPrevEditOperationType(),O.cursorConfig,O.model,O.getCursorStates().map(V=>V.modelState.selection),O.getCursorAutoClosedCharacters());x&&N.pushUndoStop(),N.executeCommands(this.id,W),O.setPrevEditOperationType(2)}}),A.DeleteRight=(0,y.registerEditorCommand)(new class extends P{constructor(){super({id:"deleteRight",precondition:void 0,kbOpts:{weight:r,kbExpr:s.EditorContextKeys.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(N,O,F){const[x,W]=p.DeleteOperations.deleteRight(O.getPrevEditOperationType(),O.cursorConfig,O.model,O.getCursorStates().map(V=>V.modelState.selection));x&&N.pushUndoStop(),N.executeCommands(this.id,W),O.setPrevEditOperationType(3)}}),A.Undo=new class extends h{constructor(){super(y.UndoCommand)}runDOMCommand(N){N.ownerDocument.execCommand("undo")}runEditorCommand(N,O,F){if(!(!O.hasModel()||O.getOption(92)===!0))return O.getModel().undo()}},A.Redo=new class extends h{constructor(){super(y.RedoCommand)}runDOMCommand(N){N.ownerDocument.execCommand("redo")}runEditorCommand(N,O,F){if(!(!O.hasModel()||O.getOption(92)===!0))return O.getModel().redo()}}})(D||(e.CoreEditingCommands=D={}));class T extends y.Command{constructor(P,N,O){super({id:P,precondition:void 0,metadata:O}),this._handlerId=N}runCommand(P,N){const O=P.get(m.ICodeEditorService).getFocusedCodeEditor();O&&O.trigger("keyboard",this._handlerId,N)}}function M(A,P){L(new T("default:"+A,A)),L(new T(A,A,P))}M("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]}),M("replacePreviousChar"),M("compositionType"),M("compositionStart"),M("compositionEnd"),M("paste"),M("cut")}),define(ne[725],se([1,0,266,15]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarkerDecorationsContribution=void 0;let I=class{static{this.ID="editor.contrib.markerDecorations"}constructor(y,m){}dispose(){}};e.MarkerDecorationsContribution=I,e.MarkerDecorationsContribution=I=ke([ce(1,d.IMarkerDecorationsService)],I),(0,k.registerEditorContribution)(I.ID,I,0)}),define(ne[726],se([1,0,214,9,16]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewController=void 0;class E{constructor(m,_,b,p){this.configuration=m,this.viewModel=_,this.userInputEvents=b,this.commandDelegate=p}paste(m,_,b,p){this.commandDelegate.paste(m,_,b,p)}type(m){this.commandDelegate.type(m)}compositionType(m,_,b,p){this.commandDelegate.compositionType(m,_,b,p)}compositionStart(){this.commandDelegate.startComposition()}compositionEnd(){this.commandDelegate.endComposition()}cut(){this.commandDelegate.cut()}setSelection(m){d.CoreNavigationCommands.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:m})}_validateViewColumn(m){const _=this.viewModel.getLineMinColumn(m.lineNumber);return m.column<_?new k.Position(m.lineNumber,_):m}_hasMulticursorModifier(m){switch(this.configuration.options.get(78)){case"altKey":return m.altKey;case"ctrlKey":return m.ctrlKey;case"metaKey":return m.metaKey;default:return!1}}_hasNonMulticursorModifier(m){switch(this.configuration.options.get(78)){case"altKey":return m.ctrlKey||m.metaKey;case"ctrlKey":return m.altKey||m.metaKey;case"metaKey":return m.ctrlKey||m.altKey;default:return!1}}dispatchMouse(m){const _=this.configuration.options,b=I.isLinux&&_.get(108),p=_.get(22);m.middleButton&&!b?this._columnSelect(m.position,m.mouseColumn,m.inSelectionMode):m.startedOnLineNumbers?this._hasMulticursorModifier(m)?m.inSelectionMode?this._lastCursorLineSelect(m.position,m.revealType):this._createCursor(m.position,!0):m.inSelectionMode?this._lineSelectDrag(m.position,m.revealType):this._lineSelect(m.position,m.revealType):m.mouseDownCount>=4?this._selectAll():m.mouseDownCount===3?this._hasMulticursorModifier(m)?m.inSelectionMode?this._lastCursorLineSelectDrag(m.position,m.revealType):this._lastCursorLineSelect(m.position,m.revealType):m.inSelectionMode?this._lineSelectDrag(m.position,m.revealType):this._lineSelect(m.position,m.revealType):m.mouseDownCount===2?m.onInjectedText||(this._hasMulticursorModifier(m)?this._lastCursorWordSelect(m.position,m.revealType):m.inSelectionMode?this._wordSelectDrag(m.position,m.revealType):this._wordSelect(m.position,m.revealType)):this._hasMulticursorModifier(m)?this._hasNonMulticursorModifier(m)||(m.shiftKey?this._columnSelect(m.position,m.mouseColumn,!0):m.inSelectionMode?this._lastCursorMoveToSelect(m.position,m.revealType):this._createCursor(m.position,!1)):m.inSelectionMode?m.altKey?this._columnSelect(m.position,m.mouseColumn,!0):p?this._columnSelect(m.position,m.mouseColumn,!0):this._moveToSelect(m.position,m.revealType):this.moveTo(m.position,m.revealType)}_usualArgs(m,_){return m=this._validateViewColumn(m),{source:"mouse",position:this._convertViewToModelPosition(m),viewPosition:m,revealType:_}}moveTo(m,_){d.CoreNavigationCommands.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_moveToSelect(m,_){d.CoreNavigationCommands.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_columnSelect(m,_,b){m=this._validateViewColumn(m),d.CoreNavigationCommands.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(m),viewPosition:m,mouseColumn:_,doColumnSelect:b})}_createCursor(m,_){m=this._validateViewColumn(m),d.CoreNavigationCommands.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(m),viewPosition:m,wholeLine:_})}_lastCursorMoveToSelect(m,_){d.CoreNavigationCommands.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_wordSelect(m,_){d.CoreNavigationCommands.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_wordSelectDrag(m,_){d.CoreNavigationCommands.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_lastCursorWordSelect(m,_){d.CoreNavigationCommands.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_lineSelect(m,_){d.CoreNavigationCommands.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_lineSelectDrag(m,_){d.CoreNavigationCommands.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_lastCursorLineSelect(m,_){d.CoreNavigationCommands.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_lastCursorLineSelectDrag(m,_){d.CoreNavigationCommands.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(m,_))}_selectAll(){d.CoreNavigationCommands.SelectAll.runCoreEditorCommand(this.viewModel,{source:"mouse"})}_convertViewToModelPosition(m){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(m)}emitKeyDown(m){this.userInputEvents.emitKeyDown(m)}emitKeyUp(m){this.userInputEvents.emitKeyUp(m)}emitContextMenu(m){this.userInputEvents.emitContextMenu(m)}emitMouseMove(m){this.userInputEvents.emitMouseMove(m)}emitMouseLeave(m){this.userInputEvents.emitMouseLeave(m)}emitMouseUp(m){this.userInputEvents.emitMouseUp(m)}emitMouseDown(m){this.userInputEvents.emitMouseDown(m)}emitMouseDrag(m){this.userInputEvents.emitMouseDrag(m)}emitMouseDrop(m){this.userInputEvents.emitMouseDrop(m)}emitMouseDropCanceled(){this.userInputEvents.emitMouseDropCanceled()}emitMouseWheel(m){this.userInputEvents.emitMouseWheel(m)}}e.ViewController=E}),define(ne[215],se([1,0,49,7,6,54,55,105,100,63]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";var p;Object.defineProperty(e,"__esModule",{value:!0}),e.WorkerBasedDocumentDiffProvider=e.WorkerBasedDiffProviderFactoryService=e.IDiffProviderFactoryService=void 0,e.IDiffProviderFactoryService=(0,k.createDecorator)("diffProviderFactoryService");let n=class{constructor(i){this.instantiationService=i}createDiffProvider(i){return this.instantiationService.createInstance(o,i)}};e.WorkerBasedDiffProviderFactoryService=n,e.WorkerBasedDiffProviderFactoryService=n=ke([ce(0,k.IInstantiationService)],n),(0,d.registerSingleton)(e.IDiffProviderFactoryService,n,1);let o=class{static{p=this}static{this.diffCache=new Map}constructor(i,s,g){this.editorWorkerService=s,this.telemetryService=g,this.onDidChangeEventEmitter=new I.Emitter,this.onDidChange=this.onDidChangeEventEmitter.event,this.diffAlgorithm="advanced",this.diffAlgorithmOnDidChangeSubscription=void 0,this.setOptions(i)}dispose(){this.diffAlgorithmOnDidChangeSubscription?.dispose()}async computeDiff(i,s,g,c){if(typeof this.diffAlgorithm!="string")return this.diffAlgorithm.computeDiff(i,s,g,c);if(i.isDisposed()||s.isDisposed())return{changes:[],identical:!0,quitEarly:!1,moves:[]};if(i.getLineCount()===1&&i.getLineMaxColumn(1)===1)return s.getLineCount()===1&&s.getLineMaxColumn(1)===1?{changes:[],identical:!0,quitEarly:!1,moves:[]}:{changes:[new m.DetailedLineRangeMapping(new y.LineRange(1,2),new y.LineRange(1,s.getLineCount()+1),[new m.RangeMapping(i.getFullModelRange(),s.getFullModelRange())])],identical:!1,quitEarly:!1,moves:[]};const l=JSON.stringify([i.uri.toString(),s.uri.toString()]),a=JSON.stringify([i.id,s.id,i.getAlternativeVersionId(),s.getAlternativeVersionId(),JSON.stringify(g)]),r=p.diffCache.get(l);if(r&&r.context===a)return r.result;const u=E.StopWatch.create(),C=await this.editorWorkerService.computeDiff(i.uri,s.uri,g,this.diffAlgorithm),f=u.elapsed();if(this.telemetryService.publicLog2("diffEditor.computeDiff",{timeMs:f,timedOut:C?.quitEarly??!0,detectedMoves:g.computeMoves?C?.moves.length??0:-1}),c.isCancellationRequested)return{changes:[],identical:!1,quitEarly:!0,moves:[]};if(!C)throw new Error("no diff result available");return p.diffCache.size>10&&p.diffCache.delete(p.diffCache.keys().next().value),p.diffCache.set(l,{result:C,context:a}),C}setOptions(i){let s=!1;i.diffAlgorithm&&this.diffAlgorithm!==i.diffAlgorithm&&(this.diffAlgorithmOnDidChangeSubscription?.dispose(),this.diffAlgorithmOnDidChangeSubscription=void 0,this.diffAlgorithm=i.diffAlgorithm,typeof i.diffAlgorithm!="string"&&(this.diffAlgorithmOnDidChangeSubscription=i.diffAlgorithm.onDidChange(()=>this.onDidChangeEventEmitter.fire())),s=!0),s&&this.onDidChangeEventEmitter.fire()}};e.WorkerBasedDocumentDiffProvider=o,e.WorkerBasedDocumentDiffProvider=o=p=ke([ce(1,_.IEditorWorkerService),ce(2,b.ITelemetryService)],o)}),define(ne[407],se([1,0,14,18,2,21,215,88,171,55,317,105,200,319,315,19,13,90]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UnchangedRegion=e.DiffMapping=e.DiffState=e.DiffEditorViewModel=void 0;let l=class extends I.Disposable{setActiveMovedText(S){this._activeMovedText.set(S,void 0)}constructor(S,L,D){super(),this.model=S,this._options=L,this._diffProviderFactoryService=D,this._isDiffUpToDate=(0,E.observableValue)(this,!1),this.isDiffUpToDate=this._isDiffUpToDate,this._diff=(0,E.observableValue)(this,void 0),this.diff=this._diff,this._unchangedRegions=(0,E.observableValue)(this,void 0),this.unchangedRegions=(0,E.derived)(this,P=>this._options.hideUnchangedRegions.read(P)?this._unchangedRegions.read(P)?.regions??[]:((0,E.transaction)(N=>{for(const O of this._unchangedRegions.get()?.regions||[])O.collapseAll(N)}),[])),this.movedTextToCompare=(0,E.observableValue)(this,void 0),this._activeMovedText=(0,E.observableValue)(this,void 0),this._hoveredMovedText=(0,E.observableValue)(this,void 0),this.activeMovedText=(0,E.derived)(this,P=>this.movedTextToCompare.read(P)??this._hoveredMovedText.read(P)??this._activeMovedText.read(P)),this._cancellationTokenSource=new k.CancellationTokenSource,this._diffProvider=(0,E.derived)(this,P=>{const N=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:this._options.diffAlgorithm.read(P)}),O=(0,E.observableSignalFromEvent)("onDidChange",N.onDidChange);return{diffProvider:N,onChangeSignal:O}}),this._register((0,I.toDisposable)(()=>this._cancellationTokenSource.cancel()));const T=(0,E.observableSignal)("contentChangedSignal"),M=this._register(new d.RunOnceScheduler(()=>T.trigger(void 0),200));this._register((0,E.autorun)(P=>{const N=this._unchangedRegions.read(P);if(!N||N.regions.some(q=>q.isDragged.read(P)))return;const O=N.originalDecorationIds.map(q=>S.original.getDecorationRange(q)).map(q=>q?b.LineRange.fromRangeInclusive(q):void 0),F=N.modifiedDecorationIds.map(q=>S.modified.getDecorationRange(q)).map(q=>q?b.LineRange.fromRangeInclusive(q):void 0),x=N.regions.map((q,H)=>!O[H]||!F[H]?void 0:new f(O[H].startLineNumber,F[H].startLineNumber,O[H].length,q.visibleLineCountTop.read(P),q.visibleLineCountBottom.read(P))).filter(s.isDefined),W=[];let V=!1;for(const q of(0,g.groupAdjacentBy)(x,(H,z)=>H.getHiddenModifiedRange(P).endLineNumberExclusive===z.getHiddenModifiedRange(P).startLineNumber))if(q.length>1){V=!0;const H=q.reduce((U,j)=>U+j.lineCount,0),z=new f(q[0].originalLineNumber,q[0].modifiedLineNumber,H,q[0].visibleLineCountTop.get(),q[q.length-1].visibleLineCountBottom.get());W.push(z)}else W.push(q[0]);if(V){const q=S.original.deltaDecorations(N.originalDecorationIds,W.map(z=>({range:z.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),H=S.modified.deltaDecorations(N.modifiedDecorationIds,W.map(z=>({range:z.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));(0,E.transaction)(z=>{this._unchangedRegions.set({regions:W,originalDecorationIds:q,modifiedDecorationIds:H},z)})}}));const A=(P,N,O)=>{const F=f.fromDiffs(P.changes,S.original.getLineCount(),S.modified.getLineCount(),this._options.hideUnchangedRegionsMinimumLineCount.read(O),this._options.hideUnchangedRegionsContextLineCount.read(O));let x;const W=this._unchangedRegions.get();if(W){const z=W.originalDecorationIds.map(G=>S.original.getDecorationRange(G)).map(G=>G?b.LineRange.fromRangeInclusive(G):void 0),U=W.modifiedDecorationIds.map(G=>S.modified.getDecorationRange(G)).map(G=>G?b.LineRange.fromRangeInclusive(G):void 0);let Y=(0,m.filterWithPrevious)(W.regions.map((G,K)=>{if(!z[K]||!U[K])return;const R=z[K].length;return new f(z[K].startLineNumber,U[K].startLineNumber,R,Math.min(G.visibleLineCountTop.get(),R),Math.min(G.visibleLineCountBottom.get(),R-G.visibleLineCountTop.get()))}).filter(s.isDefined),(G,K)=>!K||G.modifiedLineNumber>=K.modifiedLineNumber+K.lineCount&&G.originalLineNumber>=K.originalLineNumber+K.lineCount).map(G=>new n.LineRangeMapping(G.getHiddenOriginalRange(O),G.getHiddenModifiedRange(O)));Y=n.LineRangeMapping.clip(Y,b.LineRange.ofLength(1,S.original.getLineCount()),b.LineRange.ofLength(1,S.modified.getLineCount())),x=n.LineRangeMapping.inverse(Y,S.original.getLineCount(),S.modified.getLineCount())}const V=[];if(x)for(const z of F){const U=x.filter(j=>j.original.intersectsStrict(z.originalUnchangedRange)&&j.modified.intersectsStrict(z.modifiedUnchangedRange));V.push(...z.setVisibleRanges(U,N))}else V.push(...F);const q=S.original.deltaDecorations(W?.originalDecorationIds||[],V.map(z=>({range:z.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),H=S.modified.deltaDecorations(W?.modifiedDecorationIds||[],V.map(z=>({range:z.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));this._unchangedRegions.set({regions:V,originalDecorationIds:q,modifiedDecorationIds:H},N)};this._register(S.modified.onDidChangeContent(P=>{if(this._diff.get()){const O=o.TextEditInfo.fromModelContentChanges(P.changes),F=(this._lastDiff,S.original,S.modified,void 0);F&&(this._lastDiff=F,(0,E.transaction)(x=>{this._diff.set(u.fromDiffResult(this._lastDiff),x),A(F,x);const W=this.movedTextToCompare.get();this.movedTextToCompare.set(W?this._lastDiff.moves.find(V=>V.lineRangeMapping.modified.intersect(W.lineRangeMapping.modified)):void 0,x)}))}this._isDiffUpToDate.set(!1,void 0),M.schedule()})),this._register(S.original.onDidChangeContent(P=>{if(this._diff.get()){const O=o.TextEditInfo.fromModelContentChanges(P.changes),F=(this._lastDiff,S.original,S.modified,void 0);F&&(this._lastDiff=F,(0,E.transaction)(x=>{this._diff.set(u.fromDiffResult(this._lastDiff),x),A(F,x);const W=this.movedTextToCompare.get();this.movedTextToCompare.set(W?this._lastDiff.moves.find(V=>V.lineRangeMapping.modified.intersect(W.lineRangeMapping.modified)):void 0,x)}))}this._isDiffUpToDate.set(!1,void 0),M.schedule()})),this._register((0,E.autorunWithStore)(async(P,N)=>{this._options.hideUnchangedRegionsMinimumLineCount.read(P),this._options.hideUnchangedRegionsContextLineCount.read(P),M.cancel(),T.read(P);const O=this._diffProvider.read(P);O.onChangeSignal.read(P),(0,_.readHotReloadableExport)(p.DefaultLinesDiffComputer,P),(0,_.readHotReloadableExport)(i.optimizeSequenceDiffs,P),this._isDiffUpToDate.set(!1,void 0);let F=[];N.add(S.original.onDidChangeContent(V=>{const q=o.TextEditInfo.fromModelContentChanges(V.changes);F=(0,t.combineTextEditInfos)(F,q)}));let x=[];N.add(S.modified.onDidChangeContent(V=>{const q=o.TextEditInfo.fromModelContentChanges(V.changes);x=(0,t.combineTextEditInfos)(x,q)}));let W=await O.diffProvider.computeDiff(S.original,S.modified,{ignoreTrimWhitespace:this._options.ignoreTrimWhitespace.read(P),maxComputationTimeMs:this._options.maxComputationTimeMs.read(P),computeMoves:this._options.showMoves.read(P)},this._cancellationTokenSource.token);this._cancellationTokenSource.token.isCancellationRequested||S.original.isDisposed()||S.modified.isDisposed()||(W=a(W,S.original,S.modified),W=(S.original,S.modified,void 0)??W,W=(S.original,S.modified,void 0)??W,(0,E.transaction)(V=>{A(W,V),this._lastDiff=W;const q=u.fromDiffResult(W);this._diff.set(q,V),this._isDiffUpToDate.set(!0,V);const H=this.movedTextToCompare.get();this.movedTextToCompare.set(H?this._lastDiff.moves.find(z=>z.lineRangeMapping.modified.intersect(H.lineRangeMapping.modified)):void 0,V)}))}))}ensureModifiedLineIsVisible(S,L,D){if(this.diff.get()?.mappings.length===0)return;const T=this._unchangedRegions.get()?.regions||[];for(const M of T)if(M.getHiddenModifiedRange(void 0).contains(S)){M.showModifiedLine(S,L,D);return}}ensureOriginalLineIsVisible(S,L,D){if(this.diff.get()?.mappings.length===0)return;const T=this._unchangedRegions.get()?.regions||[];for(const M of T)if(M.getHiddenOriginalRange(void 0).contains(S)){M.showOriginalLine(S,L,D);return}}async waitForDiff(){await(0,E.waitForState)(this.isDiffUpToDate,S=>S)}serializeState(){return{collapsedRegions:this._unchangedRegions.get()?.regions.map(L=>({range:L.getHiddenModifiedRange(void 0).serialize()}))}}restoreSerializedState(S){const L=S.collapsedRegions?.map(T=>b.LineRange.deserialize(T.range)),D=this._unchangedRegions.get();!D||!L||(0,E.transaction)(T=>{for(const M of D.regions)for(const A of L)if(M.modifiedUnchangedRange.intersect(A)){M.setHiddenModifiedRange(A,T);break}})}};e.DiffEditorViewModel=l,e.DiffEditorViewModel=l=ke([ce(2,y.IDiffProviderFactoryService)],l);function a(w,S,L){return{changes:w.changes.map(D=>new n.DetailedLineRangeMapping(D.original,D.modified,D.innerChanges?D.innerChanges.map(T=>r(T,S,L)):void 0)),moves:w.moves,identical:w.identical,quitEarly:w.quitEarly}}function r(w,S,L){let D=w.originalRange,T=w.modifiedRange;return D.startColumn===1&&T.startColumn===1&&(D.endColumn!==1||T.endColumn!==1)&&D.endColumn===S.getLineMaxColumn(D.endLineNumber)&&T.endColumn===L.getLineMaxColumn(T.endLineNumber)&&D.endLineNumbernew C(L)),S.moves||[],S.identical,S.quitEarly)}constructor(S,L,D,T){this.mappings=S,this.movedTexts=L,this.identical=D,this.quitEarly=T}}e.DiffState=u;class C{constructor(S){this.lineRangeMapping=S}}e.DiffMapping=C;class f{static fromDiffs(S,L,D,T,M){const A=n.DetailedLineRangeMapping.inverse(S,L,D),P=[];for(const N of A){let O=N.original.startLineNumber,F=N.modified.startLineNumber,x=N.original.length;const W=O===1&&F===1,V=O+x===L+1&&F+x===D+1;(W||V)&&x>=M+T?(W&&!V&&(x-=M),V&&!W&&(O+=M,F+=M,x-=M),P.push(new f(O,F,x,0,0))):x>=M*2+T&&(O+=M,F+=M,x-=M*2,P.push(new f(O,F,x,0,0)))}return P}get originalUnchangedRange(){return b.LineRange.ofLength(this.originalLineNumber,this.lineCount)}get modifiedUnchangedRange(){return b.LineRange.ofLength(this.modifiedLineNumber,this.lineCount)}constructor(S,L,D,T,M){this.originalLineNumber=S,this.modifiedLineNumber=L,this.lineCount=D,this._visibleLineCountTop=(0,E.observableValue)(this,0),this.visibleLineCountTop=this._visibleLineCountTop,this._visibleLineCountBottom=(0,E.observableValue)(this,0),this.visibleLineCountBottom=this._visibleLineCountBottom,this._shouldHideControls=(0,E.derived)(this,N=>this.visibleLineCountTop.read(N)+this.visibleLineCountBottom.read(N)===this.lineCount&&!this.isDragged.read(N)),this.isDragged=(0,E.observableValue)(this,void 0);const A=Math.max(Math.min(T,this.lineCount),0),P=Math.max(Math.min(M,this.lineCount-T),0);(0,c.softAssert)(T===A),(0,c.softAssert)(M===P),this._visibleLineCountTop.set(A,void 0),this._visibleLineCountBottom.set(P,void 0)}setVisibleRanges(S,L){const D=[],T=new b.LineRangeSet(S.map(N=>N.modified)).subtractFrom(this.modifiedUnchangedRange);let M=this.originalLineNumber,A=this.modifiedLineNumber;const P=this.modifiedLineNumber+this.lineCount;if(T.ranges.length===0)this.showAll(L),D.push(this);else{let N=0;for(const O of T.ranges){const F=N===T.ranges.length-1;N++;const x=(F?P:O.endLineNumberExclusive)-A,W=new f(M,A,x,0,0);W.setHiddenModifiedRange(O,L),D.push(W),M=W.originalUnchangedRange.endLineNumberExclusive,A=W.modifiedUnchangedRange.endLineNumberExclusive}}return D}shouldHideControls(S){return this._shouldHideControls.read(S)}getHiddenOriginalRange(S){return b.LineRange.ofLength(this.originalLineNumber+this._visibleLineCountTop.read(S),this.lineCount-this._visibleLineCountTop.read(S)-this._visibleLineCountBottom.read(S))}getHiddenModifiedRange(S){return b.LineRange.ofLength(this.modifiedLineNumber+this._visibleLineCountTop.read(S),this.lineCount-this._visibleLineCountTop.read(S)-this._visibleLineCountBottom.read(S))}setHiddenModifiedRange(S,L){const D=S.startLineNumber-this.modifiedLineNumber,T=this.modifiedLineNumber+this.lineCount-S.endLineNumberExclusive;this.setState(D,T,L)}getMaxVisibleLineCountTop(){return this.lineCount-this._visibleLineCountBottom.get()}getMaxVisibleLineCountBottom(){return this.lineCount-this._visibleLineCountTop.get()}showMoreAbove(S=10,L){const D=this.getMaxVisibleLineCountTop();this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+S,D),L)}showMoreBelow(S=10,L){const D=this.lineCount-this._visibleLineCountTop.get();this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+S,D),L)}showAll(S){this._visibleLineCountBottom.set(this.lineCount-this._visibleLineCountTop.get(),S)}showModifiedLine(S,L,D){const T=S+1-(this.modifiedLineNumber+this._visibleLineCountTop.get()),M=this.modifiedLineNumber-this._visibleLineCountBottom.get()+this.lineCount-S;L===0&&Tthis.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){const c=this.editor.getPosition();this.editor.changeDecorations(l=>{this.decorationId&&l.removeDecoration(this.decorationId),this.decorationId=l.addDecoration(y.Selection.fromPositions(c,c),{description:"selection-anchor",stickiness:1,hoverMessage:new k.MarkdownString().appendText((0,_.localize)(710,"Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),(0,d.alert)((0,_.localize)(711,"Anchor set at {0}:{1}",c.lineNumber,c.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const c=this.editor.getModel().getDecorationRange(this.decorationId);c&&this.editor.setPosition(c.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const c=this.editor.getModel().getDecorationRange(this.decorationId);if(c){const l=this.editor.getPosition();this.editor.setSelection(y.Selection.fromPositions(c.getStartPosition(),l)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const c=this.decorationId;this.editor.changeDecorations(l=>{l.removeDecoration(c),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}};n=p=ke([ce(1,b.IContextKeyService)],n);class o extends E.EditorAction{constructor(){super({id:"editor.action.setSelectionAnchor",label:(0,_.localize)(712,"Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:m.EditorContextKeys.editorTextFocus,primary:(0,I.KeyChord)(2089,2080),weight:100}})}async run(c,l){n.get(l)?.setSelectionAnchor()}}class t extends E.EditorAction{constructor(){super({id:"editor.action.goToSelectionAnchor",label:(0,_.localize)(713,"Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:e.SelectionAnchorSet})}async run(c,l){n.get(l)?.goToSelectionAnchor()}}class i extends E.EditorAction{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:(0,_.localize)(714,"Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:e.SelectionAnchorSet,kbOpts:{kbExpr:m.EditorContextKeys.editorTextFocus,primary:(0,I.KeyChord)(2089,2089),weight:100}})}async run(c,l){n.get(l)?.selectFromAnchorToCursor()}}class s extends E.EditorAction{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:(0,_.localize)(715,"Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:e.SelectionAnchorSet,kbOpts:{kbExpr:m.EditorContextKeys.editorTextFocus,primary:9,weight:100}})}async run(c,l){n.get(l)?.cancelSelectionAnchor()}}(0,E.registerEditorContribution)(n.ID,n,4),(0,E.registerEditorAction)(o),(0,E.registerEditorAction)(t),(0,E.registerEditorAction)(i),(0,E.registerEditorAction)(s)}),define(ne[728],se([1,0,15,20,607,3]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class y extends d.EditorAction{constructor(p,n){super(n),this.left=p}run(p,n){if(!n.hasModel())return;const o=[],t=n.getSelections();for(const i of t)o.push(new I.MoveCaretCommand(i,this.left));n.pushUndoStop(),n.executeCommands(this.id,o),n.pushUndoStop()}}class m extends y{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:E.localize(722,"Move Selected Text Left"),alias:"Move Selected Text Left",precondition:k.EditorContextKeys.writable})}}class _ extends y{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:E.localize(723,"Move Selected Text Right"),alias:"Move Selected Text Right",precondition:k.EditorContextKeys.writable})}}(0,d.registerEditorAction)(m),(0,d.registerEditorAction)(_)}),define(ne[729],se([1,0,15,146,233,4,20,3]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class _ extends d.EditorAction{constructor(){super({id:"editor.action.transposeLetters",label:m.localize(724,"Transpose Letters"),alias:"Transpose Letters",precondition:y.EditorContextKeys.writable,kbOpts:{kbExpr:y.EditorContextKeys.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(p,n){if(!n.hasModel())return;const o=n.getModel(),t=[],i=n.getSelections();for(const s of i){if(!s.isEmpty())continue;const g=s.startLineNumber,c=s.startColumn,l=o.getLineMaxColumn(g);if(g===1&&(c===1||c===2&&l===2))continue;const a=c===l?s.getPosition():I.MoveOperations.rightPosition(o,s.getPosition().lineNumber,s.getPosition().column),r=I.MoveOperations.leftPosition(o,a),u=I.MoveOperations.leftPosition(o,r),C=o.getValueInRange(E.Range.fromPositions(u,r)),f=o.getValueInRange(E.Range.fromPositions(r,a)),h=E.Range.fromPositions(u,a);t.push(new k.ReplaceCommand(h,f+C))}t.length>0&&(n.pushUndoStop(),n.executeCommands(this.id,t),n.pushUndoStop())}}(0,d.registerEditorAction)(_)}),define(ne[730],se([1,0,72,15,4,20,36,333,609,3,29]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class n extends k.EditorAction{constructor(c,l){super(l),this._type=c}run(c,l){const a=c.get(y.ILanguageConfigurationService);if(!l.hasModel())return;const r=l.getModel(),u=[],C=r.getOptions(),f=l.getOption(23),h=l.getSelections().map((w,S)=>({selection:w,index:S,ignoreFirstLine:!1}));h.sort((w,S)=>I.Range.compareRangesUsingStarts(w.selection,S.selection));let v=h[0];for(let w=1;w{this._undoStack=[],this._redoStack=[]})),this._register(o.onDidChangeModelContent(t=>{this._undoStack=[],this._redoStack=[]})),this._register(o.onDidChangeCursorSelection(t=>{if(this._isCursorUndoRedo||!t.oldSelections||t.oldModelVersionId!==t.modelVersionId)return;const i=new y(t.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(i)||(this._undoStack.push(new m(i,o.getScrollTop(),o.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())}))}cursorUndo(){!this._editor.hasModel()||this._undoStack.length===0||(this._redoStack.push(new m(new y(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){!this._editor.hasModel()||this._redoStack.length===0||(this._undoStack.push(new m(new y(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(o){this._isCursorUndoRedo=!0,this._editor.setSelections(o.cursorState.selections),this._editor.setScrollPosition({scrollTop:o.scrollTop,scrollLeft:o.scrollLeft}),this._isCursorUndoRedo=!1}}e.CursorUndoRedoController=_;class b extends k.EditorAction{constructor(){super({id:"cursorUndo",label:E.localize(821,"Cursor Undo"),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:I.EditorContextKeys.textInputFocus,primary:2099,weight:100}})}run(o,t,i){_.get(t)?.cursorUndo()}}e.CursorUndo=b;class p extends k.EditorAction{constructor(){super({id:"cursorRedo",label:E.localize(822,"Cursor Redo"),alias:"Cursor Redo",precondition:void 0})}run(o,t,i){_.get(t)?.cursorRedo()}}e.CursorRedo=p,(0,k.registerEditorContribution)(_.ID,_,0),(0,k.registerEditorAction)(b),(0,k.registerEditorAction)(p)}),define(ne[732],se([1,0,15,12,18,73,7,49,3]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorKeybindingCancellationTokenSource=void 0;const b=(0,y.createDecorator)("IEditorCancelService"),p=new k.RawContextKey("cancellableOperation",!1,(0,_.localize)(847,"Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));(0,m.registerSingleton)(b,class{constructor(){this._tokens=new WeakMap}add(o,t){let i=this._tokens.get(o);i||(i=o.invokeWithinContext(g=>{const c=p.bindTo(g.get(k.IContextKeyService)),l=new E.LinkedList;return{key:c,tokens:l}}),this._tokens.set(o,i));let s;return i.key.set(!0),s=i.tokens.push(t),()=>{s&&(s(),i.key.set(!i.tokens.isEmpty()),s=void 0)}}cancel(o){const t=this._tokens.get(o);if(!t)return;const i=t.tokens.pop();i&&(i.cancel(),t.key.set(!t.tokens.isEmpty()))}},1);class n extends I.CancellationTokenSource{constructor(t,i){super(i),this.editor=t,this._unregister=t.invokeWithinContext(s=>s.get(b).add(t,this))}dispose(){this._unregister(),super.dispose()}}e.EditorKeybindingCancellationTokenSource=n,(0,d.registerEditorCommand)(new class extends d.EditorCommand{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:p})}runEditorCommand(o,t){o.get(b).cancel(t)}})}),define(ne[122],se([1,0,11,4,18,2,732]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextModelCancellationTokenSource=e.EditorStateCancellationTokenSource=e.EditorState=void 0;class m{constructor(n,o){if(this.flags=o,this.flags&1){const t=n.getModel();this.modelVersionId=t?d.format("{0}#{1}",t.uri.toString(),t.getVersionId()):null}else this.modelVersionId=null;this.flags&4?this.position=n.getPosition():this.position=null,this.flags&2?this.selection=n.getSelection():this.selection=null,this.flags&8?(this.scrollLeft=n.getScrollLeft(),this.scrollTop=n.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}_equals(n){if(!(n instanceof m))return!1;const o=n;return!(this.modelVersionId!==o.modelVersionId||this.scrollLeft!==o.scrollLeft||this.scrollTop!==o.scrollTop||!this.position&&o.position||this.position&&!o.position||this.position&&o.position&&!this.position.equals(o.position)||!this.selection&&o.selection||this.selection&&!o.selection||this.selection&&o.selection&&!this.selection.equalsRange(o.selection))}validate(n){return this._equals(new m(n,this.flags))}}e.EditorState=m;class _ extends y.EditorKeybindingCancellationTokenSource{constructor(n,o,t,i){super(n,i),this._listener=new E.DisposableStore,o&4&&this._listener.add(n.onDidChangeCursorPosition(s=>{(!t||!k.Range.containsPosition(t,s.position))&&this.cancel()})),o&2&&this._listener.add(n.onDidChangeCursorSelection(s=>{(!t||!k.Range.containsRange(t,s.selection))&&this.cancel()})),o&8&&this._listener.add(n.onDidScrollChange(s=>this.cancel())),o&1&&(this._listener.add(n.onDidChangeModel(s=>this.cancel())),this._listener.add(n.onDidChangeModelContent(s=>this.cancel())))}dispose(){this._listener.dispose(),super.dispose()}}e.EditorStateCancellationTokenSource=_;class b extends I.CancellationTokenSource{constructor(n,o){super(o),this._listener=n.onDidChangeContent(()=>this.cancel())}dispose(){this._listener.dispose(),super.dispose()}}e.TextModelCancellationTokenSource=b}),define(ne[157],se([1,0,13,18,8,2,22,152,4,23,17,51,122,3,24,50,96,63,134,91]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ApplyCodeActionReason=e.fixAllCommandId=e.organizeImportsCommandId=e.sourceActionCommandId=e.refactorCommandId=e.autoFixCommandId=e.quickFixCommandId=e.codeActionCommandId=void 0,e.getCodeActions=C,e.applyCodeAction=S,e.codeActionCommandId="editor.action.codeAction",e.quickFixCommandId="editor.action.quickFix",e.autoFixCommandId="editor.action.autoFix",e.refactorCommandId="editor.action.refactor",e.sourceActionCommandId="editor.action.sourceAction",e.organizeImportsCommandId="editor.action.organizeImports",e.fixAllCommandId="editor.action.fixAll";class r extends E.Disposable{static codeActionsPreferredComparator(T,M){return T.isPreferred&&!M.isPreferred?-1:!T.isPreferred&&M.isPreferred?1:0}static codeActionsComparator({action:T},{action:M}){return T.isAI&&!M.isAI?1:!T.isAI&&M.isAI?-1:(0,d.isNonEmptyArray)(T.diagnostics)?(0,d.isNonEmptyArray)(M.diagnostics)?r.codeActionsPreferredComparator(T,M):-1:(0,d.isNonEmptyArray)(M.diagnostics)?1:r.codeActionsPreferredComparator(T,M)}constructor(T,M,A){super(),this.documentation=M,this._register(A),this.allActions=[...T].sort(r.codeActionsComparator),this.validActions=this.allActions.filter(({action:P})=>!P.disabled)}get hasAutoFix(){return this.validActions.some(({action:T})=>!!T.kind&&l.CodeActionKind.QuickFix.contains(new a.HierarchicalKind(T.kind))&&!!T.isPreferred)}get hasAIFix(){return this.validActions.some(({action:T})=>!!T.isAI)}get allAIFixes(){return this.validActions.every(({action:T})=>!!T.isAI)}}const u={actions:[],documentation:void 0};async function C(D,T,M,A,P,N){const O=A.filter||{},F={...O,excludes:[...O.excludes||[],l.CodeActionKind.Notebook]},x={only:O.include?.value,trigger:A.type},W=new o.TextModelCancellationTokenSource(T,N),V=A.type===2,q=f(D,T,V?F:O),H=new E.DisposableStore,z=q.map(async j=>{try{P.report(j);const Y=await j.provideCodeActions(T,M,x,W.token);if(Y&&H.add(Y),W.token.isCancellationRequested)return u;const G=(Y?.actions||[]).filter(R=>R&&(0,l.filtersAction)(O,R)),K=v(j,G,O.include);return{actions:G.map(R=>new l.CodeActionItem(R,j)),documentation:K}}catch(Y){if((0,I.isCancellationError)(Y))throw Y;return(0,I.onUnexpectedExternalError)(Y),u}}),U=D.onDidChange(()=>{const j=D.all(T);(0,d.equals)(j,q)||W.cancel()});try{const j=await Promise.all(z),Y=j.map(K=>K.actions).flat(),G=[...(0,d.coalesce)(j.map(K=>K.documentation)),...h(D,T,A,Y)];return new r(Y,G,H)}finally{U.dispose(),W.dispose()}}function f(D,T,M){return D.all(T).filter(A=>A.providedCodeActionKinds?A.providedCodeActionKinds.some(P=>(0,l.mayIncludeActionsOfKind)(M,new a.HierarchicalKind(P))):!0)}function*h(D,T,M,A){if(T&&A.length)for(const P of D.all(T))P._getAdditionalMenuItems&&(yield*P._getAdditionalMenuItems?.({trigger:M.type,only:M.filter?.include?.value},A.map(N=>N.action)))}function v(D,T,M){if(!D.documentation)return;const A=D.documentation.map(P=>({kind:new a.HierarchicalKind(P.kind),command:P.command}));if(M){let P;for(const N of A)N.kind.contains(M)&&(P?P.kind.contains(N.kind)&&(P=N):P=N);if(P)return P?.command}for(const P of T)if(P.kind){for(const N of A)if(N.kind.contains(new a.HierarchicalKind(P.kind)))return N.command}}var w;(function(D){D.OnSave="onSave",D.FromProblemsView="fromProblemsView",D.FromCodeActions="fromCodeActions",D.FromAILightbulb="fromAILightbulb"})(w||(e.ApplyCodeActionReason=w={}));async function S(D,T,M,A,P=k.CancellationToken.None){const N=D.get(m.IBulkEditService),O=D.get(i.ICommandService),F=D.get(c.ITelemetryService),x=D.get(s.INotificationService);if(F.publicLog2("codeAction.applyCodeAction",{codeActionTitle:T.action.title,codeActionKind:T.action.kind,codeActionIsPreferred:!!T.action.isPreferred,reason:M}),await T.resolve(P),!P.isCancellationRequested&&!(T.action.edit?.edits.length&&!(await N.apply(T.action.edit,{editor:A?.editor,label:T.action.title,quotableLabel:T.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:M!==w.OnSave,showPreview:A?.preview})).isApplied)&&T.action.command)try{await O.executeCommand(T.action.command.id,...T.action.command.arguments||[])}catch(W){const V=L(W);x.error(typeof V=="string"?V:t.localize(742,"An unknown error occurred while applying the code action"))}}function L(D){return typeof D=="string"?D:D instanceof Error&&typeof D.message=="string"?D.message:void 0}i.CommandsRegistry.registerCommand("_executeCodeActionProvider",async function(D,T,M,A,P){if(!(T instanceof y.URI))throw(0,I.illegalArgument)();const{codeActionProvider:N}=D.get(p.ILanguageFeaturesService),O=D.get(n.IModelService).getModel(T);if(!O)throw(0,I.illegalArgument)();const F=b.Selection.isISelection(M)?b.Selection.liftSelection(M):_.Range.isIRange(M)?O.validateRange(M):void 0;if(!F)throw(0,I.illegalArgument)();const x=typeof A=="string"?new a.HierarchicalKind(A):void 0,W=await C(N,O,F,{type:1,triggerAction:l.CodeActionTriggerSource.Default,filter:{includeSourceActions:!0,include:x}},g.Progress.None,k.CancellationToken.None),V=[],q=Math.min(W.validActions.length,typeof P=="number"?P:0);for(let H=0;HH.action)}finally{setTimeout(()=>W.dispose(),100)}})}),define(ne[733],se([1,0,91,98,157,134,31]),function(oe,e,d,k,I,E,y){"use strict";var m;Object.defineProperty(e,"__esModule",{value:!0}),e.CodeActionKeybindingResolver=void 0;let _=class{static{m=this}static{this.codeActionCommands=[I.refactorCommandId,I.codeActionCommandId,I.sourceActionCommandId,I.organizeImportsCommandId,I.fixAllCommandId]}constructor(p){this.keybindingService=p}getResolver(){const p=new k.Lazy(()=>this.keybindingService.getKeybindings().filter(n=>m.codeActionCommands.indexOf(n.command)>=0).filter(n=>n.resolvedKeybinding).map(n=>{let o=n.commandArgs;return n.command===I.organizeImportsCommandId?o={kind:E.CodeActionKind.SourceOrganizeImports.value}:n.command===I.fixAllCommandId&&(o={kind:E.CodeActionKind.SourceFixAll.value}),{resolvedKeybinding:n.resolvedKeybinding,...E.CodeActionCommandArgs.fromUser(o,{kind:d.HierarchicalKind.None,apply:"never"})}}));return n=>{if(n.kind)return this.bestKeybindingForCodeAction(n,p.value)?.resolvedKeybinding}}bestKeybindingForCodeAction(p,n){if(!p.kind)return;const o=new d.HierarchicalKind(p.kind);return n.filter(t=>t.kind.contains(o)).filter(t=>t.preferred?p.isPreferred:!0).reduceRight((t,i)=>t?t.kind.contains(i.kind)?i:t:i,void 0)}};e.CodeActionKeybindingResolver=_,e.CodeActionKeybindingResolver=_=m=ke([ce(0,y.IKeybindingService)],_)}),define(ne[408],se([1,0,14,8,6,2,48,37,9,23,12,96,134,157,91,54]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeActionModel=e.CodeActionsState=e.APPLY_FIX_ALL_COMMAND_ID=e.SUPPORTED_CODE_ACTIONS=void 0,e.SUPPORTED_CODE_ACTIONS=new p.RawContextKey("supportedCodeAction",""),e.APPLY_FIX_ALL_COMMAND_ID="_typescript.applyFixAllCodeAction";class g extends E.Disposable{constructor(u,C,f,h=250){super(),this._editor=u,this._markerService=C,this._signalChange=f,this._delay=h,this._autoTriggerTimer=this._register(new d.TimeoutTimer),this._register(this._markerService.onMarkerChanged(v=>this._onMarkerChanges(v))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(u){const C=this._getRangeOfSelectionUnlessWhitespaceEnclosed(u);this._signalChange(C?{trigger:u,selection:C}:void 0)}_onMarkerChanges(u){const C=this._editor.getModel();C&&u.some(f=>(0,y.isEqual)(f,C.uri))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:o.CodeActionTriggerSource.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(u){if(!this._editor.hasModel())return;const C=this._editor.getSelection();if(u.type===1)return C;const f=this._editor.getOption(65).enabled;if(f!==m.ShowLightbulbIconMode.Off){{if(f===m.ShowLightbulbIconMode.On)return C;if(f===m.ShowLightbulbIconMode.OnCode){if(!C.isEmpty())return C;const v=this._editor.getModel(),{lineNumber:w,column:S}=C.getPosition(),L=v.getLineContent(w);if(L.length===0)return;if(S===1){if(/\s/.test(L[0]))return}else if(S===v.getLineMaxColumn(w)){if(/\s/.test(L[L.length-1]))return}else if(/\s/.test(L[S-2])&&/\s/.test(L[S-1]))return}}return C}}}var c;(function(r){r.Empty={type:0};class u{constructor(f,h,v){this.trigger=f,this.position=h,this._cancellablePromise=v,this.type=1,this.actions=v.catch(w=>{if((0,k.isCancellationError)(w))return l;throw w})}cancel(){this._cancellablePromise.cancel()}}r.Triggered=u})(c||(e.CodeActionsState=c={}));const l=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class a extends E.Disposable{constructor(u,C,f,h,v,w,S){super(),this._editor=u,this._registry=C,this._markerService=f,this._progressService=v,this._configurationService=w,this._telemetryService=S,this._codeActionOracle=this._register(new E.MutableDisposable),this._state=c.Empty,this._onDidChangeState=this._register(new I.Emitter),this.onDidChangeState=this._onDidChangeState.event,this._disposed=!1,this._supportedCodeActions=e.SUPPORTED_CODE_ACTIONS.bindTo(h),this._register(this._editor.onDidChangeModel(()=>this._update())),this._register(this._editor.onDidChangeModelLanguage(()=>this._update())),this._register(this._registry.onDidChange(()=>this._update())),this._register(this._editor.onDidChangeConfiguration(L=>{L.hasChanged(65)&&this._update()})),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(c.Empty,!0))}_settingEnabledNearbyQuickfixes(){const u=this._editor?.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:u?.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(c.Empty);const u=this._editor.getModel();if(u&&this._registry.has(u)&&!this._editor.getOption(92)){const C=this._registry.all(u).flatMap(f=>f.providedCodeActionKinds??[]);this._supportedCodeActions.set(C.join(" ")),this._codeActionOracle.value=new g(this._editor,this._markerService,f=>{if(!f){this.setState(c.Empty);return}const h=f.selection.getStartPosition(),v=(0,d.createCancelablePromise)(async L=>{if(this._settingEnabledNearbyQuickfixes()&&f.trigger.type===1&&(f.trigger.triggerAction===o.CodeActionTriggerSource.QuickFix||f.trigger.filter?.include?.contains(o.CodeActionKind.QuickFix))){const D=await(0,t.getCodeActions)(this._registry,u,f.selection,f.trigger,n.Progress.None,L),T=[...D.allActions];if(L.isCancellationRequested)return l;const M=D.validActions?.some(P=>P.action.kind?o.CodeActionKind.QuickFix.contains(new i.HierarchicalKind(P.action.kind)):!1),A=this._markerService.read({resource:u.uri});if(M){for(const P of D.validActions)P.action.command?.arguments?.some(N=>typeof N=="string"&&N.includes(e.APPLY_FIX_ALL_COMMAND_ID))&&(P.action.diagnostics=[...A.filter(N=>N.relatedInformation)]);return{validActions:D.validActions,allActions:T,documentation:D.documentation,hasAutoFix:D.hasAutoFix,hasAIFix:D.hasAIFix,allAIFixes:D.allAIFixes,dispose:()=>{D.dispose()}}}else if(!M&&A.length>0){const P=f.selection.getPosition();let N=P,O=Number.MAX_VALUE;const F=[...D.validActions];for(const W of A){const V=W.endColumn,q=W.endLineNumber,H=W.startLineNumber;if(q===P.lineNumber||H===P.lineNumber){N=new _.Position(q,V);const z={type:f.trigger.type,triggerAction:f.trigger.triggerAction,filter:{include:f.trigger.filter?.include?f.trigger.filter?.include:o.CodeActionKind.QuickFix},autoApply:f.trigger.autoApply,context:{notAvailableMessage:f.trigger.context?.notAvailableMessage||"",position:N}},U=new b.Selection(N.lineNumber,N.column,N.lineNumber,N.column),j=await(0,t.getCodeActions)(this._registry,u,U,z,n.Progress.None,L);if(j.validActions.length!==0){for(const Y of j.validActions)Y.action.command?.arguments?.some(G=>typeof G=="string"&&G.includes(e.APPLY_FIX_ALL_COMMAND_ID))&&(Y.action.diagnostics=[...A.filter(G=>G.relatedInformation)]);D.allActions.length===0&&T.push(...j.allActions),Math.abs(P.column-V)q.findIndex(H=>H.action.title===W.action.title)===V);return x.sort((W,V)=>W.action.isPreferred&&!V.action.isPreferred?-1:!W.action.isPreferred&&V.action.isPreferred||W.action.isAI&&!V.action.isAI?1:!W.action.isAI&&V.action.isAI?-1:0),{validActions:x,allActions:T,documentation:D.documentation,hasAutoFix:D.hasAutoFix,hasAIFix:D.hasAIFix,allAIFixes:D.allAIFixes,dispose:()=>{D.dispose()}}}}if(f.trigger.type===1){const D=new s.StopWatch,T=await(0,t.getCodeActions)(this._registry,u,f.selection,f.trigger,n.Progress.None,L);return this._telemetryService&&this._telemetryService.publicLog2("codeAction.invokedDurations",{codeActions:T.validActions.length,duration:D.elapsed()}),T}return(0,t.getCodeActions)(this._registry,u,f.selection,f.trigger,n.Progress.None,L)});f.trigger.type===1&&this._progressService?.showWhile(v,250);const w=new c.Triggered(f.trigger,h,v);let S=!1;this._state.type===1&&(S=this._state.trigger.type===1&&w.type===1&&w.trigger.type===2&&this._state.position!==w.position),S?setTimeout(()=>{this.setState(w)},500):this.setState(w)},void 0),this._codeActionOracle.value.trigger({type:2,triggerAction:o.CodeActionTriggerSource.Default})}else this._supportedCodeActions.reset()}trigger(u){this._codeActionOracle.value?.trigger(u)}setState(u,C){u!==this._state&&(this._state.type===1&&this._state.cancel(),this._state=u,!C&&!this._disposed&&this._onDidChangeState.fire(u))}}e.CodeActionModel=a}),define(ne[734],se([1,0,15,165,3]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class E extends d.EditorAction{constructor(){super({id:"editor.action.fontZoomIn",label:I.localize(919,"Increase Editor Font Size"),alias:"Increase Editor Font Size",precondition:void 0})}run(b,p){k.EditorZoom.setZoomLevel(k.EditorZoom.getZoomLevel()+1)}}class y extends d.EditorAction{constructor(){super({id:"editor.action.fontZoomOut",label:I.localize(920,"Decrease Editor Font Size"),alias:"Decrease Editor Font Size",precondition:void 0})}run(b,p){k.EditorZoom.setZoomLevel(k.EditorZoom.getZoomLevel()-1)}}class m extends d.EditorAction{constructor(){super({id:"editor.action.fontZoomReset",label:I.localize(921,"Reset Editor Font Size"),alias:"Reset Editor Font Size",precondition:void 0})}run(b,p){k.EditorZoom.setZoomLevel(0)}}(0,d.registerEditorAction)(E),(0,d.registerEditorAction)(y),(0,d.registerEditorAction)(m)}),define(ne[409],se([1,0,13,18,8,53,73,19,22,122,168,9,4,23,100,78,337,24,674,7,17,62,137]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FormattingConflicts=void 0,e.getRealAndSyntheticDocumentFormattersOrdered=f,e.formatDocumentRangesWithSelectedProvider=v,e.formatDocumentRangesWithProvider=w,e.formatDocumentWithSelectedProvider=S,e.formatDocumentWithProvider=L,e.getDocumentRangeFormattingEditsUntilResult=D,e.getDocumentFormattingEditsUntilResult=T,e.getOnTypeFormattingEdits=M;function f(A,P,N){const O=[],F=new l.ExtensionIdentifierSet,x=A.ordered(N);for(const V of x)O.push(V),V.extensionId&&F.add(V.extensionId);const W=P.ordered(N);for(const V of W){if(V.extensionId){if(F.has(V.extensionId))continue;F.add(V.extensionId)}O.push({displayName:V.displayName,extensionId:V.extensionId,provideDocumentFormattingEdits(q,H,z){return V.provideDocumentRangeFormattingEdits(q,q.getFullModelRange(),H,z)}})}return O}class h{static{this._selectors=new y.LinkedList}static setFormatterSelector(P){return{dispose:h._selectors.unshift(P)}}static async select(P,N,O,F){if(P.length===0)return;const x=E.Iterable.first(h._selectors);if(x)return await x(P,N,O,F)}}e.FormattingConflicts=h;async function v(A,P,N,O,F,x,W){const V=A.get(a.IInstantiationService),{documentRangeFormattingEditProvider:q}=A.get(r.ILanguageFeaturesService),H=(0,p.isCodeEditor)(P)?P.getModel():P,z=q.ordered(H),U=await h.select(z,H,O,2);U&&(F.report(U),await V.invokeFunction(w,U,P,N,x,W))}async function w(A,P,N,O,F,x){const W=A.get(i.IEditorWorkerService),V=A.get(u.ILogService),q=A.get(C.IAccessibilitySignalService);let H,z;(0,p.isCodeEditor)(N)?(H=N.getModel(),z=new b.EditorStateCancellationTokenSource(N,5,void 0,F)):(H=N,z=new b.TextModelCancellationTokenSource(N,F));const U=[];let j=0;for(const J of(0,d.asArray)(O).sort(o.Range.compareRangesUsingStarts))j>0&&o.Range.areIntersectingOrTouching(U[j-1],J)?U[j-1]=o.Range.fromPositions(U[j-1].getStartPosition(),J.getEndPosition()):j=U.push(J);const Y=async J=>{V.trace("[format][provideDocumentRangeFormattingEdits] (request)",P.extensionId?.value,J);const ie=await P.provideDocumentRangeFormattingEdits(H,J,H.getFormattingOptions(),z.token)||[];return V.trace("[format][provideDocumentRangeFormattingEdits] (response)",P.extensionId?.value,ie),ie},G=(J,ie)=>{if(!J.length||!ie.length)return!1;const ue=J.reduce((he,pe)=>o.Range.plusRange(he,pe.range),J[0].range);if(!ie.some(he=>o.Range.intersectRanges(ue,he.range)))return!1;for(const he of J)for(const pe of ie)if(o.Range.intersectRanges(he.range,pe.range))return!0;return!1},K=[],R=[];try{if(typeof P.provideDocumentRangesFormattingEdits=="function"){V.trace("[format][provideDocumentRangeFormattingEdits] (request)",P.extensionId?.value,U);const J=await P.provideDocumentRangesFormattingEdits(H,U,H.getFormattingOptions(),z.token)||[];V.trace("[format][provideDocumentRangeFormattingEdits] (response)",P.extensionId?.value,J),R.push(J)}else{for(const J of U){if(z.token.isCancellationRequested)return!0;R.push(await Y(J))}for(let J=0;J({text:ue.text,range:o.Range.lift(ue.range),forceMoveMarkers:!0})),ue=>{for(const{range:he}of ue)if(o.Range.areIntersectingOrTouching(he,ie))return[new t.Selection(he.startLineNumber,he.startColumn,he.endLineNumber,he.endColumn)];return null})}return q.playSignal(C.AccessibilitySignal.format,{userGesture:x}),!0}async function S(A,P,N,O,F,x){const W=A.get(a.IInstantiationService),V=A.get(r.ILanguageFeaturesService),q=(0,p.isCodeEditor)(P)?P.getModel():P,H=f(V.documentFormattingEditProvider,V.documentRangeFormattingEditProvider,q),z=await h.select(H,q,N,1);z&&(O.report(z),await W.invokeFunction(L,z,P,N,F,x))}async function L(A,P,N,O,F,x){const W=A.get(i.IEditorWorkerService),V=A.get(C.IAccessibilitySignalService);let q,H;(0,p.isCodeEditor)(N)?(q=N.getModel(),H=new b.EditorStateCancellationTokenSource(N,5,void 0,F)):(q=N,H=new b.TextModelCancellationTokenSource(N,F));let z;try{const U=await P.provideDocumentFormattingEdits(q,q.getFormattingOptions(),H.token);if(z=await W.computeMoreMinimalEdits(q.uri,U),H.token.isCancellationRequested)return!0}finally{H.dispose()}if(!z||z.length===0)return!1;if((0,p.isCodeEditor)(N))g.FormattingEdit.execute(N,z,O!==2),O!==2&&N.revealPositionInCenterIfOutsideViewport(N.getPosition(),1);else{const[{range:U}]=z,j=new t.Selection(U.startLineNumber,U.startColumn,U.endLineNumber,U.endColumn);q.pushEditOperations([j],z.map(Y=>({text:Y.text,range:o.Range.lift(Y.range),forceMoveMarkers:!0})),Y=>{for(const{range:G}of Y)if(o.Range.areIntersectingOrTouching(G,j))return[new t.Selection(G.startLineNumber,G.startColumn,G.endLineNumber,G.endColumn)];return null})}return V.playSignal(C.AccessibilitySignal.format,{userGesture:x}),!0}async function D(A,P,N,O,F,x){const W=P.documentRangeFormattingEditProvider.ordered(N);for(const V of W){const q=await Promise.resolve(V.provideDocumentRangeFormattingEdits(N,O,F,x)).catch(I.onUnexpectedExternalError);if((0,d.isNonEmptyArray)(q))return await A.computeMoreMinimalEdits(N.uri,q)}}async function T(A,P,N,O,F){const x=f(P.documentFormattingEditProvider,P.documentRangeFormattingEditProvider,N);for(const W of x){const V=await Promise.resolve(W.provideDocumentFormattingEdits(N,O,F)).catch(I.onUnexpectedExternalError);if((0,d.isNonEmptyArray)(V))return await A.computeMoreMinimalEdits(N.uri,V)}}function M(A,P,N,O,F,x,W){const V=P.onTypeFormattingEditProvider.ordered(N);return V.length===0||V[0].autoFormatTriggerCharacters.indexOf(F)<0?Promise.resolve(void 0):Promise.resolve(V[0].provideOnTypeFormattingEdits(N,O,F,x,W)).catch(I.onUnexpectedExternalError).then(q=>A.computeMoreMinimalEdits(N.uri,q))}c.CommandsRegistry.registerCommand("_executeFormatRangeProvider",async function(A,...P){const[N,O,F]=P;(0,m.assertType)(_.URI.isUri(N)),(0,m.assertType)(o.Range.isIRange(O));const x=A.get(s.ITextModelService),W=A.get(i.IEditorWorkerService),V=A.get(r.ILanguageFeaturesService),q=await x.createModelReference(N);try{return D(W,V,q.object.textEditorModel,o.Range.lift(O),F,k.CancellationToken.None)}finally{q.dispose()}}),c.CommandsRegistry.registerCommand("_executeFormatDocumentProvider",async function(A,...P){const[N,O]=P;(0,m.assertType)(_.URI.isUri(N));const F=A.get(s.ITextModelService),x=A.get(i.IEditorWorkerService),W=A.get(r.ILanguageFeaturesService),V=await F.createModelReference(N);try{return T(x,W,V.object.textEditorModel,O,k.CancellationToken.None)}finally{V.dispose()}}),c.CommandsRegistry.registerCommand("_executeFormatOnTypeProvider",async function(A,...P){const[N,O,F,x]=P;(0,m.assertType)(_.URI.isUri(N)),(0,m.assertType)(n.Position.isIPosition(O)),(0,m.assertType)(typeof F=="string");const W=A.get(s.ITextModelService),V=A.get(i.IEditorWorkerService),q=A.get(r.ILanguageFeaturesService),H=await W.createModelReference(N);try{return M(V,q,H.object.textEditorModel,n.Position.lift(O),F,x,k.CancellationToken.None)}finally{H.dispose()}})}),define(ne[735],se([1,0,13,18,8,72,2,15,34,144,4,20,100,17,409,337,3,137,24,12,7,96]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FormatOnType=void 0;let C=class{static{this.ID="editor.contrib.autoFormat"}constructor(S,L,D,T){this._editor=S,this._languageFeaturesService=L,this._workerService=D,this._accessibilitySignalService=T,this._disposables=new y.DisposableStore,this._sessionDisposables=new y.DisposableStore,this._disposables.add(L.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(S.onDidChangeModel(()=>this._update())),this._disposables.add(S.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(S.onDidChangeConfiguration(M=>{M.hasChanged(56)&&this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(56)||!this._editor.hasModel())return;const S=this._editor.getModel(),[L]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(S);if(!L||!L.autoFormatTriggerCharacters)return;const D=new b.CharacterSet;for(const T of L.autoFormatTriggerCharacters)D.add(T.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType(T=>{const M=T.charCodeAt(T.length-1);D.has(M)&&this._trigger(String.fromCharCode(M))}))}_trigger(S){if(!this._editor.hasModel()||this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const L=this._editor.getModel(),D=this._editor.getPosition(),T=new k.CancellationTokenSource,M=this._editor.onDidChangeModelContent(A=>{if(A.isFlush){T.cancel(),M.dispose();return}for(let P=0,N=A.changes.length;P{T.token.isCancellationRequested||(0,d.isNonEmptyArray)(A)&&(this._accessibilitySignalService.playSignal(c.AccessibilitySignal.format,{userGesture:!1}),s.FormattingEdit.execute(this._editor,A,!0))}).finally(()=>{M.dispose()})}};e.FormatOnType=C,e.FormatOnType=C=ke([ce(1,t.ILanguageFeaturesService),ce(2,o.IEditorWorkerService),ce(3,c.IAccessibilitySignalService)],C);let f=class{static{this.ID="editor.contrib.formatOnPaste"}constructor(S,L,D){this.editor=S,this._languageFeaturesService=L,this._instantiationService=D,this._callOnDispose=new y.DisposableStore,this._callOnModel=new y.DisposableStore,this._callOnDispose.add(S.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(S.onDidChangeModel(()=>this._update())),this._callOnDispose.add(S.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(L.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(55)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste(({range:S})=>this._trigger(S)))}_trigger(S){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(i.formatDocumentRangesWithSelectedProvider,this.editor,S,2,u.Progress.None,k.CancellationToken.None,!1).catch(I.onUnexpectedError))}};f=ke([ce(1,t.ILanguageFeaturesService),ce(2,r.IInstantiationService)],f);class h extends m.EditorAction{constructor(){super({id:"editor.action.formatDocument",label:g.localize(922,"Format Document"),alias:"Format Document",precondition:a.ContextKeyExpr.and(n.EditorContextKeys.notInCompositeEditor,n.EditorContextKeys.writable,n.EditorContextKeys.hasDocumentFormattingProvider),kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(S,L){if(L.hasModel()){const D=S.get(r.IInstantiationService);await S.get(u.IEditorProgressService).showWhile(D.invokeFunction(i.formatDocumentWithSelectedProvider,L,1,u.Progress.None,k.CancellationToken.None,!0),250)}}}class v extends m.EditorAction{constructor(){super({id:"editor.action.formatSelection",label:g.localize(923,"Format Selection"),alias:"Format Selection",precondition:a.ContextKeyExpr.and(n.EditorContextKeys.writable,n.EditorContextKeys.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2084),weight:100},contextMenuOpts:{when:n.EditorContextKeys.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(S,L){if(!L.hasModel())return;const D=S.get(r.IInstantiationService),T=L.getModel(),M=L.getSelections().map(P=>P.isEmpty()?new p.Range(P.startLineNumber,1,P.startLineNumber,T.getLineMaxColumn(P.startLineNumber)):P);await S.get(u.IEditorProgressService).showWhile(D.invokeFunction(i.formatDocumentRangesWithSelectedProvider,L,M,1,u.Progress.None,k.CancellationToken.None,!0),250)}}(0,m.registerEditorContribution)(C.ID,C,2),(0,m.registerEditorContribution)(f.ID,f,2),(0,m.registerEditorAction)(h),(0,m.registerEditorAction)(v),l.CommandsRegistry.registerCommand("editor.action.format",async w=>{const S=w.get(_.ICodeEditorService).getFocusedCodeEditor();if(!S||!S.hasModel())return;const L=w.get(l.ICommandService);S.getSelection().isEmpty()?await L.executeCommand("editor.action.formatDocument"):await L.executeCommand("editor.action.formatSelection")})}),define(ne[277],se([1,0,13,18,8,42,15,17,178]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getDefinitionsAtPosition=n,e.getDeclarationsAtPosition=o,e.getImplementationsAtPosition=t,e.getTypeDefinitionsAtPosition=i,e.getReferencesAtPosition=s;function b(c,l){return l.uri.scheme===c.uri.scheme?!0:!(0,E.matchesSomeScheme)(l.uri,E.Schemas.walkThroughSnippet,E.Schemas.vscodeChatCodeBlock,E.Schemas.vscodeChatCodeCompareBlock)}async function p(c,l,a,r,u){const f=a.ordered(c,r).map(v=>Promise.resolve(u(v,c,l)).then(void 0,w=>{(0,I.onUnexpectedExternalError)(w)})),h=await Promise.all(f);return(0,d.coalesce)(h.flat()).filter(v=>b(c,v))}function n(c,l,a,r,u){return p(l,a,c,r,(C,f,h)=>C.provideDefinition(f,h,u))}function o(c,l,a,r,u){return p(l,a,c,r,(C,f,h)=>C.provideDeclaration(f,h,u))}function t(c,l,a,r,u){return p(l,a,c,r,(C,f,h)=>C.provideImplementation(f,h,u))}function i(c,l,a,r,u){return p(l,a,c,r,(C,f,h)=>C.provideTypeDefinition(f,h,u))}function s(c,l,a,r,u,C){return p(l,a,c,u,async(f,h,v)=>{const w=(await f.provideReferences(h,v,{includeDeclaration:!0},C))?.filter(L=>b(h,L));if(!r||!w||w.length!==2)return w;const S=(await f.provideReferences(h,v,{includeDeclaration:!1},C))?.filter(L=>b(h,L));return S&&S.length===1?S:w})}async function g(c){const l=await c(),a=new _.ReferencesModel(l,""),r=a.references.map(u=>u.link);return a.dispose(),r}(0,y.registerModelAndPositionCommand)("_executeDefinitionProvider",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=n(r.definitionProvider,l,a,!1,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeDefinitionProvider_recursive",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=n(r.definitionProvider,l,a,!0,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeTypeDefinitionProvider",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=i(r.typeDefinitionProvider,l,a,!1,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeTypeDefinitionProvider_recursive",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=i(r.typeDefinitionProvider,l,a,!0,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeDeclarationProvider",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=o(r.declarationProvider,l,a,!1,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeDeclarationProvider_recursive",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=o(r.declarationProvider,l,a,!0,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeReferenceProvider",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=s(r.referenceProvider,l,a,!1,!1,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeReferenceProvider_recursive",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=s(r.referenceProvider,l,a,!1,!0,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeImplementationProvider",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=t(r.implementationProvider,l,a,!1,k.CancellationToken.None);return g(()=>u)}),(0,y.registerModelAndPositionCommand)("_executeImplementationProvider_recursive",(c,l,a)=>{const r=c.get(m.ILanguageFeaturesService),u=t(r.implementationProvider,l,a,!0,k.CancellationToken.None);return g(()=>u)})}),define(ne[736],se([1,0,6,2,48,15,34,4,3,12,49,7,31,121,50]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ISymbolNavigationService=e.ctxHasSymbols=void 0,e.ctxHasSymbols=new b.RawContextKey("hasSymbols",!1,(0,_.localize)(1003,"Whether there are symbol locations that can be navigated via keyboard-only.")),e.ISymbolNavigationService=(0,n.createDecorator)("ISymbolNavigationService");let s=class{constructor(l,a,r,u){this._editorService=a,this._notificationService=r,this._keybindingService=u,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=e.ctxHasSymbols.bindTo(l)}reset(){this._ctxHasSymbols.reset(),this._currentState?.dispose(),this._currentMessage?.dispose(),this._currentModel=void 0,this._currentIdx=-1}put(l){const a=l.parent.parent;if(a.references.length<=1){this.reset();return}this._currentModel=a,this._currentIdx=a.references.indexOf(l),this._ctxHasSymbols.set(!0),this._showMessage();const r=new g(this._editorService),u=r.onDidChange(C=>{if(this._ignoreEditorChange)return;const f=this._editorService.getActiveCodeEditor();if(!f)return;const h=f.getModel(),v=f.getPosition();if(!h||!v)return;let w=!1,S=!1;for(const L of a.references)if((0,I.isEqual)(L.uri,h.uri))w=!0,S=S||m.Range.containsPosition(L.range,v);else if(w)break;(!w||!S)&&this.reset()});this._currentState=(0,k.combinedDisposable)(r,u)}revealNext(l){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;const a=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:a.uri,options:{selection:m.Range.collapseToStart(a.range),selectionRevealType:3}},l).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){this._currentMessage?.dispose();const l=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),a=l?(0,_.localize)(1004,"Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,l.getLabel()):(0,_.localize)(1005,"Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(a)}};s=ke([ce(0,b.IContextKeyService),ce(1,y.ICodeEditorService),ce(2,i.INotificationService),ce(3,o.IKeybindingService)],s),(0,p.registerSingleton)(e.ISymbolNavigationService,s,1),(0,E.registerEditorCommand)(new class extends E.EditorCommand{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:e.ctxHasSymbols,kbOpts:{weight:100,primary:70}})}runEditorCommand(c,l){return c.get(e.ISymbolNavigationService).revealNext(l)}}),t.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:e.ctxHasSymbols,primary:9,handler(c){c.get(e.ISymbolNavigationService).reset()}});let g=class{constructor(l){this._listener=new Map,this._disposables=new k.DisposableStore,this._onDidChange=new d.Emitter,this.onDidChange=this._onDidChange.event,this._disposables.add(l.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(l.onCodeEditorAdd(this._onDidAddEditor,this)),l.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),(0,k.dispose)(this._listener.values())}_onDidAddEditor(l){this._listener.set(l,(0,k.combinedDisposable)(l.onDidChangeCursorPosition(a=>this._onDidChange.fire({editor:l})),l.onDidChangeModelContent(a=>this._onDidChange.fire({editor:l}))))}_onDidRemoveEditor(l){this._listener.get(l)?.dispose(),this._listener.delete(l)}};g=ke([ce(0,y.ICodeEditorService)],g)}),define(ne[410],se([1,0,14,18,8,15,17]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HoverProviderResult=void 0,e.getHoverProviderResultsAsAsyncIterable=b,e.getHoversPromise=p;class m{constructor(t,i,s){this.provider=t,this.hover=i,this.ordinal=s}}e.HoverProviderResult=m;async function _(o,t,i,s,g){const c=await Promise.resolve(o.provideHover(i,s,g)).catch(I.onUnexpectedExternalError);if(!(!c||!n(c)))return new m(o,c,t)}function b(o,t,i,s,g=!1){const l=o.ordered(t,g).map((a,r)=>_(a,r,t,i,s));return d.AsyncIterableObject.fromPromises(l).coalesce()}function p(o,t,i,s,g=!1){return b(o,t,i,s,g).map(c=>c.hover).toPromise()}(0,E.registerModelAndPositionCommand)("_executeHoverProvider",(o,t,i)=>{const s=o.get(y.ILanguageFeaturesService);return p(s.hoverProvider,t,i,k.CancellationToken.None)}),(0,E.registerModelAndPositionCommand)("_executeHoverProvider_recursive",(o,t,i)=>{const s=o.get(y.ILanguageFeaturesService);return p(s.hoverProvider,t,i,k.CancellationToken.None,!0)});function n(o){const t=typeof o.range<"u",i=typeof o.contents<"u"&&o.contents&&o.contents.length>0;return t&&i}}),define(ne[737],se([1,0,2,11,15,183,4,20,36,51,338,3,66,241,714,83]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IndentationToTabsCommand=e.IndentationToSpacesCommand=e.AutoIndentOnPaste=e.AutoIndentOnPasteCommand=e.ReindentSelectedLinesAction=e.ReindentLinesAction=e.DetectIndentation=e.ChangeTabDisplaySize=e.IndentUsingSpaces=e.IndentUsingTabs=e.ChangeIndentationSizeAction=e.IndentationToTabsAction=e.IndentationToSpacesAction=void 0;class g extends I.EditorAction{static{this.ID="editor.action.indentationToSpaces"}constructor(){super({id:g.ID,label:n.localize(1045,"Convert Indentation to Spaces"),alias:"Convert Indentation to Spaces",precondition:m.EditorContextKeys.writable,metadata:{description:n.localize2(1057,"Convert the tab indentation to spaces.")}})}run(A,P){const N=P.getModel();if(!N)return;const O=N.getOptions(),F=P.getSelection();if(!F)return;const x=new D(F,O.tabSize);P.pushUndoStop(),P.executeCommands(this.id,[x]),P.pushUndoStop(),N.updateOptions({insertSpaces:!0})}}e.IndentationToSpacesAction=g;class c extends I.EditorAction{static{this.ID="editor.action.indentationToTabs"}constructor(){super({id:c.ID,label:n.localize(1046,"Convert Indentation to Tabs"),alias:"Convert Indentation to Tabs",precondition:m.EditorContextKeys.writable,metadata:{description:n.localize2(1058,"Convert the spaces indentation to tabs.")}})}run(A,P){const N=P.getModel();if(!N)return;const O=N.getOptions(),F=P.getSelection();if(!F)return;const x=new T(F,O.tabSize);P.pushUndoStop(),P.executeCommands(this.id,[x]),P.pushUndoStop(),N.updateOptions({insertSpaces:!1})}}e.IndentationToTabsAction=c;class l extends I.EditorAction{constructor(A,P,N){super(N),this.insertSpaces=A,this.displaySizeOnly=P}run(A,P){const N=A.get(o.IQuickInputService),O=A.get(b.IModelService),F=P.getModel();if(!F)return;const x=O.getCreationOptions(F.getLanguageId(),F.uri,F.isForSimpleWidget),W=F.getOptions(),V=[1,2,3,4,5,6,7,8].map(H=>({id:H.toString(),label:H.toString(),description:H===x.tabSize&&H===W.tabSize?n.localize(1047,"Configured Tab Size"):H===x.tabSize?n.localize(1048,"Default Tab Size"):H===W.tabSize?n.localize(1049,"Current Tab Size"):void 0})),q=Math.min(F.getOptions().tabSize-1,7);setTimeout(()=>{N.pick(V,{placeHolder:n.localize(1050,"Select Tab Size for Current File"),activeItem:V[q]}).then(H=>{if(H&&F&&!F.isDisposed()){const z=parseInt(H.label,10);this.displaySizeOnly?F.updateOptions({tabSize:z}):F.updateOptions({tabSize:z,indentSize:z,insertSpaces:this.insertSpaces})}})},50)}}e.ChangeIndentationSizeAction=l;class a extends l{static{this.ID="editor.action.indentUsingTabs"}constructor(){super(!1,!1,{id:a.ID,label:n.localize(1051,"Indent Using Tabs"),alias:"Indent Using Tabs",precondition:void 0,metadata:{description:n.localize2(1059,"Use indentation with tabs.")}})}}e.IndentUsingTabs=a;class r extends l{static{this.ID="editor.action.indentUsingSpaces"}constructor(){super(!0,!1,{id:r.ID,label:n.localize(1052,"Indent Using Spaces"),alias:"Indent Using Spaces",precondition:void 0,metadata:{description:n.localize2(1060,"Use indentation with spaces.")}})}}e.IndentUsingSpaces=r;class u extends l{static{this.ID="editor.action.changeTabDisplaySize"}constructor(){super(!0,!0,{id:u.ID,label:n.localize(1053,"Change Tab Display Size"),alias:"Change Tab Display Size",precondition:void 0,metadata:{description:n.localize2(1061,"Change the space size equivalent of the tab.")}})}}e.ChangeTabDisplaySize=u;class C extends I.EditorAction{static{this.ID="editor.action.detectIndentation"}constructor(){super({id:C.ID,label:n.localize(1054,"Detect Indentation from Content"),alias:"Detect Indentation from Content",precondition:void 0,metadata:{description:n.localize2(1062,"Detect the indentation from content.")}})}run(A,P){const N=A.get(b.IModelService),O=P.getModel();if(!O)return;const F=N.getCreationOptions(O.getLanguageId(),O.uri,O.isForSimpleWidget);O.detectIndentation(F.insertSpaces,F.tabSize)}}e.DetectIndentation=C;class f extends I.EditorAction{constructor(){super({id:"editor.action.reindentlines",label:n.localize(1055,"Reindent Lines"),alias:"Reindent Lines",precondition:m.EditorContextKeys.writable,metadata:{description:n.localize2(1063,"Reindent the lines of the editor.")}})}run(A,P){const N=A.get(_.ILanguageConfigurationService),O=P.getModel();if(!O)return;const F=(0,i.getReindentEditOperations)(O,N,1,O.getLineCount());F.length>0&&(P.pushUndoStop(),P.executeEdits(this.id,F),P.pushUndoStop())}}e.ReindentLinesAction=f;class h extends I.EditorAction{constructor(){super({id:"editor.action.reindentselectedlines",label:n.localize(1056,"Reindent Selected Lines"),alias:"Reindent Selected Lines",precondition:m.EditorContextKeys.writable,metadata:{description:n.localize2(1064,"Reindent the selected lines of the editor.")}})}run(A,P){const N=A.get(_.ILanguageConfigurationService),O=P.getModel();if(!O)return;const F=P.getSelections();if(F===null)return;const x=[];for(const W of F){let V=W.startLineNumber,q=W.endLineNumber;if(V!==q&&W.endColumn===1&&q--,V===1){if(V===q)continue}else V--;const H=(0,i.getReindentEditOperations)(O,N,V,q);x.push(...H)}x.length>0&&(P.pushUndoStop(),P.executeEdits(this.id,x),P.pushUndoStop())}}e.ReindentSelectedLinesAction=h;class v{constructor(A,P){this._initialSelection=P,this._edits=[],this._selectionId=null;for(const N of A)N.range&&typeof N.text=="string"&&this._edits.push(N)}getEditOperations(A,P){for(const O of this._edits)P.addEditOperation(y.Range.lift(O.range),O.text);let N=!1;Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(N=!0,this._selectionId=P.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(N=!0,this._selectionId=P.trackSelection(this._initialSelection,!1))),N||(this._selectionId=P.trackSelection(this._initialSelection))}computeCursorState(A,P){return P.getTrackedSelection(this._selectionId)}}e.AutoIndentOnPasteCommand=v;let w=class{static{this.ID="editor.contrib.autoIndentOnPaste"}constructor(A,P){this.editor=A,this._languageConfigurationService=P,this.callOnDispose=new d.DisposableStore,this.callOnModel=new d.DisposableStore,this.callOnDispose.add(A.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(A.onDidChangeModel(()=>this.update())),this.callOnDispose.add(A.onDidChangeModelLanguage(()=>this.update()))}update(){this.callOnModel.clear(),!(this.editor.getOption(12)<4||this.editor.getOption(55))&&this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste(({range:A})=>{this.trigger(A)}))}trigger(A){const P=this.editor.getSelections();if(P===null||P.length>1)return;const N=this.editor.getModel();if(!N||this.rangeContainsOnlyWhitespaceCharacters(N,A)||S(N,A)||!N.tokenization.isCheapToTokenize(A.getStartPosition().lineNumber))return;const F=this.editor.getOption(12),{tabSize:x,indentSize:W,insertSpaces:V}=N.getOptions(),q=[],H={shiftIndent:Y=>E.ShiftCommand.shiftIndent(Y,Y.length+1,x,W,V),unshiftIndent:Y=>E.ShiftCommand.unshiftIndent(Y,Y.length+1,x,W,V)};let z=A.startLineNumber;for(;z<=A.endLineNumber;){if(this.shouldIgnoreLine(N,z)){z++;continue}break}if(z>A.endLineNumber)return;let U=N.getLineContent(z);if(!/\S/.test(U.substring(0,A.startColumn-1))){const Y=(0,t.getGoodIndentForLine)(F,N,N.getLanguageId(),z,H,this._languageConfigurationService);if(Y!==null){const G=k.getLeadingWhitespace(U),K=p.getSpaceCnt(Y,x),R=p.getSpaceCnt(G,x);if(K!==R){const J=p.generateIndent(K,x,V);q.push({range:new y.Range(z,1,z,G.length+1),text:J}),U=J+U.substring(G.length)}else{const J=(0,t.getIndentMetadata)(N,z,this._languageConfigurationService);if(J===0||J===8)return}}}const j=z;for(;zN.tokenization.getLineTokens(K),getLanguageId:()=>N.getLanguageId(),getLanguageIdAtPosition:(K,R)=>N.getLanguageIdAtPosition(K,R)},getLineContent:K=>K===j?U:N.getLineContent(K)},G=(0,t.getGoodIndentForLine)(F,Y,N.getLanguageId(),z+1,H,this._languageConfigurationService);if(G!==null){const K=p.getSpaceCnt(G,x),R=p.getSpaceCnt(k.getLeadingWhitespace(N.getLineContent(z+1)),x);if(K!==R){const J=K-R;for(let ie=z+1;ie<=A.endLineNumber;ie++){const ue=N.getLineContent(ie),he=k.getLeadingWhitespace(ue),ae=p.getSpaceCnt(he,x)+J,ee=p.generateIndent(ae,x,V);ee!==he&&q.push({range:new y.Range(ie,1,ie,he.length+1),text:ee})}}}}if(q.length>0){this.editor.pushUndoStop();const Y=new v(q,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",Y),this.editor.pushUndoStop()}}rangeContainsOnlyWhitespaceCharacters(A,P){const N=F=>F.trim().length===0;let O=!0;if(P.startLineNumber===P.endLineNumber){const x=A.getLineContent(P.startLineNumber).substring(P.startColumn-1,P.endColumn-1);O=N(x)}else for(let F=P.startLineNumber;F<=P.endLineNumber;F++){const x=A.getLineContent(F);if(F===P.startLineNumber){const W=x.substring(P.startColumn-1);O=N(W)}else if(F===P.endLineNumber){const W=x.substring(0,P.endColumn-1);O=N(W)}else O=A.getLineFirstNonWhitespaceColumn(F)===0;if(!O)break}return O}shouldIgnoreLine(A,P){A.tokenization.forceTokenization(P);const N=A.getLineFirstNonWhitespaceColumn(P);if(N===0)return!0;const O=A.tokenization.getLineTokens(P);if(O.getCount()>0){const F=O.findTokenIndexAtOffset(N);if(F>=0&&O.getStandardTokenType(F)===1)return!0}return!1}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};e.AutoIndentOnPaste=w,e.AutoIndentOnPaste=w=ke([ce(1,_.ILanguageConfigurationService)],w);function S(M,A){const P=N=>(0,s.getStandardTokenTypeAtPosition)(M,N)===2;return P(A.getStartPosition())||P(A.getEndPosition())}function L(M,A,P,N){if(M.getLineCount()===1&&M.getLineMaxColumn(1)===1)return;let O="";for(let x=0;x({selection:X,index:B,ignore:!1}));ee.sort((X,B)=>n.Range.compareRangesUsingStarts(X.selection,B.selection));let de=ee[0];for(let X=1;Xnew p.Position(Z.positionLineNumber,Z.positionColumn)));const ge=ae.getSelection();if(ge===null)return;const X=pe.get(r.IConfigurationService),B=ae.getModel(),$=X.getValue("files.trimTrailingWhitespaceInRegexAndStrings",{overrideIdentifier:B?.getLanguageId(),resource:B?.uri}),Q=new y.TrimTrailingWhitespaceCommand(ge,de,$);ae.pushUndoStop(),ae.executeCommands(this.id,[Q]),ae.pushUndoStop()}}e.TrimTrailingWhitespaceAction=A;class P extends I.EditorAction{constructor(){super({id:"editor.action.deleteLines",label:c.localize(1120,"Delete Line"),alias:"Delete Line",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.textInputFocus,primary:3113,weight:100}})}run(pe,ae){if(!ae.hasModel())return;const ee=this._getLinesToRemove(ae),de=ae.getModel();if(de.getLineCount()===1&&de.getLineMaxColumn(1)===1)return;let ge=0;const X=[],B=[];for(let $=0,Q=ee.length;$1&&(te-=1,le=de.getLineMaxColumn(te)),X.push(b.EditOperation.replace(new o.Selection(te,le,re,me),"")),B.push(new o.Selection(te-ge,Z.positionColumn,te-ge,Z.positionColumn)),ge+=Z.endLineNumber-Z.startLineNumber+1}ae.pushUndoStop(),ae.executeEdits(this.id,X,B),ae.pushUndoStop()}_getLinesToRemove(pe){const ae=pe.getSelections().map(ge=>{let X=ge.endLineNumber;return ge.startLineNumberge.startLineNumber===X.startLineNumber?ge.endLineNumber-X.endLineNumber:ge.startLineNumber-X.startLineNumber);const ee=[];let de=ae[0];for(let ge=1;ge=ae[ge].startLineNumber?de.endLineNumber=ae[ge].endLineNumber:(ee.push(de),de=ae[ge]);return ee.push(de),ee}}e.DeleteLinesAction=P;class N extends I.EditorAction{constructor(){super({id:"editor.action.indentLines",label:c.localize(1121,"Indent Line"),alias:"Indent Line",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.editorTextFocus,primary:2142,weight:100}})}run(pe,ae){const ee=ae._getViewModel();ee&&(ae.pushUndoStop(),ae.executeCommands(this.id,m.TypeOperations.indent(ee.cursorConfig,ae.getModel(),ae.getSelections())),ae.pushUndoStop())}}e.IndentLinesAction=N;class O extends I.EditorAction{constructor(){super({id:"editor.action.outdentLines",label:c.localize(1122,"Outdent Line"),alias:"Outdent Line",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.editorTextFocus,primary:2140,weight:100}})}run(pe,ae){k.CoreEditingCommands.Outdent.runEditorCommand(pe,ae,null)}}class F extends I.EditorAction{constructor(){super({id:"editor.action.insertLineBefore",label:c.localize(1123,"Insert Line Above"),alias:"Insert Line Above",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.editorTextFocus,primary:3075,weight:100}})}run(pe,ae){const ee=ae._getViewModel();ee&&(ae.pushUndoStop(),ae.executeCommands(this.id,_.EnterOperation.lineInsertBefore(ee.cursorConfig,ae.getModel(),ae.getSelections())))}}e.InsertLineBeforeAction=F;class x extends I.EditorAction{constructor(){super({id:"editor.action.insertLineAfter",label:c.localize(1124,"Insert Line Below"),alias:"Insert Line Below",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.editorTextFocus,primary:2051,weight:100}})}run(pe,ae){const ee=ae._getViewModel();ee&&(ae.pushUndoStop(),ae.executeCommands(this.id,_.EnterOperation.lineInsertAfter(ee.cursorConfig,ae.getModel(),ae.getSelections())))}}e.InsertLineAfterAction=x;class W extends I.EditorAction{run(pe,ae){if(!ae.hasModel())return;const ee=ae.getSelection(),de=this._getRangesToDelete(ae),ge=[];for(let $=0,Q=de.length-1;$b.EditOperation.replace($,""));ae.pushUndoStop(),ae.executeEdits(this.id,B,X),ae.pushUndoStop()}}e.AbstractDeleteAllToBoundaryAction=W;class V extends W{constructor(){super({id:"deleteAllLeft",label:c.localize(1125,"Delete All Left"),alias:"Delete All Left",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}_getEndCursorState(pe,ae){let ee=null;const de=[];let ge=0;return ae.forEach(X=>{let B;if(X.endColumn===1&&ge>0){const $=X.startLineNumber-ge;B=new o.Selection($,X.startColumn,$,X.startColumn)}else B=new o.Selection(X.startLineNumber,X.startColumn,X.startLineNumber,X.startColumn);ge+=X.endLineNumber-X.startLineNumber,X.intersectRanges(pe)?ee=B:de.push(B)}),ee&&de.unshift(ee),de}_getRangesToDelete(pe){const ae=pe.getSelections();if(ae===null)return[];let ee=ae;const de=pe.getModel();return de===null?[]:(ee.sort(n.Range.compareRangesUsingStarts),ee=ee.map(ge=>{if(ge.isEmpty())if(ge.startColumn===1){const X=Math.max(1,ge.startLineNumber-1),B=ge.startLineNumber===1?1:de.getLineLength(X)+1;return new n.Range(X,B,ge.startLineNumber,1)}else return new n.Range(ge.startLineNumber,1,ge.startLineNumber,ge.startColumn);else return new n.Range(ge.startLineNumber,1,ge.endLineNumber,ge.endColumn)}),ee)}}e.DeleteAllLeftAction=V;class q extends W{constructor(){super({id:"deleteAllRight",label:c.localize(1126,"Delete All Right"),alias:"Delete All Right",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}_getEndCursorState(pe,ae){let ee=null;const de=[];for(let ge=0,X=ae.length,B=0;ge{if(ge.isEmpty()){const X=ae.getLineMaxColumn(ge.startLineNumber);return ge.startColumn===X?new n.Range(ge.startLineNumber,ge.startColumn,ge.startLineNumber+1,1):new n.Range(ge.startLineNumber,ge.startColumn,ge.startLineNumber,X)}return ge});return de.sort(n.Range.compareRangesUsingStarts),de}}e.DeleteAllRightAction=q;class H extends I.EditorAction{constructor(){super({id:"editor.action.joinLines",label:c.localize(1127,"Join Lines"),alias:"Join Lines",precondition:t.EditorContextKeys.writable,kbOpts:{kbExpr:t.EditorContextKeys.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}run(pe,ae){const ee=ae.getSelections();if(ee===null)return;let de=ae.getSelection();if(de===null)return;ee.sort(n.Range.compareRangesUsingStarts);const ge=[],X=ee.reduce((re,le)=>re.isEmpty()?re.endLineNumber===le.startLineNumber?(de.equalsSelection(re)&&(de=le),le):le.startLineNumber>re.endLineNumber+1?(ge.push(re),le):new o.Selection(re.startLineNumber,re.startColumn,le.endLineNumber,le.endColumn):le.startLineNumber>re.endLineNumber?(ge.push(re),le):new o.Selection(re.startLineNumber,re.startColumn,le.endLineNumber,le.endColumn));ge.push(X);const B=ae.getModel();if(B===null)return;const $=[],Q=[];let Z=de,te=0;for(let re=0,le=ge.length;re=1){let Oe=!0;Ne===""&&(Oe=!1),Oe&&(Ne.charAt(Ne.length-1)===" "||Ne.charAt(Ne.length-1)===" ")&&(Oe=!1,Ne=Ne.replace(/[\s\uFEFF\xA0]+$/g," "));const Fe=Ge.substr(it-1);Ne+=(Oe?" ":"")+Fe,Oe?Le=Fe.length+1:Le=Fe.length}else Le=0}const Ke=new n.Range(Ce,ye,Ee,Me);if(!Ke.isEmpty()){let ze;me.isEmpty()?($.push(b.EditOperation.replace(Ke,Ne)),ze=new o.Selection(Ke.startLineNumber-te,Ne.length-Le+1,Ce-te,Ne.length-Le+1)):me.startLineNumber===me.endLineNumber?($.push(b.EditOperation.replace(Ke,Ne)),ze=new o.Selection(me.startLineNumber-te,me.startColumn,me.endLineNumber-te,me.endColumn)):($.push(b.EditOperation.replace(Ke,Ne)),ze=new o.Selection(me.startLineNumber-te,me.startColumn,me.startLineNumber-te,Ne.length-Ae)),n.Range.intersectRanges(Ke,de)!==null?Z=ze:Q.push(ze)}te+=Ke.endLineNumber-Ke.startLineNumber}Q.unshift(Z),ae.pushUndoStop(),ae.executeEdits(this.id,$,Q),ae.pushUndoStop()}}e.JoinLinesAction=H;class z extends I.EditorAction{constructor(){super({id:"editor.action.transpose",label:c.localize(1128,"Transpose Characters around the Cursor"),alias:"Transpose Characters around the Cursor",precondition:t.EditorContextKeys.writable})}run(pe,ae){const ee=ae.getSelections();if(ee===null)return;const de=ae.getModel();if(de===null)return;const ge=[];for(let X=0,B=ee.length;X=Z){if(Q.lineNumber===de.getLineCount())continue;const te=new n.Range(Q.lineNumber,Math.max(1,Q.column-1),Q.lineNumber+1,1),re=de.getValueInRange(te).split("").reverse().join("");ge.push(new E.ReplaceCommand(new o.Selection(Q.lineNumber,Math.max(1,Q.column-1),Q.lineNumber+1,1),re))}else{const te=new n.Range(Q.lineNumber,Math.max(1,Q.column-1),Q.lineNumber,Q.column+1),re=de.getValueInRange(te).split("").reverse().join("");ge.push(new E.ReplaceCommandThatPreservesSelection(te,re,new o.Selection(Q.lineNumber,Q.column+1,Q.lineNumber,Q.column+1)))}}ae.pushUndoStop(),ae.executeCommands(this.id,ge),ae.pushUndoStop()}}e.TransposeAction=z;class U extends I.EditorAction{run(pe,ae){const ee=ae.getSelections();if(ee===null)return;const de=ae.getModel();if(de===null)return;const ge=ae.getOption(132),X=[];for(const B of ee)if(B.isEmpty()){const $=B.getStartPosition(),Q=ae.getConfiguredWordAtPosition($);if(!Q)continue;const Z=new n.Range($.lineNumber,Q.startColumn,$.lineNumber,Q.endColumn),te=de.getValueInRange(Z);X.push(b.EditOperation.replace(Z,this._modifyText(te,ge)))}else{const $=de.getValueInRange(B);X.push(b.EditOperation.replace(B,this._modifyText($,ge)))}ae.pushUndoStop(),ae.executeEdits(this.id,X),ae.pushUndoStop()}}e.AbstractCaseAction=U;class j extends U{constructor(){super({id:"editor.action.transformToUppercase",label:c.localize(1129,"Transform to Uppercase"),alias:"Transform to Uppercase",precondition:t.EditorContextKeys.writable})}_modifyText(pe,ae){return pe.toLocaleUpperCase()}}e.UpperCaseAction=j;class Y extends U{constructor(){super({id:"editor.action.transformToLowercase",label:c.localize(1130,"Transform to Lowercase"),alias:"Transform to Lowercase",precondition:t.EditorContextKeys.writable})}_modifyText(pe,ae){return pe.toLocaleLowerCase()}}e.LowerCaseAction=Y;class G{constructor(pe,ae){this._pattern=pe,this._flags=ae,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch{}}return this._actual}isSupported(){return this.get()!==null}}class K extends U{static{this.titleBoundary=new G("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu")}constructor(){super({id:"editor.action.transformToTitlecase",label:c.localize(1131,"Transform to Title Case"),alias:"Transform to Title Case",precondition:t.EditorContextKeys.writable})}_modifyText(pe,ae){const ee=K.titleBoundary.get();return ee?pe.toLocaleLowerCase().replace(ee,de=>de.toLocaleUpperCase()):pe}}e.TitleCaseAction=K;class R extends U{static{this.caseBoundary=new G("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new G("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu")}constructor(){super({id:"editor.action.transformToSnakecase",label:c.localize(1132,"Transform to Snake Case"),alias:"Transform to Snake Case",precondition:t.EditorContextKeys.writable})}_modifyText(pe,ae){const ee=R.caseBoundary.get(),de=R.singleLetters.get();return!ee||!de?pe:pe.replace(ee,"$1_$2").replace(de,"$1_$2$3").toLocaleLowerCase()}}e.SnakeCaseAction=R;class J extends U{static{this.wordBoundary=new G("[_\\s-]","gm")}constructor(){super({id:"editor.action.transformToCamelcase",label:c.localize(1133,"Transform to Camel Case"),alias:"Transform to Camel Case",precondition:t.EditorContextKeys.writable})}_modifyText(pe,ae){const ee=J.wordBoundary.get();if(!ee)return pe;const de=pe.split(ee);return de.shift()+de.map(X=>X.substring(0,1).toLocaleUpperCase()+X.substring(1)).join("")}}e.CamelCaseAction=J;class ie extends U{static{this.wordBoundary=new G("[_\\s-]","gm")}static{this.wordBoundaryToMaintain=new G("(?<=\\.)","gm")}constructor(){super({id:"editor.action.transformToPascalcase",label:c.localize(1134,"Transform to Pascal Case"),alias:"Transform to Pascal Case",precondition:t.EditorContextKeys.writable})}_modifyText(pe,ae){const ee=ie.wordBoundary.get(),de=ie.wordBoundaryToMaintain.get();return!ee||!de?pe:pe.split(de).map(B=>B.split(ee)).flat().map(B=>B.substring(0,1).toLocaleUpperCase()+B.substring(1)).join("")}}e.PascalCaseAction=ie;class ue extends U{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every(ae=>ae.isSupported())}static{this.caseBoundary=new G("(\\p{Ll})(\\p{Lu})","gmu")}static{this.singleLetters=new G("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu")}static{this.underscoreBoundary=new G("(\\S)(_)(\\S)","gm")}constructor(){super({id:"editor.action.transformToKebabcase",label:c.localize(1135,"Transform to Kebab Case"),alias:"Transform to Kebab Case",precondition:t.EditorContextKeys.writable})}_modifyText(pe,ae){const ee=ue.caseBoundary.get(),de=ue.singleLetters.get(),ge=ue.underscoreBoundary.get();return!ee||!de||!ge?pe:pe.replace(ge,"$1-$3").replace(ee,"$1-$2").replace(de,"$1-$2").toLocaleLowerCase()}}e.KebabCaseAction=ue,(0,I.registerEditorAction)(C),(0,I.registerEditorAction)(f),(0,I.registerEditorAction)(h),(0,I.registerEditorAction)(w),(0,I.registerEditorAction)(S),(0,I.registerEditorAction)(D),(0,I.registerEditorAction)(T),(0,I.registerEditorAction)(M),(0,I.registerEditorAction)(A),(0,I.registerEditorAction)(P),(0,I.registerEditorAction)(N),(0,I.registerEditorAction)(O),(0,I.registerEditorAction)(F),(0,I.registerEditorAction)(x),(0,I.registerEditorAction)(V),(0,I.registerEditorAction)(q),(0,I.registerEditorAction)(H),(0,I.registerEditorAction)(z),(0,I.registerEditorAction)(j),(0,I.registerEditorAction)(Y),R.caseBoundary.isSupported()&&R.singleLetters.isSupported()&&(0,I.registerEditorAction)(R),J.wordBoundary.isSupported()&&(0,I.registerEditorAction)(J),ie.wordBoundary.isSupported()&&(0,I.registerEditorAction)(ie),K.titleBoundary.isSupported()&&(0,I.registerEditorAction)(K),ue.isSupported()&&(0,I.registerEditorAction)(ue)}),define(ne[740],se([1,0,2,15]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class I extends d.Disposable{static{this.ID="editor.contrib.longLinesHelper"}constructor(y){super(),this._editor=y,this._register(this._editor.onMouseDown(m=>{const _=this._editor.getOption(118);_>=0&&m.target.type===6&&m.target.position.column>=_&&this._editor.updateOptions({stopRenderingLineAfter:-1})}))}}(0,k.registerEditorContribution)(I.ID,I,2)}),define(ne[184],se([1,0,207,46,6,57,2,15,4,120,3,12,59,5,525]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.MessageController=void 0;let s=class{static{i=this}static{this.ID="editor.contrib.messageController"}static{this.MESSAGE_VISIBLE=new n.RawContextKey("messageVisible",!1,p.localize(1148,"Whether the editor is currently showing an inline message"))}static get(a){return a.getContribution(i.ID)}constructor(a,r,u){this._openerService=u,this._messageWidget=new y.MutableDisposable,this._messageListeners=new y.DisposableStore,this._mouseOverMessage=!1,this._editor=a,this._visible=i.MESSAGE_VISIBLE.bindTo(r)}dispose(){this._message?.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(a,r){(0,k.alert)((0,E.isMarkdownString)(a)?a.value:a),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=(0,E.isMarkdownString)(a)?(0,d.renderMarkdown)(a,{actionHandler:{callback:C=>{this.closeMessage(),(0,b.openLinkFromMarkdown)(this._openerService,C,(0,E.isMarkdownString)(a)?a.isTrusted:void 0)},disposables:this._messageListeners}}):void 0,this._messageWidget.value=new c(this._editor,r,typeof a=="string"?a:this._message.element),this._messageListeners.add(I.Event.debounce(this._editor.onDidBlurEditorText,(C,f)=>f,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&t.isAncestor(t.getActiveElement(),this._messageWidget.value.getDomNode())||this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(t.addDisposableListener(this._messageWidget.value.getDomNode(),t.EventType.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(t.addDisposableListener(this._messageWidget.value.getDomNode(),t.EventType.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let u;this._messageListeners.add(this._editor.onMouseMove(C=>{C.target.position&&(u?u.containsPosition(C.target.position)||this.closeMessage():u=new _.Range(r.lineNumber-3,1,C.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(c.fadeOut(this._messageWidget.value))}};e.MessageController=s,e.MessageController=s=i=ke([ce(1,n.IContextKeyService),ce(2,o.IOpenerService)],s);const g=m.EditorCommand.bindToContribution(s.get);(0,m.registerEditorCommand)(new g({id:"leaveEditorMessage",precondition:s.MESSAGE_VISIBLE,handler:l=>l.closeMessage(),kbOpts:{weight:130,primary:9}}));class c{static fadeOut(a){const r=()=>{a.dispose(),clearTimeout(u),a.getDomNode().removeEventListener("animationend",r)},u=setTimeout(r,110);return a.getDomNode().addEventListener("animationend",r),a.getDomNode().classList.add("fadeOut"),{dispose:r}}constructor(a,{lineNumber:r,column:u},C){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=a,this._editor.revealLinesInCenterIfOutsideViewport(r,r,0),this._position={lineNumber:r,column:u},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const f=document.createElement("div");f.classList.add("anchor","top"),this._domNode.appendChild(f);const h=document.createElement("div");typeof C=="string"?(h.classList.add("message"),h.textContent=C):(C.classList.add("message"),h.appendChild(C)),this._domNode.appendChild(h);const v=document.createElement("div");v.classList.add("anchor","below"),this._domNode.appendChild(v),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(a){this._domNode.classList.toggle("below",a===2)}}(0,m.registerEditorContribution)(s.ID,s,4)}),define(ne[741],se([1,0,57,2,15,184,3]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReadOnlyMessageController=void 0;class m extends k.Disposable{static{this.ID="editor.contrib.readOnlyMessageController"}constructor(b){super(),this.editor=b,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){const b=E.MessageController.get(this.editor);if(b&&this.editor.hasModel()){let p=this.editor.getOptions().get(93);p||(this.editor.isSimpleWidget?p=new d.MarkdownString(y.localize(1233,"Cannot edit in read-only input")):p=new d.MarkdownString(y.localize(1234,"Cannot edit in read-only editor"))),b.showMessage(p,this.editor.getPosition())}}}e.ReadOnlyMessageController=m,(0,I.registerEditorContribution)(m.ID,m,2)}),define(ne[742],se([1,0,13,18,8,15,9,4,23,20,340,621,3,29,24,17,78,19,22]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),e.SmartSelectController=void 0,e.provideSelectionRanges=v;class r{constructor(S,L){this.index=S,this.ranges=L}mov(S){const L=this.index+(S?1:-1);if(L<0||L>=this.ranges.length)return this;const D=new r(L,this.ranges);return D.ranges[L].equalsRange(this.ranges[this.index])?D.mov(S):D}}let u=class{static{a=this}static{this.ID="editor.contrib.smartSelectController"}static get(S){return S.getContribution(a.ID)}constructor(S,L){this._editor=S,this._languageFeaturesService=L,this._ignoreSelection=!1}dispose(){this._selectionListener?.dispose()}async run(S){if(!this._editor.hasModel())return;const L=this._editor.getSelections(),D=this._editor.getModel();if(this._state||await v(this._languageFeaturesService.selectionRangeProvider,D,L.map(M=>M.getPosition()),this._editor.getOption(114),k.CancellationToken.None).then(M=>{if(!(!d.isNonEmptyArray(M)||M.length!==L.length)&&!(!this._editor.hasModel()||!d.equals(this._editor.getSelections(),L,(A,P)=>A.equalsSelection(P)))){for(let A=0;AP.containsPosition(L[A].getStartPosition())&&P.containsPosition(L[A].getEndPosition())),M[A].unshift(L[A]);this._state=M.map(A=>new r(0,A)),this._selectionListener?.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{this._ignoreSelection||(this._selectionListener?.dispose(),this._state=void 0)})}}),!this._state)return;this._state=this._state.map(M=>M.mov(S));const T=this._state.map(M=>_.Selection.fromPositions(M.ranges[M.index].getStartPosition(),M.ranges[M.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(T)}finally{this._ignoreSelection=!1}}};e.SmartSelectController=u,e.SmartSelectController=u=a=ke([ce(1,s.ILanguageFeaturesService)],u);class C extends E.EditorAction{constructor(S,L){super(L),this._forward=S}async run(S,L){const D=u.get(L);D&&await D.run(this._forward)}}class f extends C{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:o.localize(1253,"Expand Selection"),alias:"Expand Selection",precondition:void 0,kbOpts:{kbExpr:b.EditorContextKeys.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"1_basic",title:o.localize(1254,"&&Expand Selection"),order:2}})}}i.CommandsRegistry.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");class h extends C{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:o.localize(1255,"Shrink Selection"),alias:"Shrink Selection",precondition:void 0,kbOpts:{kbExpr:b.EditorContextKeys.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"1_basic",title:o.localize(1256,"&&Shrink Selection"),order:3}})}}(0,E.registerEditorContribution)(u.ID,u,4),(0,E.registerEditorAction)(f),(0,E.registerEditorAction)(h);async function v(w,S,L,D,T){const M=w.all(S).concat(new n.WordSelectionRangeProvider(D.selectSubwords));M.length===1&&M.unshift(new p.BracketSelectionRangeProvider);const A=[],P=[];for(const N of M)A.push(Promise.resolve(N.provideSelectionRanges(S,L,T)).then(O=>{if(d.isNonEmptyArray(O)&&O.length===L.length)for(let F=0;F{if(N.length===0)return[];N.sort((W,V)=>y.Position.isBefore(W.getStartPosition(),V.getStartPosition())?1:y.Position.isBefore(V.getStartPosition(),W.getStartPosition())||y.Position.isBefore(W.getEndPosition(),V.getEndPosition())?-1:y.Position.isBefore(V.getEndPosition(),W.getEndPosition())?1:0);const O=[];let F;for(const W of N)(!F||m.Range.containsRange(W,F)&&!m.Range.equalsRange(W,F))&&(O.push(W),F=W);if(!D.selectLeadingAndTrailingWhitespace)return O;const x=[O[0]];for(let W=1;W{g.hasChanged(127)&&(this._config=this._editor.getOption(127),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(g=>{g.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if(this._config==="off"||!this._editor.hasModel())return;const t=this._editor.getModel();if(!t.mightContainUnusualLineTerminators()||p(this._codeEditorService,t)===!0||this._editor.getOption(92))return;if(this._config==="auto"){t.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let s;try{this._isPresentingDialog=!0,s=await this._dialogService.confirm({title:y.localize(1410,"Unusual Line Terminators"),message:y.localize(1411,"Detected unusual line terminators"),detail:y.localize(1412,"The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.",(0,k.basename)(t.uri)),primaryButton:y.localize(1413,"&&Remove Unusual Line Terminators"),cancelButton:y.localize(1414,"Ignore")})}finally{this._isPresentingDialog=!1}if(!s.confirmed){b(this._codeEditorService,t,!0);return}t.removeUnusualLineTerminators(this._editor.getSelections())}};e.UnusualLineTerminatorsDetector=n,e.UnusualLineTerminatorsDetector=n=ke([ce(1,m.IDialogService),ce(2,E.ICodeEditorService)],n),(0,I.registerEditorContribution)(n.ID,n,1)}),define(ne[411],se([1,0,15,146,37,76,199,166,9,4,23,20,36,3,61,12,179]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DeleteInsideWord=e.DeleteWordRight=e.DeleteWordEndRight=e.DeleteWordStartRight=e.DeleteWordLeft=e.DeleteWordEndLeft=e.DeleteWordStartLeft=e.DeleteWordRightCommand=e.DeleteWordLeftCommand=e.DeleteWordCommand=e.CursorWordAccessibilityRightSelect=e.CursorWordAccessibilityRight=e.CursorWordRightSelect=e.CursorWordEndRightSelect=e.CursorWordStartRightSelect=e.CursorWordRight=e.CursorWordEndRight=e.CursorWordStartRight=e.CursorWordAccessibilityLeftSelect=e.CursorWordAccessibilityLeft=e.CursorWordLeftSelect=e.CursorWordEndLeftSelect=e.CursorWordStartLeftSelect=e.CursorWordLeft=e.CursorWordEndLeft=e.CursorWordStartLeft=e.WordRightCommand=e.WordLeftCommand=e.MoveWordCommand=void 0;class c extends d.EditorCommand{constructor(K){super(K),this._inSelectionMode=K.inSelectionMode,this._wordNavigationType=K.wordNavigationType}runEditorCommand(K,R,J){if(!R.hasModel())return;const ie=(0,m.getMapForWordSeparators)(R.getOption(132),R.getOption(131)),ue=R.getModel(),he=R.getSelections(),pe=he.length>1,ae=he.map(ee=>{const de=new _.Position(ee.positionLineNumber,ee.positionColumn),ge=this._move(ie,ue,de,this._wordNavigationType,pe);return this._moveTo(ee,ge,this._inSelectionMode)});if(ue.pushStackElement(),R._getViewModel().setCursorStates("moveWordCommand",3,ae.map(ee=>E.CursorState.fromModelSelection(ee))),ae.length===1){const ee=new _.Position(ae[0].positionLineNumber,ae[0].positionColumn);R.revealPosition(ee,0)}}_moveTo(K,R,J){return J?new p.Selection(K.selectionStartLineNumber,K.selectionStartColumn,R.lineNumber,R.column):new p.Selection(R.lineNumber,R.column,R.lineNumber,R.column)}}e.MoveWordCommand=c;class l extends c{_move(K,R,J,ie,ue){return y.WordOperations.moveWordLeft(K,R,J,ie,ue)}}e.WordLeftCommand=l;class a extends c{_move(K,R,J,ie,ue){return y.WordOperations.moveWordRight(K,R,J,ie)}}e.WordRightCommand=a;class r extends l{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}e.CursorWordStartLeft=r;class u extends l{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}e.CursorWordEndLeft=u;class C extends l{constructor(){super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:s.ContextKeyExpr.and(n.EditorContextKeys.textInputFocus,s.ContextKeyExpr.and(i.CONTEXT_ACCESSIBILITY_MODE_ENABLED,g.IsWindowsContext)?.negate()),primary:2063,mac:{primary:527},weight:100}})}}e.CursorWordLeft=C;class f extends l{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}e.CursorWordStartLeftSelect=f;class h extends l{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}e.CursorWordEndLeftSelect=h;class v extends l{constructor(){super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:s.ContextKeyExpr.and(n.EditorContextKeys.textInputFocus,s.ContextKeyExpr.and(i.CONTEXT_ACCESSIBILITY_MODE_ENABLED,g.IsWindowsContext)?.negate()),primary:3087,mac:{primary:1551},weight:100}})}}e.CursorWordLeftSelect=v;class w extends l{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(K,R,J,ie,ue){return super._move((0,m.getMapForWordSeparators)(I.EditorOptions.wordSeparators.defaultValue,K.intlSegmenterLocales),R,J,ie,ue)}}e.CursorWordAccessibilityLeft=w;class S extends l{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(K,R,J,ie,ue){return super._move((0,m.getMapForWordSeparators)(I.EditorOptions.wordSeparators.defaultValue,K.intlSegmenterLocales),R,J,ie,ue)}}e.CursorWordAccessibilityLeftSelect=S;class L extends a{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}e.CursorWordStartRight=L;class D extends a{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:s.ContextKeyExpr.and(n.EditorContextKeys.textInputFocus,s.ContextKeyExpr.and(i.CONTEXT_ACCESSIBILITY_MODE_ENABLED,g.IsWindowsContext)?.negate()),primary:2065,mac:{primary:529},weight:100}})}}e.CursorWordEndRight=D;class T extends a{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}e.CursorWordRight=T;class M extends a{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}e.CursorWordStartRightSelect=M;class A extends a{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:s.ContextKeyExpr.and(n.EditorContextKeys.textInputFocus,s.ContextKeyExpr.and(i.CONTEXT_ACCESSIBILITY_MODE_ENABLED,g.IsWindowsContext)?.negate()),primary:3089,mac:{primary:1553},weight:100}})}}e.CursorWordEndRightSelect=A;class P extends a{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}e.CursorWordRightSelect=P;class N extends a{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(K,R,J,ie,ue){return super._move((0,m.getMapForWordSeparators)(I.EditorOptions.wordSeparators.defaultValue,K.intlSegmenterLocales),R,J,ie,ue)}}e.CursorWordAccessibilityRight=N;class O extends a{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(K,R,J,ie,ue){return super._move((0,m.getMapForWordSeparators)(I.EditorOptions.wordSeparators.defaultValue,K.intlSegmenterLocales),R,J,ie,ue)}}e.CursorWordAccessibilityRightSelect=O;class F extends d.EditorCommand{constructor(K){super(K),this._whitespaceHeuristics=K.whitespaceHeuristics,this._wordNavigationType=K.wordNavigationType}runEditorCommand(K,R,J){const ie=K.get(o.ILanguageConfigurationService);if(!R.hasModel())return;const ue=(0,m.getMapForWordSeparators)(R.getOption(132),R.getOption(131)),he=R.getModel(),pe=R.getSelections(),ae=R.getOption(6),ee=R.getOption(11),de=ie.getLanguageConfiguration(he.getLanguageId()).getAutoClosingPairs(),ge=R._getViewModel(),X=pe.map(B=>{const $=this._delete({wordSeparators:ue,model:he,selection:B,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:R.getOption(9),autoClosingBrackets:ae,autoClosingQuotes:ee,autoClosingPairs:de,autoClosedCharacters:ge.getCursorAutoClosedCharacters()},this._wordNavigationType);return new k.ReplaceCommand($,"")});R.pushUndoStop(),R.executeCommands(this.id,X),R.pushUndoStop()}}e.DeleteWordCommand=F;class x extends F{_delete(K,R){const J=y.WordOperations.deleteWordLeft(K,R);return J||new b.Range(1,1,1,1)}}e.DeleteWordLeftCommand=x;class W extends F{_delete(K,R){const J=y.WordOperations.deleteWordRight(K,R);if(J)return J;const ie=K.model.getLineCount(),ue=K.model.getLineMaxColumn(ie);return new b.Range(ie,ue,ie,ue)}}e.DeleteWordRightCommand=W;class V extends x{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:n.EditorContextKeys.writable})}}e.DeleteWordStartLeft=V;class q extends x{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:n.EditorContextKeys.writable})}}e.DeleteWordEndLeft=q;class H extends x{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:n.EditorContextKeys.writable,kbOpts:{kbExpr:n.EditorContextKeys.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}e.DeleteWordLeft=H;class z extends W{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:n.EditorContextKeys.writable})}}e.DeleteWordStartRight=z;class U extends W{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:n.EditorContextKeys.writable})}}e.DeleteWordEndRight=U;class j extends W{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:n.EditorContextKeys.writable,kbOpts:{kbExpr:n.EditorContextKeys.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}e.DeleteWordRight=j;class Y extends d.EditorAction{constructor(){super({id:"deleteInsideWord",precondition:n.EditorContextKeys.writable,label:t.localize(1427,"Delete Word"),alias:"Delete Word"})}run(K,R,J){if(!R.hasModel())return;const ie=(0,m.getMapForWordSeparators)(R.getOption(132),R.getOption(131)),ue=R.getModel(),pe=R.getSelections().map(ae=>{const ee=y.WordOperations.deleteInsideWord(ie,ue,ae);return new k.ReplaceCommand(ee,"")});R.pushUndoStop(),R.executeCommands(this.id,pe),R.pushUndoStop()}}e.DeleteInsideWord=Y,(0,d.registerEditorCommand)(new r),(0,d.registerEditorCommand)(new u),(0,d.registerEditorCommand)(new C),(0,d.registerEditorCommand)(new f),(0,d.registerEditorCommand)(new h),(0,d.registerEditorCommand)(new v),(0,d.registerEditorCommand)(new L),(0,d.registerEditorCommand)(new D),(0,d.registerEditorCommand)(new T),(0,d.registerEditorCommand)(new M),(0,d.registerEditorCommand)(new A),(0,d.registerEditorCommand)(new P),(0,d.registerEditorCommand)(new w),(0,d.registerEditorCommand)(new S),(0,d.registerEditorCommand)(new N),(0,d.registerEditorCommand)(new O),(0,d.registerEditorCommand)(new V),(0,d.registerEditorCommand)(new q),(0,d.registerEditorCommand)(new H),(0,d.registerEditorCommand)(new z),(0,d.registerEditorCommand)(new U),(0,d.registerEditorCommand)(new j),(0,d.registerEditorAction)(Y)}),define(ne[745],se([1,0,15,199,4,20,411,24]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CursorWordPartRightSelect=e.CursorWordPartRight=e.WordPartRightCommand=e.CursorWordPartLeftSelect=e.CursorWordPartLeft=e.WordPartLeftCommand=e.DeleteWordPartRight=e.DeleteWordPartLeft=void 0;class _ extends y.DeleteWordCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:E.EditorContextKeys.writable,kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(c,l){const a=k.WordPartOperations.deleteWordPartLeft(c);return a||new I.Range(1,1,1,1)}}e.DeleteWordPartLeft=_;class b extends y.DeleteWordCommand{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:E.EditorContextKeys.writable,kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(c,l){const a=k.WordPartOperations.deleteWordPartRight(c);if(a)return a;const r=c.model.getLineCount(),u=c.model.getLineMaxColumn(r);return new I.Range(r,u,r,u)}}e.DeleteWordPartRight=b;class p extends y.MoveWordCommand{_move(c,l,a,r,u){return k.WordPartOperations.moveWordPartLeft(c,l,a,u)}}e.WordPartLeftCommand=p;class n extends p{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}e.CursorWordPartLeft=n,m.CommandsRegistry.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class o extends p{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}e.CursorWordPartLeftSelect=o,m.CommandsRegistry.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class t extends y.MoveWordCommand{_move(c,l,a,r,u){return k.WordPartOperations.moveWordPartRight(c,l,a)}}e.WordPartRightCommand=t;class i extends t{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}e.CursorWordPartRight=i;class s extends t{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}e.CursorWordPartRightSelect=s,(0,d.registerEditorCommand)(new _),(0,d.registerEditorCommand)(new b),(0,d.registerEditorCommand)(new n),(0,d.registerEditorCommand)(new o),(0,d.registerEditorCommand)(new i),(0,d.registerEditorCommand)(new s)}),define(ne[746],se([1,0,5,2,15,16,538]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IPadShowKeyboard=void 0;class y extends k.Disposable{static{this.ID="editor.contrib.iPadShowKeyboard"}constructor(b){super(),this.editor=b,this.widget=null,E.isIOS&&(this._register(b.onDidChangeConfiguration(()=>this.update())),this.update())}update(){const b=!this.editor.getOption(92);!this.widget&&b?this.widget=new m(this.editor):this.widget&&!b&&(this.widget.dispose(),this.widget=null)}dispose(){super.dispose(),this.widget&&(this.widget.dispose(),this.widget=null)}}e.IPadShowKeyboard=y;class m extends k.Disposable{static{this.ID="editor.contrib.ShowKeyboardWidget"}constructor(b){super(),this.editor=b,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._register(d.addDisposableListener(this._domNode,"touchstart",p=>{this.editor.focus()})),this._register(d.addDisposableListener(this._domNode,"focus",p=>{this.editor.focus()})),this.editor.addOverlayWidget(this)}dispose(){this.editor.removeOverlayWidget(this),super.dispose()}getId(){return m.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}}(0,I.registerEditorContribution)(y.ID,y,3)}),define(ne[747],se([1,0,5,33,2,15,27,148,177,43,153,107,539]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";var o;Object.defineProperty(e,"__esModule",{value:!0});let t=class extends I.Disposable{static{o=this}static{this.ID="editor.contrib.inspectTokens"}static get(a){return a.getContribution(o.ID)}constructor(a,r,u){super(),this._editor=a,this._languageService=u,this._widget=null,this._register(this._editor.onDidChangeModel(C=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(C=>this.stop())),this._register(y.TokenizationRegistry.onDidChange(C=>this.stop())),this._register(this._editor.onKeyUp(C=>C.keyCode===9&&this.stop()))}dispose(){this.stop(),super.dispose()}launch(){this._widget||this._editor.hasModel()&&(this._widget=new c(this._editor,this._languageService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}};t=o=ke([ce(1,p.IStandaloneThemeService),ce(2,b.ILanguageService)],t);class i extends E.EditorAction{constructor(){super({id:"editor.action.inspectTokens",label:n.InspectTokensNLS.inspectTokensAction,alias:"Developer: Inspect Tokens",precondition:void 0})}run(a,r){t.get(r)?.launch()}}function s(l){let a="";for(let r=0,u=l.length;r_.NullState,tokenize:(C,f,h)=>(0,_.nullTokenize)(a,h),tokenizeEncoded:(C,f,h)=>(0,_.nullTokenizeEncoded)(u,h)}}class c extends I.Disposable{static{this._ID="editor.contrib.inspectTokensWidget"}constructor(a,r){super(),this.allowEditorOverflow=!0,this._editor=a,this._languageService=r,this._model=this._editor.getModel(),this._domNode=document.createElement("div"),this._domNode.className="tokens-inspect-widget",this._tokenizationSupport=g(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(u=>this._compute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return c._ID}_compute(a){const r=this._getTokensAtLine(a.lineNumber);let u=0;for(let w=r.tokens1.length-1;w>=0;w--){const S=r.tokens1[w];if(a.column-1>=S.offset){u=w;break}}let C=0;for(let w=r.tokens2.length>>>1;w>=0;w--)if(a.column-1>=r.tokens2[w<<1]){C=w;break}const f=this._model.getLineContent(a.lineNumber);let h="";if(u"}static{this.TFIDF_THRESHOLD=.5}static{this.TFIDF_MAX_RESULTS=5}static{this.WORD_FILTER=(0,I.or)(I.matchesPrefix,I.matchesWords,I.matchesContiguousSubString)}constructor(h,v,w,S,L,D){super(a.PREFIX,h),this.instantiationService=v,this.keybindingService=w,this.commandService=S,this.telemetryService=L,this.dialogService=D,this.commandsHistory=this._register(this.instantiationService.createInstance(C)),this.options=h}async _getPicks(h,v,w,S){const L=await this.getCommandPicks(w);if(w.isCancellationRequested)return[];const D=(0,E.createSingleCallFunction)(()=>{const F=new _.TfIdfCalculator;F.updateDocuments(L.map(W=>({key:W.commandId,textChunks:[this.getTfIdfChunk(W)]})));const x=F.calculateScores(h,w);return(0,_.normalizeTfIdfScores)(x).filter(W=>W.score>a.TFIDF_THRESHOLD).slice(0,a.TFIDF_MAX_RESULTS)}),T=[];for(const F of L){const x=a.WORD_FILTER(h,F.label)??void 0,W=F.commandAlias?a.WORD_FILTER(h,F.commandAlias)??void 0:void 0;if(x||W)F.highlights={label:x,detail:this.options.showAlias?W:void 0},T.push(F);else if(h===F.commandId)T.push(F);else if(h.length>=3){const V=D();if(w.isCancellationRequested)return[];const q=V.find(H=>H.key===F.commandId);q&&(F.tfIdfScore=q.score,T.push(F))}}const M=new Map;for(const F of T){const x=M.get(F.label);x?(F.description=F.commandId,x.description=x.commandId):M.set(F.label,F)}T.sort((F,x)=>{if(F.tfIdfScore&&x.tfIdfScore)return F.tfIdfScore===x.tfIdfScore?F.label.localeCompare(x.label):x.tfIdfScore-F.tfIdfScore;if(F.tfIdfScore)return 1;if(x.tfIdfScore)return-1;const W=this.commandsHistory.peek(F.commandId),V=this.commandsHistory.peek(x.commandId);if(W&&V)return W>V?-1:1;if(W)return-1;if(V)return 1;if(this.options.suggestedCommandIds){const q=this.options.suggestedCommandIds.has(F.commandId),H=this.options.suggestedCommandIds.has(x.commandId);if(q&&H)return 0;if(q)return-1;if(H)return 1}return F.label.localeCompare(x.label)});const A=[];let P=!1,N=!0,O=!!this.options.suggestedCommandIds;for(let F=0;F{const F=await this.getAdditionalCommandPicks(L,T,h,w);if(w.isCancellationRequested)return[];const x=F.map(W=>this.toCommandPick(W,S));return N&&x[0]?.type!=="separator"&&x.unshift({type:"separator",label:(0,b.localize)(1576,"similar commands")}),x})()}:A}toCommandPick(h,v){if(h.type==="separator")return h;const w=this.keybindingService.lookupKeybinding(h.commandId),S=w?(0,b.localize)(1577,"{0}, {1}",h.label,w.getAriaLabel()):h.label;return{...h,ariaLabel:S,detail:this.options.showAlias&&h.commandAlias!==h.label?h.commandAlias:void 0,keybinding:w,accept:async()=>{this.commandsHistory.push(h.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:h.commandId,from:v?.from??"quick open"});try{h.args?.length?await this.commandService.executeCommand(h.commandId,...h.args):await this.commandService.executeCommand(h.commandId)}catch(L){(0,k.isCancellationError)(L)||this.dialogService.error((0,b.localize)(1578,"Command '{0}' resulted in an error",h.label),(0,d.toErrorMessage)(L))}}}}getTfIdfChunk({label:h,commandAlias:v,commandDescription:w}){let S=h;return v&&v!==h&&(S+=` - ${v}`),w&&w.value!==h&&(S+=` - ${w.value===w.original?w.value:`${w.value} (${w.original})`}`),S}};e.AbstractCommandsQuickAccessProvider=u,e.AbstractCommandsQuickAccessProvider=u=a=ke([ce(1,t.IInstantiationService),ce(2,i.IKeybindingService),ce(3,p.ICommandService),ce(4,l.ITelemetryService),ce(5,o.IDialogService)],u);let C=class extends y.Disposable{static{r=this}static{this.DEFAULT_COMMANDS_HISTORY_LENGTH=50}static{this.PREF_KEY_CACHE="commandPalette.mru.cache"}static{this.PREF_KEY_COUNTER="commandPalette.mru.counter"}static{this.counter=1}static{this.hasChanges=!1}constructor(h,v,w){super(),this.storageService=h,this.configurationService=v,this.logService=w,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(h=>this.updateConfiguration(h))),this._register(this.storageService.onWillSaveState(h=>{h.reason===c.WillSaveStateReason.SHUTDOWN&&this.saveState()}))}updateConfiguration(h){h&&!h.affectsConfiguration("workbench.commandPalette.history")||(this.configuredCommandsHistoryLength=r.getConfiguredCommandHistoryLength(this.configurationService),r.cache&&r.cache.limit!==this.configuredCommandsHistoryLength&&(r.cache.limit=this.configuredCommandsHistoryLength,r.hasChanges=!0))}load(){const h=this.storageService.get(r.PREF_KEY_CACHE,0);let v;if(h)try{v=JSON.parse(h)}catch(S){this.logService.error(`[CommandsHistory] invalid data: ${S}`)}const w=r.cache=new m.LRUCache(this.configuredCommandsHistoryLength,1);if(v){let S;v.usesLRU?S=v.entries:S=v.entries.sort((L,D)=>L.value-D.value),S.forEach(L=>w.set(L.key,L.value))}r.counter=this.storageService.getNumber(r.PREF_KEY_COUNTER,0,r.counter)}push(h){r.cache&&(r.cache.set(h,r.counter++),r.hasChanges=!0)}peek(h){return r.cache?.peek(h)}saveState(){if(!r.cache||!r.hasChanges)return;const h={usesLRU:!0,entries:[]};r.cache.forEach((v,w)=>h.entries.push({key:w,value:v})),this.storageService.store(r.PREF_KEY_CACHE,JSON.stringify(h),0,0),this.storageService.store(r.PREF_KEY_COUNTER,r.counter,0,0),r.hasChanges=!1}static getConfiguredCommandHistoryLength(h){const w=h.getValue().workbench?.commandPalette?.history;return typeof w=="number"?w:r.DEFAULT_COMMANDS_HISTORY_LENGTH}};e.CommandsHistory=C,e.CommandsHistory=C=r=ke([ce(0,c.IStorageService),ce(1,n.IConfigurationService),ce(2,s.ILogService)],C)}),define(ne[749],se([1,0,142,381,748]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractEditorCommandsQuickAccessProvider=void 0;class E extends I.AbstractCommandsQuickAccessProvider{constructor(m,_,b,p,n,o){super(m,_,b,p,n,o)}getCodeEditorCommandPicks(){const m=this.activeTextEditorControl;if(!m)return[];const _=[];for(const b of m.getSupportedActions()){let p;b.metadata?.description&&((0,k.isLocalizedString)(b.metadata.description)?p=b.metadata.description:p={original:b.metadata.description,value:b.metadata.description}),_.push({commandId:b.id,commandAlias:b.alias,commandDescription:p,label:(0,d.stripIcons)(b.label)||b.id})}return _}}e.AbstractEditorCommandsQuickAccessProvider=E}),define(ne[750],se([1,0,38,156,107,34,749,7,31,24,63,180,15,20,66]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GotoLineAction=e.StandaloneCommandsQuickAccessProvider=void 0;let s=class extends y.AbstractEditorCommandsQuickAccessProvider{get activeTextEditorControl(){return this.codeEditorService.getFocusedCodeEditor()??void 0}constructor(l,a,r,u,C,f){super({showAlias:!1},l,r,u,C,f),this.codeEditorService=a}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};e.StandaloneCommandsQuickAccessProvider=s,e.StandaloneCommandsQuickAccessProvider=s=ke([ce(0,m.IInstantiationService),ce(1,E.ICodeEditorService),ce(2,_.IKeybindingService),ce(3,b.ICommandService),ce(4,p.ITelemetryService),ce(5,n.IDialogService)],s);class g extends o.EditorAction{static{this.ID="editor.action.quickCommand"}constructor(){super({id:g.ID,label:I.QuickCommandNLS.quickCommandActionLabel,alias:"Command Palette",precondition:void 0,kbOpts:{kbExpr:t.EditorContextKeys.focus,primary:59,weight:100},contextMenuOpts:{group:"z_commands",order:1}})}run(l){l.get(i.IQuickInputService).quickAccess.show(s.PREFIX)}}e.GotoLineAction=g,(0,o.registerEditorAction)(g),d.Registry.as(k.Extensions.Quickaccess).registerQuickAccessProvider({ctor:s,prefix:s.PREFIX,helpEntries:[{description:I.QuickCommandNLS.quickCommandHelp,commandId:g.ID}]})}),define(ne[89],se([1,0,90,14,33,6,273,38,3]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.workbenchColorsSchemaId=e.DEFAULT_COLOR_CONFIG_VALUE=e.Extensions=void 0,e.asCssVariableName=b,e.asCssVariable=p,e.asCssVariableWithDefault=n,e.isColorDefaults=o,e.registerColor=s,e.executeTransform=g,e.darken=c,e.lighten=l,e.transparent=a,e.oneOf=r,e.ifDefinedThenElse=u,e.lessProminent=C,e.resolveColorValue=f;function b(w){return`--vscode-${w.replace(/\./g,"-")}`}function p(w){return`var(${b(w)})`}function n(w,S){return`var(${b(w)}, ${S})`}function o(w){return w!==null&&typeof w=="object"&&"light"in w&&"dark"in w}e.Extensions={ColorContribution:"base.contributions.colors"},e.DEFAULT_COLOR_CONFIG_VALUE="default";class t{constructor(){this._onDidChangeSchema=new E.Emitter,this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:"object",properties:{}},this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]},this.colorsById={}}registerColor(S,L,D,T=!1,M){const A={id:S,description:D,defaults:L,needsTransparency:T,deprecationMessage:M};this.colorsById[S]=A;const P={type:"string",format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};return M&&(P.deprecationMessage=M),T&&(P.pattern="^#(?:(?[0-9a-fA-f]{3}[0-9a-eA-E])|(?:[0-9a-fA-F]{6}(?:(?![fF]{2})(?:[0-9a-fA-F]{2}))))?$",P.patternErrorMessage=_.localize(1836,"This color must be transparent or it will obscure content")),this.colorSchema.properties[S]={description:D,oneOf:[P,{type:"string",const:e.DEFAULT_COLOR_CONFIG_VALUE,description:_.localize(1837,"Use the default color.")}]},this.colorReferenceSchema.enum.push(S),this.colorReferenceSchema.enumDescriptions.push(D),this._onDidChangeSchema.fire(),S}getColors(){return Object.keys(this.colorsById).map(S=>this.colorsById[S])}resolveDefaultColor(S,L){const D=this.colorsById[S];if(D?.defaults){const T=o(D.defaults)?D.defaults[L.type]:D.defaults;return f(T,L)}}getColorSchema(){return this.colorSchema}toString(){const S=(L,D)=>{const T=L.indexOf(".")===-1?0:1,M=D.indexOf(".")===-1?0:1;return T!==M?T-M:L.localeCompare(D)};return Object.keys(this.colorsById).sort(S).map(L=>`- \`${L}\`: ${this.colorsById[L].description}`).join(` +`)}}const i=new t;m.Registry.add(e.Extensions.ColorContribution,i);function s(w,S,L,D,T){return i.registerColor(w,S,L,D,T)}function g(w,S){switch(w.op){case 0:return f(w.value,S)?.darken(w.factor);case 1:return f(w.value,S)?.lighten(w.factor);case 2:return f(w.value,S)?.transparent(w.factor);case 3:{const L=f(w.background,S);return L?f(w.value,S)?.makeOpaque(L):f(w.value,S)}case 4:for(const L of w.values){const D=f(L,S);if(D)return D}return;case 6:return f(S.defines(w.if)?w.then:w.else,S);case 5:{const L=f(w.value,S);if(!L)return;const D=f(w.background,S);return D?L.isDarkerThan(D)?I.Color.getLighterColor(L,D,w.factor).transparent(w.transparency):I.Color.getDarkerColor(L,D,w.factor).transparent(w.transparency):L.transparent(w.factor*w.transparency)}default:throw(0,d.assertNever)(w)}}function c(w,S){return{op:0,value:w,factor:S}}function l(w,S){return{op:1,value:w,factor:S}}function a(w,S){return{op:2,value:w,factor:S}}function r(...w){return{op:4,values:w}}function u(w,S,L){return{op:6,if:w,then:S,else:L}}function C(w,S,L,D){return{op:5,value:w,background:S,factor:L,transparency:D}}function f(w,S){if(w!==null){if(typeof w=="string")return w[0]==="#"?I.Color.fromHex(w):S.getColor(w);if(w instanceof I.Color)return w;if(typeof w=="object")return g(w,S)}}e.workbenchColorsSchemaId="vscode://schemas/workbench-colors";const h=m.Registry.as(y.Extensions.JSONContribution);h.registerSchema(e.workbenchColorsSchemaId,i.getColorSchema());const v=new k.RunOnceScheduler(()=>h.notifySchemaChanged(e.workbenchColorsSchemaId),200);i.onDidChangeSchema(()=>{v.isScheduled()||v.schedule()})}),define(ne[123],se([1,0,3,33,89]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.textCodeBlockBackground=e.textBlockQuoteBorder=e.textBlockQuoteBackground=e.textPreformatBackground=e.textPreformatForeground=e.textSeparatorForeground=e.textLinkActiveForeground=e.textLinkForeground=e.selectionBackground=e.activeContrastBorder=e.contrastBorder=e.focusBorder=e.iconForeground=e.descriptionForeground=e.errorForeground=e.disabledForeground=e.foreground=void 0,e.foreground=(0,I.registerColor)("foreground",{dark:"#CCCCCC",light:"#616161",hcDark:"#FFFFFF",hcLight:"#292929"},d.localize(1599,"Overall foreground color. This color is only used if not overridden by a component.")),e.disabledForeground=(0,I.registerColor)("disabledForeground",{dark:"#CCCCCC80",light:"#61616180",hcDark:"#A5A5A5",hcLight:"#7F7F7F"},d.localize(1600,"Overall foreground for disabled elements. This color is only used if not overridden by a component.")),e.errorForeground=(0,I.registerColor)("errorForeground",{dark:"#F48771",light:"#A1260D",hcDark:"#F48771",hcLight:"#B5200D"},d.localize(1601,"Overall foreground color for error messages. This color is only used if not overridden by a component.")),e.descriptionForeground=(0,I.registerColor)("descriptionForeground",{light:"#717171",dark:(0,I.transparent)(e.foreground,.7),hcDark:(0,I.transparent)(e.foreground,.7),hcLight:(0,I.transparent)(e.foreground,.7)},d.localize(1602,"Foreground color for description text providing additional information, for example for a label.")),e.iconForeground=(0,I.registerColor)("icon.foreground",{dark:"#C5C5C5",light:"#424242",hcDark:"#FFFFFF",hcLight:"#292929"},d.localize(1603,"The default color for icons in the workbench.")),e.focusBorder=(0,I.registerColor)("focusBorder",{dark:"#007FD4",light:"#0090F1",hcDark:"#F38518",hcLight:"#006BBD"},d.localize(1604,"Overall border color for focused elements. This color is only used if not overridden by a component.")),e.contrastBorder=(0,I.registerColor)("contrastBorder",{light:null,dark:null,hcDark:"#6FC3DF",hcLight:"#0F4A85"},d.localize(1605,"An extra border around elements to separate them from others for greater contrast.")),e.activeContrastBorder=(0,I.registerColor)("contrastActiveBorder",{light:null,dark:null,hcDark:e.focusBorder,hcLight:e.focusBorder},d.localize(1606,"An extra border around active elements to separate them from others for greater contrast.")),e.selectionBackground=(0,I.registerColor)("selection.background",null,d.localize(1607,"The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.")),e.textLinkForeground=(0,I.registerColor)("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},d.localize(1608,"Foreground color for links in text.")),e.textLinkActiveForeground=(0,I.registerColor)("textLink.activeForeground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},d.localize(1609,"Foreground color for links in text when clicked on and on mouse hover.")),e.textSeparatorForeground=(0,I.registerColor)("textSeparator.foreground",{light:"#0000002e",dark:"#ffffff2e",hcDark:k.Color.black,hcLight:"#292929"},d.localize(1610,"Color for text separators.")),e.textPreformatForeground=(0,I.registerColor)("textPreformat.foreground",{light:"#A31515",dark:"#D7BA7D",hcDark:"#000000",hcLight:"#FFFFFF"},d.localize(1611,"Foreground color for preformatted text segments.")),e.textPreformatBackground=(0,I.registerColor)("textPreformat.background",{light:"#0000001A",dark:"#FFFFFF1A",hcDark:"#FFFFFF",hcLight:"#09345f"},d.localize(1612,"Background color for preformatted text segments.")),e.textBlockQuoteBackground=(0,I.registerColor)("textBlockQuote.background",{light:"#f2f2f2",dark:"#222222",hcDark:null,hcLight:"#F2F2F2"},d.localize(1613,"Background color for block quotes in text.")),e.textBlockQuoteBorder=(0,I.registerColor)("textBlockQuote.border",{light:"#007acc80",dark:"#007acc80",hcDark:k.Color.white,hcLight:"#292929"},d.localize(1614,"Border color for block quotes in text.")),e.textCodeBlockBackground=(0,I.registerColor)("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hcDark:k.Color.black,hcLight:"#F2F2F2"},d.localize(1615,"Background color for code blocks in text."))}),define(ne[278],se([1,0,3,33,89,123]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.progressBarBackground=e.scrollbarSliderActiveBackground=e.scrollbarSliderHoverBackground=e.scrollbarSliderBackground=e.scrollbarShadow=e.badgeForeground=e.badgeBackground=e.sashHoverBorder=void 0,e.sashHoverBorder=(0,I.registerColor)("sash.hoverBorder",E.focusBorder,d.localize(1816,"Border color of active sashes.")),e.badgeBackground=(0,I.registerColor)("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hcDark:k.Color.black,hcLight:"#0F4A85"},d.localize(1817,"Badge background color. Badges are small information labels, e.g. for search results count.")),e.badgeForeground=(0,I.registerColor)("badge.foreground",{dark:k.Color.white,light:"#333",hcDark:k.Color.white,hcLight:k.Color.white},d.localize(1818,"Badge foreground color. Badges are small information labels, e.g. for search results count.")),e.scrollbarShadow=(0,I.registerColor)("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hcDark:null,hcLight:null},d.localize(1819,"Scrollbar shadow to indicate that the view is scrolled.")),e.scrollbarSliderBackground=(0,I.registerColor)("scrollbarSlider.background",{dark:k.Color.fromHex("#797979").transparent(.4),light:k.Color.fromHex("#646464").transparent(.4),hcDark:(0,I.transparent)(E.contrastBorder,.6),hcLight:(0,I.transparent)(E.contrastBorder,.4)},d.localize(1820,"Scrollbar slider background color.")),e.scrollbarSliderHoverBackground=(0,I.registerColor)("scrollbarSlider.hoverBackground",{dark:k.Color.fromHex("#646464").transparent(.7),light:k.Color.fromHex("#646464").transparent(.7),hcDark:(0,I.transparent)(E.contrastBorder,.8),hcLight:(0,I.transparent)(E.contrastBorder,.8)},d.localize(1821,"Scrollbar slider background color when hovering.")),e.scrollbarSliderActiveBackground=(0,I.registerColor)("scrollbarSlider.activeBackground",{dark:k.Color.fromHex("#BFBFBF").transparent(.4),light:k.Color.fromHex("#000000").transparent(.6),hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1822,"Scrollbar slider background color when clicked on.")),e.progressBarBackground=(0,I.registerColor)("progressBar.background",{dark:k.Color.fromHex("#0E70C0"),light:k.Color.fromHex("#0E70C0"),hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1823,"Background color of the progress bar that can show for long running operations."))}),define(ne[138],se([1,0,3,33,89,123,278]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.problemsInfoIconForeground=e.problemsWarningIconForeground=e.problemsErrorIconForeground=e.overviewRulerSelectionHighlightForeground=e.overviewRulerFindMatchForeground=e.overviewRulerCommonContentForeground=e.overviewRulerIncomingContentForeground=e.overviewRulerCurrentContentForeground=e.mergeBorder=e.mergeCommonContentBackground=e.mergeCommonHeaderBackground=e.mergeIncomingContentBackground=e.mergeIncomingHeaderBackground=e.mergeCurrentContentBackground=e.mergeCurrentHeaderBackground=e.breadcrumbsPickerBackground=e.breadcrumbsActiveSelectionForeground=e.breadcrumbsFocusForeground=e.breadcrumbsBackground=e.breadcrumbsForeground=e.toolbarActiveBackground=e.toolbarHoverOutline=e.toolbarHoverBackground=e.widgetBorder=e.widgetShadow=e.diffUnchangedTextBackground=e.diffUnchangedRegionForeground=e.diffUnchangedRegionBackground=e.diffDiagonalFill=e.diffBorder=e.diffRemovedOutline=e.diffInsertedOutline=e.diffOverviewRulerRemoved=e.diffOverviewRulerInserted=e.diffRemovedLineGutter=e.diffInsertedLineGutter=e.diffRemovedLine=e.diffInsertedLine=e.diffRemoved=e.diffInserted=e.defaultRemoveColor=e.defaultInsertColor=e.snippetFinalTabstopHighlightBorder=e.snippetFinalTabstopHighlightBackground=e.snippetTabstopHighlightBorder=e.snippetTabstopHighlightBackground=e.editorLightBulbAiForeground=e.editorLightBulbAutoFixForeground=e.editorLightBulbForeground=e.editorInlayHintParameterBackground=e.editorInlayHintParameterForeground=e.editorInlayHintTypeBackground=e.editorInlayHintTypeForeground=e.editorInlayHintBackground=e.editorInlayHintForeground=e.editorHoverStatusBarBackground=e.editorHoverBorder=e.editorHoverForeground=e.editorHoverBackground=e.editorHoverHighlight=e.editorFindRangeHighlightBorder=e.editorFindMatchHighlightBorder=e.editorFindMatchBorder=e.editorFindRangeHighlight=e.editorFindMatchHighlightForeground=e.editorFindMatchHighlight=e.editorFindMatchForeground=e.editorFindMatch=e.editorSelectionHighlightBorder=e.editorSelectionHighlight=e.editorInactiveSelection=e.editorSelectionForeground=e.editorSelectionBackground=e.editorActiveLinkForeground=e.editorHintBorder=e.editorHintForeground=e.editorInfoBorder=e.editorInfoForeground=e.editorInfoBackground=e.editorWarningBorder=e.editorWarningForeground=e.editorWarningBackground=e.editorErrorBorder=e.editorErrorForeground=e.editorErrorBackground=e.editorWidgetResizeBorder=e.editorWidgetBorder=e.editorWidgetForeground=e.editorWidgetBackground=e.editorStickyScrollShadow=e.editorStickyScrollBorder=e.editorStickyScrollHoverBackground=e.editorStickyScrollBackground=e.editorForeground=e.editorBackground=void 0,e.editorBackground=(0,I.registerColor)("editor.background",{light:"#ffffff",dark:"#1E1E1E",hcDark:k.Color.black,hcLight:k.Color.white},d.localize(1624,"Editor background color.")),e.editorForeground=(0,I.registerColor)("editor.foreground",{light:"#333333",dark:"#BBBBBB",hcDark:k.Color.white,hcLight:E.foreground},d.localize(1625,"Editor default foreground color.")),e.editorStickyScrollBackground=(0,I.registerColor)("editorStickyScroll.background",e.editorBackground,d.localize(1626,"Background color of sticky scroll in the editor")),e.editorStickyScrollHoverBackground=(0,I.registerColor)("editorStickyScrollHover.background",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:null,hcLight:k.Color.fromHex("#0F4A85").transparent(.1)},d.localize(1627,"Background color of sticky scroll on hover in the editor")),e.editorStickyScrollBorder=(0,I.registerColor)("editorStickyScroll.border",{dark:null,light:null,hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1628,"Border color of sticky scroll in the editor")),e.editorStickyScrollShadow=(0,I.registerColor)("editorStickyScroll.shadow",y.scrollbarShadow,d.localize(1629," Shadow color of sticky scroll in the editor")),e.editorWidgetBackground=(0,I.registerColor)("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hcDark:"#0C141F",hcLight:k.Color.white},d.localize(1630,"Background color of editor widgets, such as find/replace.")),e.editorWidgetForeground=(0,I.registerColor)("editorWidget.foreground",E.foreground,d.localize(1631,"Foreground color of editor widgets, such as find/replace.")),e.editorWidgetBorder=(0,I.registerColor)("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1632,"Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.")),e.editorWidgetResizeBorder=(0,I.registerColor)("editorWidget.resizeBorder",null,d.localize(1633,"Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.")),e.editorErrorBackground=(0,I.registerColor)("editorError.background",null,d.localize(1634,"Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorErrorForeground=(0,I.registerColor)("editorError.foreground",{dark:"#F14C4C",light:"#E51400",hcDark:"#F48771",hcLight:"#B5200D"},d.localize(1635,"Foreground color of error squigglies in the editor.")),e.editorErrorBorder=(0,I.registerColor)("editorError.border",{dark:null,light:null,hcDark:k.Color.fromHex("#E47777").transparent(.8),hcLight:"#B5200D"},d.localize(1636,"If set, color of double underlines for errors in the editor.")),e.editorWarningBackground=(0,I.registerColor)("editorWarning.background",null,d.localize(1637,"Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorWarningForeground=(0,I.registerColor)("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hcDark:"#FFD370",hcLight:"#895503"},d.localize(1638,"Foreground color of warning squigglies in the editor.")),e.editorWarningBorder=(0,I.registerColor)("editorWarning.border",{dark:null,light:null,hcDark:k.Color.fromHex("#FFCC00").transparent(.8),hcLight:k.Color.fromHex("#FFCC00").transparent(.8)},d.localize(1639,"If set, color of double underlines for warnings in the editor.")),e.editorInfoBackground=(0,I.registerColor)("editorInfo.background",null,d.localize(1640,"Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorInfoForeground=(0,I.registerColor)("editorInfo.foreground",{dark:"#3794FF",light:"#1a85ff",hcDark:"#3794FF",hcLight:"#1a85ff"},d.localize(1641,"Foreground color of info squigglies in the editor.")),e.editorInfoBorder=(0,I.registerColor)("editorInfo.border",{dark:null,light:null,hcDark:k.Color.fromHex("#3794FF").transparent(.8),hcLight:"#292929"},d.localize(1642,"If set, color of double underlines for infos in the editor.")),e.editorHintForeground=(0,I.registerColor)("editorHint.foreground",{dark:k.Color.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hcDark:null,hcLight:null},d.localize(1643,"Foreground color of hint squigglies in the editor.")),e.editorHintBorder=(0,I.registerColor)("editorHint.border",{dark:null,light:null,hcDark:k.Color.fromHex("#eeeeee").transparent(.8),hcLight:"#292929"},d.localize(1644,"If set, color of double underlines for hints in the editor.")),e.editorActiveLinkForeground=(0,I.registerColor)("editorLink.activeForeground",{dark:"#4E94CE",light:k.Color.blue,hcDark:k.Color.cyan,hcLight:"#292929"},d.localize(1645,"Color of active links.")),e.editorSelectionBackground=(0,I.registerColor)("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hcDark:"#f3f518",hcLight:"#0F4A85"},d.localize(1646,"Color of the editor selection.")),e.editorSelectionForeground=(0,I.registerColor)("editor.selectionForeground",{light:null,dark:null,hcDark:"#000000",hcLight:k.Color.white},d.localize(1647,"Color of the selected text for high contrast.")),e.editorInactiveSelection=(0,I.registerColor)("editor.inactiveSelectionBackground",{light:(0,I.transparent)(e.editorSelectionBackground,.5),dark:(0,I.transparent)(e.editorSelectionBackground,.5),hcDark:(0,I.transparent)(e.editorSelectionBackground,.7),hcLight:(0,I.transparent)(e.editorSelectionBackground,.5)},d.localize(1648,"Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorSelectionHighlight=(0,I.registerColor)("editor.selectionHighlightBackground",{light:(0,I.lessProminent)(e.editorSelectionBackground,e.editorBackground,.3,.6),dark:(0,I.lessProminent)(e.editorSelectionBackground,e.editorBackground,.3,.6),hcDark:null,hcLight:null},d.localize(1649,"Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorSelectionHighlightBorder=(0,I.registerColor)("editor.selectionHighlightBorder",{light:null,dark:null,hcDark:E.activeContrastBorder,hcLight:E.activeContrastBorder},d.localize(1650,"Border color for regions with the same content as the selection.")),e.editorFindMatch=(0,I.registerColor)("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hcDark:null,hcLight:null},d.localize(1651,"Color of the current search match.")),e.editorFindMatchForeground=(0,I.registerColor)("editor.findMatchForeground",null,d.localize(1652,"Text color of the current search match.")),e.editorFindMatchHighlight=(0,I.registerColor)("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hcDark:null,hcLight:null},d.localize(1653,"Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorFindMatchHighlightForeground=(0,I.registerColor)("editor.findMatchHighlightForeground",null,d.localize(1654,"Foreground color of the other search matches."),!0),e.editorFindRangeHighlight=(0,I.registerColor)("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hcDark:null,hcLight:null},d.localize(1655,"Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorFindMatchBorder=(0,I.registerColor)("editor.findMatchBorder",{light:null,dark:null,hcDark:E.activeContrastBorder,hcLight:E.activeContrastBorder},d.localize(1656,"Border color of the current search match.")),e.editorFindMatchHighlightBorder=(0,I.registerColor)("editor.findMatchHighlightBorder",{light:null,dark:null,hcDark:E.activeContrastBorder,hcLight:E.activeContrastBorder},d.localize(1657,"Border color of the other search matches.")),e.editorFindRangeHighlightBorder=(0,I.registerColor)("editor.findRangeHighlightBorder",{dark:null,light:null,hcDark:(0,I.transparent)(E.activeContrastBorder,.4),hcLight:(0,I.transparent)(E.activeContrastBorder,.4)},d.localize(1658,"Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorHoverHighlight=(0,I.registerColor)("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hcDark:"#ADD6FF26",hcLight:null},d.localize(1659,"Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorHoverBackground=(0,I.registerColor)("editorHoverWidget.background",e.editorWidgetBackground,d.localize(1660,"Background color of the editor hover.")),e.editorHoverForeground=(0,I.registerColor)("editorHoverWidget.foreground",e.editorWidgetForeground,d.localize(1661,"Foreground color of the editor hover.")),e.editorHoverBorder=(0,I.registerColor)("editorHoverWidget.border",e.editorWidgetBorder,d.localize(1662,"Border color of the editor hover.")),e.editorHoverStatusBarBackground=(0,I.registerColor)("editorHoverWidget.statusBarBackground",{dark:(0,I.lighten)(e.editorHoverBackground,.2),light:(0,I.darken)(e.editorHoverBackground,.05),hcDark:e.editorWidgetBackground,hcLight:e.editorWidgetBackground},d.localize(1663,"Background color of the editor hover status bar.")),e.editorInlayHintForeground=(0,I.registerColor)("editorInlayHint.foreground",{dark:"#969696",light:"#969696",hcDark:k.Color.white,hcLight:k.Color.black},d.localize(1664,"Foreground color of inline hints")),e.editorInlayHintBackground=(0,I.registerColor)("editorInlayHint.background",{dark:(0,I.transparent)(y.badgeBackground,.1),light:(0,I.transparent)(y.badgeBackground,.1),hcDark:(0,I.transparent)(k.Color.white,.1),hcLight:(0,I.transparent)(y.badgeBackground,.1)},d.localize(1665,"Background color of inline hints")),e.editorInlayHintTypeForeground=(0,I.registerColor)("editorInlayHint.typeForeground",e.editorInlayHintForeground,d.localize(1666,"Foreground color of inline hints for types")),e.editorInlayHintTypeBackground=(0,I.registerColor)("editorInlayHint.typeBackground",e.editorInlayHintBackground,d.localize(1667,"Background color of inline hints for types")),e.editorInlayHintParameterForeground=(0,I.registerColor)("editorInlayHint.parameterForeground",e.editorInlayHintForeground,d.localize(1668,"Foreground color of inline hints for parameters")),e.editorInlayHintParameterBackground=(0,I.registerColor)("editorInlayHint.parameterBackground",e.editorInlayHintBackground,d.localize(1669,"Background color of inline hints for parameters")),e.editorLightBulbForeground=(0,I.registerColor)("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hcDark:"#FFCC00",hcLight:"#007ACC"},d.localize(1670,"The color used for the lightbulb actions icon.")),e.editorLightBulbAutoFixForeground=(0,I.registerColor)("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},d.localize(1671,"The color used for the lightbulb auto fix actions icon.")),e.editorLightBulbAiForeground=(0,I.registerColor)("editorLightBulbAi.foreground",e.editorLightBulbForeground,d.localize(1672,"The color used for the lightbulb AI icon.")),e.snippetTabstopHighlightBackground=(0,I.registerColor)("editor.snippetTabstopHighlightBackground",{dark:new k.Color(new k.RGBA(124,124,124,.3)),light:new k.Color(new k.RGBA(10,50,100,.2)),hcDark:new k.Color(new k.RGBA(124,124,124,.3)),hcLight:new k.Color(new k.RGBA(10,50,100,.2))},d.localize(1673,"Highlight background color of a snippet tabstop.")),e.snippetTabstopHighlightBorder=(0,I.registerColor)("editor.snippetTabstopHighlightBorder",null,d.localize(1674,"Highlight border color of a snippet tabstop.")),e.snippetFinalTabstopHighlightBackground=(0,I.registerColor)("editor.snippetFinalTabstopHighlightBackground",null,d.localize(1675,"Highlight background color of the final tabstop of a snippet.")),e.snippetFinalTabstopHighlightBorder=(0,I.registerColor)("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new k.Color(new k.RGBA(10,50,100,.5)),hcDark:"#525252",hcLight:"#292929"},d.localize(1676,"Highlight border color of the final tabstop of a snippet.")),e.defaultInsertColor=new k.Color(new k.RGBA(155,185,85,.2)),e.defaultRemoveColor=new k.Color(new k.RGBA(255,0,0,.2)),e.diffInserted=(0,I.registerColor)("diffEditor.insertedTextBackground",{dark:"#9ccc2c33",light:"#9ccc2c40",hcDark:null,hcLight:null},d.localize(1677,"Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),e.diffRemoved=(0,I.registerColor)("diffEditor.removedTextBackground",{dark:"#ff000033",light:"#ff000033",hcDark:null,hcLight:null},d.localize(1678,"Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),e.diffInsertedLine=(0,I.registerColor)("diffEditor.insertedLineBackground",{dark:e.defaultInsertColor,light:e.defaultInsertColor,hcDark:null,hcLight:null},d.localize(1679,"Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),e.diffRemovedLine=(0,I.registerColor)("diffEditor.removedLineBackground",{dark:e.defaultRemoveColor,light:e.defaultRemoveColor,hcDark:null,hcLight:null},d.localize(1680,"Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),e.diffInsertedLineGutter=(0,I.registerColor)("diffEditorGutter.insertedLineBackground",null,d.localize(1681,"Background color for the margin where lines got inserted.")),e.diffRemovedLineGutter=(0,I.registerColor)("diffEditorGutter.removedLineBackground",null,d.localize(1682,"Background color for the margin where lines got removed.")),e.diffOverviewRulerInserted=(0,I.registerColor)("diffEditorOverview.insertedForeground",null,d.localize(1683,"Diff overview ruler foreground for inserted content.")),e.diffOverviewRulerRemoved=(0,I.registerColor)("diffEditorOverview.removedForeground",null,d.localize(1684,"Diff overview ruler foreground for removed content.")),e.diffInsertedOutline=(0,I.registerColor)("diffEditor.insertedTextBorder",{dark:null,light:null,hcDark:"#33ff2eff",hcLight:"#374E06"},d.localize(1685,"Outline color for the text that got inserted.")),e.diffRemovedOutline=(0,I.registerColor)("diffEditor.removedTextBorder",{dark:null,light:null,hcDark:"#FF008F",hcLight:"#AD0707"},d.localize(1686,"Outline color for text that got removed.")),e.diffBorder=(0,I.registerColor)("diffEditor.border",{dark:null,light:null,hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1687,"Border color between the two text editors.")),e.diffDiagonalFill=(0,I.registerColor)("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hcDark:null,hcLight:null},d.localize(1688,"Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.")),e.diffUnchangedRegionBackground=(0,I.registerColor)("diffEditor.unchangedRegionBackground","sideBar.background",d.localize(1689,"The background color of unchanged blocks in the diff editor.")),e.diffUnchangedRegionForeground=(0,I.registerColor)("diffEditor.unchangedRegionForeground","foreground",d.localize(1690,"The foreground color of unchanged blocks in the diff editor.")),e.diffUnchangedTextBackground=(0,I.registerColor)("diffEditor.unchangedCodeBackground",{dark:"#74747429",light:"#b8b8b829",hcDark:null,hcLight:null},d.localize(1691,"The background color of unchanged code in the diff editor.")),e.widgetShadow=(0,I.registerColor)("widget.shadow",{dark:(0,I.transparent)(k.Color.black,.36),light:(0,I.transparent)(k.Color.black,.16),hcDark:null,hcLight:null},d.localize(1692,"Shadow color of widgets such as find/replace inside the editor.")),e.widgetBorder=(0,I.registerColor)("widget.border",{dark:null,light:null,hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1693,"Border color of widgets such as find/replace inside the editor.")),e.toolbarHoverBackground=(0,I.registerColor)("toolbar.hoverBackground",{dark:"#5a5d5e50",light:"#b8b8b850",hcDark:null,hcLight:null},d.localize(1694,"Toolbar background when hovering over actions using the mouse")),e.toolbarHoverOutline=(0,I.registerColor)("toolbar.hoverOutline",{dark:null,light:null,hcDark:E.activeContrastBorder,hcLight:E.activeContrastBorder},d.localize(1695,"Toolbar outline when hovering over actions using the mouse")),e.toolbarActiveBackground=(0,I.registerColor)("toolbar.activeBackground",{dark:(0,I.lighten)(e.toolbarHoverBackground,.1),light:(0,I.darken)(e.toolbarHoverBackground,.1),hcDark:null,hcLight:null},d.localize(1696,"Toolbar background when holding the mouse over actions")),e.breadcrumbsForeground=(0,I.registerColor)("breadcrumb.foreground",(0,I.transparent)(E.foreground,.8),d.localize(1697,"Color of focused breadcrumb items.")),e.breadcrumbsBackground=(0,I.registerColor)("breadcrumb.background",e.editorBackground,d.localize(1698,"Background color of breadcrumb items.")),e.breadcrumbsFocusForeground=(0,I.registerColor)("breadcrumb.focusForeground",{light:(0,I.darken)(E.foreground,.2),dark:(0,I.lighten)(E.foreground,.1),hcDark:(0,I.lighten)(E.foreground,.1),hcLight:(0,I.lighten)(E.foreground,.1)},d.localize(1699,"Color of focused breadcrumb items.")),e.breadcrumbsActiveSelectionForeground=(0,I.registerColor)("breadcrumb.activeSelectionForeground",{light:(0,I.darken)(E.foreground,.2),dark:(0,I.lighten)(E.foreground,.1),hcDark:(0,I.lighten)(E.foreground,.1),hcLight:(0,I.lighten)(E.foreground,.1)},d.localize(1700,"Color of selected breadcrumb items.")),e.breadcrumbsPickerBackground=(0,I.registerColor)("breadcrumbPicker.background",e.editorWidgetBackground,d.localize(1701,"Background color of breadcrumb item picker."));const m=.5,_=k.Color.fromHex("#40C8AE").transparent(m),b=k.Color.fromHex("#40A6FF").transparent(m),p=k.Color.fromHex("#606060").transparent(.4),n=.4,o=1;e.mergeCurrentHeaderBackground=(0,I.registerColor)("merge.currentHeaderBackground",{dark:_,light:_,hcDark:null,hcLight:null},d.localize(1702,"Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),e.mergeCurrentContentBackground=(0,I.registerColor)("merge.currentContentBackground",(0,I.transparent)(e.mergeCurrentHeaderBackground,n),d.localize(1703,"Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),e.mergeIncomingHeaderBackground=(0,I.registerColor)("merge.incomingHeaderBackground",{dark:b,light:b,hcDark:null,hcLight:null},d.localize(1704,"Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),e.mergeIncomingContentBackground=(0,I.registerColor)("merge.incomingContentBackground",(0,I.transparent)(e.mergeIncomingHeaderBackground,n),d.localize(1705,"Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),e.mergeCommonHeaderBackground=(0,I.registerColor)("merge.commonHeaderBackground",{dark:p,light:p,hcDark:null,hcLight:null},d.localize(1706,"Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),e.mergeCommonContentBackground=(0,I.registerColor)("merge.commonContentBackground",(0,I.transparent)(e.mergeCommonHeaderBackground,n),d.localize(1707,"Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0),e.mergeBorder=(0,I.registerColor)("merge.border",{dark:null,light:null,hcDark:"#C3DF6F",hcLight:"#007ACC"},d.localize(1708,"Border color on headers and the splitter in inline merge-conflicts.")),e.overviewRulerCurrentContentForeground=(0,I.registerColor)("editorOverviewRuler.currentContentForeground",{dark:(0,I.transparent)(e.mergeCurrentHeaderBackground,o),light:(0,I.transparent)(e.mergeCurrentHeaderBackground,o),hcDark:e.mergeBorder,hcLight:e.mergeBorder},d.localize(1709,"Current overview ruler foreground for inline merge-conflicts.")),e.overviewRulerIncomingContentForeground=(0,I.registerColor)("editorOverviewRuler.incomingContentForeground",{dark:(0,I.transparent)(e.mergeIncomingHeaderBackground,o),light:(0,I.transparent)(e.mergeIncomingHeaderBackground,o),hcDark:e.mergeBorder,hcLight:e.mergeBorder},d.localize(1710,"Incoming overview ruler foreground for inline merge-conflicts.")),e.overviewRulerCommonContentForeground=(0,I.registerColor)("editorOverviewRuler.commonContentForeground",{dark:(0,I.transparent)(e.mergeCommonHeaderBackground,o),light:(0,I.transparent)(e.mergeCommonHeaderBackground,o),hcDark:e.mergeBorder,hcLight:e.mergeBorder},d.localize(1711,"Common ancestor overview ruler foreground for inline merge-conflicts.")),e.overviewRulerFindMatchForeground=(0,I.registerColor)("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hcDark:"#AB5A00",hcLight:"#AB5A00"},d.localize(1712,"Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations."),!0),e.overviewRulerSelectionHighlightForeground=(0,I.registerColor)("editorOverviewRuler.selectionHighlightForeground","#A0A0A0CC",d.localize(1713,"Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."),!0),e.problemsErrorIconForeground=(0,I.registerColor)("problemsErrorIcon.foreground",e.editorErrorForeground,d.localize(1714,"The color used for the problems error icon.")),e.problemsWarningIconForeground=(0,I.registerColor)("problemsWarningIcon.foreground",e.editorWarningForeground,d.localize(1715,"The color used for the problems warning icon.")),e.problemsInfoIconForeground=(0,I.registerColor)("problemsInfoIcon.foreground",e.editorInfoForeground,d.localize(1716,"The color used for the problems info icon."))}),define(ne[412],se([1,0,3,33,89,123,138]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.keybindingLabelBottomBorder=e.keybindingLabelBorder=e.keybindingLabelForeground=e.keybindingLabelBackground=e.checkboxSelectBorder=e.checkboxBorder=e.checkboxForeground=e.checkboxSelectBackground=e.checkboxBackground=e.radioInactiveHoverBackground=e.radioInactiveBorder=e.radioInactiveBackground=e.radioInactiveForeground=e.radioActiveBorder=e.radioActiveBackground=e.radioActiveForeground=e.buttonSecondaryHoverBackground=e.buttonSecondaryBackground=e.buttonSecondaryForeground=e.buttonBorder=e.buttonHoverBackground=e.buttonBackground=e.buttonSeparator=e.buttonForeground=e.selectBorder=e.selectForeground=e.selectListBackground=e.selectBackground=e.inputValidationErrorBorder=e.inputValidationErrorForeground=e.inputValidationErrorBackground=e.inputValidationWarningBorder=e.inputValidationWarningForeground=e.inputValidationWarningBackground=e.inputValidationInfoBorder=e.inputValidationInfoForeground=e.inputValidationInfoBackground=e.inputPlaceholderForeground=e.inputActiveOptionForeground=e.inputActiveOptionBackground=e.inputActiveOptionHoverBackground=e.inputActiveOptionBorder=e.inputBorder=e.inputForeground=e.inputBackground=void 0,e.inputBackground=(0,I.registerColor)("input.background",{dark:"#3C3C3C",light:k.Color.white,hcDark:k.Color.black,hcLight:k.Color.white},d.localize(1717,"Input box background.")),e.inputForeground=(0,I.registerColor)("input.foreground",E.foreground,d.localize(1718,"Input box foreground.")),e.inputBorder=(0,I.registerColor)("input.border",{dark:null,light:null,hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1719,"Input box border.")),e.inputActiveOptionBorder=(0,I.registerColor)("inputOption.activeBorder",{dark:"#007ACC",light:"#007ACC",hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1720,"Border color of activated options in input fields.")),e.inputActiveOptionHoverBackground=(0,I.registerColor)("inputOption.hoverBackground",{dark:"#5a5d5e80",light:"#b8b8b850",hcDark:null,hcLight:null},d.localize(1721,"Background color of activated options in input fields.")),e.inputActiveOptionBackground=(0,I.registerColor)("inputOption.activeBackground",{dark:(0,I.transparent)(E.focusBorder,.4),light:(0,I.transparent)(E.focusBorder,.2),hcDark:k.Color.transparent,hcLight:k.Color.transparent},d.localize(1722,"Background hover color of options in input fields.")),e.inputActiveOptionForeground=(0,I.registerColor)("inputOption.activeForeground",{dark:k.Color.white,light:k.Color.black,hcDark:E.foreground,hcLight:E.foreground},d.localize(1723,"Foreground color of activated options in input fields.")),e.inputPlaceholderForeground=(0,I.registerColor)("input.placeholderForeground",{light:(0,I.transparent)(E.foreground,.5),dark:(0,I.transparent)(E.foreground,.5),hcDark:(0,I.transparent)(E.foreground,.7),hcLight:(0,I.transparent)(E.foreground,.7)},d.localize(1724,"Input box foreground color for placeholder text.")),e.inputValidationInfoBackground=(0,I.registerColor)("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hcDark:k.Color.black,hcLight:k.Color.white},d.localize(1725,"Input validation background color for information severity.")),e.inputValidationInfoForeground=(0,I.registerColor)("inputValidation.infoForeground",{dark:null,light:null,hcDark:null,hcLight:E.foreground},d.localize(1726,"Input validation foreground color for information severity.")),e.inputValidationInfoBorder=(0,I.registerColor)("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1727,"Input validation border color for information severity.")),e.inputValidationWarningBackground=(0,I.registerColor)("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hcDark:k.Color.black,hcLight:k.Color.white},d.localize(1728,"Input validation background color for warning severity.")),e.inputValidationWarningForeground=(0,I.registerColor)("inputValidation.warningForeground",{dark:null,light:null,hcDark:null,hcLight:E.foreground},d.localize(1729,"Input validation foreground color for warning severity.")),e.inputValidationWarningBorder=(0,I.registerColor)("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1730,"Input validation border color for warning severity.")),e.inputValidationErrorBackground=(0,I.registerColor)("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hcDark:k.Color.black,hcLight:k.Color.white},d.localize(1731,"Input validation background color for error severity.")),e.inputValidationErrorForeground=(0,I.registerColor)("inputValidation.errorForeground",{dark:null,light:null,hcDark:null,hcLight:E.foreground},d.localize(1732,"Input validation foreground color for error severity.")),e.inputValidationErrorBorder=(0,I.registerColor)("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1733,"Input validation border color for error severity.")),e.selectBackground=(0,I.registerColor)("dropdown.background",{dark:"#3C3C3C",light:k.Color.white,hcDark:k.Color.black,hcLight:k.Color.white},d.localize(1734,"Dropdown background.")),e.selectListBackground=(0,I.registerColor)("dropdown.listBackground",{dark:null,light:null,hcDark:k.Color.black,hcLight:k.Color.white},d.localize(1735,"Dropdown list background.")),e.selectForeground=(0,I.registerColor)("dropdown.foreground",{dark:"#F0F0F0",light:E.foreground,hcDark:k.Color.white,hcLight:E.foreground},d.localize(1736,"Dropdown foreground.")),e.selectBorder=(0,I.registerColor)("dropdown.border",{dark:e.selectBackground,light:"#CECECE",hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1737,"Dropdown border.")),e.buttonForeground=(0,I.registerColor)("button.foreground",k.Color.white,d.localize(1738,"Button foreground color.")),e.buttonSeparator=(0,I.registerColor)("button.separator",(0,I.transparent)(e.buttonForeground,.4),d.localize(1739,"Button separator color.")),e.buttonBackground=(0,I.registerColor)("button.background",{dark:"#0E639C",light:"#007ACC",hcDark:null,hcLight:"#0F4A85"},d.localize(1740,"Button background color.")),e.buttonHoverBackground=(0,I.registerColor)("button.hoverBackground",{dark:(0,I.lighten)(e.buttonBackground,.2),light:(0,I.darken)(e.buttonBackground,.2),hcDark:e.buttonBackground,hcLight:e.buttonBackground},d.localize(1741,"Button background color when hovering.")),e.buttonBorder=(0,I.registerColor)("button.border",E.contrastBorder,d.localize(1742,"Button border color.")),e.buttonSecondaryForeground=(0,I.registerColor)("button.secondaryForeground",{dark:k.Color.white,light:k.Color.white,hcDark:k.Color.white,hcLight:E.foreground},d.localize(1743,"Secondary button foreground color.")),e.buttonSecondaryBackground=(0,I.registerColor)("button.secondaryBackground",{dark:"#3A3D41",light:"#5F6A79",hcDark:null,hcLight:k.Color.white},d.localize(1744,"Secondary button background color.")),e.buttonSecondaryHoverBackground=(0,I.registerColor)("button.secondaryHoverBackground",{dark:(0,I.lighten)(e.buttonSecondaryBackground,.2),light:(0,I.darken)(e.buttonSecondaryBackground,.2),hcDark:null,hcLight:null},d.localize(1745,"Secondary button background color when hovering.")),e.radioActiveForeground=(0,I.registerColor)("radio.activeForeground",e.inputActiveOptionForeground,d.localize(1746,"Foreground color of active radio option.")),e.radioActiveBackground=(0,I.registerColor)("radio.activeBackground",e.inputActiveOptionBackground,d.localize(1747,"Background color of active radio option.")),e.radioActiveBorder=(0,I.registerColor)("radio.activeBorder",e.inputActiveOptionBorder,d.localize(1748,"Border color of the active radio option.")),e.radioInactiveForeground=(0,I.registerColor)("radio.inactiveForeground",null,d.localize(1749,"Foreground color of inactive radio option.")),e.radioInactiveBackground=(0,I.registerColor)("radio.inactiveBackground",null,d.localize(1750,"Background color of inactive radio option.")),e.radioInactiveBorder=(0,I.registerColor)("radio.inactiveBorder",{light:(0,I.transparent)(e.radioActiveForeground,.2),dark:(0,I.transparent)(e.radioActiveForeground,.2),hcDark:(0,I.transparent)(e.radioActiveForeground,.4),hcLight:(0,I.transparent)(e.radioActiveForeground,.2)},d.localize(1751,"Border color of the inactive radio option.")),e.radioInactiveHoverBackground=(0,I.registerColor)("radio.inactiveHoverBackground",e.inputActiveOptionHoverBackground,d.localize(1752,"Background color of inactive active radio option when hovering.")),e.checkboxBackground=(0,I.registerColor)("checkbox.background",e.selectBackground,d.localize(1753,"Background color of checkbox widget.")),e.checkboxSelectBackground=(0,I.registerColor)("checkbox.selectBackground",y.editorWidgetBackground,d.localize(1754,"Background color of checkbox widget when the element it's in is selected.")),e.checkboxForeground=(0,I.registerColor)("checkbox.foreground",e.selectForeground,d.localize(1755,"Foreground color of checkbox widget.")),e.checkboxBorder=(0,I.registerColor)("checkbox.border",e.selectBorder,d.localize(1756,"Border color of checkbox widget.")),e.checkboxSelectBorder=(0,I.registerColor)("checkbox.selectBorder",E.iconForeground,d.localize(1757,"Border color of checkbox widget when the element it's in is selected.")),e.keybindingLabelBackground=(0,I.registerColor)("keybindingLabel.background",{dark:new k.Color(new k.RGBA(128,128,128,.17)),light:new k.Color(new k.RGBA(221,221,221,.4)),hcDark:k.Color.transparent,hcLight:k.Color.transparent},d.localize(1758,"Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.")),e.keybindingLabelForeground=(0,I.registerColor)("keybindingLabel.foreground",{dark:k.Color.fromHex("#CCCCCC"),light:k.Color.fromHex("#555555"),hcDark:k.Color.white,hcLight:E.foreground},d.localize(1759,"Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.")),e.keybindingLabelBorder=(0,I.registerColor)("keybindingLabel.border",{dark:new k.Color(new k.RGBA(51,51,51,.6)),light:new k.Color(new k.RGBA(204,204,204,.4)),hcDark:new k.Color(new k.RGBA(111,195,223)),hcLight:E.contrastBorder},d.localize(1760,"Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.")),e.keybindingLabelBottomBorder=(0,I.registerColor)("keybindingLabel.bottomBorder",{dark:new k.Color(new k.RGBA(68,68,68,.6)),light:new k.Color(new k.RGBA(187,187,187,.4)),hcDark:new k.Color(new k.RGBA(111,195,223)),hcLight:E.foreground},d.localize(1761,"Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut."))}),define(ne[279],se([1,0,3,33,89,123,138]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.editorActionListFocusBackground=e.editorActionListFocusForeground=e.editorActionListForeground=e.editorActionListBackground=e.tableOddRowsBackgroundColor=e.tableColumnsBorder=e.treeInactiveIndentGuidesStroke=e.treeIndentGuidesStroke=e.listDeemphasizedForeground=e.listFilterMatchHighlightBorder=e.listFilterMatchHighlight=e.listFilterWidgetShadow=e.listFilterWidgetNoMatchesOutline=e.listFilterWidgetOutline=e.listFilterWidgetBackground=e.listWarningForeground=e.listErrorForeground=e.listInvalidItemForeground=e.listFocusHighlightForeground=e.listHighlightForeground=e.listDropBetweenBackground=e.listDropOverBackground=e.listHoverForeground=e.listHoverBackground=e.listInactiveFocusOutline=e.listInactiveFocusBackground=e.listInactiveSelectionIconForeground=e.listInactiveSelectionForeground=e.listInactiveSelectionBackground=e.listActiveSelectionIconForeground=e.listActiveSelectionForeground=e.listActiveSelectionBackground=e.listFocusAndSelectionOutline=e.listFocusOutline=e.listFocusForeground=e.listFocusBackground=void 0,e.listFocusBackground=(0,I.registerColor)("list.focusBackground",null,d.localize(1762,"List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),e.listFocusForeground=(0,I.registerColor)("list.focusForeground",null,d.localize(1763,"List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),e.listFocusOutline=(0,I.registerColor)("list.focusOutline",{dark:E.focusBorder,light:E.focusBorder,hcDark:E.activeContrastBorder,hcLight:E.activeContrastBorder},d.localize(1764,"List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),e.listFocusAndSelectionOutline=(0,I.registerColor)("list.focusAndSelectionOutline",null,d.localize(1765,"List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.")),e.listActiveSelectionBackground=(0,I.registerColor)("list.activeSelectionBackground",{dark:"#04395E",light:"#0060C0",hcDark:null,hcLight:k.Color.fromHex("#0F4A85").transparent(.1)},d.localize(1766,"List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),e.listActiveSelectionForeground=(0,I.registerColor)("list.activeSelectionForeground",{dark:k.Color.white,light:k.Color.white,hcDark:null,hcLight:null},d.localize(1767,"List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),e.listActiveSelectionIconForeground=(0,I.registerColor)("list.activeSelectionIconForeground",null,d.localize(1768,"List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),e.listInactiveSelectionBackground=(0,I.registerColor)("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hcDark:null,hcLight:k.Color.fromHex("#0F4A85").transparent(.1)},d.localize(1769,"List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),e.listInactiveSelectionForeground=(0,I.registerColor)("list.inactiveSelectionForeground",null,d.localize(1770,"List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),e.listInactiveSelectionIconForeground=(0,I.registerColor)("list.inactiveSelectionIconForeground",null,d.localize(1771,"List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),e.listInactiveFocusBackground=(0,I.registerColor)("list.inactiveFocusBackground",null,d.localize(1772,"List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),e.listInactiveFocusOutline=(0,I.registerColor)("list.inactiveFocusOutline",null,d.localize(1773,"List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),e.listHoverBackground=(0,I.registerColor)("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:k.Color.white.transparent(.1),hcLight:k.Color.fromHex("#0F4A85").transparent(.1)},d.localize(1774,"List/Tree background when hovering over items using the mouse.")),e.listHoverForeground=(0,I.registerColor)("list.hoverForeground",null,d.localize(1775,"List/Tree foreground when hovering over items using the mouse.")),e.listDropOverBackground=(0,I.registerColor)("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hcDark:null,hcLight:null},d.localize(1776,"List/Tree drag and drop background when moving items over other items when using the mouse.")),e.listDropBetweenBackground=(0,I.registerColor)("list.dropBetweenBackground",{dark:E.iconForeground,light:E.iconForeground,hcDark:null,hcLight:null},d.localize(1777,"List/Tree drag and drop border color when moving items between items when using the mouse.")),e.listHighlightForeground=(0,I.registerColor)("list.highlightForeground",{dark:"#2AAAFF",light:"#0066BF",hcDark:E.focusBorder,hcLight:E.focusBorder},d.localize(1778,"List/Tree foreground color of the match highlights when searching inside the list/tree.")),e.listFocusHighlightForeground=(0,I.registerColor)("list.focusHighlightForeground",{dark:e.listHighlightForeground,light:(0,I.ifDefinedThenElse)(e.listActiveSelectionBackground,e.listHighlightForeground,"#BBE7FF"),hcDark:e.listHighlightForeground,hcLight:e.listHighlightForeground},d.localize(1779,"List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree.")),e.listInvalidItemForeground=(0,I.registerColor)("list.invalidItemForeground",{dark:"#B89500",light:"#B89500",hcDark:"#B89500",hcLight:"#B5200D"},d.localize(1780,"List/Tree foreground color for invalid items, for example an unresolved root in explorer.")),e.listErrorForeground=(0,I.registerColor)("list.errorForeground",{dark:"#F88070",light:"#B01011",hcDark:null,hcLight:null},d.localize(1781,"Foreground color of list items containing errors.")),e.listWarningForeground=(0,I.registerColor)("list.warningForeground",{dark:"#CCA700",light:"#855F00",hcDark:null,hcLight:null},d.localize(1782,"Foreground color of list items containing warnings.")),e.listFilterWidgetBackground=(0,I.registerColor)("listFilterWidget.background",{light:(0,I.darken)(y.editorWidgetBackground,0),dark:(0,I.lighten)(y.editorWidgetBackground,0),hcDark:y.editorWidgetBackground,hcLight:y.editorWidgetBackground},d.localize(1783,"Background color of the type filter widget in lists and trees.")),e.listFilterWidgetOutline=(0,I.registerColor)("listFilterWidget.outline",{dark:k.Color.transparent,light:k.Color.transparent,hcDark:"#f38518",hcLight:"#007ACC"},d.localize(1784,"Outline color of the type filter widget in lists and trees.")),e.listFilterWidgetNoMatchesOutline=(0,I.registerColor)("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hcDark:E.contrastBorder,hcLight:E.contrastBorder},d.localize(1785,"Outline color of the type filter widget in lists and trees, when there are no matches.")),e.listFilterWidgetShadow=(0,I.registerColor)("listFilterWidget.shadow",y.widgetShadow,d.localize(1786,"Shadow color of the type filter widget in lists and trees.")),e.listFilterMatchHighlight=(0,I.registerColor)("list.filterMatchBackground",{dark:y.editorFindMatchHighlight,light:y.editorFindMatchHighlight,hcDark:null,hcLight:null},d.localize(1787,"Background color of the filtered match.")),e.listFilterMatchHighlightBorder=(0,I.registerColor)("list.filterMatchBorder",{dark:y.editorFindMatchHighlightBorder,light:y.editorFindMatchHighlightBorder,hcDark:E.contrastBorder,hcLight:E.activeContrastBorder},d.localize(1788,"Border color of the filtered match.")),e.listDeemphasizedForeground=(0,I.registerColor)("list.deemphasizedForeground",{dark:"#8C8C8C",light:"#8E8E90",hcDark:"#A7A8A9",hcLight:"#666666"},d.localize(1789,"List/Tree foreground color for items that are deemphasized.")),e.treeIndentGuidesStroke=(0,I.registerColor)("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hcDark:"#a9a9a9",hcLight:"#a5a5a5"},d.localize(1790,"Tree stroke color for the indentation guides.")),e.treeInactiveIndentGuidesStroke=(0,I.registerColor)("tree.inactiveIndentGuidesStroke",(0,I.transparent)(e.treeIndentGuidesStroke,.4),d.localize(1791,"Tree stroke color for the indentation guides that are not active.")),e.tableColumnsBorder=(0,I.registerColor)("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hcDark:null,hcLight:null},d.localize(1792,"Table border color between columns.")),e.tableOddRowsBackgroundColor=(0,I.registerColor)("tree.tableOddRowsBackground",{dark:(0,I.transparent)(E.foreground,.04),light:(0,I.transparent)(E.foreground,.04),hcDark:null,hcLight:null},d.localize(1793,"Background color for odd table rows.")),e.editorActionListBackground=(0,I.registerColor)("editorActionList.background",y.editorWidgetBackground,d.localize(1794,"Action List background color.")),e.editorActionListForeground=(0,I.registerColor)("editorActionList.foreground",y.editorWidgetForeground,d.localize(1795,"Action List foreground color.")),e.editorActionListFocusForeground=(0,I.registerColor)("editorActionList.focusForeground",e.listActiveSelectionForeground,d.localize(1796,"Action List foreground color for the focused item.")),e.editorActionListFocusBackground=(0,I.registerColor)("editorActionList.focusBackground",e.listActiveSelectionBackground,d.localize(1797,"Action List background color for the focused item."))}),define(ne[751],se([1,0,3,89,123,412,279]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.menuSeparatorBackground=e.menuSelectionBorder=e.menuSelectionBackground=e.menuSelectionForeground=e.menuBackground=e.menuForeground=e.menuBorder=void 0,e.menuBorder=(0,k.registerColor)("menu.border",{dark:null,light:null,hcDark:I.contrastBorder,hcLight:I.contrastBorder},d.localize(1798,"Border color of menus.")),e.menuForeground=(0,k.registerColor)("menu.foreground",E.selectForeground,d.localize(1799,"Foreground color of menu items.")),e.menuBackground=(0,k.registerColor)("menu.background",E.selectBackground,d.localize(1800,"Background color of menu items.")),e.menuSelectionForeground=(0,k.registerColor)("menu.selectionForeground",y.listActiveSelectionForeground,d.localize(1801,"Foreground color of the selected menu item in menus.")),e.menuSelectionBackground=(0,k.registerColor)("menu.selectionBackground",y.listActiveSelectionBackground,d.localize(1802,"Background color of the selected menu item in menus.")),e.menuSelectionBorder=(0,k.registerColor)("menu.selectionBorder",{dark:null,light:null,hcDark:I.activeContrastBorder,hcLight:I.activeContrastBorder},d.localize(1803,"Border color of the selected menu item in menus.")),e.menuSeparatorBackground=(0,k.registerColor)("menu.separatorBackground",{dark:"#606060",light:"#D4D4D4",hcDark:I.contrastBorder,hcLight:I.contrastBorder},d.localize(1804,"Color of a separator menu item in menus."))}),define(ne[413],se([1,0,3,33,89,138,278]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.minimapSliderActiveBackground=e.minimapSliderHoverBackground=e.minimapSliderBackground=e.minimapForegroundOpacity=e.minimapBackground=e.minimapError=e.minimapWarning=e.minimapInfo=e.minimapSelection=e.minimapSelectionOccurrenceHighlight=e.minimapFindMatch=void 0,e.minimapFindMatch=(0,I.registerColor)("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hcDark:"#AB5A00",hcLight:"#0F4A85"},d.localize(1805,"Minimap marker color for find matches."),!0),e.minimapSelectionOccurrenceHighlight=(0,I.registerColor)("minimap.selectionOccurrenceHighlight",{light:"#c9c9c9",dark:"#676767",hcDark:"#ffffff",hcLight:"#0F4A85"},d.localize(1806,"Minimap marker color for repeating editor selections."),!0),e.minimapSelection=(0,I.registerColor)("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hcDark:"#ffffff",hcLight:"#0F4A85"},d.localize(1807,"Minimap marker color for the editor selection."),!0),e.minimapInfo=(0,I.registerColor)("minimap.infoHighlight",{dark:E.editorInfoForeground,light:E.editorInfoForeground,hcDark:E.editorInfoBorder,hcLight:E.editorInfoBorder},d.localize(1808,"Minimap marker color for infos.")),e.minimapWarning=(0,I.registerColor)("minimap.warningHighlight",{dark:E.editorWarningForeground,light:E.editorWarningForeground,hcDark:E.editorWarningBorder,hcLight:E.editorWarningBorder},d.localize(1809,"Minimap marker color for warnings.")),e.minimapError=(0,I.registerColor)("minimap.errorHighlight",{dark:new k.Color(new k.RGBA(255,18,18,.7)),light:new k.Color(new k.RGBA(255,18,18,.7)),hcDark:new k.Color(new k.RGBA(255,50,50,1)),hcLight:"#B5200D"},d.localize(1810,"Minimap marker color for errors.")),e.minimapBackground=(0,I.registerColor)("minimap.background",null,d.localize(1811,"Minimap background color.")),e.minimapForegroundOpacity=(0,I.registerColor)("minimap.foregroundOpacity",k.Color.fromHex("#000f"),d.localize(1812,'Opacity of foreground elements rendered in the minimap. For example, "#000000c0" will render the elements with 75% opacity.')),e.minimapSliderBackground=(0,I.registerColor)("minimapSlider.background",(0,I.transparent)(y.scrollbarSliderBackground,.5),d.localize(1813,"Minimap slider background color.")),e.minimapSliderHoverBackground=(0,I.registerColor)("minimapSlider.hoverBackground",(0,I.transparent)(y.scrollbarSliderHoverBackground,.5),d.localize(1814,"Minimap slider background color when hovering.")),e.minimapSliderActiveBackground=(0,I.registerColor)("minimapSlider.activeBackground",(0,I.transparent)(y.scrollbarSliderActiveBackground,.5),d.localize(1815,"Minimap slider background color when clicked on."))}),define(ne[752],se([1,0,3,89,123,138,413]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.chartsPurple=e.chartsGreen=e.chartsOrange=e.chartsYellow=e.chartsBlue=e.chartsRed=e.chartsLines=e.chartsForeground=void 0,e.chartsForeground=(0,k.registerColor)("charts.foreground",I.foreground,d.localize(1616,"The foreground color used in charts.")),e.chartsLines=(0,k.registerColor)("charts.lines",(0,k.transparent)(I.foreground,.5),d.localize(1617,"The color used for horizontal lines in charts.")),e.chartsRed=(0,k.registerColor)("charts.red",E.editorErrorForeground,d.localize(1618,"The red color used in chart visualizations.")),e.chartsBlue=(0,k.registerColor)("charts.blue",E.editorInfoForeground,d.localize(1619,"The blue color used in chart visualizations.")),e.chartsYellow=(0,k.registerColor)("charts.yellow",E.editorWarningForeground,d.localize(1620,"The yellow color used in chart visualizations.")),e.chartsOrange=(0,k.registerColor)("charts.orange",y.minimapFindMatch,d.localize(1621,"The orange color used in chart visualizations.")),e.chartsGreen=(0,k.registerColor)("charts.green",{dark:"#89D185",light:"#388A34",hcDark:"#89D185",hcLight:"#374e06"},d.localize(1622,"The green color used in chart visualizations.")),e.chartsPurple=(0,k.registerColor)("charts.purple",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},d.localize(1623,"The purple color used in chart visualizations."))}),define(ne[753],se([1,0,3,33,89,138,279]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.quickInputListFocusBackground=e.quickInputListFocusIconForeground=e.quickInputListFocusForeground=e._deprecatedQuickInputListFocusBackground=e.pickerGroupBorder=e.pickerGroupForeground=e.quickInputTitleBackground=e.quickInputForeground=e.quickInputBackground=void 0,e.quickInputBackground=(0,I.registerColor)("quickInput.background",E.editorWidgetBackground,d.localize(1824,"Quick picker background color. The quick picker widget is the container for pickers like the command palette.")),e.quickInputForeground=(0,I.registerColor)("quickInput.foreground",E.editorWidgetForeground,d.localize(1825,"Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.")),e.quickInputTitleBackground=(0,I.registerColor)("quickInputTitle.background",{dark:new k.Color(new k.RGBA(255,255,255,.105)),light:new k.Color(new k.RGBA(0,0,0,.06)),hcDark:"#000000",hcLight:k.Color.white},d.localize(1826,"Quick picker title background color. The quick picker widget is the container for pickers like the command palette.")),e.pickerGroupForeground=(0,I.registerColor)("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hcDark:k.Color.white,hcLight:"#0F4A85"},d.localize(1827,"Quick picker color for grouping labels.")),e.pickerGroupBorder=(0,I.registerColor)("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hcDark:k.Color.white,hcLight:"#0F4A85"},d.localize(1828,"Quick picker color for grouping borders.")),e._deprecatedQuickInputListFocusBackground=(0,I.registerColor)("quickInput.list.focusBackground",null,"",void 0,d.localize(1829,"Please use quickInputList.focusBackground instead")),e.quickInputListFocusForeground=(0,I.registerColor)("quickInputList.focusForeground",y.listActiveSelectionForeground,d.localize(1830,"Quick picker foreground color for the focused item.")),e.quickInputListFocusIconForeground=(0,I.registerColor)("quickInputList.focusIconForeground",y.listActiveSelectionIconForeground,d.localize(1831,"Quick picker icon foreground color for the focused item.")),e.quickInputListFocusBackground=(0,I.registerColor)("quickInputList.focusBackground",{dark:(0,I.oneOf)(e._deprecatedQuickInputListFocusBackground,y.listActiveSelectionBackground),light:(0,I.oneOf)(e._deprecatedQuickInputListFocusBackground,y.listActiveSelectionBackground),hcDark:null,hcLight:null},d.localize(1832,"Quick picker background color for the focused item."))}),define(ne[754],se([1,0,3,89,123,138]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.searchEditorFindMatchBorder=e.searchEditorFindMatch=e.searchResultsInfoForeground=void 0,e.searchResultsInfoForeground=(0,k.registerColor)("search.resultsInfoForeground",{light:I.foreground,dark:(0,k.transparent)(I.foreground,.65),hcDark:I.foreground,hcLight:I.foreground},d.localize(1833,"Color of the text in the search viewlet's completion message.")),e.searchEditorFindMatch=(0,k.registerColor)("searchEditor.findMatchBackground",{light:(0,k.transparent)(E.editorFindMatchHighlight,.66),dark:(0,k.transparent)(E.editorFindMatchHighlight,.66),hcDark:E.editorFindMatchHighlight,hcLight:E.editorFindMatchHighlight},d.localize(1834,"Color of the Search Editor query matches.")),e.searchEditorFindMatchBorder=(0,k.registerColor)("searchEditor.findMatchBorder",{light:(0,k.transparent)(E.editorFindMatchHighlightBorder,.66),dark:(0,k.transparent)(E.editorFindMatchHighlightBorder,.66),hcDark:E.editorFindMatchHighlightBorder,hcLight:E.editorFindMatchHighlightBorder},d.localize(1835,"Border color of the Search Editor query matches."))});var ci=this&&this.__createBinding||(Object.create?function(oe,e,d,k){k===void 0&&(k=d);var I=Object.getOwnPropertyDescriptor(e,d);(!I||("get"in I?!e.__esModule:I.writable||I.configurable))&&(I={enumerable:!0,get:function(){return e[d]}}),Object.defineProperty(oe,k,I)}:function(oe,e,d,k){k===void 0&&(k=d),oe[k]=e[d]}),Lt=this&&this.__exportStar||function(oe,e){for(var d in oe)d!=="default"&&!Object.prototype.hasOwnProperty.call(e,d)&&ci(e,oe,d)};define(ne[32],se([1,0,89,123,752,138,412,279,751,413,278,753,754]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),Lt(d,e),Lt(k,e),Lt(I,e),Lt(E,e),Lt(y,e),Lt(m,e),Lt(_,e),Lt(b,e),Lt(p,e),Lt(n,e),Lt(o,e)}),define(ne[185],se([1,0,5,172,77,14,2,32]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DynamicCssRules=e.GlobalEditorPointerMoveMonitor=e.EditorPointerEventFactory=e.EditorMouseEventFactory=e.EditorMouseEvent=e.CoordinatesRelativeToEditor=e.EditorPagePosition=e.ClientCoordinates=e.PageCoordinates=void 0,e.createEditorPagePosition=o,e.createCoordinatesRelativeToEditor=t;class _{constructor(C,f){this.x=C,this.y=f,this._pageCoordinatesBrand=void 0}toClientCoordinates(C){return new b(this.x-C.scrollX,this.y-C.scrollY)}}e.PageCoordinates=_;class b{constructor(C,f){this.clientX=C,this.clientY=f,this._clientCoordinatesBrand=void 0}toPageCoordinates(C){return new _(this.clientX+C.scrollX,this.clientY+C.scrollY)}}e.ClientCoordinates=b;class p{constructor(C,f,h,v){this.x=C,this.y=f,this.width=h,this.height=v,this._editorPagePositionBrand=void 0}}e.EditorPagePosition=p;class n{constructor(C,f){this.x=C,this.y=f,this._positionRelativeToEditorBrand=void 0}}e.CoordinatesRelativeToEditor=n;function o(u){const C=d.getDomNodePagePosition(u);return new p(C.left,C.top,C.width,C.height)}function t(u,C,f){const h=C.width/u.offsetWidth,v=C.height/u.offsetHeight,w=(f.x-C.x)/h,S=(f.y-C.y)/v;return new n(w,S)}class i extends I.StandardMouseEvent{constructor(C,f,h){super(d.getWindow(h),C),this._editorMouseEventBrand=void 0,this.isFromPointerCapture=f,this.pos=new _(this.posx,this.posy),this.editorPos=o(h),this.relativePos=t(h,this.editorPos,this.pos)}}e.EditorMouseEvent=i;class s{constructor(C){this._editorViewDomNode=C}_create(C){return new i(C,!1,this._editorViewDomNode)}onContextMenu(C,f){return d.addDisposableListener(C,"contextmenu",h=>{f(this._create(h))})}onMouseUp(C,f){return d.addDisposableListener(C,"mouseup",h=>{f(this._create(h))})}onMouseDown(C,f){return d.addDisposableListener(C,d.EventType.MOUSE_DOWN,h=>{f(this._create(h))})}onPointerDown(C,f){return d.addDisposableListener(C,d.EventType.POINTER_DOWN,h=>{f(this._create(h),h.pointerId)})}onMouseLeave(C,f){return d.addDisposableListener(C,d.EventType.MOUSE_LEAVE,h=>{f(this._create(h))})}onMouseMove(C,f){return d.addDisposableListener(C,"mousemove",h=>f(this._create(h)))}}e.EditorMouseEventFactory=s;class g{constructor(C){this._editorViewDomNode=C}_create(C){return new i(C,!1,this._editorViewDomNode)}onPointerUp(C,f){return d.addDisposableListener(C,"pointerup",h=>{f(this._create(h))})}onPointerDown(C,f){return d.addDisposableListener(C,d.EventType.POINTER_DOWN,h=>{f(this._create(h),h.pointerId)})}onPointerLeave(C,f){return d.addDisposableListener(C,d.EventType.POINTER_LEAVE,h=>{f(this._create(h))})}onPointerMove(C,f){return d.addDisposableListener(C,"pointermove",h=>f(this._create(h)))}}e.EditorPointerEventFactory=g;class c extends y.Disposable{constructor(C){super(),this._editorViewDomNode=C,this._globalPointerMoveMonitor=this._register(new k.GlobalPointerMoveMonitor),this._keydownListener=null}startMonitoring(C,f,h,v,w){this._keydownListener=d.addStandardDisposableListener(C.ownerDocument,"keydown",S=>{S.toKeyCodeChord().isModifierKey()||this._globalPointerMoveMonitor.stopMonitoring(!0,S.browserEvent)},!0),this._globalPointerMoveMonitor.startMonitoring(C,f,h,S=>{v(new i(S,!0,this._editorViewDomNode))},S=>{this._keydownListener.dispose(),w(S)})}stopMonitoring(){this._globalPointerMoveMonitor.stopMonitoring(!0)}}e.GlobalEditorPointerMoveMonitor=c;class l{static{this._idPool=0}constructor(C){this._editor=C,this._instanceId=++l._idPool,this._counter=0,this._rules=new Map,this._garbageCollectionScheduler=new E.RunOnceScheduler(()=>this.garbageCollect(),1e3)}createClassNameRef(C){const f=this.getOrCreateRule(C);return f.increaseRefCount(),{className:f.className,dispose:()=>{f.decreaseRefCount(),this._garbageCollectionScheduler.schedule()}}}getOrCreateRule(C){const f=this.computeUniqueKey(C);let h=this._rules.get(f);if(!h){const v=this._counter++;h=new a(f,`dyn-rule-${this._instanceId}-${v}`,d.isInShadowDOM(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0,C),this._rules.set(f,h)}return h}computeUniqueKey(C){return JSON.stringify(C)}garbageCollect(){for(const C of this._rules.values())C.hasReferences()||(this._rules.delete(C.key),C.dispose())}}e.DynamicCssRules=l;class a{constructor(C,f,h,v){this.key=C,this.className=f,this.properties=v,this._referenceCount=0,this._styleElementDisposables=new y.DisposableStore,this._styleElement=d.createStyleSheet(h,void 0,this._styleElementDisposables),this._styleElement.textContent=this.getCssText(this.className,this.properties)}getCssText(C,f){let h=`.${C} {`;for(const v in f){const w=f[v];let S;typeof w=="object"?S=(0,m.asCssVariable)(w.id):S=w;const L=r(v);h+=` + ${L}: ${S};`}return h+=` +}`,h}dispose(){this._styleElementDisposables.dispose(),this._styleElement=void 0}increaseRefCount(){this._referenceCount++}decreaseRefCount(){this._referenceCount--}hasReferences(){return this._referenceCount>0}}function r(u){return u.replace(/(^[A-Z])/,([C])=>C.toLowerCase()).replace(/([A-Z])/g,([C])=>`-${C.toLowerCase()}`)}}),define(ne[755],se([1,0,5,39,172,2,16,11,262,56,37,4,311,374,95,32,23,69,551,127,45,347,491]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Minimap=void 0;const C=140,f=2;class h{constructor(N,O,F){const x=N.options,W=x.get(144),V=x.get(146),q=V.minimap,H=x.get(50),z=x.get(73);this.renderMinimap=q.renderMinimap,this.size=z.size,this.minimapHeightIsEditorHeight=q.minimapHeightIsEditorHeight,this.scrollBeyondLastLine=x.get(106),this.paddingTop=x.get(84).top,this.paddingBottom=x.get(84).bottom,this.showSlider=z.showSlider,this.autohide=z.autohide,this.pixelRatio=W,this.typicalHalfwidthCharacterWidth=H.typicalHalfwidthCharacterWidth,this.lineHeight=x.get(67),this.minimapLeft=q.minimapLeft,this.minimapWidth=q.minimapWidth,this.minimapHeight=V.height,this.canvasInnerWidth=q.minimapCanvasInnerWidth,this.canvasInnerHeight=q.minimapCanvasInnerHeight,this.canvasOuterWidth=q.minimapCanvasOuterWidth,this.canvasOuterHeight=q.minimapCanvasOuterHeight,this.isSampling=q.minimapIsSampling,this.editorHeight=V.height,this.fontScale=q.minimapScale,this.minimapLineHeight=q.minimapLineHeight,this.minimapCharWidth=1*this.fontScale,this.sectionHeaderFontFamily=u.DEFAULT_FONT_FAMILY,this.sectionHeaderFontSize=z.sectionHeaderFontSize*W,this.sectionHeaderLetterSpacing=z.sectionHeaderLetterSpacing,this.sectionHeaderFontColor=h._getSectionHeaderColor(O,F.getColor(1)),this.charRenderer=(0,a.createSingleCallFunction)(()=>l.MinimapCharRendererFactory.create(this.fontScale,H.fontFamily)),this.defaultBackgroundColor=F.getColor(2),this.backgroundColor=h._getMinimapBackground(O,this.defaultBackgroundColor),this.foregroundAlpha=h._getMinimapForegroundOpacity(O)}static _getMinimapBackground(N,O){const F=N.getColor(s.minimapBackground);return F?new o.RGBA8(F.rgba.r,F.rgba.g,F.rgba.b,Math.round(255*F.rgba.a)):O}static _getMinimapForegroundOpacity(N){const O=N.getColor(s.minimapForegroundOpacity);return O?o.RGBA8._clamp(Math.round(255*O.rgba.a)):255}static _getSectionHeaderColor(N,O){const F=N.getColor(s.editorForeground);return F?new o.RGBA8(F.rgba.r,F.rgba.g,F.rgba.b,Math.round(255*F.rgba.a)):O}equals(N){return this.renderMinimap===N.renderMinimap&&this.size===N.size&&this.minimapHeightIsEditorHeight===N.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===N.scrollBeyondLastLine&&this.paddingTop===N.paddingTop&&this.paddingBottom===N.paddingBottom&&this.showSlider===N.showSlider&&this.autohide===N.autohide&&this.pixelRatio===N.pixelRatio&&this.typicalHalfwidthCharacterWidth===N.typicalHalfwidthCharacterWidth&&this.lineHeight===N.lineHeight&&this.minimapLeft===N.minimapLeft&&this.minimapWidth===N.minimapWidth&&this.minimapHeight===N.minimapHeight&&this.canvasInnerWidth===N.canvasInnerWidth&&this.canvasInnerHeight===N.canvasInnerHeight&&this.canvasOuterWidth===N.canvasOuterWidth&&this.canvasOuterHeight===N.canvasOuterHeight&&this.isSampling===N.isSampling&&this.editorHeight===N.editorHeight&&this.fontScale===N.fontScale&&this.minimapLineHeight===N.minimapLineHeight&&this.minimapCharWidth===N.minimapCharWidth&&this.sectionHeaderFontSize===N.sectionHeaderFontSize&&this.sectionHeaderLetterSpacing===N.sectionHeaderLetterSpacing&&this.defaultBackgroundColor&&this.defaultBackgroundColor.equals(N.defaultBackgroundColor)&&this.backgroundColor&&this.backgroundColor.equals(N.backgroundColor)&&this.foregroundAlpha===N.foregroundAlpha}}class v{constructor(N,O,F,x,W,V,q,H,z){this.scrollTop=N,this.scrollHeight=O,this.sliderNeeded=F,this._computedSliderRatio=x,this.sliderTop=W,this.sliderHeight=V,this.topPaddingLineCount=q,this.startLineNumber=H,this.endLineNumber=z}getDesiredScrollTopFromDelta(N){return Math.round(this.scrollTop+N/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(N){return Math.round((N-this.sliderHeight/2)/this._computedSliderRatio)}intersectWithViewport(N){const O=Math.max(this.startLineNumber,N.startLineNumber),F=Math.min(this.endLineNumber,N.endLineNumber);return O>F?null:[O,F]}getYForLineNumber(N,O){return+(N-this.startLineNumber+this.topPaddingLineCount)*O}static create(N,O,F,x,W,V,q,H,z,U,j){const Y=N.pixelRatio,G=N.minimapLineHeight,K=Math.floor(N.canvasInnerHeight/G),R=N.lineHeight;if(N.minimapHeightIsEditorHeight){let ee=H*N.lineHeight+N.paddingTop+N.paddingBottom;N.scrollBeyondLastLine&&(ee+=Math.max(0,W-N.lineHeight-N.paddingBottom));const de=Math.max(1,Math.floor(W*W/ee)),ge=Math.max(0,N.minimapHeight-de),X=ge/(U-W),B=z*X,$=ge>0,Q=Math.floor(N.canvasInnerHeight/N.minimapLineHeight),Z=Math.floor(N.paddingTop/N.lineHeight);return new v(z,U,$,X,B,de,Z,1,Math.min(q,Q))}let J;if(V&&F!==q){const ee=F-O+1;J=Math.floor(ee*G/Y)}else{const ee=W/R;J=Math.floor(ee*G/Y)}const ie=Math.floor(N.paddingTop/R);let ue=Math.floor(N.paddingBottom/R);if(N.scrollBeyondLastLine){const ee=W/R;ue=Math.max(ue,ee-1)}let he;if(ue>0){const ee=W/R;he=(ie+q+ue-ee-1)*G/Y}else he=Math.max(0,(ie+q)*G/Y-J);he=Math.min(N.minimapHeight-J,he);const pe=he/(U-W),ae=z*pe;if(K>=ie+q+ue){const ee=he>0;return new v(z,U,ee,pe,ae,J,ie,1,q)}else{let ee;O>1?ee=O+ie:ee=Math.max(1,z/R);let de,ge=Math.max(1,Math.floor(ee-ae*Y/G));gez&&(ge=Math.min(ge,j.startLineNumber),de=Math.max(de,j.topPaddingLineCount)),j.scrollTop=N.paddingTop?$=(O-ge+de+B)*G/Y:$=z/N.paddingTop*(de+B)*G/Y,new v(z,U,!0,pe,$,J,de,ge,X)}}}class w{static{this.INVALID=new w(-1)}constructor(N){this.dy=N}onContentChanged(){this.dy=-1}onTokensChanged(){this.dy=-1}}class S{constructor(N,O,F){this.renderedLayout=N,this._imageData=O,this._renderedLines=new _.RenderedLinesCollection({createLine:()=>w.INVALID}),this._renderedLines._set(N.startLineNumber,F)}linesEquals(N){if(!this.scrollEquals(N))return!1;const F=this._renderedLines._get().lines;for(let x=0,W=F.length;x1){for(let ie=0,ue=x-1;ie0&&this.minimapLines[F-1]>=N;)F--;let x=this.modelLineToMinimapLine(O)-1;for(;x+1O)return null}return[F+1,x+1]}decorationLineRangeToMinimapLineRange(N,O){let F=this.modelLineToMinimapLine(N),x=this.modelLineToMinimapLine(O);return N!==O&&x===F&&(x===this.minimapLines.length?F>1&&F--:x++),[F,x]}onLinesDeleted(N){const O=N.toLineNumber-N.fromLineNumber+1;let F=this.minimapLines.length,x=0;for(let W=this.minimapLines.length-1;W>=0&&!(this.minimapLines[W]=0&&!(this.minimapLines[F]0,scrollWidth:N.scrollWidth,scrollHeight:N.scrollHeight,viewportStartLineNumber:O,viewportEndLineNumber:F,viewportStartLineNumberVerticalOffset:N.getVerticalOffsetForLineNumber(O),scrollTop:N.scrollTop,scrollLeft:N.scrollLeft,viewportWidth:N.viewportWidth,viewportHeight:N.viewportHeight};this._actual.render(x)}_recreateLineSampling(){this._minimapSelections=null;const N=!!this._samplingState,[O,F]=D.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=O,N&&this._samplingState)for(const x of F)switch(x.type){case"deleted":this._actual.onLinesDeleted(x.deleteFromLineNumber,x.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(x.insertFromLineNumber,x.insertToLineNumber);break;case"flush":this._actual.onFlushed();break}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.viewModel.getLineCount()}getRealLineCount(){return this._context.viewModel.getLineCount()}getLineContent(N){return this._samplingState?this._context.viewModel.getLineContent(this._samplingState.minimapLines[N-1]):this._context.viewModel.getLineContent(N)}getLineMaxColumn(N){return this._samplingState?this._context.viewModel.getLineMaxColumn(this._samplingState.minimapLines[N-1]):this._context.viewModel.getLineMaxColumn(N)}getMinimapLinesRenderingData(N,O,F){if(this._samplingState){const x=[];for(let W=0,V=O-N+1;W!x.options.minimap?.sectionHeaderStyle);if(this._samplingState){const x=[];for(const W of F){if(!W.options.minimap)continue;const V=W.range,q=this._samplingState.modelLineToMinimapLine(V.startLineNumber),H=this._samplingState.modelLineToMinimapLine(V.endLineNumber);x.push(new i.ViewModelDecoration(new n.Range(q,V.startColumn,H,V.endColumn),W.options))}return x}return F}getSectionHeaderDecorationsInViewport(N,O){const F=this.options.minimapLineHeight,W=this.options.sectionHeaderFontSize/F;return N=Math.floor(Math.max(1,N-W)),this._getMinimapDecorationsInViewport(N,O).filter(V=>!!V.options.minimap?.sectionHeaderStyle)}_getMinimapDecorationsInViewport(N,O){let F;if(this._samplingState){const x=this._samplingState.minimapLines[N-1],W=this._samplingState.minimapLines[O-1];F=new n.Range(x,1,W,this._context.viewModel.getLineMaxColumn(W))}else F=new n.Range(N,1,O,this._context.viewModel.getLineMaxColumn(O));return this._context.viewModel.getMinimapDecorationsInRange(F)}getSectionHeaderText(N,O){const F=N.options.minimap?.sectionHeaderText;if(!F)return null;const x=this._sectionHeaderCache.get(F);if(x)return x;const W=O(F);return this._sectionHeaderCache.set(F,W),W}getOptions(){return this._context.viewModel.model.getOptions()}revealLineNumber(N){this._samplingState&&(N=this._samplingState.minimapLines[N-1]),this._context.viewModel.revealRange("mouse",!1,new n.Range(N,1,N,1),1,0)}setScrollTop(N){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:N},1)}}e.Minimap=T;class M extends E.Disposable{constructor(N,O){super(),this._renderDecorations=!1,this._gestureInProgress=!1,this._theme=N,this._model=O,this._lastRenderData=null,this._buffers=null,this._selectionColor=this._theme.getColor(s.minimapSelection),this._domNode=(0,k.createFastDomNode)(document.createElement("div")),b.PartFingerprints.write(this._domNode,9),this._domNode.setClassName(this._getMinimapDomNodeClassName()),this._domNode.setPosition("absolute"),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._shadow=(0,k.createFastDomNode)(document.createElement("div")),this._shadow.setClassName("minimap-shadow-hidden"),this._domNode.appendChild(this._shadow),this._canvas=(0,k.createFastDomNode)(document.createElement("canvas")),this._canvas.setPosition("absolute"),this._canvas.setLeft(0),this._domNode.appendChild(this._canvas),this._decorationsCanvas=(0,k.createFastDomNode)(document.createElement("canvas")),this._decorationsCanvas.setPosition("absolute"),this._decorationsCanvas.setClassName("minimap-decorations-layer"),this._decorationsCanvas.setLeft(0),this._domNode.appendChild(this._decorationsCanvas),this._slider=(0,k.createFastDomNode)(document.createElement("div")),this._slider.setPosition("absolute"),this._slider.setClassName("minimap-slider"),this._slider.setLayerHinting(!0),this._slider.setContain("strict"),this._domNode.appendChild(this._slider),this._sliderHorizontal=(0,k.createFastDomNode)(document.createElement("div")),this._sliderHorizontal.setPosition("absolute"),this._sliderHorizontal.setClassName("minimap-slider-horizontal"),this._slider.appendChild(this._sliderHorizontal),this._applyLayout(),this._pointerDownListener=d.addStandardDisposableListener(this._domNode.domNode,d.EventType.POINTER_DOWN,F=>{if(F.preventDefault(),this._model.options.renderMinimap===0||!this._lastRenderData)return;if(this._model.options.size!=="proportional"){if(F.button===0&&this._lastRenderData){const z=d.getDomNodePagePosition(this._slider.domNode),U=z.top+z.height/2;this._startSliderDragging(F,U,this._lastRenderData.renderedLayout)}return}const W=this._model.options.minimapLineHeight,V=this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*F.offsetY;let H=Math.floor(V/W)+this._lastRenderData.renderedLayout.startLineNumber-this._lastRenderData.renderedLayout.topPaddingLineCount;H=Math.min(H,this._model.getLineCount()),this._model.revealLineNumber(H)}),this._sliderPointerMoveMonitor=new I.GlobalPointerMoveMonitor,this._sliderPointerDownListener=d.addStandardDisposableListener(this._slider.domNode,d.EventType.POINTER_DOWN,F=>{F.preventDefault(),F.stopPropagation(),F.button===0&&this._lastRenderData&&this._startSliderDragging(F,F.pageY,this._lastRenderData.renderedLayout)}),this._gestureDisposable=c.Gesture.addTarget(this._domNode.domNode),this._sliderTouchStartListener=d.addDisposableListener(this._domNode.domNode,c.EventType.Start,F=>{F.preventDefault(),F.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName("active",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(F))},{passive:!1}),this._sliderTouchMoveListener=d.addDisposableListener(this._domNode.domNode,c.EventType.Change,F=>{F.preventDefault(),F.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(F)},{passive:!1}),this._sliderTouchEndListener=d.addStandardDisposableListener(this._domNode.domNode,c.EventType.End,F=>{F.preventDefault(),F.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName("active",!1)})}_startSliderDragging(N,O,F){if(!N.target||!(N.target instanceof Element))return;const x=N.pageX;this._slider.toggleClassName("active",!0);const W=(V,q)=>{const H=d.getDomNodePagePosition(this._domNode.domNode),z=Math.min(Math.abs(q-x),Math.abs(q-H.left),Math.abs(q-H.left-H.width));if(y.isWindows&&z>C){this._model.setScrollTop(F.scrollTop);return}const U=V-O;this._model.setScrollTop(F.getDesiredScrollTopFromDelta(U))};N.pageY!==O&&W(N.pageY,x),this._sliderPointerMoveMonitor.startMonitoring(N.target,N.pointerId,N.buttons,V=>W(V.pageY,V.pageX),()=>{this._slider.toggleClassName("active",!1)})}scrollDueToTouchEvent(N){const O=this._domNode.domNode.getBoundingClientRect().top,F=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(N.pageY-O);this._model.setScrollTop(F)}dispose(){this._pointerDownListener.dispose(),this._sliderPointerMoveMonitor.dispose(),this._sliderPointerDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),super.dispose()}_getMinimapDomNodeClassName(){const N=["minimap"];return this._model.options.showSlider==="always"?N.push("slider-always"):N.push("slider-mouseover"),this._model.options.autohide&&N.push("autohide"),N.join(" ")}getDomNode(){return this._domNode}_applyLayout(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}_getBuffer(){return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new L(this._canvas.domNode.getContext("2d"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}onDidChangeOptions(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}onSelectionChanged(){return this._renderDecorations=!0,!0}onDecorationsChanged(){return this._renderDecorations=!0,!0}onFlushed(){return this._lastRenderData=null,!0}onLinesChanged(N,O){return this._lastRenderData?this._lastRenderData.onLinesChanged(N,O):!1}onLinesDeleted(N,O){return this._lastRenderData?.onLinesDeleted(N,O),!0}onLinesInserted(N,O){return this._lastRenderData?.onLinesInserted(N,O),!0}onScrollChanged(){return this._renderDecorations=!0,!0}onThemeChanged(){return this._selectionColor=this._theme.getColor(s.minimapSelection),this._renderDecorations=!0,!0}onTokensChanged(N){return this._lastRenderData?this._lastRenderData.onTokensChanged(N):!1}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(N){if(this._model.options.renderMinimap===0){this._shadow.setClassName("minimap-shadow-hidden"),this._sliderHorizontal.setWidth(0),this._sliderHorizontal.setHeight(0);return}N.scrollLeft+N.viewportWidth>=N.scrollWidth?this._shadow.setClassName("minimap-shadow-hidden"):this._shadow.setClassName("minimap-shadow-visible");const F=v.create(this._model.options,N.viewportStartLineNumber,N.viewportEndLineNumber,N.viewportStartLineNumberVerticalOffset,N.viewportHeight,N.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),N.scrollTop,N.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(F.sliderNeeded?"block":"none"),this._slider.setTop(F.sliderTop),this._slider.setHeight(F.sliderHeight),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(F.sliderHeight),this.renderDecorations(F),this._lastRenderData=this.renderLines(F)}renderDecorations(N){if(this._renderDecorations){this._renderDecorations=!1;const O=this._model.getSelections();O.sort(n.Range.compareRangesUsingStarts);const F=this._model.getMinimapDecorationsInViewport(N.startLineNumber,N.endLineNumber);F.sort((Y,G)=>(Y.options.zIndex||0)-(G.options.zIndex||0));const{canvasInnerWidth:x,canvasInnerHeight:W}=this._model.options,V=this._model.options.minimapLineHeight,q=this._model.options.minimapCharWidth,H=this._model.getOptions().tabSize,z=this._decorationsCanvas.domNode.getContext("2d");z.clearRect(0,0,x,W);const U=new A(N.startLineNumber,N.endLineNumber,!1);this._renderSelectionLineHighlights(z,O,U,N,V),this._renderDecorationsLineHighlights(z,F,U,N,V);const j=new A(N.startLineNumber,N.endLineNumber,null);this._renderSelectionsHighlights(z,O,j,N,V,H,q,x),this._renderDecorationsHighlights(z,F,j,N,V,H,q,x),this._renderSectionHeaders(N)}}_renderSelectionLineHighlights(N,O,F,x,W){if(!this._selectionColor||this._selectionColor.isTransparent())return;N.fillStyle=this._selectionColor.transparent(.5).toString();let V=0,q=0;for(const H of O){const z=x.intersectWithViewport(H);if(!z)continue;const[U,j]=z;for(let K=U;K<=j;K++)F.set(K,!0);const Y=x.getYForLineNumber(U,W),G=x.getYForLineNumber(j,W);q>=Y||(q>V&&N.fillRect(p.MINIMAP_GUTTER_WIDTH,V,N.canvas.width,q-V),V=Y),q=G}q>V&&N.fillRect(p.MINIMAP_GUTTER_WIDTH,V,N.canvas.width,q-V)}_renderDecorationsLineHighlights(N,O,F,x,W){const V=new Map;for(let q=O.length-1;q>=0;q--){const H=O[q],z=H.options.minimap;if(!z||z.position!==1)continue;const U=x.intersectWithViewport(H.range);if(!U)continue;const[j,Y]=U,G=z.getColor(this._theme.value);if(!G||G.isTransparent())continue;let K=V.get(G.toString());K||(K=G.transparent(.5).toString(),V.set(G.toString(),K)),N.fillStyle=K;for(let R=j;R<=Y;R++){if(F.has(R))continue;F.set(R,!0);const J=x.getYForLineNumber(j,W);N.fillRect(p.MINIMAP_GUTTER_WIDTH,J,N.canvas.width,W)}}}_renderSelectionsHighlights(N,O,F,x,W,V,q,H){if(!(!this._selectionColor||this._selectionColor.isTransparent()))for(const z of O){const U=x.intersectWithViewport(z);if(!U)continue;const[j,Y]=U;for(let G=j;G<=Y;G++)this.renderDecorationOnLine(N,F,z,this._selectionColor,x,G,W,W,V,q,H)}}_renderDecorationsHighlights(N,O,F,x,W,V,q,H){for(const z of O){const U=z.options.minimap;if(!U)continue;const j=x.intersectWithViewport(z.range);if(!j)continue;const[Y,G]=j,K=U.getColor(this._theme.value);if(!(!K||K.isTransparent()))for(let R=Y;R<=G;R++)switch(U.position){case 1:this.renderDecorationOnLine(N,F,z.range,K,x,R,W,W,V,q,H);continue;case 2:{const J=x.getYForLineNumber(R,W);this.renderDecoration(N,K,2,J,f,W);continue}}}}renderDecorationOnLine(N,O,F,x,W,V,q,H,z,U,j){const Y=W.getYForLineNumber(V,H);if(Y+q<0||Y>this._model.options.canvasInnerHeight)return;const{startLineNumber:G,endLineNumber:K}=F,R=G===V?F.startColumn:1,J=K===V?F.endColumn:this._model.getLineMaxColumn(V),ie=this.getXOffsetForPosition(O,V,R,z,U,j),ue=this.getXOffsetForPosition(O,V,J,z,U,j);this.renderDecoration(N,x,ie,Y,ue-ie,q)}getXOffsetForPosition(N,O,F,x,W,V){if(F===1)return p.MINIMAP_GUTTER_WIDTH;if((F-1)*W>=V)return V;let H=N.get(O);if(!H){const z=this._model.getLineContent(O);H=[p.MINIMAP_GUTTER_WIDTH];let U=p.MINIMAP_GUTTER_WIDTH;for(let j=1;j=V){H[j]=V;break}H[j]=K,U=K}N.set(O,H)}return F-1R.range.startLineNumber-J.range.startLineNumber);const K=M._fitSectionHeader.bind(null,Y,V-p.MINIMAP_GUTTER_WIDTH);for(const R of G){const J=N.getYForLineNumber(R.range.startLineNumber,O)+F,ie=J-F,ue=ie+2,he=this._model.getSectionHeaderText(R,K);M._renderSectionLabel(Y,he,R.options.minimap?.sectionHeaderStyle===2,H,U,V,ie,W,J,ue)}}static _fitSectionHeader(N,O,F){if(!F)return F;const x="\u2026",W=N.measureText(F).width,V=N.measureText(x).width;if(W<=O||W<=V)return F;const q=F.length,H=W/F.length,z=Math.floor((O-V)/H)-1;let U=Math.ceil(z/2);for(;U>0&&/\s/.test(F[U-1]);)--U;return F.substring(0,U)+x+F.substring(q-(z-U))}static _renderSectionLabel(N,O,F,x,W,V,q,H,z,U){O&&(N.fillStyle=x,N.fillRect(0,q,V,H),N.fillStyle=W,N.fillText(O,p.MINIMAP_GUTTER_WIDTH,z)),F&&(N.beginPath(),N.moveTo(0,U),N.lineTo(V,U),N.closePath(),N.stroke())}renderLines(N){const O=N.startLineNumber,F=N.endLineNumber,x=this._model.options.minimapLineHeight;if(this._lastRenderData&&this._lastRenderData.linesEquals(N)){const re=this._lastRenderData._get();return new S(N,re.imageData,re.lines)}const W=this._getBuffer();if(!W)return null;const[V,q,H]=M._renderUntouchedLines(W,N.topPaddingLineCount,O,F,x,this._lastRenderData),z=this._model.getMinimapLinesRenderingData(O,F,H),U=this._model.getOptions().tabSize,j=this._model.options.defaultBackgroundColor,Y=this._model.options.backgroundColor,G=this._model.options.foregroundAlpha,K=this._model.tokensColorTracker,R=K.backgroundIsLight(),J=this._model.options.renderMinimap,ie=this._model.options.charRenderer(),ue=this._model.options.fontScale,he=this._model.options.minimapCharWidth,ae=(J===1?2:3)*ue,ee=x>ae?Math.floor((x-ae)/2):0,de=Y.a/255,ge=new o.RGBA8(Math.round((Y.r-j.r)*de+j.r),Math.round((Y.g-j.g)*de+j.g),Math.round((Y.b-j.b)*de+j.b),255);let X=N.topPaddingLineCount*x;const B=[];for(let re=0,le=F-O+1;re=0&&$ue)return;const Q=J.charCodeAt(ae);if(Q===9){const Z=Y-(ae+ee)%Y;ee+=Z-1,pe+=Z*V}else if(Q===32)pe+=V;else{const Z=m.isFullWidthCharacter(Q)?2:1;for(let te=0;teue)return}}}}}class A{constructor(N,O,F){this._startLineNumber=N,this._endLineNumber=O,this._defaultValue=F,this._values=[];for(let x=0,W=this._endLineNumber-this._startLineNumber+1;xthis._endLineNumber||(this._values[N-this._startLineNumber]=O)}get(N){return Nthis._endLineNumber?this._defaultValue:this._values[N-this._startLineNumber]}}}),define(ne[756],se([1,0,3,32]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.multiDiffEditorBorder=e.multiDiffEditorBackground=e.multiDiffEditorHeaderBackground=void 0,e.multiDiffEditorHeaderBackground=(0,k.registerColor)("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},(0,d.localize)(129,"The background color of the diff editor's header")),e.multiDiffEditorBackground=(0,k.registerColor)("multiDiffEditor.background",k.editorBackground,(0,d.localize)(130,"The background color of the multi file diff editor")),e.multiDiffEditorBorder=(0,k.registerColor)("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},(0,d.localize)(131,"The border color of the multi file diff editor"))}),define(ne[280],se([1,0,3,32,533]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SYMBOL_ICON_VARIABLE_FOREGROUND=e.SYMBOL_ICON_UNIT_FOREGROUND=e.SYMBOL_ICON_TYPEPARAMETER_FOREGROUND=e.SYMBOL_ICON_TEXT_FOREGROUND=e.SYMBOL_ICON_STRUCT_FOREGROUND=e.SYMBOL_ICON_STRING_FOREGROUND=e.SYMBOL_ICON_SNIPPET_FOREGROUND=e.SYMBOL_ICON_REFERENCE_FOREGROUND=e.SYMBOL_ICON_PROPERTY_FOREGROUND=e.SYMBOL_ICON_PACKAGE_FOREGROUND=e.SYMBOL_ICON_OPERATOR_FOREGROUND=e.SYMBOL_ICON_OBJECT_FOREGROUND=e.SYMBOL_ICON_NUMBER_FOREGROUND=e.SYMBOL_ICON_NULL_FOREGROUND=e.SYMBOL_ICON_NAMESPACE_FOREGROUND=e.SYMBOL_ICON_MODULE_FOREGROUND=e.SYMBOL_ICON_METHOD_FOREGROUND=e.SYMBOL_ICON_KEYWORD_FOREGROUND=e.SYMBOL_ICON_KEY_FOREGROUND=e.SYMBOL_ICON_INTERFACE_FOREGROUND=e.SYMBOL_ICON_FUNCTION_FOREGROUND=e.SYMBOL_ICON_FOLDER_FOREGROUND=e.SYMBOL_ICON_FILE_FOREGROUND=e.SYMBOL_ICON_FIELD_FOREGROUND=e.SYMBOL_ICON_EVENT_FOREGROUND=e.SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND=e.SYMBOL_ICON_ENUMERATOR_FOREGROUND=e.SYMBOL_ICON_CONSTRUCTOR_FOREGROUND=e.SYMBOL_ICON_CONSTANT_FOREGROUND=e.SYMBOL_ICON_COLOR_FOREGROUND=e.SYMBOL_ICON_CLASS_FOREGROUND=e.SYMBOL_ICON_BOOLEAN_FOREGROUND=e.SYMBOL_ICON_ARRAY_FOREGROUND=void 0,e.SYMBOL_ICON_ARRAY_FOREGROUND=(0,k.registerColor)("symbolIcon.arrayForeground",k.foreground,(0,d.localize)(1348,"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_BOOLEAN_FOREGROUND=(0,k.registerColor)("symbolIcon.booleanForeground",k.foreground,(0,d.localize)(1349,"The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_CLASS_FOREGROUND=(0,k.registerColor)("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,d.localize)(1350,"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_COLOR_FOREGROUND=(0,k.registerColor)("symbolIcon.colorForeground",k.foreground,(0,d.localize)(1351,"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_CONSTANT_FOREGROUND=(0,k.registerColor)("symbolIcon.constantForeground",k.foreground,(0,d.localize)(1352,"The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_CONSTRUCTOR_FOREGROUND=(0,k.registerColor)("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,d.localize)(1353,"The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_ENUMERATOR_FOREGROUND=(0,k.registerColor)("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,d.localize)(1354,"The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_ENUMERATOR_MEMBER_FOREGROUND=(0,k.registerColor)("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,d.localize)(1355,"The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_EVENT_FOREGROUND=(0,k.registerColor)("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},(0,d.localize)(1356,"The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_FIELD_FOREGROUND=(0,k.registerColor)("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,d.localize)(1357,"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_FILE_FOREGROUND=(0,k.registerColor)("symbolIcon.fileForeground",k.foreground,(0,d.localize)(1358,"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_FOLDER_FOREGROUND=(0,k.registerColor)("symbolIcon.folderForeground",k.foreground,(0,d.localize)(1359,"The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_FUNCTION_FOREGROUND=(0,k.registerColor)("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,d.localize)(1360,"The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_INTERFACE_FOREGROUND=(0,k.registerColor)("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,d.localize)(1361,"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_KEY_FOREGROUND=(0,k.registerColor)("symbolIcon.keyForeground",k.foreground,(0,d.localize)(1362,"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_KEYWORD_FOREGROUND=(0,k.registerColor)("symbolIcon.keywordForeground",k.foreground,(0,d.localize)(1363,"The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_METHOD_FOREGROUND=(0,k.registerColor)("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},(0,d.localize)(1364,"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_MODULE_FOREGROUND=(0,k.registerColor)("symbolIcon.moduleForeground",k.foreground,(0,d.localize)(1365,"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_NAMESPACE_FOREGROUND=(0,k.registerColor)("symbolIcon.namespaceForeground",k.foreground,(0,d.localize)(1366,"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_NULL_FOREGROUND=(0,k.registerColor)("symbolIcon.nullForeground",k.foreground,(0,d.localize)(1367,"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_NUMBER_FOREGROUND=(0,k.registerColor)("symbolIcon.numberForeground",k.foreground,(0,d.localize)(1368,"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_OBJECT_FOREGROUND=(0,k.registerColor)("symbolIcon.objectForeground",k.foreground,(0,d.localize)(1369,"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_OPERATOR_FOREGROUND=(0,k.registerColor)("symbolIcon.operatorForeground",k.foreground,(0,d.localize)(1370,"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_PACKAGE_FOREGROUND=(0,k.registerColor)("symbolIcon.packageForeground",k.foreground,(0,d.localize)(1371,"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_PROPERTY_FOREGROUND=(0,k.registerColor)("symbolIcon.propertyForeground",k.foreground,(0,d.localize)(1372,"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_REFERENCE_FOREGROUND=(0,k.registerColor)("symbolIcon.referenceForeground",k.foreground,(0,d.localize)(1373,"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_SNIPPET_FOREGROUND=(0,k.registerColor)("symbolIcon.snippetForeground",k.foreground,(0,d.localize)(1374,"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_STRING_FOREGROUND=(0,k.registerColor)("symbolIcon.stringForeground",k.foreground,(0,d.localize)(1375,"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_STRUCT_FOREGROUND=(0,k.registerColor)("symbolIcon.structForeground",k.foreground,(0,d.localize)(1376,"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_TEXT_FOREGROUND=(0,k.registerColor)("symbolIcon.textForeground",k.foreground,(0,d.localize)(1377,"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_TYPEPARAMETER_FOREGROUND=(0,k.registerColor)("symbolIcon.typeParameterForeground",k.foreground,(0,d.localize)(1378,"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_UNIT_FOREGROUND=(0,k.registerColor)("symbolIcon.unitForeground",k.foreground,(0,d.localize)(1379,"The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),e.SYMBOL_ICON_VARIABLE_FOREGROUND=(0,k.registerColor)("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},(0,d.localize)(1380,"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."))}),define(ne[757],se([1,0,26,134,3,91,195,280]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.toMenuItems=_;const y=Object.freeze({kind:E.HierarchicalKind.Empty,title:(0,I.localize)(777,"More Actions...")}),m=Object.freeze([{kind:k.CodeActionKind.QuickFix,title:(0,I.localize)(778,"Quick Fix")},{kind:k.CodeActionKind.RefactorExtract,title:(0,I.localize)(779,"Extract"),icon:d.Codicon.wrench},{kind:k.CodeActionKind.RefactorInline,title:(0,I.localize)(780,"Inline"),icon:d.Codicon.wrench},{kind:k.CodeActionKind.RefactorRewrite,title:(0,I.localize)(781,"Rewrite"),icon:d.Codicon.wrench},{kind:k.CodeActionKind.RefactorMove,title:(0,I.localize)(782,"Move"),icon:d.Codicon.wrench},{kind:k.CodeActionKind.SurroundWith,title:(0,I.localize)(783,"Surround With"),icon:d.Codicon.surroundWith},{kind:k.CodeActionKind.Source,title:(0,I.localize)(784,"Source Action"),icon:d.Codicon.symbolFile},y]);function _(b,p,n){if(!p)return b.map(i=>({kind:"action",item:i,group:y,disabled:!!i.action.disabled,label:i.action.disabled||i.action.title,canPreview:!!i.action.edit?.edits.length}));const o=m.map(i=>({group:i,actions:[]}));for(const i of b){const s=i.action.kind?new E.HierarchicalKind(i.action.kind):E.HierarchicalKind.None;for(const g of o)if(g.group.kind.contains(s)){g.actions.push(i);break}}const t=[];for(const i of o)if(i.actions.length){t.push({kind:"header",group:i.group});for(const s of i.actions){const g=i.group;t.push({kind:"action",item:s,group:s.action.isAI?{title:g.title,kind:g.kind,icon:d.Codicon.sparkle}:g,label:s.action.title,disabled:!!s.action.disabled,keybinding:n(s.action)})}}return t}}),define(ne[110],se([1,0,32,33]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.defaultMenuStyles=e.defaultSelectBoxStyles=e.defaultListStyles=e.defaultBreadcrumbsWidgetStyles=e.defaultCountBadgeStyles=e.defaultFindWidgetStyles=e.defaultInputBoxStyles=e.defaultDialogStyles=e.defaultCheckboxStyles=e.defaultRadioStyles=e.defaultToggleStyles=e.defaultProgressBarStyles=e.defaultButtonStyles=e.defaultKeybindingLabelStyles=void 0,e.getListStyles=E;function I(y,m){const _={...m};for(const b in y){const p=y[b];_[b]=p!==void 0?(0,d.asCssVariable)(p):void 0}return _}e.defaultKeybindingLabelStyles={keybindingLabelBackground:(0,d.asCssVariable)(d.keybindingLabelBackground),keybindingLabelForeground:(0,d.asCssVariable)(d.keybindingLabelForeground),keybindingLabelBorder:(0,d.asCssVariable)(d.keybindingLabelBorder),keybindingLabelBottomBorder:(0,d.asCssVariable)(d.keybindingLabelBottomBorder),keybindingLabelShadow:(0,d.asCssVariable)(d.widgetShadow)},e.defaultButtonStyles={buttonForeground:(0,d.asCssVariable)(d.buttonForeground),buttonSeparator:(0,d.asCssVariable)(d.buttonSeparator),buttonBackground:(0,d.asCssVariable)(d.buttonBackground),buttonHoverBackground:(0,d.asCssVariable)(d.buttonHoverBackground),buttonSecondaryForeground:(0,d.asCssVariable)(d.buttonSecondaryForeground),buttonSecondaryBackground:(0,d.asCssVariable)(d.buttonSecondaryBackground),buttonSecondaryHoverBackground:(0,d.asCssVariable)(d.buttonSecondaryHoverBackground),buttonBorder:(0,d.asCssVariable)(d.buttonBorder)},e.defaultProgressBarStyles={progressBarBackground:(0,d.asCssVariable)(d.progressBarBackground)},e.defaultToggleStyles={inputActiveOptionBorder:(0,d.asCssVariable)(d.inputActiveOptionBorder),inputActiveOptionForeground:(0,d.asCssVariable)(d.inputActiveOptionForeground),inputActiveOptionBackground:(0,d.asCssVariable)(d.inputActiveOptionBackground)},e.defaultRadioStyles={activeForeground:(0,d.asCssVariable)(d.radioActiveForeground),activeBackground:(0,d.asCssVariable)(d.radioActiveBackground),activeBorder:(0,d.asCssVariable)(d.radioActiveBorder),inactiveForeground:(0,d.asCssVariable)(d.radioInactiveForeground),inactiveBackground:(0,d.asCssVariable)(d.radioInactiveBackground),inactiveBorder:(0,d.asCssVariable)(d.radioInactiveBorder),inactiveHoverBackground:(0,d.asCssVariable)(d.radioInactiveHoverBackground)},e.defaultCheckboxStyles={checkboxBackground:(0,d.asCssVariable)(d.checkboxBackground),checkboxBorder:(0,d.asCssVariable)(d.checkboxBorder),checkboxForeground:(0,d.asCssVariable)(d.checkboxForeground)},e.defaultDialogStyles={dialogBackground:(0,d.asCssVariable)(d.editorWidgetBackground),dialogForeground:(0,d.asCssVariable)(d.editorWidgetForeground),dialogShadow:(0,d.asCssVariable)(d.widgetShadow),dialogBorder:(0,d.asCssVariable)(d.contrastBorder),errorIconForeground:(0,d.asCssVariable)(d.problemsErrorIconForeground),warningIconForeground:(0,d.asCssVariable)(d.problemsWarningIconForeground),infoIconForeground:(0,d.asCssVariable)(d.problemsInfoIconForeground),textLinkForeground:(0,d.asCssVariable)(d.textLinkForeground)},e.defaultInputBoxStyles={inputBackground:(0,d.asCssVariable)(d.inputBackground),inputForeground:(0,d.asCssVariable)(d.inputForeground),inputBorder:(0,d.asCssVariable)(d.inputBorder),inputValidationInfoBorder:(0,d.asCssVariable)(d.inputValidationInfoBorder),inputValidationInfoBackground:(0,d.asCssVariable)(d.inputValidationInfoBackground),inputValidationInfoForeground:(0,d.asCssVariable)(d.inputValidationInfoForeground),inputValidationWarningBorder:(0,d.asCssVariable)(d.inputValidationWarningBorder),inputValidationWarningBackground:(0,d.asCssVariable)(d.inputValidationWarningBackground),inputValidationWarningForeground:(0,d.asCssVariable)(d.inputValidationWarningForeground),inputValidationErrorBorder:(0,d.asCssVariable)(d.inputValidationErrorBorder),inputValidationErrorBackground:(0,d.asCssVariable)(d.inputValidationErrorBackground),inputValidationErrorForeground:(0,d.asCssVariable)(d.inputValidationErrorForeground)},e.defaultFindWidgetStyles={listFilterWidgetBackground:(0,d.asCssVariable)(d.listFilterWidgetBackground),listFilterWidgetOutline:(0,d.asCssVariable)(d.listFilterWidgetOutline),listFilterWidgetNoMatchesOutline:(0,d.asCssVariable)(d.listFilterWidgetNoMatchesOutline),listFilterWidgetShadow:(0,d.asCssVariable)(d.listFilterWidgetShadow),inputBoxStyles:e.defaultInputBoxStyles,toggleStyles:e.defaultToggleStyles},e.defaultCountBadgeStyles={badgeBackground:(0,d.asCssVariable)(d.badgeBackground),badgeForeground:(0,d.asCssVariable)(d.badgeForeground),badgeBorder:(0,d.asCssVariable)(d.contrastBorder)},e.defaultBreadcrumbsWidgetStyles={breadcrumbsBackground:(0,d.asCssVariable)(d.breadcrumbsBackground),breadcrumbsForeground:(0,d.asCssVariable)(d.breadcrumbsForeground),breadcrumbsHoverForeground:(0,d.asCssVariable)(d.breadcrumbsFocusForeground),breadcrumbsFocusForeground:(0,d.asCssVariable)(d.breadcrumbsFocusForeground),breadcrumbsFocusAndSelectionForeground:(0,d.asCssVariable)(d.breadcrumbsActiveSelectionForeground)},e.defaultListStyles={listBackground:void 0,listInactiveFocusForeground:void 0,listFocusBackground:(0,d.asCssVariable)(d.listFocusBackground),listFocusForeground:(0,d.asCssVariable)(d.listFocusForeground),listFocusOutline:(0,d.asCssVariable)(d.listFocusOutline),listActiveSelectionBackground:(0,d.asCssVariable)(d.listActiveSelectionBackground),listActiveSelectionForeground:(0,d.asCssVariable)(d.listActiveSelectionForeground),listActiveSelectionIconForeground:(0,d.asCssVariable)(d.listActiveSelectionIconForeground),listFocusAndSelectionOutline:(0,d.asCssVariable)(d.listFocusAndSelectionOutline),listFocusAndSelectionBackground:(0,d.asCssVariable)(d.listActiveSelectionBackground),listFocusAndSelectionForeground:(0,d.asCssVariable)(d.listActiveSelectionForeground),listInactiveSelectionBackground:(0,d.asCssVariable)(d.listInactiveSelectionBackground),listInactiveSelectionIconForeground:(0,d.asCssVariable)(d.listInactiveSelectionIconForeground),listInactiveSelectionForeground:(0,d.asCssVariable)(d.listInactiveSelectionForeground),listInactiveFocusBackground:(0,d.asCssVariable)(d.listInactiveFocusBackground),listInactiveFocusOutline:(0,d.asCssVariable)(d.listInactiveFocusOutline),listHoverBackground:(0,d.asCssVariable)(d.listHoverBackground),listHoverForeground:(0,d.asCssVariable)(d.listHoverForeground),listDropOverBackground:(0,d.asCssVariable)(d.listDropOverBackground),listDropBetweenBackground:(0,d.asCssVariable)(d.listDropBetweenBackground),listSelectionOutline:(0,d.asCssVariable)(d.activeContrastBorder),listHoverOutline:(0,d.asCssVariable)(d.activeContrastBorder),treeIndentGuidesStroke:(0,d.asCssVariable)(d.treeIndentGuidesStroke),treeInactiveIndentGuidesStroke:(0,d.asCssVariable)(d.treeInactiveIndentGuidesStroke),treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:(0,d.asCssVariable)(d.scrollbarShadow),tableColumnsBorder:(0,d.asCssVariable)(d.tableColumnsBorder),tableOddRowsBackgroundColor:(0,d.asCssVariable)(d.tableOddRowsBackgroundColor)};function E(y){return I(y,e.defaultListStyles)}e.defaultSelectBoxStyles={selectBackground:(0,d.asCssVariable)(d.selectBackground),selectListBackground:(0,d.asCssVariable)(d.selectListBackground),selectForeground:(0,d.asCssVariable)(d.selectForeground),decoratorRightForeground:(0,d.asCssVariable)(d.pickerGroupForeground),selectBorder:(0,d.asCssVariable)(d.selectBorder),focusBorder:(0,d.asCssVariable)(d.focusBorder),listFocusBackground:(0,d.asCssVariable)(d.quickInputListFocusBackground),listInactiveSelectionIconForeground:(0,d.asCssVariable)(d.quickInputListFocusIconForeground),listFocusForeground:(0,d.asCssVariable)(d.quickInputListFocusForeground),listFocusOutline:(0,d.asCssVariableWithDefault)(d.activeContrastBorder,k.Color.transparent.toString()),listHoverBackground:(0,d.asCssVariable)(d.listHoverBackground),listHoverForeground:(0,d.asCssVariable)(d.listHoverForeground),listHoverOutline:(0,d.asCssVariable)(d.activeContrastBorder),selectListBorder:(0,d.asCssVariable)(d.editorWidgetBorder),listBackground:void 0,listActiveSelectionBackground:void 0,listActiveSelectionForeground:void 0,listActiveSelectionIconForeground:void 0,listFocusAndSelectionBackground:void 0,listDropOverBackground:void 0,listDropBetweenBackground:void 0,listInactiveSelectionBackground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusBackground:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listFocusAndSelectionForeground:void 0,listFocusAndSelectionOutline:void 0,listInactiveFocusForeground:void 0,tableColumnsBorder:void 0,tableOddRowsBackgroundColor:void 0,treeIndentGuidesStroke:void 0,treeInactiveIndentGuidesStroke:void 0,treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:void 0},e.defaultMenuStyles={shadowColor:(0,d.asCssVariable)(d.widgetShadow),borderColor:(0,d.asCssVariable)(d.menuBorder),foregroundColor:(0,d.asCssVariable)(d.menuForeground),backgroundColor:(0,d.asCssVariable)(d.menuBackground),selectionForegroundColor:(0,d.asCssVariable)(d.menuSelectionForeground),selectionBackgroundColor:(0,d.asCssVariable)(d.menuSelectionBackground),selectionBorderColor:(0,d.asCssVariable)(d.menuSelectionBorder),separatorColor:(0,d.asCssVariable)(d.menuSeparatorBackground),scrollbarShadow:(0,d.asCssVariable)(d.scrollbarShadow),scrollbarSliderBackground:(0,d.asCssVariable)(d.scrollbarSliderBackground),scrollbarSliderHoverBackground:(0,d.asCssVariable)(d.scrollbarSliderHoverBackground),scrollbarSliderActiveBackground:(0,d.asCssVariable)(d.scrollbarSliderActiveBackground)}}),define(ne[758],se([1,0,5,354,355,254,82,2,48,78,3,7,31,181,110,178]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";var g;Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibilityProvider=e.OneReferenceRenderer=e.FileReferencesRenderer=e.IdentityProvider=e.StringRepresentationProvider=e.Delegate=e.DataSource=void 0;let c=class{constructor(S){this._resolverService=S}hasChildren(S){return S instanceof s.ReferencesModel||S instanceof s.FileReferences}getChildren(S){if(S instanceof s.ReferencesModel)return S.groups;if(S instanceof s.FileReferences)return S.resolve(this._resolverService).then(L=>L.children);throw new Error("bad tree")}};e.DataSource=c,e.DataSource=c=ke([ce(0,b.ITextModelService)],c);class l{getHeight(){return 23}getTemplateId(S){return S instanceof s.FileReferences?C.id:h.id}}e.Delegate=l;let a=class{constructor(S){this._keybindingService=S}getKeyboardNavigationLabel(S){if(S instanceof s.OneReference){const L=S.parent.getPreview(S)?.preview(S.range);if(L)return L.value}return(0,_.basename)(S.uri)}};e.StringRepresentationProvider=a,e.StringRepresentationProvider=a=ke([ce(0,o.IKeybindingService)],a);class r{getId(S){return S instanceof s.OneReference?S.id:S.uri}}e.IdentityProvider=r;let u=class extends m.Disposable{constructor(S,L){super(),this._labelService=L;const D=document.createElement("div");D.classList.add("reference-file"),this.file=this._register(new E.IconLabel(D,{supportHighlights:!0})),this.badge=new k.CountBadge(d.append(D,d.$(".count")),{},i.defaultCountBadgeStyles),S.appendChild(D)}set(S,L){const D=(0,_.dirname)(S.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(S.uri),this._labelService.getUriLabel(D,{relative:!0}),{title:this._labelService.getUriLabel(S.uri),matches:L});const T=S.children.length;this.badge.setCount(T),T>1?this.badge.setTitleFormat((0,p.localize)(989,"{0} references",T)):this.badge.setTitleFormat((0,p.localize)(990,"{0} reference",T))}};u=ke([ce(1,t.ILabelService)],u);let C=class{static{g=this}static{this.id="FileReferencesRenderer"}constructor(S){this._instantiationService=S,this.templateId=g.id}renderTemplate(S){return this._instantiationService.createInstance(u,S)}renderElement(S,L,D){D.set(S.element,(0,y.createMatches)(S.filterData))}disposeTemplate(S){S.dispose()}};e.FileReferencesRenderer=C,e.FileReferencesRenderer=C=g=ke([ce(0,n.IInstantiationService)],C);class f extends m.Disposable{constructor(S){super(),this.label=this._register(new I.HighlightedLabel(S))}set(S,L){const D=S.parent.getPreview(S)?.preview(S.range);if(!D||!D.value)this.label.set(`${(0,_.basename)(S.uri)}:${S.range.startLineNumber+1}:${S.range.startColumn+1}`);else{const{value:T,highlight:M}=D;L&&!y.FuzzyScore.isDefault(L)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(T,(0,y.createMatches)(L))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(T,[M]))}}}class h{constructor(){this.templateId=h.id}static{this.id="OneReferenceRenderer"}renderTemplate(S){return new f(S)}renderElement(S,L,D){D.set(S.element,S.filterData)}disposeTemplate(S){S.dispose()}}e.OneReferenceRenderer=h;class v{getWidgetAriaLabel(){return(0,p.localize)(991,"References")}getAriaLabel(S){return S.ariaMessage}}e.AccessibilityProvider=v}),define(ne[759],se([1,0,5,206,115,18,26,2,16,30,3,58,31,110,32,306]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ActionList=e.previewSelectedActionCommand=e.acceptSelectedActionCommand=void 0,e.acceptSelectedActionCommand="acceptSelectedCodeAction",e.previewSelectedActionCommand="previewSelectedCodeAction";class s{get templateId(){return"header"}renderTemplate(f){f.classList.add("group-header");const h=document.createElement("span");return f.append(h),{container:f,text:h}}renderElement(f,h,v){v.text.textContent=f.group?.title??""}disposeTemplate(f){}}let g=class{get templateId(){return"action"}constructor(f,h){this._supportsPreview=f,this._keybindingService=h}renderTemplate(f){f.classList.add(this.templateId);const h=document.createElement("div");h.className="icon",f.append(h);const v=document.createElement("span");v.className="title",f.append(v);const w=new k.KeybindingLabel(f,_.OS);return{container:f,icon:h,text:v,keybinding:w}}renderElement(f,h,v){if(f.group?.icon?(v.icon.className=b.ThemeIcon.asClassName(f.group.icon),f.group.icon.color&&(v.icon.style.color=(0,i.asCssVariable)(f.group.icon.color.id))):(v.icon.className=b.ThemeIcon.asClassName(y.Codicon.lightBulb),v.icon.style.color="var(--vscode-editorLightBulb-foreground)"),!f.item||!f.label)return;v.text.textContent=u(f.label),v.keybinding.set(f.keybinding),d.setVisibility(!!f.keybinding,v.keybinding.element);const w=this._keybindingService.lookupKeybinding(e.acceptSelectedActionCommand)?.getLabel(),S=this._keybindingService.lookupKeybinding(e.previewSelectedActionCommand)?.getLabel();v.container.classList.toggle("option-disabled",f.disabled),f.disabled?v.container.title=f.label:w&&S?this._supportsPreview&&f.canPreview?v.container.title=(0,p.localize)(1492,"{0} to Apply, {1} to Preview",w,S):v.container.title=(0,p.localize)(1493,"{0} to Apply",w):v.container.title=""}disposeTemplate(f){f.keybinding.dispose()}};g=ke([ce(1,o.IKeybindingService)],g);class c extends UIEvent{constructor(){super("acceptSelectedAction")}}class l extends UIEvent{constructor(){super("previewSelectedAction")}}function a(C){if(C.kind==="action")return C.label}let r=class extends m.Disposable{constructor(f,h,v,w,S,L){super(),this._delegate=w,this._contextViewService=S,this._keybindingService=L,this._actionLineHeight=24,this._headerLineHeight=26,this.cts=this._register(new E.CancellationTokenSource),this.domNode=document.createElement("div"),this.domNode.classList.add("actionList");const D={getHeight:T=>T.kind==="header"?this._headerLineHeight:this._actionLineHeight,getTemplateId:T=>T.kind};this._list=this._register(new I.List(f,this.domNode,D,[new g(h,this._keybindingService),new s],{keyboardSupport:!1,typeNavigationEnabled:!0,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:a},accessibilityProvider:{getAriaLabel:T=>{if(T.kind==="action"){let M=T.label?u(T?.label):"";return T.disabled&&(M=(0,p.localize)(1494,"{0}, Disabled Reason: {1}",M,T.disabled)),M}return null},getWidgetAriaLabel:()=>(0,p.localize)(1495,"Action Widget"),getRole:T=>T.kind==="action"?"option":"separator",getWidgetRole:()=>"listbox"}})),this._list.style(t.defaultListStyles),this._register(this._list.onMouseClick(T=>this.onListClick(T))),this._register(this._list.onMouseOver(T=>this.onListHover(T))),this._register(this._list.onDidChangeFocus(()=>this.onFocus())),this._register(this._list.onDidChangeSelection(T=>this.onListSelection(T))),this._allMenuItems=v,this._list.splice(0,this._list.length,this._allMenuItems),this._list.length&&this.focusNext()}focusCondition(f){return!f.disabled&&f.kind==="action"}hide(f){this._delegate.onHide(f),this.cts.cancel(),this._contextViewService.hideContextView()}layout(f){const h=this._allMenuItems.filter(T=>T.kind==="header").length,w=this._allMenuItems.length*this._actionLineHeight+h*this._headerLineHeight-h*this._actionLineHeight;this._list.layout(w);let S=f;if(this._allMenuItems.length>=50)S=380;else{const T=this._allMenuItems.map((M,A)=>{const P=this.domNode.ownerDocument.getElementById(this._list.getElementID(A));if(P){P.style.width="auto";const N=P.getBoundingClientRect().width;return P.style.width="",N}return 0});S=Math.max(...T,f)}const D=Math.min(w,this.domNode.ownerDocument.body.clientHeight*.7);return this._list.layout(D,S),this.domNode.style.height=`${D}px`,this._list.domFocus(),S}focusPrevious(){this._list.focusPrevious(1,!0,void 0,this.focusCondition)}focusNext(){this._list.focusNext(1,!0,void 0,this.focusCondition)}acceptSelected(f){const h=this._list.getFocus();if(h.length===0)return;const v=h[0],w=this._list.element(v);if(!this.focusCondition(w))return;const S=f?new l:new c;this._list.setSelection([v],S)}onListSelection(f){if(!f.elements.length)return;const h=f.elements[0];h.item&&this.focusCondition(h)?this._delegate.onSelect(h.item,f.browserEvent instanceof l):this._list.setSelection([])}onFocus(){const f=this._list.getFocus();if(f.length===0)return;const h=f[0],v=this._list.element(h);this._delegate.onFocus?.(v.item)}async onListHover(f){const h=f.element;if(h&&h.item&&this.focusCondition(h)){if(this._delegate.onHover&&!h.disabled&&h.kind==="action"){const v=await this._delegate.onHover(h.item,this.cts.token);h.canPreview=v?v.canPreview:void 0}f.index&&this._list.splice(f.index,1,[h])}this._list.setFocus(typeof f.index=="number"?[f.index]:[])}onListClick(f){f.element&&this.focusCondition(f.element)&&this._list.setFocus([])}};e.ActionList=r,e.ActionList=r=ke([ce(4,n.IContextViewService),ce(5,o.IKeybindingService)],r);function u(C){return C.replace(/\r\n|\r|\n/g," ")}}),define(ne[760],se([1,0,5,87,2,3,759,29,12,58,49,7,32,306]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IActionWidgetService=void 0,(0,o.registerColor)("actionBar.toggledBackground",o.inputActiveOptionBackground,(0,E.localize)(1496,"Background color for toggled action items in action bar."));const t={Visible:new _.RawContextKey("codeActionMenuVisible",!1,(0,E.localize)(1497,"Whether the action widget list is visible"))};e.IActionWidgetService=(0,n.createDecorator)("actionWidgetService");let i=class extends I.Disposable{get isVisible(){return t.Visible.getValue(this._contextKeyService)||!1}constructor(c,l,a){super(),this._contextViewService=c,this._contextKeyService=l,this._instantiationService=a,this._list=this._register(new I.MutableDisposable)}show(c,l,a,r,u,C,f){const h=t.Visible.bindTo(this._contextKeyService),v=this._instantiationService.createInstance(y.ActionList,c,l,a,r);this._contextViewService.showContextView({getAnchor:()=>u,render:w=>(h.set(!0),this._renderWidget(w,v,f??[])),onHide:w=>{h.reset(),this._onWidgetClosed(w)}},C,!1)}acceptSelected(c){this._list.value?.acceptSelected(c)}focusPrevious(){this._list?.value?.focusPrevious()}focusNext(){this._list?.value?.focusNext()}hide(c){this._list.value?.hide(c),this._list.clear()}_renderWidget(c,l,a){const r=document.createElement("div");if(r.classList.add("action-widget"),c.appendChild(r),this._list.value=l,this._list.value)r.appendChild(this._list.value.domNode);else throw new Error("List has no value");const u=new I.DisposableStore,C=document.createElement("div"),f=c.appendChild(C);f.classList.add("context-view-block"),u.add(d.addDisposableListener(f,d.EventType.MOUSE_DOWN,D=>D.stopPropagation()));const h=document.createElement("div"),v=c.appendChild(h);v.classList.add("context-view-pointerBlock"),u.add(d.addDisposableListener(v,d.EventType.POINTER_MOVE,()=>v.remove())),u.add(d.addDisposableListener(v,d.EventType.MOUSE_DOWN,()=>v.remove()));let w=0;if(a.length){const D=this._createActionBar(".action-widget-action-bar",a);D&&(r.appendChild(D.getContainer().parentElement),u.add(D),w=D.getContainer().offsetWidth)}const S=this._list.value?.layout(w);r.style.width=`${S}px`;const L=u.add(d.trackFocus(c));return u.add(L.onDidBlur(()=>this.hide(!0))),u}_createActionBar(c,l){if(!l.length)return;const a=d.$(c),r=new k.ActionBar(a);return r.push(l,{icon:!1,label:!0}),r}_onWidgetClosed(c){this._list.value?.hide(c)}};i=ke([ce(0,b.IContextViewService),ce(1,_.IContextKeyService),ce(2,n.IInstantiationService)],i),(0,p.registerSingleton)(e.IActionWidgetService,i,1);const s=1100;(0,m.registerAction2)(class extends m.Action2{constructor(){super({id:"hideCodeActionWidget",title:(0,E.localize2)(1498,"Hide action widget"),precondition:t.Visible,keybinding:{weight:s,primary:9,secondary:[1033]}})}run(g){g.get(e.IActionWidgetService).hide(!0)}}),(0,m.registerAction2)(class extends m.Action2{constructor(){super({id:"selectPrevCodeAction",title:(0,E.localize2)(1499,"Select previous action"),precondition:t.Visible,keybinding:{weight:s,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(g){const c=g.get(e.IActionWidgetService);c instanceof i&&c.focusPrevious()}}),(0,m.registerAction2)(class extends m.Action2{constructor(){super({id:"selectNextCodeAction",title:(0,E.localize2)(1500,"Select next action"),precondition:t.Visible,keybinding:{weight:s,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(g){const c=g.get(e.IActionWidgetService);c instanceof i&&c.focusNext()}}),(0,m.registerAction2)(class extends m.Action2{constructor(){super({id:y.acceptSelectedActionCommand,title:(0,E.localize2)(1501,"Accept selected action"),precondition:t.Visible,keybinding:{weight:s,primary:3,secondary:[2137]}})}run(g){const c=g.get(e.IActionWidgetService);c instanceof i&&c.acceptSelected()}}),(0,m.registerAction2)(class extends m.Action2{constructor(){super({id:y.previewSelectedActionCommand,title:(0,E.localize2)(1502,"Preview selected action"),precondition:t.Visible,keybinding:{weight:s,primary:2051}})}run(g){const c=g.get(e.IActionWidgetService);c instanceof i&&c.acceptSelected(!0)}})}),define(ne[761],se([1,0,5,77,642,41,8,2,110]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextMenuHandler=void 0;class b{constructor(n,o,t,i){this.contextViewService=n,this.telemetryService=o,this.notificationService=t,this.keybindingService=i,this.focusToReturn=null,this.lastContainer=null,this.block=null,this.blockDisposable=null,this.options={blockMouse:!0}}configure(n){this.options=n}showContextMenu(n){const o=n.getActions();if(!o.length)return;this.focusToReturn=(0,d.getActiveElement)();let t;const i=(0,d.isHTMLElement)(n.domForShadowRoot)?n.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:()=>n.getAnchor(),canRelayout:!1,anchorAlignment:n.anchorAlignment,anchorAxisAlignment:n.anchorAxisAlignment,render:s=>{this.lastContainer=s;const g=n.getMenuClassName?n.getMenuClassName():"";g&&(s.className+=" "+g),this.options.blockMouse&&(this.block=s.appendChild((0,d.$)(".context-view-block")),this.block.style.position="fixed",this.block.style.cursor="initial",this.block.style.left="0",this.block.style.top="0",this.block.style.width="100%",this.block.style.height="100%",this.block.style.zIndex="-1",this.blockDisposable?.dispose(),this.blockDisposable=(0,d.addDisposableListener)(this.block,d.EventType.MOUSE_DOWN,r=>r.stopPropagation()));const c=new m.DisposableStore,l=n.actionRunner||new E.ActionRunner;l.onWillRun(r=>this.onActionRun(r,!n.skipTelemetry),this,c),l.onDidRun(this.onDidActionRun,this,c),t=new I.Menu(s,o,{actionViewItemProvider:n.getActionViewItem,context:n.getActionsContext?n.getActionsContext():null,actionRunner:l,getKeyBinding:n.getKeyBinding?n.getKeyBinding:r=>this.keybindingService.lookupKeybinding(r.id)},_.defaultMenuStyles),t.onDidCancel(()=>this.contextViewService.hideContextView(!0),null,c),t.onDidBlur(()=>this.contextViewService.hideContextView(!0),null,c);const a=(0,d.getWindow)(s);return c.add((0,d.addDisposableListener)(a,d.EventType.BLUR,()=>this.contextViewService.hideContextView(!0))),c.add((0,d.addDisposableListener)(a,d.EventType.MOUSE_DOWN,r=>{if(r.defaultPrevented)return;const u=new k.StandardMouseEvent(a,r);let C=u.target;if(!u.rightButton){for(;C;){if(C===s)return;C=C.parentElement}this.contextViewService.hideContextView(!0)}})),(0,m.combinedDisposable)(c,t)},focus:()=>{t?.focus(!!n.autoSelectFirstItem)},onHide:s=>{n.onHide?.(!!s),this.block&&(this.block.remove(),this.block=null),this.blockDisposable?.dispose(),this.blockDisposable=null,this.lastContainer&&((0,d.getActiveElement)()===this.lastContainer||(0,d.isAncestor)((0,d.getActiveElement)(),this.lastContainer))&&this.focusToReturn?.focus(),this.lastContainer=null}},i,!!i)}onActionRun(n,o){o&&this.telemetryService.publicLog2("workbenchActionExecuted",{id:n.action.id,from:"contextMenu"}),this.contextViewService.hideContextView(!1)}onDidActionRun(n){n.error&&!(0,y.isCancellationError)(n.error)&&this.notificationService.error(n.error)}}e.ContextMenuHandler=b}),define(ne[216],se([1,0,5,637,115,638,176,645,644,360,6,2,3,28,109,12,179,58,7,31,38,110]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WorkbenchCompressibleAsyncDataTree=e.WorkbenchAsyncDataTree=e.WorkbenchDataTree=e.WorkbenchCompressibleObjectTree=e.WorkbenchObjectTree=e.WorkbenchTable=e.WorkbenchPagedList=e.WorkbenchList=e.WorkbenchTreeFindOpen=e.WorkbenchTreeElementHasChild=e.WorkbenchTreeElementCanExpand=e.WorkbenchTreeElementHasParent=e.WorkbenchTreeElementCanCollapse=e.WorkbenchListSupportsFind=e.WorkbenchListSelectionNavigation=e.WorkbenchListMultiSelection=e.WorkbenchListDoubleSelection=e.WorkbenchListHasSelectionOrFocus=e.WorkbenchListFocusContextKey=e.WorkbenchListSupportsMultiSelectContextKey=e.WorkbenchTreeStickyScrollFocused=e.RawWorkbenchListFocusContextKey=e.WorkbenchListScrollAtBottomContextKey=e.WorkbenchListScrollAtTopContextKey=e.RawWorkbenchListScrollAtBoundaryContextKey=e.ListService=e.IListService=void 0,e.IListService=(0,l.createDecorator)("listService");class C{get lastFocusedList(){return this._lastFocusedWidget}constructor(){this.disposables=new n.DisposableStore,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}setLastFocusedList(le){le!==this._lastFocusedWidget&&(this._lastFocusedWidget?.getHTMLElement().classList.remove("last-focused"),this._lastFocusedWidget=le,this._lastFocusedWidget?.getHTMLElement().classList.add("last-focused"))}register(le,me){if(this._hasCreatedStyleController||(this._hasCreatedStyleController=!0,new I.DefaultStyleController((0,d.createStyleSheet)(),"").style(u.defaultListStyles)),this.lists.some(ye=>ye.widget===le))throw new Error("Cannot register the same widget multiple times");const Ce={widget:le,extraContextKeys:me};return this.lists.push(Ce),(0,d.isActiveElement)(le.getHTMLElement())&&this.setLastFocusedList(le),(0,n.combinedDisposable)(le.onDidFocus(()=>this.setLastFocusedList(le)),(0,n.toDisposable)(()=>this.lists.splice(this.lists.indexOf(Ce),1)),le.onDidDispose(()=>{this.lists=this.lists.filter(ye=>ye!==Ce),this._lastFocusedWidget===le&&this.setLastFocusedList(void 0)}))}dispose(){this.disposables.dispose()}}e.ListService=C,e.RawWorkbenchListScrollAtBoundaryContextKey=new s.RawContextKey("listScrollAtBoundary","none"),e.WorkbenchListScrollAtTopContextKey=s.ContextKeyExpr.or(e.RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("top"),e.RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("both")),e.WorkbenchListScrollAtBottomContextKey=s.ContextKeyExpr.or(e.RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("bottom"),e.RawWorkbenchListScrollAtBoundaryContextKey.isEqualTo("both")),e.RawWorkbenchListFocusContextKey=new s.RawContextKey("listFocus",!0),e.WorkbenchTreeStickyScrollFocused=new s.RawContextKey("treestickyScrollFocused",!1),e.WorkbenchListSupportsMultiSelectContextKey=new s.RawContextKey("listSupportsMultiselect",!0),e.WorkbenchListFocusContextKey=s.ContextKeyExpr.and(e.RawWorkbenchListFocusContextKey,s.ContextKeyExpr.not(g.InputFocusedContextKey),e.WorkbenchTreeStickyScrollFocused.negate()),e.WorkbenchListHasSelectionOrFocus=new s.RawContextKey("listHasSelectionOrFocus",!1),e.WorkbenchListDoubleSelection=new s.RawContextKey("listDoubleSelection",!1),e.WorkbenchListMultiSelection=new s.RawContextKey("listMultiSelection",!1),e.WorkbenchListSelectionNavigation=new s.RawContextKey("listSelectionNavigation",!1),e.WorkbenchListSupportsFind=new s.RawContextKey("listSupportsFind",!0),e.WorkbenchTreeElementCanCollapse=new s.RawContextKey("treeElementCanCollapse",!1),e.WorkbenchTreeElementHasParent=new s.RawContextKey("treeElementHasParent",!1),e.WorkbenchTreeElementCanExpand=new s.RawContextKey("treeElementCanExpand",!1),e.WorkbenchTreeElementHasChild=new s.RawContextKey("treeElementHasChild",!1),e.WorkbenchTreeFindOpen=new s.RawContextKey("treeFindOpen",!1);const f="listTypeNavigationMode",h="listAutomaticKeyboardNavigation";function v(re,le){const me=re.createScoped(le.getHTMLElement());return e.RawWorkbenchListFocusContextKey.bindTo(me),me}function w(re,le){const me=e.RawWorkbenchListScrollAtBoundaryContextKey.bindTo(re),Ce=()=>{const ye=le.scrollTop===0,Le=le.scrollHeight-le.renderHeight-le.scrollTop<1;ye&&Le?me.set("both"):ye?me.set("top"):Le?me.set("bottom"):me.set("none")};return Ce(),le.onDidScroll(Ce)}const S="workbench.list.multiSelectModifier",L="workbench.list.openMode",D="workbench.list.horizontalScrolling",T="workbench.list.defaultFindMode",M="workbench.list.typeNavigationMode",A="workbench.list.keyboardNavigation",P="workbench.list.scrollByPage",N="workbench.list.defaultFindMatchType",O="workbench.tree.indent",F="workbench.tree.renderIndentGuides",x="workbench.list.smoothScrolling",W="workbench.list.mouseWheelScrollSensitivity",V="workbench.list.fastScrollSensitivity",q="workbench.tree.expandMode",H="workbench.tree.enableStickyScroll",z="workbench.tree.stickyScrollMaxItemCount";function U(re){return re.getValue(S)==="alt"}class j extends n.Disposable{constructor(le){super(),this.configurationService=le,this.useAltAsMultipleSelectionModifier=U(le),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(le=>{le.affectsConfiguration(S)&&(this.useAltAsMultipleSelectionModifier=U(this.configurationService))}))}isSelectionSingleChangeEvent(le){return this.useAltAsMultipleSelectionModifier?le.browserEvent.altKey:(0,I.isSelectionSingleChangeEvent)(le)}isSelectionRangeChangeEvent(le){return(0,I.isSelectionRangeChangeEvent)(le)}}function Y(re,le){const me=re.get(t.IConfigurationService),Ce=re.get(a.IKeybindingService),ye=new n.DisposableStore;return[{...le,keyboardNavigationDelegate:{mightProducePrintableCharacter(Ee){return Ce.mightProducePrintableCharacter(Ee)}},smoothScrolling:!!me.getValue(x),mouseWheelScrollSensitivity:me.getValue(W),fastScrollSensitivity:me.getValue(V),multipleSelectionController:le.multipleSelectionController??ye.add(new j(me)),keyboardNavigationEventFilter:pe(Ce),scrollByPage:!!me.getValue(P)},ye]}let G=class extends I.List{constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne){const Ke=typeof Le.horizontalScrolling<"u"?Le.horizontalScrolling:!!Ae.getValue(D),[ze,Ge]=Ne.invokeFunction(Y,Le);super(le,me,Ce,ye,{keyboardSupport:!1,...ze,horizontalScrolling:Ke}),this.disposables.add(Ge),this.contextKeyService=v(Ee,this),this.disposables.add(w(this.contextKeyService,this)),this.listSupportsMultiSelect=e.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(Le.multipleSelectionSupport!==!1),e.WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!Le.selectionNavigation),this.listHasSelectionOrFocus=e.WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.listDoubleSelection=e.WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.listMultiSelection=e.WorkbenchListMultiSelection.bindTo(this.contextKeyService),this.horizontalScrolling=Le.horizontalScrolling,this._useAltAsMultipleSelectionModifier=U(Ae),this.disposables.add(this.contextKeyService),this.disposables.add(Me.register(this)),this.updateStyles(Le.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const Oe=this.getSelection(),Fe=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(Oe.length>0||Fe.length>0),this.listMultiSelection.set(Oe.length>1),this.listDoubleSelection.set(Oe.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const Oe=this.getSelection(),Fe=this.getFocus();this.listHasSelectionOrFocus.set(Oe.length>0||Fe.length>0)})),this.disposables.add(Ae.onDidChangeConfiguration(Oe=>{Oe.affectsConfiguration(S)&&(this._useAltAsMultipleSelectionModifier=U(Ae));let Fe={};if(Oe.affectsConfiguration(D)&&this.horizontalScrolling===void 0){const fe=!!Ae.getValue(D);Fe={...Fe,horizontalScrolling:fe}}if(Oe.affectsConfiguration(P)){const fe=!!Ae.getValue(P);Fe={...Fe,scrollByPage:fe}}if(Oe.affectsConfiguration(x)){const fe=!!Ae.getValue(x);Fe={...Fe,smoothScrolling:fe}}if(Oe.affectsConfiguration(W)){const fe=Ae.getValue(W);Fe={...Fe,mouseWheelScrollSensitivity:fe}}if(Oe.affectsConfiguration(V)){const fe=Ae.getValue(V);Fe={...Fe,fastScrollSensitivity:fe}}Object.keys(Fe).length>0&&this.updateOptions(Fe)})),this.navigator=new ie(this,{configurationService:Ae,...Le}),this.disposables.add(this.navigator)}updateOptions(le){super.updateOptions(le),le.overrideStyles!==void 0&&this.updateStyles(le.overrideStyles),le.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!le.multipleSelectionSupport)}updateStyles(le){this.style(le?(0,u.getListStyles)(le):u.defaultListStyles)}};e.WorkbenchList=G,e.WorkbenchList=G=ke([ce(5,s.IContextKeyService),ce(6,e.IListService),ce(7,t.IConfigurationService),ce(8,l.IInstantiationService)],G);let K=class extends k.PagedList{constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne){const Ke=typeof Le.horizontalScrolling<"u"?Le.horizontalScrolling:!!Ae.getValue(D),[ze,Ge]=Ne.invokeFunction(Y,Le);super(le,me,Ce,ye,{keyboardSupport:!1,...ze,horizontalScrolling:Ke}),this.disposables=new n.DisposableStore,this.disposables.add(Ge),this.contextKeyService=v(Ee,this),this.disposables.add(w(this.contextKeyService,this.widget)),this.horizontalScrolling=Le.horizontalScrolling,this.listSupportsMultiSelect=e.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(Le.multipleSelectionSupport!==!1),e.WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!Le.selectionNavigation),this._useAltAsMultipleSelectionModifier=U(Ae),this.disposables.add(this.contextKeyService),this.disposables.add(Me.register(this)),this.updateStyles(Le.overrideStyles),this.disposables.add(Ae.onDidChangeConfiguration(Oe=>{Oe.affectsConfiguration(S)&&(this._useAltAsMultipleSelectionModifier=U(Ae));let Fe={};if(Oe.affectsConfiguration(D)&&this.horizontalScrolling===void 0){const fe=!!Ae.getValue(D);Fe={...Fe,horizontalScrolling:fe}}if(Oe.affectsConfiguration(P)){const fe=!!Ae.getValue(P);Fe={...Fe,scrollByPage:fe}}if(Oe.affectsConfiguration(x)){const fe=!!Ae.getValue(x);Fe={...Fe,smoothScrolling:fe}}if(Oe.affectsConfiguration(W)){const fe=Ae.getValue(W);Fe={...Fe,mouseWheelScrollSensitivity:fe}}if(Oe.affectsConfiguration(V)){const fe=Ae.getValue(V);Fe={...Fe,fastScrollSensitivity:fe}}Object.keys(Fe).length>0&&this.updateOptions(Fe)})),this.navigator=new ie(this,{configurationService:Ae,...Le}),this.disposables.add(this.navigator)}updateOptions(le){super.updateOptions(le),le.overrideStyles!==void 0&&this.updateStyles(le.overrideStyles),le.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!le.multipleSelectionSupport)}updateStyles(le){this.style(le?(0,u.getListStyles)(le):u.defaultListStyles)}dispose(){this.disposables.dispose(),super.dispose()}};e.WorkbenchPagedList=K,e.WorkbenchPagedList=K=ke([ce(5,s.IContextKeyService),ce(6,e.IListService),ce(7,t.IConfigurationService),ce(8,l.IInstantiationService)],K);let R=class extends E.Table{constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne,Ke){const ze=typeof Ee.horizontalScrolling<"u"?Ee.horizontalScrolling:!!Ne.getValue(D),[Ge,it]=Ke.invokeFunction(Y,Ee);super(le,me,Ce,ye,Le,{keyboardSupport:!1,...Ge,horizontalScrolling:ze}),this.disposables.add(it),this.contextKeyService=v(Me,this),this.disposables.add(w(this.contextKeyService,this)),this.listSupportsMultiSelect=e.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(Ee.multipleSelectionSupport!==!1),e.WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!Ee.selectionNavigation),this.listHasSelectionOrFocus=e.WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.listDoubleSelection=e.WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.listMultiSelection=e.WorkbenchListMultiSelection.bindTo(this.contextKeyService),this.horizontalScrolling=Ee.horizontalScrolling,this._useAltAsMultipleSelectionModifier=U(Ne),this.disposables.add(this.contextKeyService),this.disposables.add(Ae.register(this)),this.updateStyles(Ee.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const Fe=this.getSelection(),fe=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(Fe.length>0||fe.length>0),this.listMultiSelection.set(Fe.length>1),this.listDoubleSelection.set(Fe.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const Fe=this.getSelection(),fe=this.getFocus();this.listHasSelectionOrFocus.set(Fe.length>0||fe.length>0)})),this.disposables.add(Ne.onDidChangeConfiguration(Fe=>{Fe.affectsConfiguration(S)&&(this._useAltAsMultipleSelectionModifier=U(Ne));let fe={};if(Fe.affectsConfiguration(D)&&this.horizontalScrolling===void 0){const _e=!!Ne.getValue(D);fe={...fe,horizontalScrolling:_e}}if(Fe.affectsConfiguration(P)){const _e=!!Ne.getValue(P);fe={...fe,scrollByPage:_e}}if(Fe.affectsConfiguration(x)){const _e=!!Ne.getValue(x);fe={...fe,smoothScrolling:_e}}if(Fe.affectsConfiguration(W)){const _e=Ne.getValue(W);fe={...fe,mouseWheelScrollSensitivity:_e}}if(Fe.affectsConfiguration(V)){const _e=Ne.getValue(V);fe={...fe,fastScrollSensitivity:_e}}Object.keys(fe).length>0&&this.updateOptions(fe)})),this.navigator=new ue(this,{configurationService:Ne,...Ee}),this.disposables.add(this.navigator)}updateOptions(le){super.updateOptions(le),le.overrideStyles!==void 0&&this.updateStyles(le.overrideStyles),le.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!le.multipleSelectionSupport)}updateStyles(le){this.style(le?(0,u.getListStyles)(le):u.defaultListStyles)}dispose(){this.disposables.dispose(),super.dispose()}};e.WorkbenchTable=R,e.WorkbenchTable=R=ke([ce(6,s.IContextKeyService),ce(7,e.IListService),ce(8,t.IConfigurationService),ce(9,l.IInstantiationService)],R);class J extends n.Disposable{constructor(le,me){super(),this.widget=le,this._onDidOpen=this._register(new p.Emitter),this.onDidOpen=this._onDidOpen.event,this._register(p.Event.filter(this.widget.onDidChangeSelection,Ce=>(0,d.isKeyboardEvent)(Ce.browserEvent))(Ce=>this.onSelectionFromKeyboard(Ce))),this._register(this.widget.onPointer(Ce=>this.onPointer(Ce.element,Ce.browserEvent))),this._register(this.widget.onMouseDblClick(Ce=>this.onMouseDblClick(Ce.element,Ce.browserEvent))),typeof me?.openOnSingleClick!="boolean"&&me?.configurationService?(this.openOnSingleClick=me?.configurationService.getValue(L)!=="doubleClick",this._register(me?.configurationService.onDidChangeConfiguration(Ce=>{Ce.affectsConfiguration(L)&&(this.openOnSingleClick=me?.configurationService.getValue(L)!=="doubleClick")}))):this.openOnSingleClick=me?.openOnSingleClick??!0}onSelectionFromKeyboard(le){if(le.elements.length!==1)return;const me=le.browserEvent,Ce=typeof me.preserveFocus=="boolean"?me.preserveFocus:!0,ye=typeof me.pinned=="boolean"?me.pinned:!Ce;this._open(this.getSelectedElement(),Ce,ye,!1,le.browserEvent)}onPointer(le,me){if(!this.openOnSingleClick||me.detail===2)return;const ye=me.button===1,Le=!0,Ee=ye,Me=me.ctrlKey||me.metaKey||me.altKey;this._open(le,Le,Ee,Me,me)}onMouseDblClick(le,me){if(!me)return;const Ce=me.target;if(Ce.classList.contains("monaco-tl-twistie")||Ce.classList.contains("monaco-icon-label")&&Ce.classList.contains("folder-icon")&&me.offsetX<16)return;const Le=!1,Ee=!0,Me=me.ctrlKey||me.metaKey||me.altKey;this._open(le,Le,Ee,Me,me)}_open(le,me,Ce,ye,Le){le&&this._onDidOpen.fire({editorOptions:{preserveFocus:me,pinned:Ce,revealIfVisible:!0},sideBySide:ye,element:le,browserEvent:Le})}}class ie extends J{constructor(le,me){super(le,me),this.widget=le}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class ue extends J{constructor(le,me){super(le,me)}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class he extends J{constructor(le,me){super(le,me)}getSelectedElement(){return this.widget.getSelection()[0]??void 0}}function pe(re){let le=!1;return me=>{if(me.toKeyCodeChord().isModifierKey())return!1;if(le)return le=!1,!1;const Ce=re.softDispatch(me,me.target);return Ce.kind===1?(le=!0,!1):(le=!1,Ce.kind===0)}}let ae=class extends b.ObjectTree{constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne){const{options:Ke,getTypeNavigationMode:ze,disposable:Ge}=Ee.invokeFunction(Q,Le);super(le,me,Ce,ye,Ke),this.disposables.add(Ge),this.internals=new Z(this,Le,ze,Le.overrideStyles,Me,Ae,Ne),this.disposables.add(this.internals)}updateOptions(le){super.updateOptions(le),this.internals.updateOptions(le)}};e.WorkbenchObjectTree=ae,e.WorkbenchObjectTree=ae=ke([ce(5,l.IInstantiationService),ce(6,s.IContextKeyService),ce(7,e.IListService),ce(8,t.IConfigurationService)],ae);let ee=class extends b.CompressibleObjectTree{constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne){const{options:Ke,getTypeNavigationMode:ze,disposable:Ge}=Ee.invokeFunction(Q,Le);super(le,me,Ce,ye,Ke),this.disposables.add(Ge),this.internals=new Z(this,Le,ze,Le.overrideStyles,Me,Ae,Ne),this.disposables.add(this.internals)}updateOptions(le={}){super.updateOptions(le),le.overrideStyles&&this.internals.updateStyleOverrides(le.overrideStyles),this.internals.updateOptions(le)}};e.WorkbenchCompressibleObjectTree=ee,e.WorkbenchCompressibleObjectTree=ee=ke([ce(5,l.IInstantiationService),ce(6,s.IContextKeyService),ce(7,e.IListService),ce(8,t.IConfigurationService)],ee);let de=class extends _.DataTree{constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne,Ke){const{options:ze,getTypeNavigationMode:Ge,disposable:it}=Me.invokeFunction(Q,Ee);super(le,me,Ce,ye,Le,ze),this.disposables.add(it),this.internals=new Z(this,Ee,Ge,Ee.overrideStyles,Ae,Ne,Ke),this.disposables.add(this.internals)}updateOptions(le={}){super.updateOptions(le),le.overrideStyles!==void 0&&this.internals.updateStyleOverrides(le.overrideStyles),this.internals.updateOptions(le)}};e.WorkbenchDataTree=de,e.WorkbenchDataTree=de=ke([ce(6,l.IInstantiationService),ce(7,s.IContextKeyService),ce(8,e.IListService),ce(9,t.IConfigurationService)],de);let ge=class extends m.AsyncDataTree{get onDidOpen(){return this.internals.onDidOpen}constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne,Ke){const{options:ze,getTypeNavigationMode:Ge,disposable:it}=Me.invokeFunction(Q,Ee);super(le,me,Ce,ye,Le,ze),this.disposables.add(it),this.internals=new Z(this,Ee,Ge,Ee.overrideStyles,Ae,Ne,Ke),this.disposables.add(this.internals)}updateOptions(le={}){super.updateOptions(le),le.overrideStyles&&this.internals.updateStyleOverrides(le.overrideStyles),this.internals.updateOptions(le)}};e.WorkbenchAsyncDataTree=ge,e.WorkbenchAsyncDataTree=ge=ke([ce(6,l.IInstantiationService),ce(7,s.IContextKeyService),ce(8,e.IListService),ce(9,t.IConfigurationService)],ge);let X=class extends m.CompressibleAsyncDataTree{constructor(le,me,Ce,ye,Le,Ee,Me,Ae,Ne,Ke,ze){const{options:Ge,getTypeNavigationMode:it,disposable:Oe}=Ae.invokeFunction(Q,Me);super(le,me,Ce,ye,Le,Ee,Ge),this.disposables.add(Oe),this.internals=new Z(this,Me,it,Me.overrideStyles,Ne,Ke,ze),this.disposables.add(this.internals)}updateOptions(le){super.updateOptions(le),this.internals.updateOptions(le)}};e.WorkbenchCompressibleAsyncDataTree=X,e.WorkbenchCompressibleAsyncDataTree=X=ke([ce(7,l.IInstantiationService),ce(8,s.IContextKeyService),ce(9,e.IListService),ce(10,t.IConfigurationService)],X);function B(re){const le=re.getValue(T);if(le==="highlight")return y.TreeFindMode.Highlight;if(le==="filter")return y.TreeFindMode.Filter;const me=re.getValue(A);if(me==="simple"||me==="highlight")return y.TreeFindMode.Highlight;if(me==="filter")return y.TreeFindMode.Filter}function $(re){const le=re.getValue(N);if(le==="fuzzy")return y.TreeFindMatchType.Fuzzy;if(le==="contiguous")return y.TreeFindMatchType.Contiguous}function Q(re,le){const me=re.get(t.IConfigurationService),Ce=re.get(c.IContextViewService),ye=re.get(s.IContextKeyService),Le=re.get(l.IInstantiationService),Ee=()=>{const Ge=ye.getContextKeyValue(f);if(Ge==="automatic")return I.TypeNavigationMode.Automatic;if(Ge==="trigger"||ye.getContextKeyValue(h)===!1)return I.TypeNavigationMode.Trigger;const Oe=me.getValue(M);if(Oe==="automatic")return I.TypeNavigationMode.Automatic;if(Oe==="trigger")return I.TypeNavigationMode.Trigger},Me=le.horizontalScrolling!==void 0?le.horizontalScrolling:!!me.getValue(D),[Ae,Ne]=Le.invokeFunction(Y,le),Ke=le.paddingBottom,ze=le.renderIndentGuides!==void 0?le.renderIndentGuides:me.getValue(F);return{getTypeNavigationMode:Ee,disposable:Ne,options:{keyboardSupport:!1,...Ae,indent:typeof me.getValue(O)=="number"?me.getValue(O):void 0,renderIndentGuides:ze,smoothScrolling:!!me.getValue(x),defaultFindMode:B(me),defaultFindMatchType:$(me),horizontalScrolling:Me,scrollByPage:!!me.getValue(P),paddingBottom:Ke,hideTwistiesOfChildlessElements:le.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:le.expandOnlyOnTwistieClick??me.getValue(q)==="doubleClick",contextViewProvider:Ce,findWidgetStyles:u.defaultFindWidgetStyles,enableStickyScroll:!!me.getValue(H),stickyScrollMaxItemCount:Number(me.getValue(z))}}}let Z=class{get onDidOpen(){return this.navigator.onDidOpen}constructor(le,me,Ce,ye,Le,Ee,Me){this.tree=le,this.disposables=[],this.contextKeyService=v(Le,le),this.disposables.push(w(this.contextKeyService,le)),this.listSupportsMultiSelect=e.WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(me.multipleSelectionSupport!==!1),e.WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!me.selectionNavigation),this.listSupportFindWidget=e.WorkbenchListSupportsFind.bindTo(this.contextKeyService),this.listSupportFindWidget.set(me.findWidgetEnabled??!0),this.hasSelectionOrFocus=e.WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.hasDoubleSelection=e.WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.hasMultiSelection=e.WorkbenchListMultiSelection.bindTo(this.contextKeyService),this.treeElementCanCollapse=e.WorkbenchTreeElementCanCollapse.bindTo(this.contextKeyService),this.treeElementHasParent=e.WorkbenchTreeElementHasParent.bindTo(this.contextKeyService),this.treeElementCanExpand=e.WorkbenchTreeElementCanExpand.bindTo(this.contextKeyService),this.treeElementHasChild=e.WorkbenchTreeElementHasChild.bindTo(this.contextKeyService),this.treeFindOpen=e.WorkbenchTreeFindOpen.bindTo(this.contextKeyService),this.treeStickyScrollFocused=e.WorkbenchTreeStickyScrollFocused.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=U(Me),this.updateStyleOverrides(ye);const Ne=()=>{const ze=le.getFocus()[0];if(!ze)return;const Ge=le.getNode(ze);this.treeElementCanCollapse.set(Ge.collapsible&&!Ge.collapsed),this.treeElementHasParent.set(!!le.getParentElement(ze)),this.treeElementCanExpand.set(Ge.collapsible&&Ge.collapsed),this.treeElementHasChild.set(!!le.getFirstElementChild(ze))},Ke=new Set;Ke.add(f),Ke.add(h),this.disposables.push(this.contextKeyService,Ee.register(le),le.onDidChangeSelection(()=>{const ze=le.getSelection(),Ge=le.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.hasSelectionOrFocus.set(ze.length>0||Ge.length>0),this.hasMultiSelection.set(ze.length>1),this.hasDoubleSelection.set(ze.length===2)})}),le.onDidChangeFocus(()=>{const ze=le.getSelection(),Ge=le.getFocus();this.hasSelectionOrFocus.set(ze.length>0||Ge.length>0),Ne()}),le.onDidChangeCollapseState(Ne),le.onDidChangeModel(Ne),le.onDidChangeFindOpenState(ze=>this.treeFindOpen.set(ze)),le.onDidChangeStickyScrollFocused(ze=>this.treeStickyScrollFocused.set(ze)),Me.onDidChangeConfiguration(ze=>{let Ge={};if(ze.affectsConfiguration(S)&&(this._useAltAsMultipleSelectionModifier=U(Me)),ze.affectsConfiguration(O)){const it=Me.getValue(O);Ge={...Ge,indent:it}}if(ze.affectsConfiguration(F)&&me.renderIndentGuides===void 0){const it=Me.getValue(F);Ge={...Ge,renderIndentGuides:it}}if(ze.affectsConfiguration(x)){const it=!!Me.getValue(x);Ge={...Ge,smoothScrolling:it}}if(ze.affectsConfiguration(T)||ze.affectsConfiguration(A)){const it=B(Me);Ge={...Ge,defaultFindMode:it}}if(ze.affectsConfiguration(M)||ze.affectsConfiguration(A)){const it=Ce();Ge={...Ge,typeNavigationMode:it}}if(ze.affectsConfiguration(N)){const it=$(Me);Ge={...Ge,defaultFindMatchType:it}}if(ze.affectsConfiguration(D)&&me.horizontalScrolling===void 0){const it=!!Me.getValue(D);Ge={...Ge,horizontalScrolling:it}}if(ze.affectsConfiguration(P)){const it=!!Me.getValue(P);Ge={...Ge,scrollByPage:it}}if(ze.affectsConfiguration(q)&&me.expandOnlyOnTwistieClick===void 0&&(Ge={...Ge,expandOnlyOnTwistieClick:Me.getValue(q)==="doubleClick"}),ze.affectsConfiguration(H)){const it=Me.getValue(H);Ge={...Ge,enableStickyScroll:it}}if(ze.affectsConfiguration(z)){const it=Math.max(1,Me.getValue(z));Ge={...Ge,stickyScrollMaxItemCount:it}}if(ze.affectsConfiguration(W)){const it=Me.getValue(W);Ge={...Ge,mouseWheelScrollSensitivity:it}}if(ze.affectsConfiguration(V)){const it=Me.getValue(V);Ge={...Ge,fastScrollSensitivity:it}}Object.keys(Ge).length>0&&le.updateOptions(Ge)}),this.contextKeyService.onDidChangeContext(ze=>{ze.affectsSome(Ke)&&le.updateOptions({typeNavigationMode:Ce()})})),this.navigator=new he(le,{configurationService:Me,...me}),this.disposables.push(this.navigator)}updateOptions(le){le.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!le.multipleSelectionSupport)}updateStyleOverrides(le){this.tree.style(le?(0,u.getListStyles)(le):u.defaultListStyles)}dispose(){this.disposables=(0,n.dispose)(this.disposables)}};Z=ke([ce(4,s.IContextKeyService),ce(5,e.IListService),ce(6,t.IConfigurationService)],Z),r.Registry.as(i.Extensions.Configuration).registerConfiguration({id:"workbench",order:7,title:(0,o.localize)(1542,"Workbench"),type:"object",properties:{[S]:{type:"string",enum:["ctrlCmd","alt"],markdownEnumDescriptions:[(0,o.localize)(1543,"Maps to `Control` on Windows and Linux and to `Command` on macOS."),(0,o.localize)(1544,"Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:(0,o.localize)(1545,"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.")},[L]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,o.localize)(1546,"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[D]:{type:"boolean",default:!1,description:(0,o.localize)(1547,"Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.")},[P]:{type:"boolean",default:!1,description:(0,o.localize)(1548,"Controls whether clicks in the scrollbar scroll page by page.")},[O]:{type:"number",default:8,minimum:4,maximum:40,description:(0,o.localize)(1549,"Controls tree indentation in pixels.")},[F]:{type:"string",enum:["none","onHover","always"],default:"onHover",description:(0,o.localize)(1550,"Controls whether the tree should render indent guides.")},[x]:{type:"boolean",default:!1,description:(0,o.localize)(1551,"Controls whether lists and trees have smooth scrolling.")},[W]:{type:"number",default:1,markdownDescription:(0,o.localize)(1552,"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")},[V]:{type:"number",default:5,markdownDescription:(0,o.localize)(1553,"Scrolling speed multiplier when pressing `Alt`.")},[T]:{type:"string",enum:["highlight","filter"],enumDescriptions:[(0,o.localize)(1554,"Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements."),(0,o.localize)(1555,"Filter elements when searching.")],default:"highlight",description:(0,o.localize)(1556,"Controls the default find mode for lists and trees in the workbench.")},[A]:{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[(0,o.localize)(1557,"Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes."),(0,o.localize)(1558,"Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements."),(0,o.localize)(1559,"Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.")],default:"highlight",description:(0,o.localize)(1560,"Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter."),deprecated:!0,deprecationMessage:(0,o.localize)(1561,"Please use 'workbench.list.defaultFindMode' and 'workbench.list.typeNavigationMode' instead.")},[N]:{type:"string",enum:["fuzzy","contiguous"],enumDescriptions:[(0,o.localize)(1562,"Use fuzzy matching when searching."),(0,o.localize)(1563,"Use contiguous matching when searching.")],default:"fuzzy",description:(0,o.localize)(1564,"Controls the type of matching used when searching lists and trees in the workbench.")},[q]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:(0,o.localize)(1565,"Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[H]:{type:"boolean",default:!0,description:(0,o.localize)(1566,"Controls whether sticky scrolling is enabled in trees.")},[z]:{type:"number",minimum:1,default:7,markdownDescription:(0,o.localize)(1567,"Controls the number of sticky elements displayed in the tree when {0} is enabled.","`#workbench.tree.enableStickyScroll#`")},[M]:{type:"string",enum:["automatic","trigger"],default:"automatic",markdownDescription:(0,o.localize)(1568,"Controls how type navigation works in lists and trees in the workbench. When set to `trigger`, type navigation begins once the `list.triggerTypeNavigation` command is run.")}}})}),define(ne[71],se([1,0,14,26,191,30,6,19,22,3,273,38]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.spinningLoading=e.syncing=e.gotoNextLocation=e.gotoPreviousLocation=e.widgetClose=e.iconsSchemaId=e.IconFontDefinition=e.IconContribution=e.Extensions=void 0,e.registerIcon=g,e.getIconRegistry=c,e.Extensions={IconContribution:"base.contributions.icons"};var o;(function(u){function C(f,h){let v=f.defaults;for(;E.ThemeIcon.isThemeIcon(v);){const w=s.getIcon(v.id);if(!w)return;v=w.defaults}return v}u.getDefinition=C})(o||(e.IconContribution=o={}));var t;(function(u){function C(h){return{weight:h.weight,style:h.style,src:h.src.map(v=>({format:v.format,location:v.location.toString()}))}}u.toJSONObject=C;function f(h){const v=w=>(0,m.isString)(w)?w:void 0;if(h&&Array.isArray(h.src)&&h.src.every(w=>(0,m.isString)(w.format)&&(0,m.isString)(w.location)))return{weight:v(h.weight),style:v(h.style),src:h.src.map(w=>({format:w.format,location:_.URI.parse(w.location)}))}}u.fromJSONObject=f})(t||(e.IconFontDefinition=t={}));class i{constructor(){this._onDidChange=new y.Emitter,this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:(0,b.localize)(1838,"The id of the font to use. If not set, the font that is defined first is used.")},fontCharacter:{type:"string",description:(0,b.localize)(1839,"The font character associated with the icon definition.")}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}},this.iconReferenceSchema={type:"string",pattern:`^${E.ThemeIcon.iconNameExpression}$`,enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}registerIcon(C,f,h,v){const w=this.iconsById[C];if(w){if(h&&!w.description){w.description=h,this.iconSchema.properties[C].markdownDescription=`${h} $(${C})`;const D=this.iconReferenceSchema.enum.indexOf(C);D!==-1&&(this.iconReferenceSchema.enumDescriptions[D]=h),this._onDidChange.fire()}return w}const S={id:C,description:h,defaults:f,deprecationMessage:v};this.iconsById[C]=S;const L={$ref:"#/definitions/icons"};return v&&(L.deprecationMessage=v),h&&(L.markdownDescription=`${h}: $(${C})`),this.iconSchema.properties[C]=L,this.iconReferenceSchema.enum.push(C),this.iconReferenceSchema.enumDescriptions.push(h||""),this._onDidChange.fire(),{id:C}}getIcons(){return Object.keys(this.iconsById).map(C=>this.iconsById[C])}getIcon(C){return this.iconsById[C]}getIconSchema(){return this.iconSchema}toString(){const C=(w,S)=>w.id.localeCompare(S.id),f=w=>{for(;E.ThemeIcon.isThemeIcon(w.defaults);)w=this.iconsById[w.defaults.id];return`codicon codicon-${w?w.id:""}`},h=[];h.push("| preview | identifier | default codicon ID | description"),h.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");const v=Object.keys(this.iconsById).map(w=>this.iconsById[w]);for(const w of v.filter(S=>!!S.description).sort(C))h.push(`||${w.id}|${E.ThemeIcon.isThemeIcon(w.defaults)?w.defaults.id:w.id}|${w.description||""}|`);h.push("| preview | identifier "),h.push("| ----------- | --------------------------------- |");for(const w of v.filter(S=>!E.ThemeIcon.isThemeIcon(S.defaults)).sort(C))h.push(`||${w.id}|`);return h.join(` +`)}}const s=new i;n.Registry.add(e.Extensions.IconContribution,s);function g(u,C,f,h){return s.registerIcon(u,C,f,h)}function c(){return s}function l(){const u=(0,I.getCodiconFontCharacters)();for(const C in u){const f="\\"+u[C].toString(16);s.registerIcon(C,{fontCharacter:f})}}l(),e.iconsSchemaId="vscode://schemas/icons";const a=n.Registry.as(p.Extensions.JSONContribution);a.registerSchema(e.iconsSchemaId,s.getIconSchema());const r=new d.RunOnceScheduler(()=>a.notifySchemaChanged(e.iconsSchemaId),200);s.onDidChange(()=>{r.isScheduled()||r.schedule()}),e.widgetClose=g("widget-close",k.Codicon.close,(0,b.localize)(1840,"Icon for the close action in widgets.")),e.gotoPreviousLocation=g("goto-previous-location",k.Codicon.arrowUp,(0,b.localize)(1841,"Icon for goto previous editor location.")),e.gotoNextLocation=g("goto-next-location",k.Codicon.arrowDown,(0,b.localize)(1842,"Icon for goto next editor location.")),e.syncing=E.ThemeIcon.modify(k.Codicon.sync,"spin"),e.spinningLoading=E.ThemeIcon.modify(k.Codicon.loading,"spin")}),define(ne[762],se([1,0,5,103,87,86,41,13,26,2,21,30,74,88,37,55,68,9,4,105,43,83,136,95,3,137,7,71,499]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibleDiffViewerModelFromEditors=e.AccessibleDiffViewer=void 0;const L=(0,S.registerIcon)("diff-review-insert",_.Codicon.add,(0,h.localize)(84,"Icon for 'Insert' in accessible diff viewer.")),D=(0,S.registerIcon)("diff-review-remove",_.Codicon.remove,(0,h.localize)(85,"Icon for 'Remove' in accessible diff viewer.")),T=(0,S.registerIcon)("diff-review-close",_.Codicon.close,(0,h.localize)(86,"Icon for 'Close' in accessible diff viewer."));let M=class extends b.Disposable{static{this._ttPolicy=(0,k.createTrustedTypesPolicy)("diffReview",{createHTML:j=>j})}constructor(j,Y,G,K,R,J,ie,ue,he){super(),this._parentNode=j,this._visible=Y,this._setVisible=G,this._canClose=K,this._width=R,this._height=J,this._diffs=ie,this._models=ue,this._instantiationService=he,this._state=(0,p.derivedWithStore)(this,(pe,ae)=>{const ee=this._visible.read(pe);if(this._parentNode.style.visibility=ee?"visible":"hidden",!ee)return null;const de=ae.add(this._instantiationService.createInstance(A,this._diffs,this._models,this._setVisible,this._canClose)),ge=ae.add(this._instantiationService.createInstance(H,this._parentNode,de,this._width,this._height,this._models));return{model:de,view:ge}}).recomputeInitiallyAndOnChange(this._store)}next(){(0,p.transaction)(j=>{const Y=this._visible.get();this._setVisible(!0,j),Y&&this._state.get().model.nextGroup(j)})}prev(){(0,p.transaction)(j=>{this._setVisible(!0,j),this._state.get().model.previousGroup(j)})}close(){(0,p.transaction)(j=>{this._setVisible(!1,j)})}};e.AccessibleDiffViewer=M,e.AccessibleDiffViewer=M=ke([ce(8,w.IInstantiationService)],M);let A=class extends b.Disposable{constructor(j,Y,G,K,R){super(),this._diffs=j,this._models=Y,this._setVisible=G,this.canClose=K,this._accessibilitySignalService=R,this._groups=(0,p.observableValue)(this,[]),this._currentGroupIdx=(0,p.observableValue)(this,0),this._currentElementIdx=(0,p.observableValue)(this,0),this.groups=this._groups,this.currentGroup=this._currentGroupIdx.map((J,ie)=>this._groups.read(ie)[J]),this.currentGroupIndex=this._currentGroupIdx,this.currentElement=this._currentElementIdx.map((J,ie)=>this.currentGroup.read(ie)?.lines[J]),this._register((0,p.autorun)(J=>{const ie=this._diffs.read(J);if(!ie){this._groups.set([],void 0);return}const ue=N(ie,this._models.getOriginalModel().getLineCount(),this._models.getModifiedModel().getLineCount());(0,p.transaction)(he=>{const pe=this._models.getModifiedPosition();if(pe){const ae=ue.findIndex(ee=>pe?.lineNumber{const ie=this.currentElement.read(J);ie?.type===O.Deleted?this._accessibilitySignalService.playSignal(v.AccessibilitySignal.diffLineDeleted,{source:"accessibleDiffViewer.currentElementChanged"}):ie?.type===O.Added&&this._accessibilitySignalService.playSignal(v.AccessibilitySignal.diffLineInserted,{source:"accessibleDiffViewer.currentElementChanged"})})),this._register((0,p.autorun)(J=>{const ie=this.currentElement.read(J);if(ie&&ie.type!==O.Header){const ue=ie.modifiedLineNumber??ie.diff.modified.startLineNumber;this._models.modifiedSetSelection(l.Range.fromPositions(new c.Position(ue,1)))}}))}_goToGroupDelta(j,Y){const G=this.groups.get();!G||G.length<=1||(0,p.subtransaction)(Y,K=>{this._currentGroupIdx.set(g.OffsetRange.ofLength(G.length).clipCyclic(this._currentGroupIdx.get()+j),K),this._currentElementIdx.set(0,K)})}nextGroup(j){this._goToGroupDelta(1,j)}previousGroup(j){this._goToGroupDelta(-1,j)}_goToLineDelta(j){const Y=this.currentGroup.get();!Y||Y.lines.length<=1||(0,p.transaction)(G=>{this._currentElementIdx.set(g.OffsetRange.ofLength(Y.lines.length).clip(this._currentElementIdx.get()+j),G)})}goToNextLine(){this._goToLineDelta(1)}goToPreviousLine(){this._goToLineDelta(-1)}goToLine(j){const Y=this.currentGroup.get();if(!Y)return;const G=Y.lines.indexOf(j);G!==-1&&(0,p.transaction)(K=>{this._currentElementIdx.set(G,K)})}revealCurrentElementInEditor(){if(!this.canClose.get())return;this._setVisible(!1,void 0);const j=this.currentElement.get();j&&(j.type===O.Deleted?this._models.originalReveal(l.Range.fromPositions(new c.Position(j.originalLineNumber,1))):this._models.modifiedReveal(j.type!==O.Header?l.Range.fromPositions(new c.Position(j.modifiedLineNumber,1)):void 0))}close(){this.canClose.get()&&(this._setVisible(!1,void 0),this._models.modifiedFocus())}};A=ke([ce(4,v.IAccessibilitySignalService)],A);const P=3;function N(U,j,Y){const G=[];for(const K of(0,m.groupAdjacentBy)(U,(R,J)=>J.modified.startLineNumber-R.modified.endLineNumberExclusive<2*P)){const R=[];R.push(new x);const J=new s.LineRange(Math.max(1,K[0].original.startLineNumber-P),Math.min(K[K.length-1].original.endLineNumberExclusive+P,j+1)),ie=new s.LineRange(Math.max(1,K[0].modified.startLineNumber-P),Math.min(K[K.length-1].modified.endLineNumberExclusive+P,Y+1));(0,m.forEachAdjacent)(K,(pe,ae)=>{const ee=new s.LineRange(pe?pe.original.endLineNumberExclusive:J.startLineNumber,ae?ae.original.startLineNumber:J.endLineNumberExclusive),de=new s.LineRange(pe?pe.modified.endLineNumberExclusive:ie.startLineNumber,ae?ae.modified.startLineNumber:ie.endLineNumberExclusive);ee.forEach(ge=>{R.push(new q(ge,de.startLineNumber+(ge-ee.startLineNumber)))}),ae&&(ae.original.forEach(ge=>{R.push(new W(ae,ge))}),ae.modified.forEach(ge=>{R.push(new V(ae,ge))}))});const ue=K[0].modified.join(K[K.length-1].modified),he=K[0].original.join(K[K.length-1].original);G.push(new F(new a.LineRangeMapping(ue,he),R))}return G}var O;(function(U){U[U.Header=0]="Header",U[U.Unchanged=1]="Unchanged",U[U.Deleted=2]="Deleted",U[U.Added=3]="Added"})(O||(O={}));class F{constructor(j,Y){this.range=j,this.lines=Y}}class x{constructor(){this.type=O.Header}}class W{constructor(j,Y){this.diff=j,this.originalLineNumber=Y,this.type=O.Deleted,this.modifiedLineNumber=void 0}}class V{constructor(j,Y){this.diff=j,this.modifiedLineNumber=Y,this.type=O.Added,this.originalLineNumber=void 0}}class q{constructor(j,Y){this.originalLineNumber=j,this.modifiedLineNumber=Y,this.type=O.Unchanged}}let H=class extends b.Disposable{constructor(j,Y,G,K,R,J){super(),this._element=j,this._model=Y,this._width=G,this._height=K,this._models=R,this._languageService=J,this.domNode=this._element,this.domNode.className="monaco-component diff-review monaco-editor-background";const ie=document.createElement("div");ie.className="diff-review-actions",this._actionBar=this._register(new I.ActionBar(ie)),this._register((0,p.autorun)(ue=>{this._actionBar.clear(),this._model.canClose.read(ue)&&this._actionBar.push(new y.Action("diffreview.close",(0,h.localize)(87,"Close"),"close-diff-review "+n.ThemeIcon.asClassName(T),!0,async()=>Y.close()),{label:!1,icon:!0})})),this._content=document.createElement("div"),this._content.className="diff-review-content",this._content.setAttribute("role","code"),this._scrollbar=this._register(new E.DomScrollableElement(this._content,{})),(0,d.reset)(this.domNode,this._scrollbar.getDomNode(),ie),this._register((0,p.autorun)(ue=>{this._height.read(ue),this._width.read(ue),this._scrollbar.scanDomNode()})),this._register((0,b.toDisposable)(()=>{(0,d.reset)(this.domNode)})),this._register((0,t.applyStyle)(this.domNode,{width:this._width,height:this._height})),this._register((0,t.applyStyle)(this._content,{width:this._width,height:this._height})),this._register((0,p.autorunWithStore)((ue,he)=>{this._model.currentGroup.read(ue),this._render(he)})),this._register((0,d.addStandardDisposableListener)(this.domNode,"keydown",ue=>{(ue.equals(18)||ue.equals(2066)||ue.equals(530))&&(ue.preventDefault(),this._model.goToNextLine()),(ue.equals(16)||ue.equals(2064)||ue.equals(528))&&(ue.preventDefault(),this._model.goToPreviousLine()),(ue.equals(9)||ue.equals(2057)||ue.equals(521)||ue.equals(1033))&&(ue.preventDefault(),this._model.close()),(ue.equals(10)||ue.equals(3))&&(ue.preventDefault(),this._model.revealCurrentElementInEditor())}))}_render(j){const Y=this._models.getOriginalOptions(),G=this._models.getModifiedOptions(),K=document.createElement("div");K.className="diff-review-table",K.setAttribute("role","list"),K.setAttribute("aria-label",(0,h.localize)(88,"Accessible Diff Viewer. Use arrow up and down to navigate.")),(0,o.applyFontInfo)(K,G.get(50)),(0,d.reset)(this._content,K);const R=this._models.getOriginalModel(),J=this._models.getModifiedModel();if(!R||!J)return;const ie=R.getOptions(),ue=J.getOptions(),he=G.get(67),pe=this._model.currentGroup.get();for(const ae of pe?.lines||[]){if(!pe)break;let ee;if(ae.type===O.Header){const ge=document.createElement("div");ge.className="diff-review-row",ge.setAttribute("role","listitem");const X=pe.range,B=this._model.currentGroupIndex.get(),$=this._model.groups.get().length,Q=le=>le===0?(0,h.localize)(89,"no lines changed"):le===1?(0,h.localize)(90,"1 line changed"):(0,h.localize)(91,"{0} lines changed",le),Z=Q(X.original.length),te=Q(X.modified.length);ge.setAttribute("aria-label",(0,h.localize)(92,"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}",B+1,$,X.original.startLineNumber,Z,X.modified.startLineNumber,te));const re=document.createElement("div");re.className="diff-review-cell diff-review-summary",re.appendChild(document.createTextNode(`${B+1}/${$}: @@ -${X.original.startLineNumber},${X.original.length} +${X.modified.startLineNumber},${X.modified.length} @@`)),ge.appendChild(re),ee=ge}else ee=this._createRow(ae,he,this._width.get(),Y,R,ie,G,J,ue);K.appendChild(ee);const de=(0,p.derived)(ge=>this._model.currentElement.read(ge)===ae);j.add((0,p.autorun)(ge=>{const X=de.read(ge);ee.tabIndex=X?0:-1,X&&ee.focus()})),j.add((0,d.addDisposableListener)(ee,"focus",()=>{this._model.goToLine(ae)}))}this._scrollbar.scanDomNode()}_createRow(j,Y,G,K,R,J,ie,ue,he){const pe=K.get(146),ae=pe.glyphMarginWidth+pe.lineNumbersWidth,ee=ie.get(146),de=10+ee.glyphMarginWidth+ee.lineNumbersWidth;let ge="diff-review-row",X="";const B="diff-review-spacer";let $=null;switch(j.type){case O.Added:ge="diff-review-row line-insert",X=" char-insert",$=L;break;case O.Deleted:ge="diff-review-row line-delete",X=" char-delete",$=D;break}const Q=document.createElement("div");Q.style.minWidth=G+"px",Q.className=ge,Q.setAttribute("role","listitem"),Q.ariaLevel="";const Z=document.createElement("div");Z.className="diff-review-cell",Z.style.height=`${Y}px`,Q.appendChild(Z);const te=document.createElement("span");te.style.width=ae+"px",te.style.minWidth=ae+"px",te.className="diff-review-line-number"+X,j.originalLineNumber!==void 0?te.appendChild(document.createTextNode(String(j.originalLineNumber))):te.innerText="\xA0",Z.appendChild(te);const re=document.createElement("span");re.style.width=de+"px",re.style.minWidth=de+"px",re.style.paddingRight="10px",re.className="diff-review-line-number"+X,j.modifiedLineNumber!==void 0?re.appendChild(document.createTextNode(String(j.modifiedLineNumber))):re.innerText="\xA0",Z.appendChild(re);const le=document.createElement("span");if(le.className=B,$){const ye=document.createElement("span");ye.className=n.ThemeIcon.asClassName($),ye.innerText="\xA0\xA0",le.appendChild(ye)}else le.innerText="\xA0\xA0";Z.appendChild(le);let me;if(j.modifiedLineNumber!==void 0){let ye=this._getLineHtml(ue,ie,he.tabSize,j.modifiedLineNumber,this._languageService.languageIdCodec);M._ttPolicy&&(ye=M._ttPolicy.createHTML(ye)),Z.insertAdjacentHTML("beforeend",ye),me=ue.getLineContent(j.modifiedLineNumber)}else{let ye=this._getLineHtml(R,K,J.tabSize,j.originalLineNumber,this._languageService.languageIdCodec);M._ttPolicy&&(ye=M._ttPolicy.createHTML(ye)),Z.insertAdjacentHTML("beforeend",ye),me=R.getLineContent(j.originalLineNumber)}me.length===0&&(me=(0,h.localize)(93,"blank"));let Ce="";switch(j.type){case O.Unchanged:j.originalLineNumber===j.modifiedLineNumber?Ce=(0,h.localize)(94,"{0} unchanged line {1}",me,j.originalLineNumber):Ce=(0,h.localize)(95,"{0} original line {1} modified line {2}",me,j.originalLineNumber,j.modifiedLineNumber);break;case O.Added:Ce=(0,h.localize)(96,"+ {0} modified line {1}",me,j.modifiedLineNumber);break;case O.Deleted:Ce=(0,h.localize)(97,"- {0} original line {1}",me,j.originalLineNumber);break}return Q.setAttribute("aria-label",Ce),Q}_getLineHtml(j,Y,G,K,R){const J=j.getLineContent(K),ie=Y.get(50),ue=u.LineTokens.createEmpty(J,R),he=f.ViewLineRenderingData.isBasicASCII(J,j.mightContainNonBasicASCII()),pe=f.ViewLineRenderingData.containsRTL(J,he,j.mightContainRTL());return(0,C.renderViewLine2)(new C.RenderLineInput(ie.isMonospace&&!Y.get(33),ie.canUseHalfwidthRightwardsArrow,J,!1,he,pe,0,ue,[],G,0,ie.spaceWidth,ie.middotWidth,ie.wsmiddotWidth,Y.get(118),Y.get(100),Y.get(95),Y.get(51)!==i.EditorFontLigatures.OFF,null)).html}};H=ke([ce(5,r.ILanguageService)],H);class z{constructor(j){this.editors=j}getOriginalModel(){return this.editors.original.getModel()}getOriginalOptions(){return this.editors.original.getOptions()}originalReveal(j){this.editors.original.revealRange(j),this.editors.original.setSelection(j),this.editors.original.focus()}getModifiedModel(){return this.editors.modified.getModel()}getModifiedOptions(){return this.editors.modified.getOptions()}modifiedReveal(j){j&&(this.editors.modified.revealRange(j),this.editors.modified.setSelection(j)),this.editors.modified.focus()}modifiedSetSelection(j){this.editors.modified.setSelection(j)}modifiedFocus(){this.editors.modified.focus()}getModifiedPosition(){return this.editors.modified.getPosition()??void 0}}e.AccessibleDiffViewerModelFromEditors=z}),define(ne[763],se([1,0,253,5,172,85,26,33,6,2,30,3,32,71,227]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColorPickerWidget=e.InsertButton=e.ColorPickerBody=e.ColorPickerHeader=void 0;const i=k.$;class s extends b.Disposable{constructor(v,w,S,L=!1){super(),this.model=w,this.showingStandaloneColorPicker=L,this._closeButton=null,this._domNode=i(".colorpicker-header"),k.append(v,this._domNode),this._pickedColorNode=k.append(this._domNode,i(".picked-color")),k.append(this._pickedColorNode,i("span.codicon.codicon-color-mode")),this._pickedColorPresentation=k.append(this._pickedColorNode,document.createElement("span")),this._pickedColorPresentation.classList.add("picked-color-presentation");const D=(0,n.localize)(796,"Click to toggle color options (rgb/hsl/hex)");this._pickedColorNode.setAttribute("title",D),this._originalColorNode=k.append(this._domNode,i(".original-color")),this._originalColorNode.style.backgroundColor=m.Color.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=S.getColorTheme().getColor(o.editorHoverBackground)||m.Color.white,this._register(S.onDidColorThemeChange(T=>{this.backgroundColor=T.getColor(o.editorHoverBackground)||m.Color.white})),this._register(k.addDisposableListener(this._pickedColorNode,k.EventType.CLICK,()=>this.model.selectNextColorPresentation())),this._register(k.addDisposableListener(this._originalColorNode,k.EventType.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(w.onDidChangeColor(this.onDidChangeColor,this)),this._register(w.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=m.Color.Format.CSS.format(w.color)||"",this._pickedColorNode.classList.toggle("light",w.color.rgba.a<.5?this.backgroundColor.isLighter():w.color.isLighter()),this.onDidChangeColor(this.model.color),this.showingStandaloneColorPicker&&(this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new g(this._domNode)))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(v){this._pickedColorNode.style.backgroundColor=m.Color.Format.CSS.format(v)||"",this._pickedColorNode.classList.toggle("light",v.rgba.a<.5?this.backgroundColor.isLighter():v.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}e.ColorPickerHeader=s;class g extends b.Disposable{constructor(v){super(),this._onClicked=this._register(new _.Emitter),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),k.append(v,this._button);const w=document.createElement("div");w.classList.add("close-button-inner-div"),k.append(this._button,w),k.append(w,i(".button"+p.ThemeIcon.asCSSSelector((0,t.registerIcon)("color-picker-close",y.Codicon.close,(0,n.localize)(797,"Icon to close the color picker"))))).classList.add("close-icon"),this._register(k.addDisposableListener(this._button,k.EventType.CLICK,()=>{this._onClicked.fire()}))}}class c extends b.Disposable{constructor(v,w,S,L=!1){super(),this.model=w,this.pixelRatio=S,this._insertButton=null,this._domNode=i(".colorpicker-body"),k.append(v,this._domNode),this._saturationBox=new l(this._domNode,this.model,this.pixelRatio),this._register(this._saturationBox),this._register(this._saturationBox.onDidChange(this.onDidSaturationValueChange,this)),this._register(this._saturationBox.onColorFlushed(this.flushColor,this)),this._opacityStrip=new r(this._domNode,this.model,L),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new u(this._domNode,this.model,L),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),L&&(this._insertButton=this._register(new C(this._domNode)),this._domNode.classList.add("standalone-colorpicker"))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:v,v:w}){const S=this.model.color.hsva;this.model.color=new m.Color(new m.HSVA(S.h,v,w,S.a))}onDidOpacityChange(v){const w=this.model.color.hsva;this.model.color=new m.Color(new m.HSVA(w.h,w.s,w.v,v))}onDidHueChange(v){const w=this.model.color.hsva,S=(1-v)*360;this.model.color=new m.Color(new m.HSVA(S===360?0:S,w.s,w.v,w.a))}get domNode(){return this._domNode}get saturationBox(){return this._saturationBox}get enterButton(){return this._insertButton}layout(){this._saturationBox.layout(),this._opacityStrip.layout(),this._hueStrip.layout()}}e.ColorPickerBody=c;class l extends b.Disposable{constructor(v,w,S){super(),this.model=w,this.pixelRatio=S,this._onDidChange=new _.Emitter,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new _.Emitter,this.onColorFlushed=this._onColorFlushed.event,this._domNode=i(".saturation-wrap"),k.append(v,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",k.append(this._domNode,this._canvas),this.selection=i(".saturation-selection"),k.append(this._domNode,this.selection),this.layout(),this._register(k.addDisposableListener(this._domNode,k.EventType.POINTER_DOWN,L=>this.onPointerDown(L))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(v){if(!v.target||!(v.target instanceof Element))return;this.monitor=this._register(new I.GlobalPointerMoveMonitor);const w=k.getDomNodePagePosition(this._domNode);v.target!==this.selection&&this.onDidChangePosition(v.offsetX,v.offsetY),this.monitor.startMonitoring(v.target,v.pointerId,v.buttons,L=>this.onDidChangePosition(L.pageX-w.left,L.pageY-w.top),()=>null);const S=k.addDisposableListener(v.target.ownerDocument,k.EventType.POINTER_UP,()=>{this._onColorFlushed.fire(),S.dispose(),this.monitor&&(this.monitor.stopMonitoring(!0),this.monitor=null)},!0)}onDidChangePosition(v,w){const S=Math.max(0,Math.min(1,v/this.width)),L=Math.max(0,Math.min(1,1-w/this.height));this.paintSelection(S,L),this._onDidChange.fire({s:S,v:L})}layout(){this.width=this._domNode.offsetWidth,this.height=this._domNode.offsetHeight,this._canvas.width=this.width*this.pixelRatio,this._canvas.height=this.height*this.pixelRatio,this.paint();const v=this.model.color.hsva;this.paintSelection(v.s,v.v)}paint(){const v=this.model.color.hsva,w=new m.Color(new m.HSVA(v.h,1,1,1)),S=this._canvas.getContext("2d"),L=S.createLinearGradient(0,0,this._canvas.width,0);L.addColorStop(0,"rgba(255, 255, 255, 1)"),L.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),L.addColorStop(1,"rgba(255, 255, 255, 0)");const D=S.createLinearGradient(0,0,0,this._canvas.height);D.addColorStop(0,"rgba(0, 0, 0, 0)"),D.addColorStop(1,"rgba(0, 0, 0, 1)"),S.rect(0,0,this._canvas.width,this._canvas.height),S.fillStyle=m.Color.Format.CSS.format(w),S.fill(),S.fillStyle=L,S.fill(),S.fillStyle=D,S.fill()}paintSelection(v,w){this.selection.style.left=`${v*this.width}px`,this.selection.style.top=`${this.height-w*this.height}px`}onDidChangeColor(v){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();const w=v.hsva;this.paintSelection(w.s,w.v)}}class a extends b.Disposable{constructor(v,w,S=!1){super(),this.model=w,this._onDidChange=new _.Emitter,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new _.Emitter,this.onColorFlushed=this._onColorFlushed.event,S?(this.domNode=k.append(v,i(".standalone-strip")),this.overlay=k.append(this.domNode,i(".standalone-overlay"))):(this.domNode=k.append(v,i(".strip")),this.overlay=k.append(this.domNode,i(".overlay"))),this.slider=k.append(this.domNode,i(".slider")),this.slider.style.top="0px",this._register(k.addDisposableListener(this.domNode,k.EventType.POINTER_DOWN,L=>this.onPointerDown(L))),this._register(w.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;const v=this.getValue(this.model.color);this.updateSliderPosition(v)}onDidChangeColor(v){const w=this.getValue(v);this.updateSliderPosition(w)}onPointerDown(v){if(!v.target||!(v.target instanceof Element))return;const w=this._register(new I.GlobalPointerMoveMonitor),S=k.getDomNodePagePosition(this.domNode);this.domNode.classList.add("grabbing"),v.target!==this.slider&&this.onDidChangeTop(v.offsetY),w.startMonitoring(v.target,v.pointerId,v.buttons,D=>this.onDidChangeTop(D.pageY-S.top),()=>null);const L=k.addDisposableListener(v.target.ownerDocument,k.EventType.POINTER_UP,()=>{this._onColorFlushed.fire(),L.dispose(),w.stopMonitoring(!0),this.domNode.classList.remove("grabbing")},!0)}onDidChangeTop(v){const w=Math.max(0,Math.min(1,1-v/this.height));this.updateSliderPosition(w),this._onDidChange.fire(w)}updateSliderPosition(v){this.slider.style.top=`${(1-v)*this.height}px`}}class r extends a{constructor(v,w,S=!1){super(v,w,S),this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(v){super.onDidChangeColor(v);const{r:w,g:S,b:L}=v.rgba,D=new m.Color(new m.RGBA(w,S,L,1)),T=new m.Color(new m.RGBA(w,S,L,0));this.overlay.style.background=`linear-gradient(to bottom, ${D} 0%, ${T} 100%)`}getValue(v){return v.hsva.a}}class u extends a{constructor(v,w,S=!1){super(v,w,S),this.domNode.classList.add("hue-strip")}getValue(v){return 1-v.hsva.h/360}}class C extends b.Disposable{constructor(v){super(),this._onClicked=this._register(new _.Emitter),this.onClicked=this._onClicked.event,this._button=k.append(v,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._register(k.addDisposableListener(this._button,k.EventType.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}}e.InsertButton=C;class f extends E.Widget{constructor(v,w,S,L,D=!1){super(),this.model=w,this.pixelRatio=S,this._register(d.PixelRatio.getInstance(k.getWindow(v)).onDidChange(()=>this.layout())),this._domNode=i(".colorpicker-widget"),v.appendChild(this._domNode),this.header=this._register(new s(this._domNode,this.model,L,D)),this.body=this._register(new c(this._domNode,this.model,this.pixelRatio,D))}layout(){this.body.layout()}get domNode(){return this._domNode}}e.ColorPickerWidget=f}),define(ne[217],se([1,0,5,13,18,57,2,120,264,4,43,84,3,28,59,17,27,71,26,30,8,31,174,118,14,410,24]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarkdownHoverParticipant=e.MarkdownHover=void 0,e.renderMarkdownHovers=O,e.labelForHoverVerbosityAction=x;const S=d.$,L=(0,c.registerIcon)("hover-increase-verbosity",l.Codicon.add,o.localize(1031,"Icon for increaseing hover verbosity.")),D=(0,c.registerIcon)("hover-decrease-verbosity",l.Codicon.remove,o.localize(1032,"Icon for decreasing hover verbosity."));class T{constructor(V,q,H,z,U,j=void 0){this.owner=V,this.range=q,this.contents=H,this.isBeforeContent=z,this.ordinal=U,this.source=j}isValidForHoverAnchor(V){return V.type===1&&this.range.startColumn<=V.range.startColumn&&this.range.endColumn>=V.range.endColumn}}e.MarkdownHover=T;class M{constructor(V,q,H){this.hover=V,this.hoverProvider=q,this.hoverPosition=H}supportsVerbosityAction(V){switch(V){case g.HoverVerbosityAction.Increase:return this.hover.canIncreaseVerbosity??!1;case g.HoverVerbosityAction.Decrease:return this.hover.canDecreaseVerbosity??!1}}}let A=class{constructor(V,q,H,z,U,j,Y,G){this._editor=V,this._languageService=q,this._openerService=H,this._configurationService=z,this._languageFeaturesService=U,this._keybindingService=j,this._hoverService=Y,this._commandService=G,this.hoverOrdinal=3}createLoadingMessage(V){return new T(this,V.range,[new E.MarkdownString().appendText(o.localize(1033,"Loading..."))],!1,2e3)}computeSync(V,q){if(!this._editor.hasModel()||V.type!==1)return[];const H=this._editor.getModel(),z=V.range.startLineNumber,U=H.getLineMaxColumn(z),j=[];let Y=1e3;const G=H.getLineLength(z),K=H.getLanguageIdAtPosition(V.range.startLineNumber,V.range.startColumn),R=this._editor.getOption(118),J=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:K});let ie=!1;R>=0&&G>R&&V.range.startColumn>=R&&(ie=!0,j.push(new T(this,V.range,[{value:o.localize(1034,"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.")}],!1,Y++))),!ie&&typeof J=="number"&&G>=J&&j.push(new T(this,V.range,[{value:o.localize(1035,"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.")}],!1,Y++));let ue=!1;for(const he of q){const pe=he.range.startLineNumber===z?he.range.startColumn:1,ae=he.range.endLineNumber===z?he.range.endColumn:U,ee=he.options.hoverMessage;if(!ee||(0,E.isEmptyMarkdownString)(ee))continue;he.options.beforeContentClassName&&(ue=!0);const de=new b.Range(V.range.startLineNumber,pe,V.range.startLineNumber,ae);j.push(new T(this,de,(0,k.asArray)(ee),ue,Y++))}return j}computeAsync(V,q,H){if(!this._editor.hasModel()||V.type!==1)return h.AsyncIterableObject.EMPTY;const z=this._editor.getModel(),U=this._languageFeaturesService.hoverProvider;return U.has(z)?this._getMarkdownHovers(U,z,V,H):h.AsyncIterableObject.EMPTY}_getMarkdownHovers(V,q,H,z){const U=H.range.getStartPosition();return(0,v.getHoverProviderResultsAsAsyncIterable)(V,q,U,z).filter(G=>!(0,E.isEmptyMarkdownString)(G.hover.contents)).map(G=>{const K=G.hover.range?b.Range.lift(G.hover.range):H.range,R=new M(G.hover,G.provider,U);return new T(this,K,G.hover.contents,!1,G.ordinal,R)})}renderHoverParts(V,q){return this._renderedHoverParts=new N(q,V.fragment,this,this._editor,this._languageService,this._openerService,this._commandService,this._keybindingService,this._hoverService,this._configurationService,V.onContentsChanged),this._renderedHoverParts}updateMarkdownHoverVerbosityLevel(V,q,H){return Promise.resolve(this._renderedHoverParts?.updateMarkdownHoverPartVerbosityLevel(V,q,H))}};e.MarkdownHoverParticipant=A,e.MarkdownHoverParticipant=A=ke([ce(1,p.ILanguageService),ce(2,i.IOpenerService),ce(3,t.IConfigurationService),ce(4,s.ILanguageFeaturesService),ce(5,u.IKeybindingService),ce(6,f.IHoverService),ce(7,w.ICommandService)],A);class P{constructor(V,q,H){this.hoverPart=V,this.hoverElement=q,this.disposables=H}dispose(){this.disposables.dispose()}}class N{constructor(V,q,H,z,U,j,Y,G,K,R,J){this._hoverParticipant=H,this._editor=z,this._languageService=U,this._openerService=j,this._commandService=Y,this._keybindingService=G,this._hoverService=K,this._configurationService=R,this._onFinishedRendering=J,this._ongoingHoverOperations=new Map,this._disposables=new y.DisposableStore,this.renderedHoverParts=this._renderHoverParts(V,q,this._onFinishedRendering),this._disposables.add((0,y.toDisposable)(()=>{this.renderedHoverParts.forEach(ie=>{ie.dispose()}),this._ongoingHoverOperations.forEach(ie=>{ie.tokenSource.dispose(!0)})}))}_renderHoverParts(V,q,H){return V.sort((0,k.compareBy)(z=>z.ordinal,k.numberComparator)),V.map(z=>{const U=this._renderHoverPart(z,H);return q.appendChild(U.hoverElement),U})}_renderHoverPart(V,q){const H=this._renderMarkdownHover(V,q),z=H.hoverElement,U=V.source,j=new y.DisposableStore;if(j.add(H),!U)return new P(V,z,j);const Y=U.supportsVerbosityAction(g.HoverVerbosityAction.Increase),G=U.supportsVerbosityAction(g.HoverVerbosityAction.Decrease);if(!Y&&!G)return new P(V,z,j);const K=S("div.verbosity-actions");return z.prepend(K),j.add(this._renderHoverExpansionAction(K,g.HoverVerbosityAction.Increase,Y)),j.add(this._renderHoverExpansionAction(K,g.HoverVerbosityAction.Decrease,G)),new P(V,z,j)}_renderMarkdownHover(V,q){return F(this._editor,V,this._languageService,this._openerService,q)}_renderHoverExpansionAction(V,q,H){const z=new y.DisposableStore,U=q===g.HoverVerbosityAction.Increase,j=d.append(V,S(a.ThemeIcon.asCSSSelector(U?L:D)));j.tabIndex=0;const Y=new f.WorkbenchHoverDelegate("mouse",!1,{target:V,position:{hoverPosition:0}},this._configurationService,this._hoverService);if(z.add(this._hoverService.setupManagedHover(Y,j,x(this._keybindingService,q))),!H)return j.classList.add("disabled"),z;j.classList.add("enabled");const G=()=>this._commandService.executeCommand(q===g.HoverVerbosityAction.Increase?_.INCREASE_HOVER_VERBOSITY_ACTION_ID:_.DECREASE_HOVER_VERBOSITY_ACTION_ID);return z.add(new C.ClickAction(j,G)),z.add(new C.KeyDownAction(j,G,[3,10])),z}async updateMarkdownHoverPartVerbosityLevel(V,q,H=!0){const z=this._editor.getModel();if(!z)return;const U=this._getRenderedHoverPartAtIndex(q),j=U?.hoverPart.source;if(!U||!j?.supportsVerbosityAction(V))return;const Y=await this._fetchHover(j,z,V);if(!Y)return;const G=new M(Y,j.hoverProvider,j.hoverPosition),K=U.hoverPart,R=new T(this._hoverParticipant,K.range,Y.contents,K.isBeforeContent,K.ordinal,G),J=this._renderHoverPart(R,this._onFinishedRendering);return this._replaceRenderedHoverPartAtIndex(q,J,R),H&&this._focusOnHoverPartWithIndex(q),{hoverPart:R,hoverElement:J.hoverElement}}async _fetchHover(V,q,H){let z=H===g.HoverVerbosityAction.Increase?1:-1;const U=V.hoverProvider,j=this._ongoingHoverOperations.get(U);j&&(j.tokenSource.cancel(),z+=j.verbosityDelta);const Y=new I.CancellationTokenSource;this._ongoingHoverOperations.set(U,{verbosityDelta:z,tokenSource:Y});const G={verbosityRequest:{verbosityDelta:z,previousHover:V.hover}};let K;try{K=await Promise.resolve(U.provideHover(q,V.hoverPosition,Y.token,G))}catch(R){(0,r.onUnexpectedExternalError)(R)}return Y.dispose(),this._ongoingHoverOperations.delete(U),K}_replaceRenderedHoverPartAtIndex(V,q,H){if(V>=this.renderedHoverParts.length||V<0)return;const z=this.renderedHoverParts[V],U=z.hoverElement,j=q.hoverElement,Y=Array.from(j.children);U.replaceChildren(...Y);const G=new P(H,U,q.disposables);U.focus(),z.dispose(),this.renderedHoverParts[V]=G}_focusOnHoverPartWithIndex(V){this.renderedHoverParts[V].hoverElement.focus()}_getRenderedHoverPartAtIndex(V){return this.renderedHoverParts[V]}dispose(){this._disposables.dispose()}}function O(W,V,q,H,z){V.sort((0,k.compareBy)(j=>j.ordinal,k.numberComparator));const U=[];for(const j of V)U.push(F(q,j,H,z,W.onContentsChanged));return new n.RenderedHoverParts(U)}function F(W,V,q,H,z){const U=new y.DisposableStore,j=S("div.hover-row"),Y=S("div.hover-row-contents");j.appendChild(Y);const G=V.contents;for(const R of G){if((0,E.isEmptyMarkdownString)(R))continue;const J=S("div.markdown-hover"),ie=d.append(J,S("div.hover-contents")),ue=U.add(new m.MarkdownRenderer({editor:W},q,H));U.add(ue.onDidRenderAsync(()=>{ie.className="hover-contents code-hover-contents",z()}));const he=U.add(ue.render(R));ie.appendChild(he.element),Y.appendChild(J)}return{hoverPart:V,hoverElement:j,dispose(){U.dispose()}}}function x(W,V){switch(V){case g.HoverVerbosityAction.Increase:{const q=W.lookupKeybinding(_.INCREASE_HOVER_VERBOSITY_ACTION_ID);return q?o.localize(1036,"Increase Hover Verbosity ({0})",q.getLabel()):o.localize(1037,"Increase Hover Verbosity")}case g.HoverVerbosityAction.Decrease:{const q=W.lookupKeybinding(_.DECREASE_HOVER_VERBOSITY_ACTION_ID);return q?o.localize(1038,"Decrease Hover Verbosity ({0})",q.getLabel()):o.localize(1039,"Decrease Hover Verbosity")}}}}),define(ne[764],se([1,0,5,46,86,26,6,2,11,19,37,43,120,270,3,12,59,32,71,30,54,63,526]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u){"use strict";var C;Object.defineProperty(e,"__esModule",{value:!0}),e.ParameterHintsWidget=void 0;const f=d.$,h=(0,l.registerIcon)("parameter-hints-next",E.Codicon.chevronDown,i.localize(1173,"Icon for show next parameter hint.")),v=(0,l.registerIcon)("parameter-hints-previous",E.Codicon.chevronUp,i.localize(1174,"Icon for show previous parameter hint."));let w=class extends m.Disposable{static{C=this}static{this.ID="editor.widget.parameterHintsWidget"}constructor(L,D,T,M,A,P){super(),this.editor=L,this.model=D,this.telemetryService=P,this.renderDisposeables=this._register(new m.DisposableStore),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new o.MarkdownRenderer({editor:L},A,M)),this.keyVisible=t.Context.Visible.bindTo(T),this.keyMultipleSignatures=t.Context.MultipleSignatures.bindTo(T)}createParameterHintDOMNodes(){const L=f(".editor-widget.parameter-hints-widget"),D=d.append(L,f(".phwrapper"));D.tabIndex=-1;const T=d.append(D,f(".controls")),M=d.append(T,f(".button"+a.ThemeIcon.asCSSSelector(v))),A=d.append(T,f(".overloads")),P=d.append(T,f(".button"+a.ThemeIcon.asCSSSelector(h)));this._register(d.addDisposableListener(M,"click",V=>{d.EventHelper.stop(V),this.previous()})),this._register(d.addDisposableListener(P,"click",V=>{d.EventHelper.stop(V),this.next()}));const N=f(".body"),O=new I.DomScrollableElement(N,{alwaysConsumeMouseWheel:!0});this._register(O),D.appendChild(O.getDomNode());const F=d.append(N,f(".signature")),x=d.append(N,f(".docs"));L.style.userSelect="text",this.domNodes={element:L,signature:F,overloads:A,docs:x,scrollbar:O},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(V=>{this.visible&&this.editor.layoutContentWidget(this)}));const W=()=>{if(!this.domNodes)return;const V=this.editor.getOption(50),q=this.domNodes.element;q.style.fontSize=`${V.fontSize}px`,q.style.lineHeight=`${V.lineHeight/V.fontSize}`,q.style.setProperty("--vscode-parameterHintsWidget-editorFontFamily",V.fontFamily),q.style.setProperty("--vscode-parameterHintsWidget-editorFontFamilyDefault",p.EDITOR_FONT_DEFAULTS.fontFamily)};W(),this._register(y.Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor),V=>V.filter(q=>q.hasChanged(50)))(W)),this._register(this.editor.onDidLayoutChange(V=>this.updateMaxHeight())),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{this.domNodes?.element.classList.add("visible")},100),this.editor.layoutContentWidget(this))}hide(){this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,this.domNodes?.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(L){if(this.renderDisposeables.clear(),!this.domNodes)return;const D=L.signatures.length>1;this.domNodes.element.classList.toggle("multiple",D),this.keyMultipleSignatures.set(D),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const T=L.signatures[L.activeSignature];if(!T)return;const M=d.append(this.domNodes.signature,f(".code")),A=T.parameters.length>0,P=T.activeParameter??L.activeParameter;if(A)this.renderParameters(M,T,P);else{const F=d.append(M,f("span"));F.textContent=T.label}const N=T.parameters[P];if(N?.documentation){const F=f("span.documentation");if(typeof N.documentation=="string")F.textContent=N.documentation;else{const x=this.renderMarkdownDocs(N.documentation);F.appendChild(x.element)}d.append(this.domNodes.docs,f("p",{},F))}if(T.documentation!==void 0)if(typeof T.documentation=="string")d.append(this.domNodes.docs,f("p",{},T.documentation));else{const F=this.renderMarkdownDocs(T.documentation);d.append(this.domNodes.docs,F.element)}const O=this.hasDocs(T,N);if(this.domNodes.signature.classList.toggle("has-docs",O),this.domNodes.docs.classList.toggle("empty",!O),this.domNodes.overloads.textContent=String(L.activeSignature+1).padStart(L.signatures.length.toString().length,"0")+"/"+L.signatures.length,N){let F="";const x=T.parameters[P];Array.isArray(x.label)?F=T.label.substring(x.label[0],x.label[1]):F=x.label,x.documentation&&(F+=typeof x.documentation=="string"?`, ${x.documentation}`:`, ${x.documentation.value}`),T.documentation&&(F+=typeof T.documentation=="string"?`, ${T.documentation}`:`, ${T.documentation.value}`),this.announcedLabel!==F&&(k.alert(i.localize(1175,"{0}, hint",F)),this.announcedLabel=F)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(L){const D=new r.StopWatch,T=this.renderDisposeables.add(this.markdownRenderer.render(L,{asyncRenderCallback:()=>{this.domNodes?.scrollbar.scanDomNode()}}));T.element.classList.add("markdown-docs");const M=D.elapsed();return M>300&&this.telemetryService.publicLog2("parameterHints.parseMarkdown",{renderDuration:M}),T}hasDocs(L,D){return!!(D&&typeof D.documentation=="string"&&(0,b.assertIsDefined)(D.documentation).length>0||D&&typeof D.documentation=="object"&&(0,b.assertIsDefined)(D.documentation).value.length>0||L.documentation&&typeof L.documentation=="string"&&(0,b.assertIsDefined)(L.documentation).length>0||L.documentation&&typeof L.documentation=="object"&&(0,b.assertIsDefined)(L.documentation.value).length>0)}renderParameters(L,D,T){const[M,A]=this.getParameterLabelOffsets(D,T),P=document.createElement("span");P.textContent=D.label.substring(0,M);const N=document.createElement("span");N.textContent=D.label.substring(M,A),N.className="parameter active";const O=document.createElement("span");O.textContent=D.label.substring(A),d.append(L,P,N,O)}getParameterLabelOffsets(L,D){const T=L.parameters[D];if(T){if(Array.isArray(T.label))return T.label;if(T.label.length){const M=new RegExp(`(\\W|^)${(0,_.escapeRegExpCharacters)(T.label)}(?=\\W|$)`,"g");M.test(L.label);const A=M.lastIndex-T.label.length;return A>=0?[A,M.lastIndex]:[0,0]}else return[0,0]}else return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return C.ID}updateMaxHeight(){if(!this.domNodes)return;const D=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=D;const T=this.domNodes.element.getElementsByClassName("phwrapper");T.length&&(T[0].style.maxHeight=D)}};e.ParameterHintsWidget=w,e.ParameterHintsWidget=w=C=ke([ce(2,s.IContextKeyService),ce(3,g.IOpenerService),ce(4,n.ILanguageService),ce(5,u.ITelemetryService)],w),(0,c.registerColor)("editorHoverWidget.highlightForeground",c.listHighlightForeground,i.localize(1176,"Foreground color of the active item in the parameter hint."))}),define(ne[765],se([1,0,98,2,15,20,27,17,683,270,3,12,7,764]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.TriggerParameterHintsAction=e.ParameterHintsController=void 0;let s=class extends k.Disposable{static{i=this}static{this.ID="editor.controller.parameterHints"}static get(r){return r.getContribution(i.ID)}constructor(r,u,C){super(),this.editor=r,this.model=this._register(new _.ParameterHintsModel(r,C.signatureHelpProvider)),this._register(this.model.onChangedHints(f=>{f?(this.widget.value.show(),this.widget.value.render(f)):this.widget.rawValue?.hide()})),this.widget=new d.Lazy(()=>this._register(u.createInstance(t.ParameterHintsWidget,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){this.widget.rawValue?.previous()}next(){this.widget.rawValue?.next()}trigger(r){this.model.trigger(r,0)}};e.ParameterHintsController=s,e.ParameterHintsController=s=i=ke([ce(1,o.IInstantiationService),ce(2,m.ILanguageFeaturesService)],s);class g extends I.EditorAction{constructor(){super({id:"editor.action.triggerParameterHints",label:p.localize(1172,"Trigger Parameter Hints"),alias:"Trigger Parameter Hints",precondition:E.EditorContextKeys.hasSignatureHelpProvider,kbOpts:{kbExpr:E.EditorContextKeys.editorTextFocus,primary:3082,weight:100}})}run(r,u){s.get(u)?.trigger({triggerKind:y.SignatureHelpTriggerKind.Invoke})}}e.TriggerParameterHintsAction=g,(0,I.registerEditorContribution)(s.ID,s,2),(0,I.registerEditorAction)(g);const c=175,l=I.EditorCommand.bindToContribution(s.get);(0,I.registerEditorCommand)(new l({id:"closeParameterHints",precondition:b.Context.Visible,handler:a=>a.cancel(),kbOpts:{weight:c,kbExpr:E.EditorContextKeys.focus,primary:9,secondary:[1033]}})),(0,I.registerEditorCommand)(new l({id:"showPrevParameterHint",precondition:n.ContextKeyExpr.and(b.Context.Visible,b.Context.MultipleSignatures),handler:a=>a.previous(),kbOpts:{weight:c,kbExpr:E.EditorContextKeys.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),(0,I.registerEditorCommand)(new l({id:"showNextParameterHint",precondition:n.ContextKeyExpr.and(b.Context.Visible,b.Context.MultipleSignatures),handler:a=>a.next(),kbOpts:{weight:c,kbExpr:E.EditorContextKeys.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}))}),define(ne[766],se([1,0,5,87,41,2,120,7,702,71,30,534]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BannerController=void 0;const n=26;let o=class extends E.Disposable{constructor(s,g){super(),this._editor=s,this.instantiationService=g,this.banner=this._register(this.instantiationService.createInstance(t))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(s){this.banner.show({...s,onClose:()=>{this.hide(),s.onClose?.()}}),this._editor.setBanner(this.banner.element,n)}};e.BannerController=o,e.BannerController=o=ke([ce(1,m.IInstantiationService)],o);let t=class extends E.Disposable{constructor(s){super(),this.instantiationService=s,this.markdownRenderer=this.instantiationService.createInstance(y.MarkdownRenderer,{}),this.element=(0,d.$)("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(s){if(s.ariaLabel)return s.ariaLabel;if(typeof s.message=="string")return s.message}getBannerMessage(s){if(typeof s=="string"){const g=(0,d.$)("span");return g.innerText=s,g}return this.markdownRenderer.render(s).element}clear(){(0,d.clearNode)(this.element)}show(s){(0,d.clearNode)(this.element);const g=this.getAriaLabel(s);g&&this.element.setAttribute("aria-label",g);const c=(0,d.append)(this.element,(0,d.$)("div.icon-container"));c.setAttribute("aria-hidden","true"),s.icon&&c.appendChild((0,d.$)(`div${p.ThemeIcon.asCSSSelector(s.icon)}`));const l=(0,d.append)(this.element,(0,d.$)("div.message-container"));if(l.setAttribute("aria-hidden","true"),l.appendChild(this.getBannerMessage(s.message)),this.messageActionsContainer=(0,d.append)(this.element,(0,d.$)("div.message-actions-container")),s.actions)for(const r of s.actions)this._register(this.instantiationService.createInstance(_.Link,this.messageActionsContainer,{...r,tabIndex:-1},{}));const a=(0,d.append)(this.element,(0,d.$)("div.action-container"));this.actionBar=this._register(new k.ActionBar(a)),this.actionBar.push(this._register(new I.Action("banner.close","Close Banner",p.ThemeIcon.asClassName(b.widgetClose),!0,()=>{typeof s.onClose=="function"&&s.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};t=ke([ce(0,m.IInstantiationService)],t)}),define(ne[767],se([1,0,5,6,2,30,71]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UnthemedProductIconTheme=void 0,e.getIconsStyleSheet=m;function m(b){const p=new I.DisposableStore,n=p.add(new k.Emitter),o=(0,y.getIconRegistry)();return p.add(o.onDidChange(()=>n.fire())),b&&p.add(b.onDidProductIconThemeChange(()=>n.fire())),{dispose:()=>p.dispose(),onDidChange:n.event,getCSS(){const t=b?b.getProductIconTheme():new _,i={},s=[],g=[];for(const c of o.getIcons()){const l=t.getIcon(c);if(!l)continue;const a=l.font,r=`--vscode-icon-${c.id}-font-family`,u=`--vscode-icon-${c.id}-content`;a?(i[a.id]=a.definition,g.push(`${r}: ${(0,d.asCSSPropertyValue)(a.id)};`,`${u}: '${l.fontCharacter}';`),s.push(`.codicon-${c.id}:before { content: '${l.fontCharacter}'; font-family: ${(0,d.asCSSPropertyValue)(a.id)}; }`)):(g.push(`${u}: '${l.fontCharacter}'; ${r}: 'codicon';`),s.push(`.codicon-${c.id}:before { content: '${l.fontCharacter}'; }`))}for(const c in i){const l=i[c],a=l.weight?`font-weight: ${l.weight};`:"",r=l.style?`font-style: ${l.style};`:"",u=l.src.map(C=>`${(0,d.asCSSUrl)(C.location)} format('${C.format}')`).join(", ");s.push(`@font-face { src: ${u}; font-family: ${(0,d.asCSSPropertyValue)(c)};${a}${r} font-display: block; }`)}return s.push(`:root { ${g.join(" ")} }`),s.join(` +`)}}}class _{getIcon(p){const n=(0,y.getIconRegistry)();let o=p.defaults;for(;E.ThemeIcon.isThemeIcon(o);){const t=n.getIcon(o.id);if(!t)return;o=t.defaults}return o}}e.UnthemedProductIconTheme=_}),define(ne[97],se([1,0]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColorScheme=void 0,e.isHighContrast=k,e.isDark=I;var d;(function(E){E.DARK="dark",E.LIGHT="light",E.HIGH_CONTRAST_DARK="hcDark",E.HIGH_CONTRAST_LIGHT="hcLight"})(d||(e.ColorScheme=d={}));function k(E){return E===d.HIGH_CONTRAST_DARK||E===d.HIGH_CONTRAST_LIGHT}function I(E){return E===d.DARK||E===d.HIGH_CONTRAST_DARK}}),define(ne[281],se([1,0,64,39,16,548,164,150,136,97,37]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewLine=e.ViewLineOptions=void 0,e.getColumnOfNodeOffset=u;const n=function(){return I.isNative?!0:!(I.isLinux||d.isFirefox||d.isSafari)}();let o=!0;class t{constructor(f,h){this.themeType=h;const v=f.options,w=v.get(50);v.get(38)==="off"?this.renderWhitespace=v.get(100):this.renderWhitespace="none",this.renderControlCharacters=v.get(95),this.spaceWidth=w.spaceWidth,this.middotWidth=w.middotWidth,this.wsmiddotWidth=w.wsmiddotWidth,this.useMonospaceOptimizations=w.isMonospace&&!v.get(33),this.canUseHalfwidthRightwardsArrow=w.canUseHalfwidthRightwardsArrow,this.lineHeight=v.get(67),this.stopRenderingLineAfter=v.get(118),this.fontLigatures=v.get(51)}equals(f){return this.themeType===f.themeType&&this.renderWhitespace===f.renderWhitespace&&this.renderControlCharacters===f.renderControlCharacters&&this.spaceWidth===f.spaceWidth&&this.middotWidth===f.middotWidth&&this.wsmiddotWidth===f.wsmiddotWidth&&this.useMonospaceOptimizations===f.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===f.canUseHalfwidthRightwardsArrow&&this.lineHeight===f.lineHeight&&this.stopRenderingLineAfter===f.stopRenderingLineAfter&&this.fontLigatures===f.fontLigatures}}e.ViewLineOptions=t;class i{static{this.CLASS_NAME="view-line"}constructor(f){this._options=f,this._isMaybeInvalid=!0,this._renderedViewLine=null}getDomNode(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null}setDomNode(f){if(this._renderedViewLine)this._renderedViewLine.domNode=(0,k.createFastDomNode)(f);else throw new Error("I have no rendered view line to set the dom node to...")}onContentChanged(){this._isMaybeInvalid=!0}onTokensChanged(){this._isMaybeInvalid=!0}onDecorationsChanged(){this._isMaybeInvalid=!0}onOptionsChanged(f){this._isMaybeInvalid=!0,this._options=f}onSelectionChanged(){return(0,b.isHighContrast)(this._options.themeType)||this._options.renderWhitespace==="selection"?(this._isMaybeInvalid=!0,!0):!1}renderLine(f,h,v,w,S){if(this._isMaybeInvalid===!1)return!1;this._isMaybeInvalid=!1;const L=w.getViewLineRenderingData(f),D=this._options,T=m.LineDecoration.filter(L.inlineDecorations,f,L.minColumn,L.maxColumn);let M=null;if((0,b.isHighContrast)(D.themeType)||this._options.renderWhitespace==="selection"){const O=w.selections;for(const F of O){if(F.endLineNumberf)continue;const x=F.startLineNumber===f?F.startColumn:L.minColumn,W=F.endLineNumber===f?F.endColumn:L.maxColumn;x');const P=(0,_.renderViewLine)(A,S);S.appendString("");let N=null;return o&&n&&L.isBasicASCII&&D.useMonospaceOptimizations&&P.containsForeignElements===0&&(N=new s(this._renderedViewLine?this._renderedViewLine.domNode:null,A,P.characterMapping)),N||(N=l(this._renderedViewLine?this._renderedViewLine.domNode:null,A,P.characterMapping,P.containsRTL,P.containsForeignElements)),this._renderedViewLine=N,!0}layoutLine(f,h,v){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(h),this._renderedViewLine.domNode.setHeight(v))}getWidth(f){return this._renderedViewLine?this._renderedViewLine.getWidth(f):0}getWidthIsFast(){return this._renderedViewLine?this._renderedViewLine.getWidthIsFast():!0}needsMonospaceFontCheck(){return this._renderedViewLine?this._renderedViewLine instanceof s:!1}monospaceAssumptionsAreValid(){return this._renderedViewLine&&this._renderedViewLine instanceof s?this._renderedViewLine.monospaceAssumptionsAreValid():o}onMonospaceAssumptionsInvalidated(){this._renderedViewLine&&this._renderedViewLine instanceof s&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}getVisibleRangesForRange(f,h,v,w){if(!this._renderedViewLine)return null;h=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,h)),v=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,v));const S=this._renderedViewLine.input.stopRenderingLineAfter;if(S!==-1&&h>S+1&&v>S+1)return new y.VisibleRanges(!0,[new y.FloatHorizontalRange(this.getWidth(w),0)]);S!==-1&&h>S+1&&(h=S+1),S!==-1&&v>S+1&&(v=S+1);const L=this._renderedViewLine.getVisibleRangesForRange(f,h,v,w);return L&&L.length>0?new y.VisibleRanges(!1,L):null}getColumnOfNodeOffset(f,h){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(f,h):1}}e.ViewLine=i;class s{constructor(f,h,v){this._cachedWidth=-1,this.domNode=f,this.input=h;const w=Math.floor(h.lineContent.length/300);if(w>0){this._keyColumnPixelOffsetCache=new Float32Array(w);for(let S=0;S=2&&(console.warn("monospace assumptions have been violated, therefore disabling monospace optimizations!"),o=!1)}return o}toSlowRenderedLine(){return l(this.domNode,this.input,this._characterMapping,!1,0)}getVisibleRangesForRange(f,h,v,w){const S=this._getColumnPixelOffset(f,h,w),L=this._getColumnPixelOffset(f,v,w);return[new y.FloatHorizontalRange(S,L-S)]}_getColumnPixelOffset(f,h,v){if(h<=300){const M=this._characterMapping.getHorizontalOffset(h);return this._charWidth*M}const w=Math.floor((h-1)/300)-1,S=(w+1)*300+1;let L=-1;if(this._keyColumnPixelOffsetCache&&(L=this._keyColumnPixelOffsetCache[w],L===-1&&(L=this._actualReadPixelOffset(f,S,v),this._keyColumnPixelOffsetCache[w]=L)),L===-1){const M=this._characterMapping.getHorizontalOffset(h);return this._charWidth*M}const D=this._characterMapping.getHorizontalOffset(S),T=this._characterMapping.getHorizontalOffset(h);return L+this._charWidth*(T-D)}_getReadingTarget(f){return f.domNode.firstChild}_actualReadPixelOffset(f,h,v){if(!this.domNode)return-1;const w=this._characterMapping.getDomPosition(h),S=E.RangeUtil.readHorizontalRanges(this._getReadingTarget(this.domNode),w.partIndex,w.charIndex,w.partIndex,w.charIndex,v);return!S||S.length===0?-1:S[0].left}getColumnOfNodeOffset(f,h){return u(this._characterMapping,f,h)}}class g{constructor(f,h,v,w,S){if(this.domNode=f,this.input=h,this._characterMapping=v,this._isWhitespaceOnly=/^\s*$/.test(h.lineContent),this._containsForeignElements=S,this._cachedWidth=-1,this._pixelOffsetCache=null,!w||this._characterMapping.length===0){this._pixelOffsetCache=new Float32Array(Math.max(2,this._characterMapping.length+1));for(let L=0,D=this._characterMapping.length;L<=D;L++)this._pixelOffsetCache[L]=-1}}_getReadingTarget(f){return f.domNode.firstChild}getWidth(f){return this.domNode?(this._cachedWidth===-1&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth,f?.markDidDomLayout()),this._cachedWidth):0}getWidthIsFast(){return this._cachedWidth!==-1}getVisibleRangesForRange(f,h,v,w){if(!this.domNode)return null;if(this._pixelOffsetCache!==null){const S=this._readPixelOffset(this.domNode,f,h,w);if(S===-1)return null;const L=this._readPixelOffset(this.domNode,f,v,w);return L===-1?null:[new y.FloatHorizontalRange(S,L-S)]}return this._readVisibleRangesForRange(this.domNode,f,h,v,w)}_readVisibleRangesForRange(f,h,v,w,S){if(v===w){const L=this._readPixelOffset(f,h,v,S);return L===-1?null:[new y.FloatHorizontalRange(L,0)]}else return this._readRawVisibleRangesForRange(f,v,w,S)}_readPixelOffset(f,h,v,w){if(this._characterMapping.length===0){if(this._containsForeignElements===0||this._containsForeignElements===2)return 0;if(this._containsForeignElements===1)return this.getWidth(w);const S=this._getReadingTarget(f);return S.firstChild?(w.markDidDomLayout(),S.firstChild.offsetWidth):0}if(this._pixelOffsetCache!==null){const S=this._pixelOffsetCache[v];if(S!==-1)return S;const L=this._actualReadPixelOffset(f,h,v,w);return this._pixelOffsetCache[v]=L,L}return this._actualReadPixelOffset(f,h,v,w)}_actualReadPixelOffset(f,h,v,w){if(this._characterMapping.length===0){const T=E.RangeUtil.readHorizontalRanges(this._getReadingTarget(f),0,0,0,0,w);return!T||T.length===0?-1:T[0].left}if(v===this._characterMapping.length&&this._isWhitespaceOnly&&this._containsForeignElements===0)return this.getWidth(w);const S=this._characterMapping.getDomPosition(v),L=E.RangeUtil.readHorizontalRanges(this._getReadingTarget(f),S.partIndex,S.charIndex,S.partIndex,S.charIndex,w);if(!L||L.length===0)return-1;const D=L[0].left;if(this.input.isBasicASCII){const T=this._characterMapping.getHorizontalOffset(v),M=Math.round(this.input.spaceWidth*T);if(Math.abs(M-D)<=1)return M}return D}_readRawVisibleRangesForRange(f,h,v,w){if(h===1&&v===this._characterMapping.length)return[new y.FloatHorizontalRange(0,this.getWidth(w))];const S=this._characterMapping.getDomPosition(h),L=this._characterMapping.getDomPosition(v);return E.RangeUtil.readHorizontalRanges(this._getReadingTarget(f),S.partIndex,S.charIndex,L.partIndex,L.charIndex,w)}getColumnOfNodeOffset(f,h){return u(this._characterMapping,f,h)}}class c extends g{_readVisibleRangesForRange(f,h,v,w,S){const L=super._readVisibleRangesForRange(f,h,v,w,S);if(!L||L.length===0||v===w||v===1&&w===this._characterMapping.length)return L;if(!this.input.containsRTL){const D=this._readPixelOffset(f,h,w,S);if(D!==-1){const T=L[L.length-1];T.left=4&&w[0]===3&&w[3]===8}static isStrictChildOfViewLines(w){return w.length>4&&w[0]===3&&w[3]===8}static isChildOfScrollableElement(w){return w.length>=2&&w[0]===3&&w[1]===6}static isChildOfMinimap(w){return w.length>=2&&w[0]===3&&w[1]===9}static isChildOfContentWidgets(w){return w.length>=4&&w[0]===3&&w[3]===1}static isChildOfOverflowGuard(w){return w.length>=1&&w[0]===3}static isChildOfOverflowingContentWidgets(w){return w.length>=1&&w[0]===2}static isChildOfOverlayWidgets(w){return w.length>=2&&w[0]===3&&w[1]===4}static isChildOfOverflowingOverlayWidgets(w){return w.length>=1&&w[0]===5}}class c{constructor(w,S,L){this.viewModel=w.viewModel;const D=w.configuration.options;this.layoutInfo=D.get(146),this.viewDomNode=S.viewDomNode,this.lineHeight=D.get(67),this.stickyTabStops=D.get(117),this.typicalHalfwidthCharacterWidth=D.get(50).typicalHalfwidthCharacterWidth,this.lastRenderData=L,this._context=w,this._viewHelper=S}getZoneAtCoord(w){return c.getZoneAtCoord(this._context,w)}static getZoneAtCoord(w,S){const L=w.viewLayout.getWhitespaceAtVerticalOffset(S);if(L){const D=L.verticalOffset+L.height/2,T=w.viewModel.getLineCount();let M=null,A,P=null;return L.afterLineNumber!==T&&(P=new E.Position(L.afterLineNumber+1,1)),L.afterLineNumber>0&&(M=new E.Position(L.afterLineNumber,w.viewModel.getLineMaxColumn(L.afterLineNumber))),P===null?A=M:M===null?A=P:S=w.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,C._getMouseColumn(this.mouseContentHorizontalOffset,w.typicalHalfwidthCharacterWidth))}}class a extends l{get target(){return this._useHitTestTarget?this.hitTestResult.value.hitTarget:this._eventTarget}get targetPath(){return this._targetPathCacheElement!==this.target&&(this._targetPathCacheElement=this.target,this._targetPathCacheValue=k.PartFingerprints.collect(this.target,this._ctx.viewDomNode)),this._targetPathCacheValue}constructor(w,S,L,D,T){super(w,S,L,D),this.hitTestResult=new p.Lazy(()=>C.doHitTest(this._ctx,this)),this._targetPathCacheElement=null,this._targetPathCacheValue=new Uint8Array(0),this._ctx=w,this._eventTarget=T;const M=!!this._eventTarget;this._useHitTestTarget=!M}toString(){return`pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), relativePos(${this.relativePos.x},${this.relativePos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset} + target: ${this.target?this.target.outerHTML:null}`}get wouldBenefitFromHitTestTargetSwitch(){return!this._useHitTestTarget&&this.hitTestResult.value.hitTarget!==null&&this.target!==this.hitTestResult.value.hitTarget}switchToHitTestTarget(){this._useHitTestTarget=!0}_getMouseColumn(w=null){return w&&w.columnM.contentLeft+M.width)continue;const A=w.getVerticalOffsetForLineNumber(M.position.lineNumber);if(A<=T&&T<=A+M.height)return S.fulfillContentText(M.position,null,{mightBeForeignElement:!1,injectedText:null})}}return null}static _hitTestViewZone(w,S){const L=w.getZoneAtCoord(S.mouseVerticalOffset);if(L){const D=S.isInContentArea?8:5;return S.fulfillViewZone(D,L.position,L)}return null}static _hitTestTextArea(w,S){return g.isTextArea(S.targetPath)?w.lastRenderData.lastTextareaPosition?S.fulfillContentText(w.lastRenderData.lastTextareaPosition,null,{mightBeForeignElement:!1,injectedText:null}):S.fulfillTextarea():null}static _hitTestMargin(w,S){if(S.isInMarginArea){const L=w.getFullLineRangeAtCoord(S.mouseVerticalOffset),D=L.range.getStartPosition();let T=Math.abs(S.relativePos.x);const M={isAfterLines:L.isAfterLines,glyphMarginLeft:w.layoutInfo.glyphMarginLeft,glyphMarginWidth:w.layoutInfo.glyphMarginWidth,lineNumbersWidth:w.layoutInfo.lineNumbersWidth,offsetX:T};if(T-=w.layoutInfo.glyphMarginLeft,T<=w.layoutInfo.glyphMarginWidth){const A=w.viewModel.coordinatesConverter.convertViewPositionToModelPosition(L.range.getStartPosition()),P=w.viewModel.glyphLanes.getLanesAtLine(A.lineNumber);return M.glyphMarginLane=P[Math.floor(T/w.lineHeight)],S.fulfillMargin(2,D,L.range,M)}return T-=w.layoutInfo.glyphMarginWidth,T<=w.layoutInfo.lineNumbersWidth?S.fulfillMargin(3,D,L.range,M):(T-=w.layoutInfo.lineNumbersWidth,S.fulfillMargin(4,D,L.range,M))}return null}static _hitTestViewLines(w,S){if(!g.isChildOfViewLines(S.targetPath))return null;if(w.isInTopPadding(S.mouseVerticalOffset))return S.fulfillContentEmpty(new E.Position(1,1),r);if(w.isAfterLines(S.mouseVerticalOffset)||w.isInBottomPadding(S.mouseVerticalOffset)){const D=w.viewModel.getLineCount(),T=w.viewModel.getLineMaxColumn(D);return S.fulfillContentEmpty(new E.Position(D,T),r)}if(g.isStrictChildOfViewLines(S.targetPath)){const D=w.getLineNumberAtVerticalOffset(S.mouseVerticalOffset);if(w.viewModel.getLineLength(D)===0){const M=w.getLineWidth(D),A=u(S.mouseContentHorizontalOffset-M);return S.fulfillContentEmpty(new E.Position(D,1),A)}const T=w.getLineWidth(D);if(S.mouseContentHorizontalOffset>=T){const M=u(S.mouseContentHorizontalOffset-T),A=new E.Position(D,w.viewModel.getLineMaxColumn(D));return S.fulfillContentEmpty(A,M)}}const L=S.hitTestResult.value;return L.type===1?C.createMouseTargetFromHitTestPosition(w,S,L.spanNode,L.position,L.injectedText):S.wouldBenefitFromHitTestTargetSwitch?(S.switchToHitTestTarget(),this._createMouseTarget(w,S)):S.fulfillUnknown()}static _hitTestMinimap(w,S){if(g.isChildOfMinimap(S.targetPath)){const L=w.getLineNumberAtVerticalOffset(S.mouseVerticalOffset),D=w.viewModel.getLineMaxColumn(L);return S.fulfillScrollbar(new E.Position(L,D))}return null}static _hitTestScrollbarSlider(w,S){if(g.isChildOfScrollableElement(S.targetPath)&&S.target&&S.target.nodeType===1){const L=S.target.className;if(L&&/\b(slider|scrollbar)\b/.test(L)){const D=w.getLineNumberAtVerticalOffset(S.mouseVerticalOffset),T=w.viewModel.getLineMaxColumn(D);return S.fulfillScrollbar(new E.Position(D,T))}}return null}static _hitTestScrollbar(w,S){if(g.isChildOfScrollableElement(S.targetPath)){const L=w.getLineNumberAtVerticalOffset(S.mouseVerticalOffset),D=w.viewModel.getLineMaxColumn(L);return S.fulfillScrollbar(new E.Position(L,D))}return null}getMouseColumn(w){const S=this._context.configuration.options,L=S.get(146),D=this._context.viewLayout.getCurrentScrollLeft()+w.x-L.contentLeft;return C._getMouseColumn(D,S.get(50).typicalHalfwidthCharacterWidth)}static _getMouseColumn(w,S){return w<0?1:Math.round(w/S)+1}static createMouseTargetFromHitTestPosition(w,S,L,D,T){const M=D.lineNumber,A=D.column,P=w.getLineWidth(M);if(S.mouseContentHorizontalOffset>P){const z=u(S.mouseContentHorizontalOffset-P);return S.fulfillContentEmpty(D,z)}const N=w.visibleRangeForPosition(M,A);if(!N)return S.fulfillUnknown(D);const O=N.left;if(Math.abs(S.mouseContentHorizontalOffset-O)<1)return S.fulfillContentText(D,null,{mightBeForeignElement:!!T,injectedText:T});const F=[];if(F.push({offset:N.left,column:A}),A>1){const z=w.visibleRangeForPosition(M,A-1);z&&F.push({offset:z.left,column:A-1})}const x=w.viewModel.getLineMaxColumn(M);if(Az.offset-U.offset);const W=S.pos.toClientCoordinates(_.getWindow(w.viewDomNode)),V=L.getBoundingClientRect(),q=V.left<=W.clientX&&W.clientX<=V.right;let H=null;for(let z=1;zT)){const A=Math.floor((D+T)/2);let P=S.pos.y+(A-S.mouseVerticalOffset);P<=S.editorPos.y&&(P=S.editorPos.y+1),P>=S.editorPos.y+S.editorPos.height&&(P=S.editorPos.y+S.editorPos.height-1);const N=new d.PageCoordinates(S.pos.x,P),O=this._actualDoHitTestWithCaretRangeFromPoint(w,N.toClientCoordinates(_.getWindow(w.viewDomNode)));if(O.type===1)return O}return this._actualDoHitTestWithCaretRangeFromPoint(w,S.pos.toClientCoordinates(_.getWindow(w.viewDomNode)))}static _actualDoHitTestWithCaretRangeFromPoint(w,S){const L=_.getShadowRoot(w.viewDomNode);let D;if(L?typeof L.caretRangeFromPoint>"u"?D=f(L,S.clientX,S.clientY):D=L.caretRangeFromPoint(S.clientX,S.clientY):D=w.viewDomNode.ownerDocument.caretRangeFromPoint(S.clientX,S.clientY),!D||!D.startContainer)return new n;const T=D.startContainer;if(T.nodeType===T.TEXT_NODE){const M=T.parentNode,A=M?M.parentNode:null,P=A?A.parentNode:null;return(P&&P.nodeType===P.ELEMENT_NODE?P.className:null)===I.ViewLine.CLASS_NAME?t.createFromDOMInfo(w,M,D.startOffset):new n(T.parentNode)}else if(T.nodeType===T.ELEMENT_NODE){const M=T.parentNode,A=M?M.parentNode:null;return(A&&A.nodeType===A.ELEMENT_NODE?A.className:null)===I.ViewLine.CLASS_NAME?t.createFromDOMInfo(w,T,T.textContent.length):new n(T)}return new n}static _doHitTestWithCaretPositionFromPoint(w,S){const L=w.viewDomNode.ownerDocument.caretPositionFromPoint(S.clientX,S.clientY);if(L.offsetNode.nodeType===L.offsetNode.TEXT_NODE){const D=L.offsetNode.parentNode,T=D?D.parentNode:null,M=T?T.parentNode:null;return(M&&M.nodeType===M.ELEMENT_NODE?M.className:null)===I.ViewLine.CLASS_NAME?t.createFromDOMInfo(w,L.offsetNode.parentNode,L.offset):new n(L.offsetNode.parentNode)}if(L.offsetNode.nodeType===L.offsetNode.ELEMENT_NODE){const D=L.offsetNode.parentNode,T=D&&D.nodeType===D.ELEMENT_NODE?D.className:null,M=D?D.parentNode:null,A=M&&M.nodeType===M.ELEMENT_NODE?M.className:null;if(T===I.ViewLine.CLASS_NAME){const P=L.offsetNode.childNodes[Math.min(L.offset,L.offsetNode.childNodes.length-1)];if(P)return t.createFromDOMInfo(w,P,0)}else if(A===I.ViewLine.CLASS_NAME)return t.createFromDOMInfo(w,L.offsetNode,0)}return new n(L.offsetNode)}static _snapToSoftTabBoundary(w,S){const L=S.getLineContent(w.lineNumber),{tabSize:D}=S.model.getOptions(),T=b.AtomicTabMoveOperations.atomicPosition(L,w.column-1,D,2);return T!==-1?new E.Position(w.lineNumber,T+1):w}static doHitTest(w,S){let L=new n;if(typeof w.viewDomNode.ownerDocument.caretRangeFromPoint=="function"?L=this._doHitTestWithCaretRangeFromPoint(w,S):w.viewDomNode.ownerDocument.caretPositionFromPoint&&(L=this._doHitTestWithCaretPositionFromPoint(w,S.pos.toClientCoordinates(_.getWindow(w.viewDomNode)))),L.type===1){const D=w.viewModel.getInjectedTextAt(L.position),T=w.viewModel.normalizePosition(L.position,2);(D||!T.equals(L.position))&&(L=new o(T,L.spanNode,D))}return L}}e.MouseTargetFactory=C;function f(v,w,S){const L=document.createRange();let D=v.elementFromPoint(w,S);if(D!==null){for(;D&&D.firstChild&&D.firstChild.nodeType!==D.firstChild.TEXT_NODE&&D.lastChild&&D.lastChild.firstChild;)D=D.lastChild;const T=D.getBoundingClientRect(),M=_.getWindow(D),A=M.getComputedStyle(D,null).getPropertyValue("font-style"),P=M.getComputedStyle(D,null).getPropertyValue("font-variant"),N=M.getComputedStyle(D,null).getPropertyValue("font-weight"),O=M.getComputedStyle(D,null).getPropertyValue("font-size"),F=M.getComputedStyle(D,null).getPropertyValue("line-height"),x=M.getComputedStyle(D,null).getPropertyValue("font-family"),W=`${A} ${P} ${N} ${O}/${F} ${x}`,V=D.innerText;let q=T.left,H=0,z;if(w>T.left+T.width)H=V.length;else{const U=h.getInstance();for(let j=0;jthis._createMouseTarget(h,v),h=>this._getMouseColumn(h))),this.lastMouseLeaveTime=-1,this._height=this._context.configuration.options.get(146).height;const C=new m.EditorMouseEventFactory(this.viewHelper.viewDomNode);this._register(C.onContextMenu(this.viewHelper.viewDomNode,h=>this._onContextMenu(h,!0))),this._register(C.onMouseMove(this.viewHelper.viewDomNode,h=>{this._onMouseMove(h),this._mouseLeaveMonitor||(this._mouseLeaveMonitor=d.addDisposableListener(this.viewHelper.viewDomNode.ownerDocument,"mousemove",v=>{this.viewHelper.viewDomNode.contains(v.target)||this._onMouseLeave(new m.EditorMouseEvent(v,!1,this.viewHelper.viewDomNode))}))})),this._register(C.onMouseUp(this.viewHelper.viewDomNode,h=>this._onMouseUp(h))),this._register(C.onMouseLeave(this.viewHelper.viewDomNode,h=>this._onMouseLeave(h)));let f=0;this._register(C.onPointerDown(this.viewHelper.viewDomNode,(h,v)=>{f=v})),this._register(d.addDisposableListener(this.viewHelper.viewDomNode,d.EventType.POINTER_UP,h=>{this._mouseDownOperation.onPointerUp()})),this._register(C.onMouseDown(this.viewHelper.viewDomNode,h=>this._onMouseDown(h,f))),this._setupMouseWheelZoomListener(),this._context.addEventHandler(this)}_setupMouseWheelZoomListener(){const a=o.MouseWheelClassifier.INSTANCE;let r=0,u=_.EditorZoom.getZoomLevel(),C=!1,f=0;const h=w=>{if(this.viewController.emitMouseWheel(w),!this._context.configuration.options.get(76))return;const S=new k.StandardWheelEvent(w);if(a.acceptStandardWheelEvent(S),a.isPhysicalMouseWheel()){if(v(w)){const L=_.EditorZoom.getZoomLevel(),D=S.deltaY>0?1:-1;_.EditorZoom.setZoomLevel(L+D),S.preventDefault(),S.stopPropagation()}}else Date.now()-r>50&&(u=_.EditorZoom.getZoomLevel(),C=v(w),f=0),r=Date.now(),f+=S.deltaY,C&&(_.EditorZoom.setZoomLevel(u+f/5),S.preventDefault(),S.stopPropagation())};this._register(d.addDisposableListener(this.viewHelper.viewDomNode,d.EventType.MOUSE_WHEEL,h,{capture:!0,passive:!1}));function v(w){return E.isMacintosh?(w.metaKey||w.ctrlKey)&&!w.shiftKey&&!w.altKey:w.ctrlKey&&!w.metaKey&&!w.shiftKey&&!w.altKey}}dispose(){this._context.removeEventHandler(this),this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),super.dispose()}onConfigurationChanged(a){if(a.hasChanged(146)){const r=this._context.configuration.options.get(146).height;this._height!==r&&(this._height=r,this._mouseDownOperation.onHeightChanged())}return!1}onCursorStateChanged(a){return this._mouseDownOperation.onCursorStateChanged(a),!1}onFocusChanged(a){return!1}getTargetAtClientPoint(a,r){const C=new m.ClientCoordinates(a,r).toPageCoordinates(d.getWindow(this.viewHelper.viewDomNode)),f=(0,m.createEditorPagePosition)(this.viewHelper.viewDomNode);if(C.yf.y+f.height||C.xf.x+f.width)return null;const h=(0,m.createCoordinatesRelativeToEditor)(this.viewHelper.viewDomNode,f,C);return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),f,C,h,null)}_createMouseTarget(a,r){let u=a.target;if(!this.viewHelper.viewDomNode.contains(u)){const C=d.getShadowRoot(this.viewHelper.viewDomNode);C&&(u=C.elementsFromPoint(a.posx,a.posy).find(f=>this.viewHelper.viewDomNode.contains(f)))}return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),a.editorPos,a.pos,a.relativePos,r?u:null)}_getMouseColumn(a){return this.mouseTargetFactory.getMouseColumn(a.relativePos)}_onContextMenu(a,r){this.viewController.emitContextMenu({event:a,target:this._createMouseTarget(a,r)})}_onMouseMove(a){this.mouseTargetFactory.mouseTargetIsWidget(a)||a.preventDefault(),!(this._mouseDownOperation.isActive()||a.timestamp{a.preventDefault(),this.viewHelper.focusTextArea()};if(L&&(C||h&&v))D(),this._mouseDownOperation.start(u.type,a,r);else if(f)a.preventDefault();else if(w){const T=u.detail;L&&this.viewHelper.shouldSuppressMouseDownOnViewZone(T.viewZoneId)&&(D(),this._mouseDownOperation.start(u.type,a,r),a.preventDefault())}else S&&this.viewHelper.shouldSuppressMouseDownOnWidget(u.detail)&&(D(),a.preventDefault());this.viewController.emitMouseDown({event:a,target:u})}}e.MouseHandler=t;class i extends I.Disposable{constructor(a,r,u,C,f,h){super(),this._context=a,this._viewController=r,this._viewHelper=u,this._mouseTargetFactory=C,this._createMouseTarget=f,this._getMouseColumn=h,this._mouseMoveMonitor=this._register(new m.GlobalEditorPointerMoveMonitor(this._viewHelper.viewDomNode)),this._topBottomDragScrolling=this._register(new s(this._context,this._viewHelper,this._mouseTargetFactory,(v,w,S)=>this._dispatchMouse(v,w,S))),this._mouseState=new c,this._currentSelection=new p.Selection(1,1,1,1),this._isActive=!1,this._lastMouseEvent=null}dispose(){super.dispose()}isActive(){return this._isActive}_onMouseDownThenMove(a){this._lastMouseEvent=a,this._mouseState.setModifiers(a);const r=this._findMousePosition(a,!1);r&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:a,target:r}):r.type===13&&(r.outsidePosition==="above"||r.outsidePosition==="below")?this._topBottomDragScrolling.start(r,a):(this._topBottomDragScrolling.stop(),this._dispatchMouse(r,!0,1)))}start(a,r,u){this._lastMouseEvent=r,this._mouseState.setStartedOnLineNumbers(a===3),this._mouseState.setStartButtons(r),this._mouseState.setModifiers(r);const C=this._findMousePosition(r,!0);if(!C||!C.position)return;this._mouseState.trySetCount(r.detail,C.position),r.detail=this._mouseState.count;const f=this._context.configuration.options;if(!f.get(92)&&f.get(35)&&!f.get(22)&&!this._mouseState.altKey&&r.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&C.type===6&&C.position&&this._currentSelection.containsPosition(C.position)){this._mouseState.isDragAndDrop=!0,this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,u,r.buttons,h=>this._onMouseDownThenMove(h),h=>{const v=this._findMousePosition(this._lastMouseEvent,!1);d.isKeyboardEvent(h)?this._viewController.emitMouseDropCanceled():this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:v?this._createMouseTarget(this._lastMouseEvent,!0):null}),this._stop()});return}this._mouseState.isDragAndDrop=!1,this._dispatchMouse(C,r.shiftKey,1),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,u,r.buttons,h=>this._onMouseDownThenMove(h),()=>this._stop()))}_stop(){this._isActive=!1,this._topBottomDragScrolling.stop()}onHeightChanged(){this._mouseMoveMonitor.stopMonitoring()}onPointerUp(){this._mouseMoveMonitor.stopMonitoring()}onCursorStateChanged(a){this._currentSelection=a.selections[0]}_getPositionOutsideEditor(a){const r=a.editorPos,u=this._context.viewModel,C=this._context.viewLayout,f=this._getMouseColumn(a);if(a.posyr.y+r.height){const v=a.posy-r.y-r.height,w=C.getCurrentScrollTop()+a.relativePos.y,S=y.HitTestContext.getZoneAtCoord(this._context,w);if(S){const D=this._helpPositionJumpOverViewZone(S);if(D)return y.MouseTarget.createOutsideEditor(f,D,"below",v)}const L=C.getLineNumberAtVerticalOffset(w);return y.MouseTarget.createOutsideEditor(f,new b.Position(L,u.getLineMaxColumn(L)),"below",v)}const h=C.getLineNumberAtVerticalOffset(C.getCurrentScrollTop()+a.relativePos.y);if(a.posxr.x+r.width){const v=a.posx-r.x-r.width;return y.MouseTarget.createOutsideEditor(f,new b.Position(h,u.getLineMaxColumn(h)),"right",v)}return null}_findMousePosition(a,r){const u=this._getPositionOutsideEditor(a);if(u)return u;const C=this._createMouseTarget(a,r);if(!C.position)return null;if(C.type===8||C.type===5){const h=this._helpPositionJumpOverViewZone(C.detail);if(h)return y.MouseTarget.createViewZone(C.type,C.element,C.mouseColumn,h,C.detail)}return C}_helpPositionJumpOverViewZone(a){const r=new b.Position(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),u=a.positionBefore,C=a.positionAfter;return u&&C?u.isBefore(r)?u:C:null}_dispatchMouse(a,r,u){a.position&&this._viewController.dispatchMouse({position:a.position,mouseColumn:a.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,revealType:u,inSelectionMode:r,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton,onInjectedText:a.type===6&&a.detail.injectedText!==null})}}class s extends I.Disposable{constructor(a,r,u,C){super(),this._context=a,this._viewHelper=r,this._mouseTargetFactory=u,this._dispatchMouse=C,this._operation=null}dispose(){super.dispose(),this.stop()}start(a,r){this._operation?this._operation.setPosition(a,r):this._operation=new g(this._context,this._viewHelper,this._mouseTargetFactory,this._dispatchMouse,a,r)}stop(){this._operation&&(this._operation.dispose(),this._operation=null)}}class g extends I.Disposable{constructor(a,r,u,C,f,h){super(),this._context=a,this._viewHelper=r,this._mouseTargetFactory=u,this._dispatchMouse=C,this._position=f,this._mouseEvent=h,this._lastTime=Date.now(),this._animationFrameDisposable=d.scheduleAtNextAnimationFrame(d.getWindow(h.browserEvent),()=>this._execute())}dispose(){this._animationFrameDisposable.dispose(),super.dispose()}setPosition(a,r){this._position=a,this._mouseEvent=r}_tick(){const a=Date.now(),r=a-this._lastTime;return this._lastTime=a,r}_getScrollSpeed(){const a=this._context.configuration.options.get(67),r=this._context.configuration.options.get(146).height/a,u=this._position.outsideDistance/a;return u<=1.5?Math.max(30,r*(1+u)):u<=3?Math.max(60,r*(2+u)):Math.max(200,r*(7+u))}_execute(){const a=this._context.configuration.options.get(67),r=this._getScrollSpeed(),u=this._tick(),C=r*(u/1e3)*a,f=this._position.outsidePosition==="above"?-C:C;this._context.viewModel.viewLayout.deltaScrollNow(0,f),this._viewHelper.renderNow();const h=this._context.viewLayout.getLinesViewportData(),v=this._position.outsidePosition==="above"?h.startLineNumber:h.endLineNumber;let w;{const S=(0,m.createEditorPagePosition)(this._viewHelper.viewDomNode),L=this._context.configuration.options.get(146).horizontalScrollbarHeight,D=new m.PageCoordinates(this._mouseEvent.pos.x,S.y+S.height-L-.1),T=(0,m.createCoordinatesRelativeToEditor)(this._viewHelper.viewDomNode,S,D);w=this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(),S,D,T,null)}(!w.position||w.position.lineNumber!==v)&&(this._position.outsidePosition==="above"?w=y.MouseTarget.createOutsideEditor(this._position.mouseColumn,new b.Position(v,1),"above",this._position.outsideDistance):w=y.MouseTarget.createOutsideEditor(this._position.mouseColumn,new b.Position(v,this._context.viewModel.getLineMaxColumn(v)),"below",this._position.outsideDistance)),this._dispatchMouse(w,!0,2),this._animationFrameDisposable=d.scheduleAtNextAnimationFrame(d.getWindow(w.element),()=>this._execute())}}class c{static{this.CLEAR_MOUSE_DOWN_COUNT_TIME=400}get altKey(){return this._altKey}get ctrlKey(){return this._ctrlKey}get metaKey(){return this._metaKey}get shiftKey(){return this._shiftKey}get leftButton(){return this._leftButton}get middleButton(){return this._middleButton}get startedOnLineNumbers(){return this._startedOnLineNumbers}constructor(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}get count(){return this._lastMouseDownCount}setModifiers(a){this._altKey=a.altKey,this._ctrlKey=a.ctrlKey,this._metaKey=a.metaKey,this._shiftKey=a.shiftKey}setStartButtons(a){this._leftButton=a.leftButton,this._middleButton=a.middleButton}setStartedOnLineNumbers(a){this._startedOnLineNumbers=a}trySetCount(a,r){const u=new Date().getTime();u-this._lastSetMouseDownCountTime>c.CLEAR_MOUSE_DOWN_COUNT_TIME&&(a=1),this._lastSetMouseDownCountTime=u,a>this._lastMouseDownCount+1&&(a=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(r)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=r,this._lastMouseDownCount=Math.min(a,this._lastMouseDownPositionEqualCount)}}}),define(ne[769],se([1,0,248,5,69,52,2,16,768,212,185]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PointerHandler=e.PointerEventHandler=void 0;class n extends _.MouseHandler{constructor(s,g,c){super(s,g,c),this._register(I.Gesture.addTarget(this.viewHelper.linesContentDomNode)),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,I.EventType.Tap,a=>this.onTap(a))),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,I.EventType.Change,a=>this.onChange(a))),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,I.EventType.Contextmenu,a=>this._onContextMenu(new p.EditorMouseEvent(a,!1,this.viewHelper.viewDomNode),!1))),this._lastPointerType="mouse",this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,"pointerdown",a=>{const r=a.pointerType;if(r==="mouse"){this._lastPointerType="mouse";return}else r==="touch"?this._lastPointerType="touch":this._lastPointerType="pen"}));const l=new p.EditorPointerEventFactory(this.viewHelper.viewDomNode);this._register(l.onPointerMove(this.viewHelper.viewDomNode,a=>this._onMouseMove(a))),this._register(l.onPointerUp(this.viewHelper.viewDomNode,a=>this._onMouseUp(a))),this._register(l.onPointerLeave(this.viewHelper.viewDomNode,a=>this._onMouseLeave(a))),this._register(l.onPointerDown(this.viewHelper.viewDomNode,(a,r)=>this._onMouseDown(a,r)))}onTap(s){!s.initialTarget||!this.viewHelper.linesContentDomNode.contains(s.initialTarget)||(s.preventDefault(),this.viewHelper.focusTextArea(),this._dispatchGesture(s,!1))}onChange(s){this._lastPointerType==="touch"&&this._context.viewModel.viewLayout.deltaScrollNow(-s.translationX,-s.translationY),this._lastPointerType==="pen"&&this._dispatchGesture(s,!0)}_dispatchGesture(s,g){const c=this._createMouseTarget(new p.EditorMouseEvent(s,!1,this.viewHelper.viewDomNode),!1);c.position&&this.viewController.dispatchMouse({position:c.position,mouseColumn:c.position.column,startedOnLineNumbers:!1,revealType:1,mouseDownCount:s.tapCount,inSelectionMode:g,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1,onInjectedText:c.type===6&&c.detail.injectedText!==null})}_onMouseDown(s,g){s.browserEvent.pointerType!=="touch"&&super._onMouseDown(s,g)}}e.PointerEventHandler=n;class o extends _.MouseHandler{constructor(s,g,c){super(s,g,c),this._register(I.Gesture.addTarget(this.viewHelper.linesContentDomNode)),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,I.EventType.Tap,l=>this.onTap(l))),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,I.EventType.Change,l=>this.onChange(l))),this._register(k.addDisposableListener(this.viewHelper.linesContentDomNode,I.EventType.Contextmenu,l=>this._onContextMenu(new p.EditorMouseEvent(l,!1,this.viewHelper.viewDomNode),!1)))}onTap(s){s.preventDefault(),this.viewHelper.focusTextArea();const g=this._createMouseTarget(new p.EditorMouseEvent(s,!1,this.viewHelper.viewDomNode),!1);if(g.position){const c=document.createEvent("CustomEvent");c.initEvent(b.TextAreaSyntethicEvents.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(c),this.viewController.moveTo(g.position,1)}}onChange(s){this._context.viewModel.viewLayout.deltaScrollNow(-s.translationX,-s.translationY)}}class t extends y.Disposable{constructor(s,g,c){super(),(m.isIOS||m.isAndroid&&m.isMobile)&&d.BrowserFeatures.pointerEvents?this.handler=this._register(new n(s,g,c)):E.mainWindow.TouchEvent?this.handler=this._register(new o(s,g,c)):this.handler=this._register(new _.MouseHandler(s,g,c))}getTargetAtClientPoint(s,g){return this.handler.getTargetAtClientPoint(s,g)}}e.PointerHandler=t}),define(ne[770],se([1,0,226,14,16,74,164,262,56,547,281,9,4,487]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewLines=void 0;class t{constructor(){this._currentVisibleRange=new o.Range(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(l){this._currentVisibleRange=l}}class i{constructor(l,a,r,u,C,f,h){this.minimalReveal=l,this.lineNumber=a,this.startColumn=r,this.endColumn=u,this.startScrollTop=C,this.stopScrollTop=f,this.scrollType=h,this.type="range",this.minLineNumber=a,this.maxLineNumber=a}}class s{constructor(l,a,r,u,C){this.minimalReveal=l,this.selections=a,this.startScrollTop=r,this.stopScrollTop=u,this.scrollType=C,this.type="selections";let f=a[0].startLineNumber,h=a[0].endLineNumber;for(let v=1,w=a.length;vnew p.ViewLine(this._viewLineOptions)}),this.domNode=this._visibleLines.domNode,_.PartFingerprints.write(this.domNode,8),this.domNode.setClassName(`view-lines ${d.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),(0,E.applyFontInfo)(this.domNode,C),this._maxLineWidth=0,this._asyncUpdateLineWidths=new k.RunOnceScheduler(()=>{this._updateLineWidthsSlow()},200),this._asyncCheckMonospaceFontAssumptions=new k.RunOnceScheduler(()=>{this._checkMonospaceFontAssumptions()},2e3),this._lastRenderedData=new t,this._horizontalRevealRequest=null,this._stickyScrollEnabled=u.get(116).enabled,this._maxNumberStickyLines=u.get(116).maxLineCount}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}onConfigurationChanged(l){this._visibleLines.onConfigurationChanged(l),l.hasChanged(147)&&(this._maxLineWidth=0);const a=this._context.configuration.options,r=a.get(50),u=a.get(147);return this._lineHeight=a.get(67),this._typicalHalfwidthCharacterWidth=r.typicalHalfwidthCharacterWidth,this._isViewportWrapping=u.isViewportWrapping,this._revealHorizontalRightPadding=a.get(101),this._cursorSurroundingLines=a.get(29),this._cursorSurroundingLinesStyle=a.get(30),this._canUseLayerHinting=!a.get(32),this._stickyScrollEnabled=a.get(116).enabled,this._maxNumberStickyLines=a.get(116).maxLineCount,(0,E.applyFontInfo)(this.domNode,r),this._onOptionsMaybeChanged(),l.hasChanged(146)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){const l=this._context.configuration,a=new p.ViewLineOptions(l,this._context.theme.type);if(!this._viewLineOptions.equals(a)){this._viewLineOptions=a;const r=this._visibleLines.getStartLineNumber(),u=this._visibleLines.getEndLineNumber();for(let C=r;C<=u;C++)this._visibleLines.getVisibleLine(C).onOptionsChanged(this._viewLineOptions);return!0}return!1}onCursorStateChanged(l){const a=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();let u=!1;for(let C=a;C<=r;C++)u=this._visibleLines.getVisibleLine(C).onSelectionChanged()||u;return u}onDecorationsChanged(l){{const a=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();for(let u=a;u<=r;u++)this._visibleLines.getVisibleLine(u).onDecorationsChanged()}return!0}onFlushed(l){const a=this._visibleLines.onFlushed(l);return this._maxLineWidth=0,a}onLinesChanged(l){return this._visibleLines.onLinesChanged(l)}onLinesDeleted(l){return this._visibleLines.onLinesDeleted(l)}onLinesInserted(l){return this._visibleLines.onLinesInserted(l)}onRevealRangeRequest(l){const a=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),l.source,l.minimalReveal,l.range,l.selections,l.verticalType);if(a===-1)return!1;let r=this._context.viewLayout.validateScrollPosition({scrollTop:a});l.revealHorizontal?l.range&&l.range.startLineNumber!==l.range.endLineNumber?r={scrollTop:r.scrollTop,scrollLeft:0}:l.range?this._horizontalRevealRequest=new i(l.minimalReveal,l.range.startLineNumber,l.range.startColumn,l.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),r.scrollTop,l.scrollType):l.selections&&l.selections.length>0&&(this._horizontalRevealRequest=new s(l.minimalReveal,l.selections,this._context.viewLayout.getCurrentScrollTop(),r.scrollTop,l.scrollType)):this._horizontalRevealRequest=null;const C=Math.abs(this._context.viewLayout.getCurrentScrollTop()-r.scrollTop)<=this._lineHeight?1:l.scrollType;return this._context.viewModel.viewLayout.setScrollPosition(r,C),!0}onScrollChanged(l){if(this._horizontalRevealRequest&&l.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&l.scrollTopChanged){const a=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),r=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(l.scrollTopr)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(l.scrollWidth),this._visibleLines.onScrollChanged(l)||!0}onTokensChanged(l){return this._visibleLines.onTokensChanged(l)}onZonesChanged(l){return this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(l)}onThemeChanged(l){return this._onOptionsMaybeChanged()}getPositionFromDOMInfo(l,a){const r=this._getViewLineDomNode(l);if(r===null)return null;const u=this._getLineNumberFor(r);if(u===-1||u<1||u>this._context.viewModel.getLineCount())return null;if(this._context.viewModel.getLineMaxColumn(u)===1)return new n.Position(u,1);const C=this._visibleLines.getStartLineNumber(),f=this._visibleLines.getEndLineNumber();if(uf)return null;let h=this._visibleLines.getVisibleLine(u).getColumnOfNodeOffset(l,a);const v=this._context.viewModel.getLineMinColumn(u);return hr)return-1;const u=new b.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot),C=this._visibleLines.getVisibleLine(l).getWidth(u);return this._updateLineWidthsSlowIfDomDidLayout(u),C}linesVisibleRangesForRange(l,a){if(this.shouldRender())return null;const r=l.endLineNumber,u=o.Range.intersectRanges(l,this._lastRenderedData.getCurrentVisibleRange());if(!u)return null;const C=[];let f=0;const h=new b.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot);let v=0;a&&(v=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new n.Position(u.startLineNumber,1)).lineNumber);const w=this._visibleLines.getStartLineNumber(),S=this._visibleLines.getEndLineNumber();for(let L=u.startLineNumber;L<=u.endLineNumber;L++){if(LS)continue;const D=L===u.startLineNumber?u.startColumn:1,T=L!==u.endLineNumber,M=T?this._context.viewModel.getLineMaxColumn(L):u.endColumn,A=this._visibleLines.getVisibleLine(L).getVisibleRangesForRange(L,D,M,h);if(A){if(a&&Lthis._visibleLines.getEndLineNumber())return null;const u=new b.DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot),C=this._visibleLines.getVisibleLine(l).getVisibleRangesForRange(l,a,r,u);return this._updateLineWidthsSlowIfDomDidLayout(u),C}visibleRangeForPosition(l){const a=this._visibleRangesForLineRange(l.lineNumber,l.column,l.column);return a?new y.HorizontalPosition(a.outsideRenderedLine,a.ranges[0].left):null}_updateLineWidthsFast(){return this._updateLineWidths(!0)}_updateLineWidthsSlow(){this._updateLineWidths(!1)}_updateLineWidthsSlowIfDomDidLayout(l){l.didDomLayout&&(this._asyncUpdateLineWidths.isScheduled()||(this._asyncUpdateLineWidths.cancel(),this._updateLineWidthsSlow()))}_updateLineWidths(l){const a=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();let u=1,C=!0;for(let f=a;f<=r;f++){const h=this._visibleLines.getVisibleLine(f);if(l&&!h.getWidthIsFast()){C=!1;continue}u=Math.max(u,h.getWidth(null))}return C&&a===1&&r===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(u),C}_checkMonospaceFontAssumptions(){let l=-1,a=-1;const r=this._visibleLines.getStartLineNumber(),u=this._visibleLines.getEndLineNumber();for(let C=r;C<=u;C++){const f=this._visibleLines.getVisibleLine(C);if(f.needsMonospaceFontCheck()){const h=f.getWidth(null);h>a&&(a=h,l=C)}}if(l!==-1&&!this._visibleLines.getVisibleLine(l).monospaceAssumptionsAreValid())for(let C=r;C<=u;C++)this._visibleLines.getVisibleLine(C).onMonospaceAssumptionsInvalidated()}prepareRender(){throw new Error("Not supported")}render(){throw new Error("Not supported")}renderText(l){if(this._visibleLines.renderLines(l),this._lastRenderedData.setCurrentVisibleRange(l.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){const r=this._horizontalRevealRequest;if(l.startLineNumber<=r.minLineNumber&&r.maxLineNumber<=l.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();const u=this._computeScrollLeftToReveal(r);u&&(this._isViewportWrapping||this._ensureMaxLineWidth(u.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:u.scrollLeft},r.scrollType))}}if(this._updateLineWidthsFast()?this._asyncUpdateLineWidths.cancel():this._asyncUpdateLineWidths.schedule(),I.isLinux&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){const r=this._visibleLines.getStartLineNumber(),u=this._visibleLines.getEndLineNumber();for(let C=r;C<=u;C++)if(this._visibleLines.getVisibleLine(C).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain("strict");const a=this._context.viewLayout.getCurrentScrollTop()-l.bigNumbersDelta;this._linesContent.setTop(-a),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}_ensureMaxLineWidth(l){const a=Math.ceil(l);this._maxLineWidth0){let N=C[0].startLineNumber,O=C[0].endLineNumber;for(let F=1,x=C.length;Fv){if(!S)return-1;P=L}else if(f===5||f===6)if(f===6&&h<=L&&D<=w)P=h;else{const N=Math.max(5*this._lineHeight,v*.2),O=L-N,F=D-v;P=Math.max(F,O)}else if(f===1||f===2)if(f===2&&h<=L&&D<=w)P=h;else{const N=(L+D)/2;P=Math.max(0,N-v/2)}else P=this._computeMinimumScrolling(h,w,L,D,f===3,f===4);return P}_computeScrollLeftToReveal(l){const a=this._context.viewLayout.getCurrentViewport(),r=this._context.configuration.options.get(146),u=a.left,C=u+a.width-r.verticalScrollbarWidth;let f=1073741824,h=0;if(l.type==="range"){const w=this._visibleRangesForLineRange(l.lineNumber,l.startColumn,l.endColumn);if(!w)return null;for(const S of w.ranges)f=Math.min(f,Math.round(S.left)),h=Math.max(h,Math.round(S.left+S.width))}else for(const w of l.selections){if(w.startLineNumber!==w.endLineNumber)return null;const S=this._visibleRangesForLineRange(w.startLineNumber,w.startColumn,w.endColumn);if(!S)return null;for(const L of S.ranges)f=Math.min(f,Math.round(L.left)),h=Math.max(h,Math.round(L.left+L.width))}return l.minimalReveal||(f=Math.max(0,f-g.HORIZONTAL_EXTRA_PX),h+=this._revealHorizontalRightPadding),l.type==="selections"&&h-f>a.width?null:{scrollLeft:this._computeMinimumScrolling(u,C,f,h),maxHorizontalOffset:h}}_computeMinimumScrolling(l,a,r,u,C,f){l=l|0,a=a|0,r=r|0,u=u|0,C=!!C,f=!!f;const h=a-l;if(u-ra)return Math.max(0,u-h)}else return r;return l}}e.ViewLines=g}),define(ne[25],se([1,0,6,2,7,38,97]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Themable=e.Extensions=e.IThemeService=void 0,e.themeColorFromId=m,e.getThemeTypeSelector=_,e.registerThemingParticipant=n,e.IThemeService=(0,I.createDecorator)("themeService");function m(t){return{id:t}}function _(t){switch(t){case y.ColorScheme.DARK:return"vs-dark";case y.ColorScheme.HIGH_CONTRAST_DARK:return"hc-black";case y.ColorScheme.HIGH_CONTRAST_LIGHT:return"hc-light";default:return"vs"}}e.Extensions={ThemingContribution:"base.contributions.theming"};class b{constructor(){this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new d.Emitter}onColorThemeChange(i){return this.themingParticipants.push(i),this.onThemingParticipantAddedEmitter.fire(i),(0,k.toDisposable)(()=>{const s=this.themingParticipants.indexOf(i);this.themingParticipants.splice(s,1)})}getThemingParticipants(){return this.themingParticipants}}const p=new b;E.Registry.add(e.Extensions.ThemingContribution,p);function n(t){return p.onColorThemeChange(t)}class o extends k.Disposable{constructor(i){super(),this.themeService=i,this.theme=i.getColorTheme(),this._register(this.themeService.onDidColorThemeChange(s=>this.onThemeChange(s)))}onThemeChange(i){this.theme=i,this.updateStyles()}updateStyles(){}}e.Themable=o}),define(ne[771],se([1,0,6,2,73,25]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GlobalStyleSheet=e.AbstractCodeEditorService=void 0;let y=class extends k.Disposable{constructor(b){super(),this._themeService=b,this._onWillCreateCodeEditor=this._register(new d.Emitter),this._onCodeEditorAdd=this._register(new d.Emitter),this.onCodeEditorAdd=this._onCodeEditorAdd.event,this._onCodeEditorRemove=this._register(new d.Emitter),this.onCodeEditorRemove=this._onCodeEditorRemove.event,this._onWillCreateDiffEditor=this._register(new d.Emitter),this._onDiffEditorAdd=this._register(new d.Emitter),this.onDiffEditorAdd=this._onDiffEditorAdd.event,this._onDiffEditorRemove=this._register(new d.Emitter),this.onDiffEditorRemove=this._onDiffEditorRemove.event,this._decorationOptionProviders=new Map,this._codeEditorOpenHandlers=new I.LinkedList,this._modelProperties=new Map,this._codeEditors=Object.create(null),this._diffEditors=Object.create(null),this._globalStyleSheet=null}willCreateCodeEditor(){this._onWillCreateCodeEditor.fire()}addCodeEditor(b){this._codeEditors[b.getId()]=b,this._onCodeEditorAdd.fire(b)}removeCodeEditor(b){delete this._codeEditors[b.getId()]&&this._onCodeEditorRemove.fire(b)}listCodeEditors(){return Object.keys(this._codeEditors).map(b=>this._codeEditors[b])}willCreateDiffEditor(){this._onWillCreateDiffEditor.fire()}addDiffEditor(b){this._diffEditors[b.getId()]=b,this._onDiffEditorAdd.fire(b)}listDiffEditors(){return Object.keys(this._diffEditors).map(b=>this._diffEditors[b])}getFocusedCodeEditor(){let b=null;const p=this.listCodeEditors();for(const n of p){if(n.hasTextFocus())return n;n.hasWidgetFocus()&&(b=n)}return b}removeDecorationType(b){const p=this._decorationOptionProviders.get(b);p&&(p.refCount--,p.refCount<=0&&(this._decorationOptionProviders.delete(b),p.dispose(),this.listCodeEditors().forEach(n=>n.removeDecorationsByType(b))))}setModelProperty(b,p,n){const o=b.toString();let t;this._modelProperties.has(o)?t=this._modelProperties.get(o):(t=new Map,this._modelProperties.set(o,t)),t.set(p,n)}getModelProperty(b,p){const n=b.toString();if(this._modelProperties.has(n))return this._modelProperties.get(n).get(p)}async openCodeEditor(b,p,n){for(const o of this._codeEditorOpenHandlers){const t=await o(b,p,n);if(t!==null)return t}return null}registerCodeEditorOpenHandler(b){const p=this._codeEditorOpenHandlers.unshift(b);return(0,k.toDisposable)(p)}};e.AbstractCodeEditorService=y,e.AbstractCodeEditorService=y=ke([ce(0,E.IThemeService)],y);class m{constructor(b){this._styleSheet=b}}e.GlobalStyleSheet=m}),define(ne[772],se([1,0,49,25,32,118,58,7,705,2,5,31,47,61,119,52,395,648,14]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HoverService=void 0;let a=class extends b.Disposable{constructor(h,v,w,S,L){super(),this._instantiationService=h,this._keybindingService=w,this._layoutService=S,this._accessibilityService=L,this._managedHovers=new Map,v.onDidShowContextMenu(()=>this.hideHover()),this._contextViewHandler=this._register(new g.ContextViewHandler(this._layoutService))}showHover(h,v,w){if(r(this._currentHoverOptions)===r(h)||this._currentHover&&this._currentHoverOptions?.persistence?.sticky)return;this._currentHoverOptions=h,this._lastHoverOptions=h;const S=h.trapFocus||this._accessibilityService.isScreenReaderOptimized(),L=(0,p.getActiveElement)();w||(S&&L?L.classList.contains("monaco-hover")||(this._lastFocusedElementBeforeOpen=L):this._lastFocusedElementBeforeOpen=void 0);const D=new b.DisposableStore,T=this._instantiationService.createInstance(_.HoverWidget,h);if(h.persistence?.sticky&&(T.isLocked=!0),T.onDispose(()=>{this._currentHover?.domNode&&(0,p.isAncestorOfActiveElement)(this._currentHover.domNode)&&this._lastFocusedElementBeforeOpen?.focus(),this._currentHoverOptions===h&&(this._currentHoverOptions=void 0),D.dispose()},void 0,D),!h.container){const M=(0,p.isHTMLElement)(h.target)?h.target:h.target.targetElements[0];h.container=this._layoutService.getContainer((0,p.getWindow)(M))}if(this._contextViewHandler.showContextView(new u(T,v),h.container),T.onRequestLayout(()=>this._contextViewHandler.layout(),void 0,D),h.persistence?.sticky)D.add((0,p.addDisposableListener)((0,p.getWindow)(h.container).document,p.EventType.MOUSE_DOWN,M=>{(0,p.isAncestor)(M.target,T.domNode)||this.doHideHover()}));else{if("targetElements"in h.target)for(const A of h.target.targetElements)D.add((0,p.addDisposableListener)(A,p.EventType.CLICK,()=>this.hideHover()));else D.add((0,p.addDisposableListener)(h.target,p.EventType.CLICK,()=>this.hideHover()));const M=(0,p.getActiveElement)();if(M){const A=(0,p.getWindow)(M).document;D.add((0,p.addDisposableListener)(M,p.EventType.KEY_DOWN,P=>this._keyDown(P,T,!!h.persistence?.hideOnKeyDown))),D.add((0,p.addDisposableListener)(A,p.EventType.KEY_DOWN,P=>this._keyDown(P,T,!!h.persistence?.hideOnKeyDown))),D.add((0,p.addDisposableListener)(M,p.EventType.KEY_UP,P=>this._keyUp(P,T))),D.add((0,p.addDisposableListener)(A,p.EventType.KEY_UP,P=>this._keyUp(P,T)))}}if("IntersectionObserver"in s.mainWindow){const M=new IntersectionObserver(P=>this._intersectionChange(P,T),{threshold:0}),A="targetElements"in h.target?h.target.targetElements[0]:h.target;M.observe(A),D.add((0,b.toDisposable)(()=>M.disconnect()))}return this._currentHover=T,T}hideHover(){this._currentHover?.isLocked||!this._currentHoverOptions||this.doHideHover()}doHideHover(){this._currentHover=void 0,this._currentHoverOptions=void 0,this._contextViewHandler.hideContextView()}_intersectionChange(h,v){h[h.length-1].isIntersecting||v.dispose()}showAndFocusLastHover(){this._lastHoverOptions&&this.showHover(this._lastHoverOptions,!0,!0)}_keyDown(h,v,w){if(h.key==="Alt"){v.isLocked=!0;return}const S=new o.StandardKeyboardEvent(h);this._keybindingService.resolveKeyboardEvent(S).getSingleModifierDispatchChords().some(D=>!!D)||this._keybindingService.softDispatch(S,S.target).kind!==0||w&&(!this._currentHoverOptions?.trapFocus||h.key!=="Tab")&&(this.hideHover(),this._lastFocusedElementBeforeOpen?.focus())}_keyUp(h,v){h.key==="Alt"&&(v.isLocked=!1,v.isMouseIn||(this.hideHover(),this._lastFocusedElementBeforeOpen?.focus()))}setupManagedHover(h,v,w,S){v.setAttribute("custom-hover","true"),v.title!==""&&(console.warn("HTML element already has a title attribute, which will conflict with the custom hover. Please remove the title attribute."),console.trace("Stack trace:",v.title),v.title="");let L,D;const T=(z,U)=>{const j=D!==void 0;z&&(D?.dispose(),D=void 0),U&&(L?.dispose(),L=void 0),j&&(h.onDidHideHover?.(),D=void 0)},M=(z,U,j,Y)=>new l.TimeoutTimer(async()=>{(!D||D.isDisposed)&&(D=new c.ManagedHoverWidget(h,j||v,z>0),await D.update(typeof w=="function"?w():w,U,{...S,trapFocus:Y}))},z);let A=!1;const P=(0,p.addDisposableListener)(v,p.EventType.MOUSE_DOWN,()=>{A=!0,T(!0,!0)},!0),N=(0,p.addDisposableListener)(v,p.EventType.MOUSE_UP,()=>{A=!1},!0),O=(0,p.addDisposableListener)(v,p.EventType.MOUSE_LEAVE,z=>{A=!1,T(!1,z.fromElement===v)},!0),F=z=>{if(L)return;const U=new b.DisposableStore,j={targetElements:[v],dispose:()=>{}};if(h.placement===void 0||h.placement==="mouse"){const Y=G=>{j.x=G.x+10,(0,p.isHTMLElement)(G.target)&&C(G.target,v)!==v&&T(!0,!0)};U.add((0,p.addDisposableListener)(v,p.EventType.MOUSE_MOVE,Y,!0))}L=U,!((0,p.isHTMLElement)(z.target)&&C(z.target,v)!==v)&&U.add(M(h.delay,!1,j))},x=(0,p.addDisposableListener)(v,p.EventType.MOUSE_OVER,F,!0),W=()=>{if(A||L)return;const z={targetElements:[v],dispose:()=>{}},U=new b.DisposableStore,j=()=>T(!0,!0);U.add((0,p.addDisposableListener)(v,p.EventType.BLUR,j,!0)),U.add(M(h.delay,!1,z)),L=U};let V;const q=v.tagName.toLowerCase();q!=="input"&&q!=="textarea"&&(V=(0,p.addDisposableListener)(v,p.EventType.FOCUS,W,!0));const H={show:z=>{T(!1,!0),M(0,z,void 0,z)},hide:()=>{T(!0,!0)},update:async(z,U)=>{w=z,await D?.update(w,void 0,U)},dispose:()=>{this._managedHovers.delete(v),x.dispose(),O.dispose(),P.dispose(),N.dispose(),V?.dispose(),T(!0,!0)}};return this._managedHovers.set(v,H),H}showManagedHover(h){const v=this._managedHovers.get(h);v&&v.show(!0)}dispose(){this._managedHovers.forEach(h=>h.dispose()),super.dispose()}};e.HoverService=a,e.HoverService=a=ke([ce(0,m.IInstantiationService),ce(1,y.IContextMenuService),ce(2,n.IKeybindingService),ce(3,i.ILayoutService),ce(4,t.IAccessibilityService)],a);function r(f){if(f!==void 0)return f?.id??f}class u{get anchorPosition(){return this._hover.anchor}constructor(h,v=!1){this._hover=h,this._focus=v,this.layer=1}render(h){return this._hover.render(h),this._focus&&this._hover.focus(),this._hover}getAnchor(){return{x:this._hover.x,y:this._hover.y}}layout(){this._hover.layout()}}function C(f,h){for(h=h??(0,p.getWindow)(f).document.body;!f.hasAttribute("custom-hover")&&f!==h;)f=f.parentElement;return f}(0,d.registerSingleton)(E.IHoverService,a,1),(0,k.registerThemingParticipant)((f,h)=>{const v=f.getColor(I.editorHoverBorder);v&&(h.addRule(`.monaco-workbench .workbench-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${v.transparent(.5)}; }`),h.addRule(`.monaco-workbench .workbench-hover hr { border-top: 1px solid ${v.transparent(.5)}; }`))})}),define(ne[773],se([1,0,5,39,86,56,25]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EditorScrollbar=void 0;class m extends E.ViewPart{constructor(b,p,n,o){super(b);const t=this._context.configuration.options,i=t.get(104),s=t.get(75),g=t.get(40),c=t.get(107),l={listenOnDomNode:n.domNode,className:"editor-scrollable "+(0,y.getThemeTypeSelector)(b.theme.type),useShadows:!1,lazyRender:!0,vertical:i.vertical,horizontal:i.horizontal,verticalHasArrows:i.verticalHasArrows,horizontalHasArrows:i.horizontalHasArrows,verticalScrollbarSize:i.verticalScrollbarSize,verticalSliderSize:i.verticalSliderSize,horizontalScrollbarSize:i.horizontalScrollbarSize,horizontalSliderSize:i.horizontalSliderSize,handleMouseWheel:i.handleMouseWheel,alwaysConsumeMouseWheel:i.alwaysConsumeMouseWheel,arrowSize:i.arrowSize,mouseWheelScrollSensitivity:s,fastScrollSensitivity:g,scrollPredominantAxis:c,scrollByPage:i.scrollByPage};this.scrollbar=this._register(new I.SmoothScrollableElement(p.domNode,l,this._context.viewLayout.getScrollable())),E.PartFingerprints.write(this.scrollbar.getDomNode(),6),this.scrollbarDomNode=(0,k.createFastDomNode)(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition("absolute"),this._setLayout();const a=(r,u,C)=>{const f={};if(u){const h=r.scrollTop;h&&(f.scrollTop=this._context.viewLayout.getCurrentScrollTop()+h,r.scrollTop=0)}if(C){const h=r.scrollLeft;h&&(f.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+h,r.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(f,1)};this._register(d.addDisposableListener(n.domNode,"scroll",r=>a(n.domNode,!0,!0))),this._register(d.addDisposableListener(p.domNode,"scroll",r=>a(p.domNode,!0,!1))),this._register(d.addDisposableListener(o.domNode,"scroll",r=>a(o.domNode,!0,!1))),this._register(d.addDisposableListener(this.scrollbarDomNode.domNode,"scroll",r=>a(this.scrollbarDomNode.domNode,!0,!1)))}dispose(){super.dispose()}_setLayout(){const b=this._context.configuration.options,p=b.get(146);this.scrollbarDomNode.setLeft(p.contentLeft),b.get(73).side==="right"?this.scrollbarDomNode.setWidth(p.contentWidth+p.minimap.minimapWidth):this.scrollbarDomNode.setWidth(p.contentWidth),this.scrollbarDomNode.setHeight(p.height)}getOverviewRulerLayoutInfo(){return this.scrollbar.getOverviewRulerLayoutInfo()}getDomNode(){return this.scrollbarDomNode}delegateVerticalScrollbarPointerDown(b){this.scrollbar.delegateVerticalScrollbarPointerDown(b)}delegateScrollFromMouseWheelEvent(b){this.scrollbar.delegateScrollFromMouseWheelEvent(b)}onConfigurationChanged(b){if(b.hasChanged(104)||b.hasChanged(75)||b.hasChanged(40)){const p=this._context.configuration.options,n=p.get(104),o=p.get(75),t=p.get(40),i=p.get(107),s={vertical:n.vertical,horizontal:n.horizontal,verticalScrollbarSize:n.verticalScrollbarSize,horizontalScrollbarSize:n.horizontalScrollbarSize,scrollByPage:n.scrollByPage,handleMouseWheel:n.handleMouseWheel,mouseWheelScrollSensitivity:o,fastScrollSensitivity:t,scrollPredominantAxis:i};this.scrollbar.updateOptions(s)}return b.hasChanged(146)&&this._setLayout(),!0}onScrollChanged(b){return!0}onThemeChanged(b){return this.scrollbar.updateClassName("editor-scrollable "+(0,y.getThemeTypeSelector)(this._context.theme.type)),!0}prepareRender(b){}render(b){this.scrollbar.renderNow()}}e.EditorScrollbar=m}),define(ne[774],se([1,0,133,32,25,495]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectionsOverlay=void 0;class E{constructor(o){this.left=o.left,this.width=o.width,this.startStyle=null,this.endStyle=null}}class y{constructor(o,t){this.lineNumber=o,this.ranges=t}}function m(n){return new E(n)}function _(n){return new y(n.lineNumber,n.ranges.map(m))}class b extends d.DynamicViewOverlay{static{this.SELECTION_CLASS_NAME="selected-text"}static{this.SELECTION_TOP_LEFT="top-left-radius"}static{this.SELECTION_BOTTOM_LEFT="bottom-left-radius"}static{this.SELECTION_TOP_RIGHT="top-right-radius"}static{this.SELECTION_BOTTOM_RIGHT="bottom-right-radius"}static{this.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background"}static{this.ROUNDED_PIECE_WIDTH=10}constructor(o){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=o;const t=this._context.configuration.options;this._roundedSelection=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(o){const t=this._context.configuration.options;return this._roundedSelection=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(o){return this._selections=o.selections.slice(0),!0}onDecorationsChanged(o){return!0}onFlushed(o){return!0}onLinesChanged(o){return!0}onLinesDeleted(o){return!0}onLinesInserted(o){return!0}onScrollChanged(o){return o.scrollTopChanged}onZonesChanged(o){return!0}_visibleRangesHaveGaps(o){for(let t=0,i=o.length;t1)return!0;return!1}_enrichVisibleRangesWithStyle(o,t,i){const s=this._typicalHalfwidthCharacterWidth/4;let g=null,c=null;if(i&&i.length>0&&t.length>0){const l=t[0].lineNumber;if(l===o.startLineNumber)for(let r=0;!g&&r=0;r--)i[r].lineNumber===a&&(c=i[r].ranges[0]);g&&!g.startStyle&&(g=null),c&&!c.startStyle&&(c=null)}for(let l=0,a=t.length;l0){const v=t[l-1].ranges[0].left,w=t[l-1].ranges[0].left+t[l-1].ranges[0].width;p(u-v)v&&(f.top=1),p(C-w)'}_actualRenderOneSelection(o,t,i,s){if(s.length===0)return;const g=!!s[0].ranges[0].startStyle,c=s[0].lineNumber,l=s[s.length-1].lineNumber;for(let a=0,r=s.length;a1,r)}this._previousFrameVisibleRangesWithStyle=g,this._renderResult=t.map(([c,l])=>c+l)}render(o,t){if(!this._renderResult)return"";const i=t-o;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}e.SelectionsOverlay=b,(0,I.registerThemingParticipant)((n,o)=>{const t=n.getColor(k.editorSelectionForeground);t&&!t.isTransparent()&&o.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${t}; }`)});function p(n){return n<0?-n:n}}),define(ne[415],se([1,0,5,39,223,2,21,88,9,332,32,25]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";var o;Object.defineProperty(e,"__esModule",{value:!0}),e.OverviewRulerFeature=void 0;let t=class extends E.Disposable{static{o=this}static{this.ONE_OVERVIEW_WIDTH=15}static{this.ENTIRE_DIFF_OVERVIEW_WIDTH=this.ONE_OVERVIEW_WIDTH*2}constructor(s,g,c,l,a,r,u){super(),this._editors=s,this._rootElement=g,this._diffModel=c,this._rootWidth=l,this._rootHeight=a,this._modifiedEditorLayoutInfo=r,this._themeService=u,this.width=o.ENTIRE_DIFF_OVERVIEW_WIDTH;const C=(0,y.observableFromEvent)(this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme()),f=(0,y.derived)(w=>{const S=C.read(w),L=S.getColor(p.diffOverviewRulerInserted)||(S.getColor(p.diffInserted)||p.defaultInsertColor).transparent(2),D=S.getColor(p.diffOverviewRulerRemoved)||(S.getColor(p.diffRemoved)||p.defaultRemoveColor).transparent(2);return{insertColor:L,removeColor:D}}),h=(0,k.createFastDomNode)(document.createElement("div"));h.setClassName("diffViewport"),h.setPosition("absolute");const v=(0,d.h)("div.diffOverview",{style:{position:"absolute",top:"0px",width:o.ENTIRE_DIFF_OVERVIEW_WIDTH+"px"}}).root;this._register((0,m.appendRemoveOnDispose)(v,h.domNode)),this._register((0,d.addStandardDisposableListener)(v,d.EventType.POINTER_DOWN,w=>{this._editors.modified.delegateVerticalScrollbarPointerDown(w)})),this._register((0,d.addDisposableListener)(v,d.EventType.MOUSE_WHEEL,w=>{this._editors.modified.delegateScrollFromMouseWheelEvent(w)},{passive:!1})),this._register((0,m.appendRemoveOnDispose)(this._rootElement,v)),this._register((0,y.autorunWithStore)((w,S)=>{const L=this._diffModel.read(w),D=this._editors.original.createOverviewRuler("original diffOverviewRuler");D&&(S.add(D),S.add((0,m.appendRemoveOnDispose)(v,D.getDomNode())));const T=this._editors.modified.createOverviewRuler("modified diffOverviewRuler");if(T&&(S.add(T),S.add((0,m.appendRemoveOnDispose)(v,T.getDomNode()))),!D||!T)return;const M=(0,y.observableSignalFromEvent)("viewZoneChanged",this._editors.original.onDidChangeViewZones),A=(0,y.observableSignalFromEvent)("viewZoneChanged",this._editors.modified.onDidChangeViewZones),P=(0,y.observableSignalFromEvent)("hiddenRangesChanged",this._editors.original.onDidChangeHiddenAreas),N=(0,y.observableSignalFromEvent)("hiddenRangesChanged",this._editors.modified.onDidChangeHiddenAreas);S.add((0,y.autorun)(O=>{M.read(O),A.read(O),P.read(O),N.read(O);const F=f.read(O),x=L?.diff.read(O)?.mappings;function W(H,z,U){const j=U._getViewModel();return j?H.filter(Y=>Y.length>0).map(Y=>{const G=j.coordinatesConverter.convertModelPositionToViewPosition(new _.Position(Y.startLineNumber,1)),K=j.coordinatesConverter.convertModelPositionToViewPosition(new _.Position(Y.endLineNumberExclusive,1)),R=K.lineNumber-G.lineNumber;return new b.OverviewRulerZone(G.lineNumber,K.lineNumber,R,z.toString())}):[]}const V=W((x||[]).map(H=>H.lineRangeMapping.original),F.removeColor,this._editors.original),q=W((x||[]).map(H=>H.lineRangeMapping.modified),F.insertColor,this._editors.modified);D?.setZones(V),T?.setZones(q)})),S.add((0,y.autorun)(O=>{const F=this._rootHeight.read(O),x=this._rootWidth.read(O),W=this._modifiedEditorLayoutInfo.read(O);if(W){const V=o.ENTIRE_DIFF_OVERVIEW_WIDTH-2*o.ONE_OVERVIEW_WIDTH;D.setLayout({top:0,height:F,right:V+o.ONE_OVERVIEW_WIDTH,width:o.ONE_OVERVIEW_WIDTH}),T.setLayout({top:0,height:F,right:0,width:o.ONE_OVERVIEW_WIDTH});const q=this._editors.modifiedScrollTop.read(O),H=this._editors.modifiedScrollHeight.read(O),z=this._editors.modified.getOption(104),U=new I.ScrollbarState(z.verticalHasArrows?z.arrowSize:0,z.verticalScrollbarSize,0,W.height,H,q);h.setTop(U.getSliderPosition()),h.setHeight(U.getSliderSize())}else h.setTop(0),h.setHeight(0);v.style.height=F+"px",v.style.left=x-o.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",h.setWidth(o.ENTIRE_DIFF_OVERVIEW_WIDTH)}))}))}};e.OverviewRulerFeature=t,e.OverviewRulerFeature=t=o=ke([ce(6,n.IThemeService)],t)}),define(ne[775],se([1,0,6,2,21,112,415,37,9,3,7,31]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorEditors=void 0;let o=class extends k.Disposable{get onDidContentSizeChange(){return this._onDidContentSizeChange.event}constructor(i,s,g,c,l,a,r){super(),this.originalEditorElement=i,this.modifiedEditorElement=s,this._options=g,this._argCodeEditorWidgetOptions=c,this._createInnerEditor=l,this._instantiationService=a,this._keybindingService=r,this.original=this._register(this._createLeftHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.originalEditor||{})),this.modified=this._register(this._createRightHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.modifiedEditor||{})),this._onDidContentSizeChange=this._register(new d.Emitter),this.modifiedScrollTop=(0,I.observableFromEvent)(this,this.modified.onDidScrollChange,()=>this.modified.getScrollTop()),this.modifiedScrollHeight=(0,I.observableFromEvent)(this,this.modified.onDidScrollChange,()=>this.modified.getScrollHeight()),this.modifiedObs=(0,E.observableCodeEditor)(this.modified),this.originalObs=(0,E.observableCodeEditor)(this.original),this.modifiedModel=this.modifiedObs.model,this.modifiedSelections=(0,I.observableFromEvent)(this,this.modified.onDidChangeCursorSelection,()=>this.modified.getSelections()??[]),this.modifiedCursor=(0,I.derivedOpts)({owner:this,equalsFn:_.Position.equals},u=>this.modifiedSelections.read(u)[0]?.getPosition()??new _.Position(1,1)),this.originalCursor=(0,I.observableFromEvent)(this,this.original.onDidChangeCursorPosition,()=>this.original.getPosition()??new _.Position(1,1)),this._argCodeEditorWidgetOptions=null,this._register((0,I.autorunHandleChanges)({createEmptyChangeSummary:()=>({}),handleChange:(u,C)=>(u.didChange(g.editorOptions)&&Object.assign(C,u.change.changedOptions),!0)},(u,C)=>{g.editorOptions.read(u),this._options.renderSideBySide.read(u),this.modified.updateOptions(this._adjustOptionsForRightHandSide(u,C)),this.original.updateOptions(this._adjustOptionsForLeftHandSide(u,C))}))}_createLeftHandSideEditor(i,s){const g=this._adjustOptionsForLeftHandSide(void 0,i),c=this._constructInnerEditor(this._instantiationService,this.originalEditorElement,g,s);return c.setContextValue("isInDiffLeftEditor",!0),c}_createRightHandSideEditor(i,s){const g=this._adjustOptionsForRightHandSide(void 0,i),c=this._constructInnerEditor(this._instantiationService,this.modifiedEditorElement,g,s);return c.setContextValue("isInDiffRightEditor",!0),c}_constructInnerEditor(i,s,g,c){const l=this._createInnerEditor(i,s,g,c);return this._register(l.onDidContentSizeChange(a=>{const r=this.original.getContentWidth()+this.modified.getContentWidth()+y.OverviewRulerFeature.ENTIRE_DIFF_OVERVIEW_WIDTH,u=Math.max(this.modified.getContentHeight(),this.original.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:u,contentWidth:r,contentHeightChanged:a.contentHeightChanged,contentWidthChanged:a.contentWidthChanged})})),l}_adjustOptionsForLeftHandSide(i,s){const g=this._adjustOptionsForSubEditor(s);return this._options.renderSideBySide.get()?(g.unicodeHighlight=this._options.editorOptions.get().unicodeHighlight||{},g.wordWrapOverride1=this._options.diffWordWrap.get()):(g.wordWrapOverride1="off",g.wordWrapOverride2="off",g.stickyScroll={enabled:!1},g.unicodeHighlight={nonBasicASCII:!1,ambiguousCharacters:!1,invisibleCharacters:!1}),g.glyphMargin=this._options.renderSideBySide.get(),s.originalAriaLabel&&(g.ariaLabel=s.originalAriaLabel),g.ariaLabel=this._updateAriaLabel(g.ariaLabel),g.readOnly=!this._options.originalEditable.get(),g.dropIntoEditor={enabled:!g.readOnly},g.extraEditorClassName="original-in-monaco-diff-editor",g}_adjustOptionsForRightHandSide(i,s){const g=this._adjustOptionsForSubEditor(s);return s.modifiedAriaLabel&&(g.ariaLabel=s.modifiedAriaLabel),g.ariaLabel=this._updateAriaLabel(g.ariaLabel),g.wordWrapOverride1=this._options.diffWordWrap.get(),g.revealHorizontalRightPadding=m.EditorOptions.revealHorizontalRightPadding.defaultValue+y.OverviewRulerFeature.ENTIRE_DIFF_OVERVIEW_WIDTH,g.scrollbar.verticalHasArrows=!1,g.extraEditorClassName="modified-in-monaco-diff-editor",g}_adjustOptionsForSubEditor(i){const s={...i,dimension:{height:0,width:0}};return s.inDiffEditor=!0,s.automaticLayout=!1,s.scrollbar={...s.scrollbar||{}},s.folding=!1,s.codeLens=this._options.diffCodeLens.get(),s.fixedOverflowWidgets=!0,s.minimap={...s.minimap||{}},s.minimap.enabled=!1,this._options.hideUnchangedRegions.get()?s.stickyScroll={enabled:!1}:s.stickyScroll=this._options.editorOptions.get().stickyScroll,s}_updateAriaLabel(i){i||(i="");const s=(0,b.localize)(98," use {0} to open the accessibility help.",this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp")?.getAriaLabel());return this._options.accessibilityVerbose.get()?i+s:i?i.replaceAll(s,""):""}};e.DiffEditorEditors=o,e.DiffEditorEditors=o=ke([ce(5,p.IInstantiationService),ce(6,n.IKeybindingService)],o)}),define(ne[80],se([1,0,3,33,32,25]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.editorUnicodeHighlightBackground=e.editorUnicodeHighlightBorder=e.editorBracketPairGuideActiveBackground6=e.editorBracketPairGuideActiveBackground5=e.editorBracketPairGuideActiveBackground4=e.editorBracketPairGuideActiveBackground3=e.editorBracketPairGuideActiveBackground2=e.editorBracketPairGuideActiveBackground1=e.editorBracketPairGuideBackground6=e.editorBracketPairGuideBackground5=e.editorBracketPairGuideBackground4=e.editorBracketPairGuideBackground3=e.editorBracketPairGuideBackground2=e.editorBracketPairGuideBackground1=e.editorBracketHighlightingUnexpectedBracketForeground=e.editorBracketHighlightingForeground6=e.editorBracketHighlightingForeground5=e.editorBracketHighlightingForeground4=e.editorBracketHighlightingForeground3=e.editorBracketHighlightingForeground2=e.editorBracketHighlightingForeground1=e.overviewRulerInfo=e.overviewRulerWarning=e.overviewRulerError=e.overviewRulerRangeHighlight=e.ghostTextBackground=e.ghostTextForeground=e.ghostTextBorder=e.editorUnnecessaryCodeOpacity=e.editorUnnecessaryCodeBorder=e.editorGutter=e.editorOverviewRulerBackground=e.editorOverviewRulerBorder=e.editorBracketMatchBorder=e.editorBracketMatchBackground=e.editorCodeLensForeground=e.editorRuler=e.editorDimmedLineNumber=e.editorActiveLineNumber=e.editorActiveIndentGuide6=e.editorActiveIndentGuide5=e.editorActiveIndentGuide4=e.editorActiveIndentGuide3=e.editorActiveIndentGuide2=e.editorActiveIndentGuide1=e.editorIndentGuide6=e.editorIndentGuide5=e.editorIndentGuide4=e.editorIndentGuide3=e.editorIndentGuide2=e.editorIndentGuide1=e.deprecatedEditorActiveIndentGuides=e.deprecatedEditorIndentGuides=e.editorLineNumbers=e.editorWhitespaces=e.editorMultiCursorSecondaryBackground=e.editorMultiCursorSecondaryForeground=e.editorMultiCursorPrimaryBackground=e.editorMultiCursorPrimaryForeground=e.editorCursorBackground=e.editorCursorForeground=e.editorSymbolHighlightBorder=e.editorSymbolHighlight=e.editorRangeHighlightBorder=e.editorRangeHighlight=e.editorLineHighlightBorder=e.editorLineHighlight=void 0,e.editorLineHighlight=(0,I.registerColor)("editor.lineHighlightBackground",null,d.localize(551,"Background color for the highlight of line at the cursor position.")),e.editorLineHighlightBorder=(0,I.registerColor)("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hcDark:"#f38518",hcLight:I.contrastBorder},d.localize(552,"Background color for the border around the line at the cursor position.")),e.editorRangeHighlight=(0,I.registerColor)("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hcDark:null,hcLight:null},d.localize(553,"Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorRangeHighlightBorder=(0,I.registerColor)("editor.rangeHighlightBorder",{dark:null,light:null,hcDark:I.activeContrastBorder,hcLight:I.activeContrastBorder},d.localize(554,"Background color of the border around highlighted ranges.")),e.editorSymbolHighlight=(0,I.registerColor)("editor.symbolHighlightBackground",{dark:I.editorFindMatchHighlight,light:I.editorFindMatchHighlight,hcDark:null,hcLight:null},d.localize(555,"Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations."),!0),e.editorSymbolHighlightBorder=(0,I.registerColor)("editor.symbolHighlightBorder",{dark:null,light:null,hcDark:I.activeContrastBorder,hcLight:I.activeContrastBorder},d.localize(556,"Background color of the border around highlighted symbols.")),e.editorCursorForeground=(0,I.registerColor)("editorCursor.foreground",{dark:"#AEAFAD",light:k.Color.black,hcDark:k.Color.white,hcLight:"#0F4A85"},d.localize(557,"Color of the editor cursor.")),e.editorCursorBackground=(0,I.registerColor)("editorCursor.background",null,d.localize(558,"The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.")),e.editorMultiCursorPrimaryForeground=(0,I.registerColor)("editorMultiCursor.primary.foreground",e.editorCursorForeground,d.localize(559,"Color of the primary editor cursor when multiple cursors are present.")),e.editorMultiCursorPrimaryBackground=(0,I.registerColor)("editorMultiCursor.primary.background",e.editorCursorBackground,d.localize(560,"The background color of the primary editor cursor when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.")),e.editorMultiCursorSecondaryForeground=(0,I.registerColor)("editorMultiCursor.secondary.foreground",e.editorCursorForeground,d.localize(561,"Color of secondary editor cursors when multiple cursors are present.")),e.editorMultiCursorSecondaryBackground=(0,I.registerColor)("editorMultiCursor.secondary.background",e.editorCursorBackground,d.localize(562,"The background color of secondary editor cursors when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.")),e.editorWhitespaces=(0,I.registerColor)("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hcDark:"#e3e4e229",hcLight:"#CCCCCC"},d.localize(563,"Color of whitespace characters in the editor.")),e.editorLineNumbers=(0,I.registerColor)("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hcDark:k.Color.white,hcLight:"#292929"},d.localize(564,"Color of editor line numbers.")),e.deprecatedEditorIndentGuides=(0,I.registerColor)("editorIndentGuide.background",e.editorWhitespaces,d.localize(565,"Color of the editor indentation guides."),!1,d.localize(566,"'editorIndentGuide.background' is deprecated. Use 'editorIndentGuide.background1' instead.")),e.deprecatedEditorActiveIndentGuides=(0,I.registerColor)("editorIndentGuide.activeBackground",e.editorWhitespaces,d.localize(567,"Color of the active editor indentation guides."),!1,d.localize(568,"'editorIndentGuide.activeBackground' is deprecated. Use 'editorIndentGuide.activeBackground1' instead.")),e.editorIndentGuide1=(0,I.registerColor)("editorIndentGuide.background1",e.deprecatedEditorIndentGuides,d.localize(569,"Color of the editor indentation guides (1).")),e.editorIndentGuide2=(0,I.registerColor)("editorIndentGuide.background2","#00000000",d.localize(570,"Color of the editor indentation guides (2).")),e.editorIndentGuide3=(0,I.registerColor)("editorIndentGuide.background3","#00000000",d.localize(571,"Color of the editor indentation guides (3).")),e.editorIndentGuide4=(0,I.registerColor)("editorIndentGuide.background4","#00000000",d.localize(572,"Color of the editor indentation guides (4).")),e.editorIndentGuide5=(0,I.registerColor)("editorIndentGuide.background5","#00000000",d.localize(573,"Color of the editor indentation guides (5).")),e.editorIndentGuide6=(0,I.registerColor)("editorIndentGuide.background6","#00000000",d.localize(574,"Color of the editor indentation guides (6).")),e.editorActiveIndentGuide1=(0,I.registerColor)("editorIndentGuide.activeBackground1",e.deprecatedEditorActiveIndentGuides,d.localize(575,"Color of the active editor indentation guides (1).")),e.editorActiveIndentGuide2=(0,I.registerColor)("editorIndentGuide.activeBackground2","#00000000",d.localize(576,"Color of the active editor indentation guides (2).")),e.editorActiveIndentGuide3=(0,I.registerColor)("editorIndentGuide.activeBackground3","#00000000",d.localize(577,"Color of the active editor indentation guides (3).")),e.editorActiveIndentGuide4=(0,I.registerColor)("editorIndentGuide.activeBackground4","#00000000",d.localize(578,"Color of the active editor indentation guides (4).")),e.editorActiveIndentGuide5=(0,I.registerColor)("editorIndentGuide.activeBackground5","#00000000",d.localize(579,"Color of the active editor indentation guides (5).")),e.editorActiveIndentGuide6=(0,I.registerColor)("editorIndentGuide.activeBackground6","#00000000",d.localize(580,"Color of the active editor indentation guides (6)."));const y=(0,I.registerColor)("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hcDark:I.activeContrastBorder,hcLight:I.activeContrastBorder},d.localize(581,"Color of editor active line number"),!1,d.localize(582,"Id is deprecated. Use 'editorLineNumber.activeForeground' instead."));e.editorActiveLineNumber=(0,I.registerColor)("editorLineNumber.activeForeground",y,d.localize(583,"Color of editor active line number")),e.editorDimmedLineNumber=(0,I.registerColor)("editorLineNumber.dimmedForeground",null,d.localize(584,"Color of the final editor line when editor.renderFinalNewline is set to dimmed.")),e.editorRuler=(0,I.registerColor)("editorRuler.foreground",{dark:"#5A5A5A",light:k.Color.lightgrey,hcDark:k.Color.white,hcLight:"#292929"},d.localize(585,"Color of the editor rulers.")),e.editorCodeLensForeground=(0,I.registerColor)("editorCodeLens.foreground",{dark:"#999999",light:"#919191",hcDark:"#999999",hcLight:"#292929"},d.localize(586,"Foreground color of editor CodeLens")),e.editorBracketMatchBackground=(0,I.registerColor)("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hcDark:"#0064001a",hcLight:"#0000"},d.localize(587,"Background color behind matching brackets")),e.editorBracketMatchBorder=(0,I.registerColor)("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hcDark:I.contrastBorder,hcLight:I.contrastBorder},d.localize(588,"Color for matching brackets boxes")),e.editorOverviewRulerBorder=(0,I.registerColor)("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hcDark:"#7f7f7f4d",hcLight:"#666666"},d.localize(589,"Color of the overview ruler border.")),e.editorOverviewRulerBackground=(0,I.registerColor)("editorOverviewRuler.background",null,d.localize(590,"Background color of the editor overview ruler.")),e.editorGutter=(0,I.registerColor)("editorGutter.background",I.editorBackground,d.localize(591,"Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.")),e.editorUnnecessaryCodeBorder=(0,I.registerColor)("editorUnnecessaryCode.border",{dark:null,light:null,hcDark:k.Color.fromHex("#fff").transparent(.8),hcLight:I.contrastBorder},d.localize(592,"Border color of unnecessary (unused) source code in the editor.")),e.editorUnnecessaryCodeOpacity=(0,I.registerColor)("editorUnnecessaryCode.opacity",{dark:k.Color.fromHex("#000a"),light:k.Color.fromHex("#0007"),hcDark:null,hcLight:null},d.localize(593,`Opacity of unnecessary (unused) source code in the editor. For example, "#000000c0" will render the code with 75% opacity. For high contrast themes, use the 'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.`)),e.ghostTextBorder=(0,I.registerColor)("editorGhostText.border",{dark:null,light:null,hcDark:k.Color.fromHex("#fff").transparent(.8),hcLight:k.Color.fromHex("#292929").transparent(.8)},d.localize(594,"Border color of ghost text in the editor.")),e.ghostTextForeground=(0,I.registerColor)("editorGhostText.foreground",{dark:k.Color.fromHex("#ffffff56"),light:k.Color.fromHex("#0007"),hcDark:null,hcLight:null},d.localize(595,"Foreground color of the ghost text in the editor.")),e.ghostTextBackground=(0,I.registerColor)("editorGhostText.background",null,d.localize(596,"Background color of the ghost text in the editor."));const m=new k.Color(new k.RGBA(0,122,204,.6));e.overviewRulerRangeHighlight=(0,I.registerColor)("editorOverviewRuler.rangeHighlightForeground",m,d.localize(597,"Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations."),!0),e.overviewRulerError=(0,I.registerColor)("editorOverviewRuler.errorForeground",{dark:new k.Color(new k.RGBA(255,18,18,.7)),light:new k.Color(new k.RGBA(255,18,18,.7)),hcDark:new k.Color(new k.RGBA(255,50,50,1)),hcLight:"#B5200D"},d.localize(598,"Overview ruler marker color for errors.")),e.overviewRulerWarning=(0,I.registerColor)("editorOverviewRuler.warningForeground",{dark:I.editorWarningForeground,light:I.editorWarningForeground,hcDark:I.editorWarningBorder,hcLight:I.editorWarningBorder},d.localize(599,"Overview ruler marker color for warnings.")),e.overviewRulerInfo=(0,I.registerColor)("editorOverviewRuler.infoForeground",{dark:I.editorInfoForeground,light:I.editorInfoForeground,hcDark:I.editorInfoBorder,hcLight:I.editorInfoBorder},d.localize(600,"Overview ruler marker color for infos.")),e.editorBracketHighlightingForeground1=(0,I.registerColor)("editorBracketHighlight.foreground1",{dark:"#FFD700",light:"#0431FAFF",hcDark:"#FFD700",hcLight:"#0431FAFF"},d.localize(601,"Foreground color of brackets (1). Requires enabling bracket pair colorization.")),e.editorBracketHighlightingForeground2=(0,I.registerColor)("editorBracketHighlight.foreground2",{dark:"#DA70D6",light:"#319331FF",hcDark:"#DA70D6",hcLight:"#319331FF"},d.localize(602,"Foreground color of brackets (2). Requires enabling bracket pair colorization.")),e.editorBracketHighlightingForeground3=(0,I.registerColor)("editorBracketHighlight.foreground3",{dark:"#179FFF",light:"#7B3814FF",hcDark:"#87CEFA",hcLight:"#7B3814FF"},d.localize(603,"Foreground color of brackets (3). Requires enabling bracket pair colorization.")),e.editorBracketHighlightingForeground4=(0,I.registerColor)("editorBracketHighlight.foreground4","#00000000",d.localize(604,"Foreground color of brackets (4). Requires enabling bracket pair colorization.")),e.editorBracketHighlightingForeground5=(0,I.registerColor)("editorBracketHighlight.foreground5","#00000000",d.localize(605,"Foreground color of brackets (5). Requires enabling bracket pair colorization.")),e.editorBracketHighlightingForeground6=(0,I.registerColor)("editorBracketHighlight.foreground6","#00000000",d.localize(606,"Foreground color of brackets (6). Requires enabling bracket pair colorization.")),e.editorBracketHighlightingUnexpectedBracketForeground=(0,I.registerColor)("editorBracketHighlight.unexpectedBracket.foreground",{dark:new k.Color(new k.RGBA(255,18,18,.8)),light:new k.Color(new k.RGBA(255,18,18,.8)),hcDark:"new Color(new RGBA(255, 50, 50, 1))",hcLight:"#B5200D"},d.localize(607,"Foreground color of unexpected brackets.")),e.editorBracketPairGuideBackground1=(0,I.registerColor)("editorBracketPairGuide.background1","#00000000",d.localize(608,"Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.")),e.editorBracketPairGuideBackground2=(0,I.registerColor)("editorBracketPairGuide.background2","#00000000",d.localize(609,"Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.")),e.editorBracketPairGuideBackground3=(0,I.registerColor)("editorBracketPairGuide.background3","#00000000",d.localize(610,"Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.")),e.editorBracketPairGuideBackground4=(0,I.registerColor)("editorBracketPairGuide.background4","#00000000",d.localize(611,"Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.")),e.editorBracketPairGuideBackground5=(0,I.registerColor)("editorBracketPairGuide.background5","#00000000",d.localize(612,"Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.")),e.editorBracketPairGuideBackground6=(0,I.registerColor)("editorBracketPairGuide.background6","#00000000",d.localize(613,"Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.")),e.editorBracketPairGuideActiveBackground1=(0,I.registerColor)("editorBracketPairGuide.activeBackground1","#00000000",d.localize(614,"Background color of active bracket pair guides (1). Requires enabling bracket pair guides.")),e.editorBracketPairGuideActiveBackground2=(0,I.registerColor)("editorBracketPairGuide.activeBackground2","#00000000",d.localize(615,"Background color of active bracket pair guides (2). Requires enabling bracket pair guides.")),e.editorBracketPairGuideActiveBackground3=(0,I.registerColor)("editorBracketPairGuide.activeBackground3","#00000000",d.localize(616,"Background color of active bracket pair guides (3). Requires enabling bracket pair guides.")),e.editorBracketPairGuideActiveBackground4=(0,I.registerColor)("editorBracketPairGuide.activeBackground4","#00000000",d.localize(617,"Background color of active bracket pair guides (4). Requires enabling bracket pair guides.")),e.editorBracketPairGuideActiveBackground5=(0,I.registerColor)("editorBracketPairGuide.activeBackground5","#00000000",d.localize(618,"Background color of active bracket pair guides (5). Requires enabling bracket pair guides.")),e.editorBracketPairGuideActiveBackground6=(0,I.registerColor)("editorBracketPairGuide.activeBackground6","#00000000",d.localize(619,"Background color of active bracket pair guides (6). Requires enabling bracket pair guides.")),e.editorUnicodeHighlightBorder=(0,I.registerColor)("editorUnicodeHighlight.border",I.editorWarningForeground,d.localize(620,"Border color used to highlight unicode characters.")),e.editorUnicodeHighlightBackground=(0,I.registerColor)("editorUnicodeHighlight.background",I.editorWarningBackground,d.localize(621,"Background color used to highlight unicode characters.")),(0,E.registerThemingParticipant)((_,b)=>{const p=_.getColor(I.editorBackground),n=_.getColor(e.editorLineHighlight),o=n&&!n.isTransparent()?n:p;o&&b.addRule(`.monaco-editor .inputarea.ime-input { background-color: ${o}; }`)})}),define(ne[776],se([1,0,133,80,13,25,23,97,9,482]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CurrentLineMarginHighlightOverlay=e.CurrentLineHighlightOverlay=e.AbstractLineHighlightOverlay=void 0;class b extends d.DynamicViewOverlay{constructor(t){super(),this._context=t;const i=this._context.configuration.options,s=i.get(146);this._renderLineHighlight=i.get(97),this._renderLineHighlightOnlyWhenFocus=i.get(98),this._wordWrap=s.isViewportWrapping,this._contentLeft=s.contentLeft,this._contentWidth=s.contentWidth,this._selectionIsEmpty=!0,this._focused=!1,this._cursorLineNumbers=[1],this._selections=[new y.Selection(1,1,1,1)],this._renderData=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}_readFromSelections(){let t=!1;const i=new Set;for(const c of this._selections)i.add(c.positionLineNumber);const s=Array.from(i);s.sort((c,l)=>c-l),I.equals(this._cursorLineNumbers,s)||(this._cursorLineNumbers=s,t=!0);const g=this._selections.every(c=>c.isEmpty());return this._selectionIsEmpty!==g&&(this._selectionIsEmpty=g,t=!0),t}onThemeChanged(t){return this._readFromSelections()}onConfigurationChanged(t){const i=this._context.configuration.options,s=i.get(146);return this._renderLineHighlight=i.get(97),this._renderLineHighlightOnlyWhenFocus=i.get(98),this._wordWrap=s.isViewportWrapping,this._contentLeft=s.contentLeft,this._contentWidth=s.contentWidth,!0}onCursorStateChanged(t){return this._selections=t.selections,this._readFromSelections()}onFlushed(t){return!0}onLinesDeleted(t){return!0}onLinesInserted(t){return!0}onScrollChanged(t){return t.scrollWidthChanged||t.scrollTopChanged}onZonesChanged(t){return!0}onFocusChanged(t){return this._renderLineHighlightOnlyWhenFocus?(this._focused=t.isFocused,!0):!1}prepareRender(t){if(!this._shouldRenderThis()){this._renderData=null;return}const i=t.visibleRange.startLineNumber,s=t.visibleRange.endLineNumber,g=[];for(let l=i;l<=s;l++){const a=l-i;g[a]=""}if(this._wordWrap){const l=this._renderOne(t,!1);for(const a of this._cursorLineNumbers){const r=this._context.viewModel.coordinatesConverter,u=r.convertViewPositionToModelPosition(new _.Position(a,1)).lineNumber,C=r.convertModelPositionToViewPosition(new _.Position(u,1)).lineNumber,f=r.convertModelPositionToViewPosition(new _.Position(u,this._context.viewModel.model.getLineMaxColumn(u))).lineNumber,h=Math.max(C,i),v=Math.min(f,s);for(let w=h;w<=v;w++){const S=w-i;g[S]=l}}}const c=this._renderOne(t,!0);for(const l of this._cursorLineNumbers){if(ls)continue;const a=l-i;g[a]=c}this._renderData=g}render(t,i){if(!this._renderData)return"";const s=i-t;return s>=this._renderData.length?"":this._renderData[s]}_shouldRenderInMargin(){return(this._renderLineHighlight==="gutter"||this._renderLineHighlight==="all")&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}_shouldRenderInContent(){return(this._renderLineHighlight==="line"||this._renderLineHighlight==="all")&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}e.AbstractLineHighlightOverlay=b;class p extends b{_renderOne(t,i){return`
    `}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}}e.CurrentLineHighlightOverlay=p;class n extends b{_renderOne(t,i){return`
    `}_shouldRenderThis(){return!0}_shouldRenderOther(){return this._shouldRenderInContent()}}e.CurrentLineMarginHighlightOverlay=n,(0,E.registerThemingParticipant)((o,t)=>{const i=o.getColor(k.editorLineHighlight);if(i&&(t.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${i}; }`),t.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${i}; border: none; }`)),!i||i.isTransparent()||o.defines(k.editorLineHighlightBorder)){const s=o.getColor(k.editorLineHighlightBorder);s&&(t.addRule(`.monaco-editor .view-overlays .current-line-exact { border: 2px solid ${s}; }`),t.addRule(`.monaco-editor .margin-view-overlays .current-line-exact-margin { border: 2px solid ${s}; }`),(0,m.isHighContrast)(o.type)&&(t.addRule(".monaco-editor .view-overlays .current-line-exact { border-width: 1px; }"),t.addRule(".monaco-editor .margin-view-overlays .current-line-exact-margin { border-width: 1px; }")))}})}),define(ne[777],se([1,0,133,80,25,9,13,19,329,239,485]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IndentGuidesOverlay=void 0;class p extends d.DynamicViewOverlay{constructor(t){super(),this._context=t,this._primaryPosition=null;const i=this._context.configuration.options,s=i.get(147),g=i.get(50);this._spaceWidth=g.spaceWidth,this._maxIndentLeft=s.wrappingColumn===-1?-1:s.wrappingColumn*g.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=i.get(16),this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(t){const i=this._context.configuration.options,s=i.get(147),g=i.get(50);return this._spaceWidth=g.spaceWidth,this._maxIndentLeft=s.wrappingColumn===-1?-1:s.wrappingColumn*g.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=i.get(16),!0}onCursorStateChanged(t){const s=t.selections[0].getPosition();return this._primaryPosition?.equals(s)?!1:(this._primaryPosition=s,!0)}onDecorationsChanged(t){return!0}onFlushed(t){return!0}onLinesChanged(t){return!0}onLinesDeleted(t){return!0}onLinesInserted(t){return!0}onScrollChanged(t){return t.scrollTopChanged}onZonesChanged(t){return!0}onLanguageConfigurationChanged(t){return!0}prepareRender(t){if(!this._bracketPairGuideOptions.indentation&&this._bracketPairGuideOptions.bracketPairs===!1){this._renderResult=null;return}const i=t.visibleRange.startLineNumber,s=t.visibleRange.endLineNumber,g=t.scrollWidth,c=this._primaryPosition,l=this.getGuidesByLine(i,Math.min(s+1,this._context.viewModel.getLineCount()),c),a=[];for(let r=i;r<=s;r++){const u=r-i,C=l[u];let f="";const h=t.visibleRangeForPosition(new E.Position(r,1))?.left??0;for(const v of C){const w=v.column===-1?h+(v.visibleColumn-1)*this._spaceWidth:t.visibleRangeForPosition(new E.Position(r,v.column)).left;if(w>g||this._maxIndentLeft>0&&w>this._maxIndentLeft)break;const S=v.horizontalLine?v.horizontalLine.top?"horizontal-top":"horizontal-bottom":"vertical",L=v.horizontalLine?(t.visibleRangeForPosition(new E.Position(r,v.horizontalLine.endColumn))?.left??w+this._spaceWidth)-w:this._spaceWidth;f+=`
    `}a[u]=f}this._renderResult=a}getGuidesByLine(t,i,s){const g=this._bracketPairGuideOptions.bracketPairs!==!1?this._context.viewModel.getBracketGuidesInRangeByLine(t,i,s,{highlightActive:this._bracketPairGuideOptions.highlightActiveBracketPair,horizontalGuides:this._bracketPairGuideOptions.bracketPairsHorizontal===!0?b.HorizontalGuidesState.Enabled:this._bracketPairGuideOptions.bracketPairsHorizontal==="active"?b.HorizontalGuidesState.EnabledForActive:b.HorizontalGuidesState.Disabled,includeInactive:this._bracketPairGuideOptions.bracketPairs===!0}):null,c=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(t,i):null;let l=0,a=0,r=0;if(this._bracketPairGuideOptions.highlightActiveIndentation!==!1&&s){const f=this._context.viewModel.getActiveIndentGuide(s.lineNumber,t,i);l=f.startLineNumber,a=f.endLineNumber,r=f.indent}const{indentSize:u}=this._context.viewModel.model.getOptions(),C=[];for(let f=t;f<=i;f++){const h=new Array;C.push(h);const v=g?g[f-t]:[],w=new y.ArrayQueue(v),S=c?c[f-t]:0;for(let L=1;L<=S;L++){const D=(L-1)*u+1,T=(this._bracketPairGuideOptions.highlightActiveIndentation==="always"||v.length===0)&&l<=f&&f<=a&&L===r;h.push(...w.takeWhile(A=>A.visibleColumn!0)||[])}return C}render(t,i){if(!this._renderResult)return"";const s=i-t;return s<0||s>=this._renderResult.length?"":this._renderResult[s]}}e.IndentGuidesOverlay=p;function n(o){if(!(o&&o.isTransparent()))return o}(0,I.registerThemingParticipant)((o,t)=>{const i=[{bracketColor:k.editorBracketHighlightingForeground1,guideColor:k.editorBracketPairGuideBackground1,guideColorActive:k.editorBracketPairGuideActiveBackground1},{bracketColor:k.editorBracketHighlightingForeground2,guideColor:k.editorBracketPairGuideBackground2,guideColorActive:k.editorBracketPairGuideActiveBackground2},{bracketColor:k.editorBracketHighlightingForeground3,guideColor:k.editorBracketPairGuideBackground3,guideColorActive:k.editorBracketPairGuideActiveBackground3},{bracketColor:k.editorBracketHighlightingForeground4,guideColor:k.editorBracketPairGuideBackground4,guideColorActive:k.editorBracketPairGuideActiveBackground4},{bracketColor:k.editorBracketHighlightingForeground5,guideColor:k.editorBracketPairGuideBackground5,guideColorActive:k.editorBracketPairGuideActiveBackground5},{bracketColor:k.editorBracketHighlightingForeground6,guideColor:k.editorBracketPairGuideBackground6,guideColorActive:k.editorBracketPairGuideActiveBackground6}],s=new _.BracketPairGuidesClassNames,g=[{indentColor:k.editorIndentGuide1,indentColorActive:k.editorActiveIndentGuide1},{indentColor:k.editorIndentGuide2,indentColorActive:k.editorActiveIndentGuide2},{indentColor:k.editorIndentGuide3,indentColorActive:k.editorActiveIndentGuide3},{indentColor:k.editorIndentGuide4,indentColorActive:k.editorActiveIndentGuide4},{indentColor:k.editorIndentGuide5,indentColorActive:k.editorActiveIndentGuide5},{indentColor:k.editorIndentGuide6,indentColorActive:k.editorActiveIndentGuide6}],c=i.map(a=>{const r=o.getColor(a.bracketColor),u=o.getColor(a.guideColor),C=o.getColor(a.guideColorActive),f=n(n(u)??r?.transparent(.3)),h=n(n(C)??r);if(!(!f||!h))return{guideColor:f,guideColorActive:h}}).filter(m.isDefined),l=g.map(a=>{const r=o.getColor(a.indentColor),u=o.getColor(a.indentColorActive),C=n(r),f=n(u);if(!(!C||!f))return{indentColor:C,indentColorActive:f}}).filter(m.isDefined);if(c.length>0){for(let a=0;a<30;a++){const r=c[a%c.length];t.addRule(`.monaco-editor .${s.getInlineClassNameOfLevel(a).replace(/ /g,".")} { --guide-color: ${r.guideColor}; --guide-color-active: ${r.guideColorActive}; }`)}t.addRule(".monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }"),t.addRule(".monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }"),t.addRule(".monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }"),t.addRule(`.monaco-editor .vertical.${s.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`),t.addRule(`.monaco-editor .horizontal-top.${s.activeClassName} { border-top: 1px solid var(--guide-color-active); }`),t.addRule(`.monaco-editor .horizontal-bottom.${s.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`)}if(l.length>0){for(let a=0;a<30;a++){const r=l[a%l.length];t.addRule(`.monaco-editor .lines-content .core-guide-indent.lvl-${a} { --indent-color: ${r.indentColor}; --indent-color-active: ${r.indentColorActive}; }`)}t.addRule(".monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 var(--indent-color) inset; }"),t.addRule(".monaco-editor .lines-content .core-guide-indent.indent-active { box-shadow: 1px 0 0 0 var(--indent-color-active) inset; }")}})}),define(ne[416],se([1,0,16,133,9,4,25,80,486]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.LineNumbersOverlay=void 0;class _ extends k.DynamicViewOverlay{static{this.CLASS_NAME="line-numbers"}constructor(p){super(),this._context=p,this._readConfig(),this._lastCursorModelPosition=new I.Position(1,1),this._renderResult=null,this._activeLineNumber=1,this._context.addEventHandler(this)}_readConfig(){const p=this._context.configuration.options;this._lineHeight=p.get(67);const n=p.get(68);this._renderLineNumbers=n.renderType,this._renderCustomLineNumbers=n.renderFn,this._renderFinalNewline=p.get(96);const o=p.get(146);this._lineNumbersLeft=o.lineNumbersLeft,this._lineNumbersWidth=o.lineNumbersWidth}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(p){return this._readConfig(),!0}onCursorStateChanged(p){const n=p.selections[0].getPosition();this._lastCursorModelPosition=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(n);let o=!1;return this._activeLineNumber!==n.lineNumber&&(this._activeLineNumber=n.lineNumber,o=!0),(this._renderLineNumbers===2||this._renderLineNumbers===3)&&(o=!0),o}onFlushed(p){return!0}onLinesChanged(p){return!0}onLinesDeleted(p){return!0}onLinesInserted(p){return!0}onScrollChanged(p){return p.scrollTopChanged}onZonesChanged(p){return!0}onDecorationsChanged(p){return p.affectsLineNumber}_getLineRenderLineNumber(p){const n=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new I.Position(p,1));if(n.column!==1)return"";const o=n.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(o);if(this._renderLineNumbers===2){const t=Math.abs(this._lastCursorModelPosition.lineNumber-o);return t===0?''+o+"":String(t)}if(this._renderLineNumbers===3){if(this._lastCursorModelPosition.lineNumber===o||o%10===0)return String(o);const t=this._context.viewModel.getLineCount();return o===t?String(o):""}return String(o)}prepareRender(p){if(this._renderLineNumbers===0){this._renderResult=null;return}const n=d.isLinux?this._lineHeight%2===0?" lh-even":" lh-odd":"",o=p.visibleRange.startLineNumber,t=p.visibleRange.endLineNumber,i=this._context.viewModel.getDecorationsInViewport(p.visibleRange).filter(l=>!!l.options.lineNumberClassName);i.sort((l,a)=>E.Range.compareRangesUsingEnds(l.range,a.range));let s=0;const g=this._context.viewModel.getLineCount(),c=[];for(let l=o;l<=t;l++){const a=l-o;let r=this._getLineRenderLineNumber(l),u="";for(;s${r}`}this._renderResult=c}render(p,n){if(!this._renderResult)return"";const o=n-p;return o<0||o>=this._renderResult.length?"":this._renderResult[o]}}e.LineNumbersOverlay=_,(0,y.registerThemingParticipant)((b,p)=>{const n=b.getColor(m.editorLineNumbers),o=b.getColor(m.editorDimmedLineNumber);o?p.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${o}; }`):n&&p.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${n.transparent(.4)}; }`)})}),define(ne[778],se([1,0,3,64,39,16,11,74,212,310,56,416,331,37,166,9,4,23,226,27,33,300,31,7,479]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TextAreaHandler=void 0;class h{constructor(D,T,M,A,P){this._context=D,this.modelLineNumber=T,this.distanceToModelLineStart=M,this.widthOfHiddenLineTextBefore=A,this.distanceToModelLineEnd=P,this._visibleTextAreaBrand=void 0,this.startPosition=null,this.endPosition=null,this.visibleTextareaStart=null,this.visibleTextareaEnd=null,this._previousPresentation=null}prepareRender(D){const T=new s.Position(this.modelLineNumber,this.distanceToModelLineStart+1),M=new s.Position(this.modelLineNumber,this._context.viewModel.model.getLineMaxColumn(this.modelLineNumber)-this.distanceToModelLineEnd);this.startPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(T),this.endPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(M),this.startPosition.lineNumber===this.endPosition.lineNumber?(this.visibleTextareaStart=D.visibleRangeForPosition(this.startPosition),this.visibleTextareaEnd=D.visibleRangeForPosition(this.endPosition)):(this.visibleTextareaStart=null,this.visibleTextareaEnd=null)}definePresentation(D){return this._previousPresentation||(D?this._previousPresentation=D:this._previousPresentation={foreground:1,italic:!1,bold:!1,underline:!1,strikethrough:!1}),this._previousPresentation}}const v=k.isFirefox;let w=class extends p.ViewPart{constructor(D,T,M,A,P){super(D),this._keybindingService=A,this._instantiationService=P,this._primaryCursorPosition=new s.Position(1,1),this._primaryCursorVisibleRange=null,this._viewController=T,this._visibleRangeProvider=M,this._scrollLeft=0,this._scrollTop=0;const N=this._context.configuration.options,O=N.get(146);this._setAccessibilityOptions(N),this._contentLeft=O.contentLeft,this._contentWidth=O.contentWidth,this._contentHeight=O.height,this._fontInfo=N.get(50),this._lineHeight=N.get(67),this._emptySelectionClipboard=N.get(37),this._copyWithSyntaxHighlighting=N.get(25),this._visibleTextArea=null,this._selections=[new c.Selection(1,1,1,1)],this._modelSelections=[new c.Selection(1,1,1,1)],this._lastRenderPosition=null,this.textArea=(0,I.createFastDomNode)(document.createElement("textarea")),p.PartFingerprints.write(this.textArea,7),this.textArea.setClassName(`inputarea ${l.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:F}=this._context.viewModel.model.getOptions();this.textArea.domNode.style.tabSize=`${F*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute("autocorrect","off"),this.textArea.setAttribute("autocapitalize","off"),this.textArea.setAttribute("autocomplete","off"),this.textArea.setAttribute("spellcheck","false"),this.textArea.setAttribute("aria-label",this._getAriaLabel(N)),this.textArea.setAttribute("aria-required",N.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(N.get(125))),this.textArea.setAttribute("role","textbox"),this.textArea.setAttribute("aria-roledescription",d.localize(54,"editor")),this.textArea.setAttribute("aria-multiline","true"),this.textArea.setAttribute("aria-autocomplete",N.get(92)?"none":"both"),this._ensureReadOnlyAttribute(),this.textAreaCover=(0,I.createFastDomNode)(document.createElement("div")),this.textAreaCover.setPosition("absolute");const x={getLineCount:()=>this._context.viewModel.getLineCount(),getLineMaxColumn:q=>this._context.viewModel.getLineMaxColumn(q),getValueInRange:(q,H)=>this._context.viewModel.getValueInRange(q,H),getValueLengthInRange:(q,H)=>this._context.viewModel.getValueLengthInRange(q,H),modifyPosition:(q,H)=>this._context.viewModel.modifyPosition(q,H)},W={getDataToCopy:()=>{const q=this._context.viewModel.getPlainTextToCopy(this._modelSelections,this._emptySelectionClipboard,E.isWindows),H=this._context.viewModel.model.getEOL(),z=this._emptySelectionClipboard&&this._modelSelections.length===1&&this._modelSelections[0].isEmpty(),U=Array.isArray(q)?q:null,j=Array.isArray(q)?q.join(H):q;let Y,G=null;if(_.CopyOptions.forceCopyWithSyntaxHighlighting||this._copyWithSyntaxHighlighting&&j.length<65536){const K=this._context.viewModel.getRichTextToCopy(this._modelSelections,this._emptySelectionClipboard);K&&(Y=K.html,G=K.mode)}return{isFromEmptySelection:z,multicursorText:U,text:j,html:Y,mode:G}},getScreenReaderContent:()=>{if(this._accessibilitySupport===1){const q=this._selections[0];if(E.isMacintosh&&q.isEmpty()){const z=q.getStartPosition();let U=this._getWordBeforePosition(z);if(U.length===0&&(U=this._getCharacterBeforePosition(z)),U.length>0)return new b.TextAreaState(U,U.length,U.length,g.Range.fromPositions(z),0)}if(E.isMacintosh&&!q.isEmpty()&&x.getValueLengthInRange(q,0)<500){const z=x.getValueInRange(q,0);return new b.TextAreaState(z,0,z.length,q,0)}if(k.isSafari&&!q.isEmpty()){const z="vscode-placeholder";return new b.TextAreaState(z,0,z.length,null,void 0)}return b.TextAreaState.EMPTY}if(k.isAndroid){const q=this._selections[0];if(q.isEmpty()){const H=q.getStartPosition(),[z,U]=this._getAndroidWordAtPosition(H);if(z.length>0)return new b.TextAreaState(z,U,U,g.Range.fromPositions(H),0)}return b.TextAreaState.EMPTY}return b.PagedScreenReaderStrategy.fromEditorSelection(x,this._selections[0],this._accessibilityPageSize,this._accessibilitySupport===0)},deduceModelPosition:(q,H,z)=>this._context.viewModel.deduceModelPositionRelativeToViewPosition(q,H,z)},V=this._register(new _.TextAreaWrapper(this.textArea.domNode));this._textAreaInput=this._register(this._instantiationService.createInstance(_.TextAreaInput,W,V,E.OS,{isAndroid:k.isAndroid,isChrome:k.isChrome,isFirefox:k.isFirefox,isSafari:k.isSafari})),this._register(this._textAreaInput.onKeyDown(q=>{this._viewController.emitKeyDown(q)})),this._register(this._textAreaInput.onKeyUp(q=>{this._viewController.emitKeyUp(q)})),this._register(this._textAreaInput.onPaste(q=>{let H=!1,z=null,U=null;q.metadata&&(H=this._emptySelectionClipboard&&!!q.metadata.isFromEmptySelection,z=typeof q.metadata.multicursorText<"u"?q.metadata.multicursorText:null,U=q.metadata.mode),this._viewController.paste(q.text,H,z,U)})),this._register(this._textAreaInput.onCut(()=>{this._viewController.cut()})),this._register(this._textAreaInput.onType(q=>{q.replacePrevCharCnt||q.replaceNextCharCnt||q.positionDelta?(b._debugComposition&&console.log(` => compositionType: <<${q.text}>>, ${q.replacePrevCharCnt}, ${q.replaceNextCharCnt}, ${q.positionDelta}`),this._viewController.compositionType(q.text,q.replacePrevCharCnt,q.replaceNextCharCnt,q.positionDelta)):(b._debugComposition&&console.log(` => type: <<${q.text}>>`),this._viewController.type(q.text))})),this._register(this._textAreaInput.onSelectionChangeRequest(q=>{this._viewController.setSelection(q)})),this._register(this._textAreaInput.onCompositionStart(q=>{const H=this.textArea.domNode,z=this._modelSelections[0],{distanceToModelLineStart:U,widthOfHiddenTextBefore:j}=(()=>{const G=H.value.substring(0,Math.min(H.selectionStart,H.selectionEnd)),K=G.lastIndexOf(` +`),R=G.substring(K+1),J=R.lastIndexOf(" "),ie=R.length-J-1,ue=z.getStartPosition(),he=Math.min(ue.column-1,ie),pe=ue.column-1-he,ae=R.substring(0,R.length-he),{tabSize:ee}=this._context.viewModel.model.getOptions(),de=S(this.textArea.domNode.ownerDocument,ae,this._fontInfo,ee);return{distanceToModelLineStart:pe,widthOfHiddenTextBefore:de}})(),{distanceToModelLineEnd:Y}=(()=>{const G=H.value.substring(Math.max(H.selectionStart,H.selectionEnd)),K=G.indexOf(` +`),R=K===-1?G:G.substring(0,K),J=R.indexOf(" "),ie=J===-1?R.length:R.length-J-1,ue=z.getEndPosition(),he=Math.min(this._context.viewModel.model.getLineMaxColumn(ue.lineNumber)-ue.column,ie);return{distanceToModelLineEnd:this._context.viewModel.model.getLineMaxColumn(ue.lineNumber)-ue.column-he}})();this._context.viewModel.revealRange("keyboard",!0,g.Range.fromPositions(this._selections[0].getStartPosition()),0,1),this._visibleTextArea=new h(this._context,z.startLineNumber,U,j,Y),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render(),this.textArea.setClassName(`inputarea ${l.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME} ime-input`),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()})),this._register(this._textAreaInput.onCompositionUpdate(q=>{this._visibleTextArea&&(this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render())})),this._register(this._textAreaInput.onCompositionEnd(()=>{this._visibleTextArea=null,this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._render(),this.textArea.setClassName(`inputarea ${l.MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`),this._viewController.compositionEnd(),this._context.viewModel.onCompositionEnd()})),this._register(this._textAreaInput.onFocus(()=>{this._context.viewModel.setHasFocus(!0)})),this._register(this._textAreaInput.onBlur(()=>{this._context.viewModel.setHasFocus(!1)})),this._register(u.IME.onDidChange(()=>{this._ensureReadOnlyAttribute()}))}writeScreenReaderContent(D){this._textAreaInput.writeNativeTextAreaContent(D)}dispose(){super.dispose()}_getAndroidWordAtPosition(D){const T='`~!@#$%^&*()-=+[{]}\\|;:",.<>/?',M=this._context.viewModel.getLineContent(D.lineNumber),A=(0,i.getMapForWordSeparators)(T,[]);let P=!0,N=D.column,O=!0,F=D.column,x=0;for(;x<50&&(P||O);){if(P&&N<=1&&(P=!1),P){const W=M.charCodeAt(N-2);A.get(W)!==0?P=!1:N--}if(O&&F>M.length&&(O=!1),O){const W=M.charCodeAt(F-1);A.get(W)!==0?O=!1:F++}x++}return[M.substring(N-1,F-1),D.column-N]}_getWordBeforePosition(D){const T=this._context.viewModel.getLineContent(D.lineNumber),M=(0,i.getMapForWordSeparators)(this._context.configuration.options.get(132),[]);let A=D.column,P=0;for(;A>1;){const N=T.charCodeAt(A-2);if(M.get(N)!==0||P>50)return T.substring(A-1,D.column-1);P++,A--}return T.substring(0,D.column-1)}_getCharacterBeforePosition(D){if(D.column>1){const M=this._context.viewModel.getLineContent(D.lineNumber).charAt(D.column-2);if(!y.isHighSurrogate(M.charCodeAt(0)))return M}return""}_getAriaLabel(D){if(D.get(2)===1){const M=this._keybindingService.lookupKeybinding("editor.action.toggleScreenReaderAccessibilityMode")?.getAriaLabel(),A=this._keybindingService.lookupKeybinding("workbench.action.showCommands")?.getAriaLabel(),P=this._keybindingService.lookupKeybinding("workbench.action.openGlobalKeybindings")?.getAriaLabel(),N=d.localize(55,"The editor is not accessible at this time.");return M?d.localize(56,"{0} To enable screen reader optimized mode, use {1}",N,M):A?d.localize(57,"{0} To enable screen reader optimized mode, open the quick pick with {1} and run the command Toggle Screen Reader Accessibility Mode, which is currently not triggerable via keyboard.",N,A):P?d.localize(58,"{0} Please assign a keybinding for the command Toggle Screen Reader Accessibility Mode by accessing the keybindings editor with {1} and run it.",N,P):N}return D.get(4)}_setAccessibilityOptions(D){this._accessibilitySupport=D.get(2);const T=D.get(3);this._accessibilitySupport===2&&T===t.EditorOptions.accessibilityPageSize.defaultValue?this._accessibilityPageSize=500:this._accessibilityPageSize=T;const A=D.get(146).wrappingColumn;if(A!==-1&&this._accessibilitySupport!==1){const P=D.get(50);this._textAreaWrapping=!0,this._textAreaWidth=Math.round(A*P.typicalHalfwidthCharacterWidth)}else this._textAreaWrapping=!1,this._textAreaWidth=v?0:1}onConfigurationChanged(D){const T=this._context.configuration.options,M=T.get(146);this._setAccessibilityOptions(T),this._contentLeft=M.contentLeft,this._contentWidth=M.contentWidth,this._contentHeight=M.height,this._fontInfo=T.get(50),this._lineHeight=T.get(67),this._emptySelectionClipboard=T.get(37),this._copyWithSyntaxHighlighting=T.get(25),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:A}=this._context.viewModel.model.getOptions();return this.textArea.domNode.style.tabSize=`${A*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute("aria-label",this._getAriaLabel(T)),this.textArea.setAttribute("aria-required",T.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(T.get(125))),(D.hasChanged(34)||D.hasChanged(92))&&this._ensureReadOnlyAttribute(),D.hasChanged(2)&&this._textAreaInput.writeNativeTextAreaContent("strategy changed"),!0}onCursorStateChanged(D){return this._selections=D.selections.slice(0),this._modelSelections=D.modelSelections.slice(0),this._textAreaInput.writeNativeTextAreaContent("selection changed"),!0}onDecorationsChanged(D){return!0}onFlushed(D){return!0}onLinesChanged(D){return!0}onLinesDeleted(D){return!0}onLinesInserted(D){return!0}onScrollChanged(D){return this._scrollLeft=D.scrollLeft,this._scrollTop=D.scrollTop,!0}onZonesChanged(D){return!0}isFocused(){return this._textAreaInput.isFocused()}focusTextArea(){this._textAreaInput.focusTextArea()}getLastRenderData(){return this._lastRenderPosition}setAriaOptions(D){D.activeDescendant?(this.textArea.setAttribute("aria-haspopup","true"),this.textArea.setAttribute("aria-autocomplete","list"),this.textArea.setAttribute("aria-activedescendant",D.activeDescendant)):(this.textArea.setAttribute("aria-haspopup","false"),this.textArea.setAttribute("aria-autocomplete","both"),this.textArea.removeAttribute("aria-activedescendant")),D.role&&this.textArea.setAttribute("role",D.role)}_ensureReadOnlyAttribute(){const D=this._context.configuration.options;!u.IME.enabled||D.get(34)&&D.get(92)?this.textArea.setAttribute("readonly","true"):this.textArea.removeAttribute("readonly")}prepareRender(D){this._primaryCursorPosition=new s.Position(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=D.visibleRangeForPosition(this._primaryCursorPosition),this._visibleTextArea?.prepareRender(D)}render(D){this._textAreaInput.writeNativeTextAreaContent("render"),this._render()}_render(){if(this._visibleTextArea){const M=this._visibleTextArea.visibleTextareaStart,A=this._visibleTextArea.visibleTextareaEnd,P=this._visibleTextArea.startPosition,N=this._visibleTextArea.endPosition;if(P&&N&&M&&A&&A.left>=this._scrollLeft&&M.left<=this._scrollLeft+this._contentWidth){const O=this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber)-this._scrollTop,F=this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));let x=this._visibleTextArea.widthOfHiddenLineTextBefore,W=this._contentLeft+M.left-this._scrollLeft,V=A.left-M.left+1;if(Wthis._contentWidth&&(V=this._contentWidth);const q=this._context.viewModel.getViewLineData(P.lineNumber),H=q.tokens.findTokenIndexAtOffset(P.column-1),z=q.tokens.findTokenIndexAtOffset(N.column-1),U=H===z,j=this._visibleTextArea.definePresentation(U?q.tokens.getPresentation(H):null);this.textArea.domNode.scrollTop=F*this._lineHeight,this.textArea.domNode.scrollLeft=x,this._doRender({lastRenderPosition:null,top:O,left:W,width:V,height:this._lineHeight,useCover:!1,color:(a.TokenizationRegistry.getColorMap()||[])[j.foreground],italic:j.italic,bold:j.bold,underline:j.underline,strikethrough:j.strikethrough})}return}if(!this._primaryCursorVisibleRange){this._renderAtTopLeft();return}const D=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(Dthis._contentLeft+this._contentWidth){this._renderAtTopLeft();return}const T=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;if(T<0||T>this._contentHeight){this._renderAtTopLeft();return}if(E.isMacintosh||this._accessibilitySupport===2){this._doRender({lastRenderPosition:this._primaryCursorPosition,top:T,left:this._textAreaWrapping?this._contentLeft:D,width:this._textAreaWidth,height:this._lineHeight,useCover:!1}),this.textArea.domNode.scrollLeft=this._primaryCursorVisibleRange.left;const M=this._textAreaInput.textAreaState.newlineCountBeforeSelection??this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));this.textArea.domNode.scrollTop=M*this._lineHeight;return}this._doRender({lastRenderPosition:this._primaryCursorPosition,top:T,left:this._textAreaWrapping?this._contentLeft:D,width:this._textAreaWidth,height:v?0:1,useCover:!1})}_newlinecount(D){let T=0,M=-1;do{if(M=D.indexOf(` +`,M+1),M===-1)break;T++}while(!0);return T}_renderAtTopLeft(){this._doRender({lastRenderPosition:null,top:0,left:0,width:this._textAreaWidth,height:v?0:1,useCover:!0})}_doRender(D){this._lastRenderPosition=D.lastRenderPosition;const T=this.textArea,M=this.textAreaCover;(0,m.applyFontInfo)(T,this._fontInfo),T.setTop(D.top),T.setLeft(D.left),T.setWidth(D.width),T.setHeight(D.height),T.setColor(D.color?r.Color.Format.CSS.formatHex(D.color):""),T.setFontStyle(D.italic?"italic":""),D.bold&&T.setFontWeight("bold"),T.setTextDecoration(`${D.underline?" underline":""}${D.strikethrough?" line-through":""}`),M.setTop(D.useCover?D.top:0),M.setLeft(D.useCover?D.left:0),M.setWidth(D.useCover?D.width:0),M.setHeight(D.useCover?D.height:0);const A=this._context.configuration.options;A.get(57)?M.setClassName("monaco-editor-background textAreaCover "+o.Margin.OUTER_CLASS_NAME):A.get(68).renderType!==0?M.setClassName("monaco-editor-background textAreaCover "+n.LineNumbersOverlay.CLASS_NAME):M.setClassName("monaco-editor-background textAreaCover")}};e.TextAreaHandler=w,e.TextAreaHandler=w=ke([ce(3,C.IKeybindingService),ce(4,f.IInstantiationService)],w);function S(L,D,T,M){if(D.length===0)return 0;const A=L.createElement("div");A.style.position="absolute",A.style.top="-50000px",A.style.width="50000px";const P=L.createElement("span");(0,m.applyFontInfo)(P,T),P.style.whiteSpace="pre",P.style.tabSize=`${M*T.spaceWidth}px`,P.append(D),A.appendChild(P),L.body.appendChild(A);const N=P.offsetWidth;return A.remove(),N}}),define(ne[779],se([1,0,39,33,56,9,27,80,95,13]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DecorationsOverviewRuler=void 0;class p{constructor(t,i){const s=t.options;this.lineHeight=s.get(67),this.pixelRatio=s.get(144),this.overviewRulerLanes=s.get(83),this.renderBorder=s.get(82);const g=i.getColor(m.editorOverviewRulerBorder);this.borderColor=g?g.toString():null,this.hideCursor=s.get(59);const c=i.getColor(m.editorCursorForeground);this.cursorColorSingle=c?c.transparent(.7).toString():null;const l=i.getColor(m.editorMultiCursorPrimaryForeground);this.cursorColorPrimary=l?l.transparent(.7).toString():null;const a=i.getColor(m.editorMultiCursorSecondaryForeground);this.cursorColorSecondary=a?a.transparent(.7).toString():null,this.themeType=i.type;const r=s.get(73),u=r.enabled,C=r.side,f=i.getColor(m.editorOverviewRulerBackground),h=y.TokenizationRegistry.getDefaultBackground();f?this.backgroundColor=f:u&&C==="right"?this.backgroundColor=h:this.backgroundColor=null;const w=s.get(146).overviewRuler;this.top=w.top,this.right=w.right,this.domWidth=w.width,this.domHeight=w.height,this.overviewRulerLanes===0?(this.canvasWidth=0,this.canvasHeight=0):(this.canvasWidth=this.domWidth*this.pixelRatio|0,this.canvasHeight=this.domHeight*this.pixelRatio|0);const[S,L]=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes);this.x=S,this.w=L}_initLanes(t,i,s){const g=i-t;if(s>=3){const c=Math.floor(g/3),l=Math.floor(g/3),a=g-c-l,r=t,u=r+c,C=r+c+a;return[[0,r,u,r,C,r,u,r],[0,c,a,c+a,l,c+a+l,a+l,c+a+l]]}else if(s===2){const c=Math.floor(g/2),l=g-c,a=t,r=a+c;return[[0,a,a,a,r,a,a,a],[0,c,c,c,l,c+l,c+l,c+l]]}else{const c=t,l=g;return[[0,c,c,c,c,c,c,c],[0,l,l,l,l,l,l,l]]}}equals(t){return this.lineHeight===t.lineHeight&&this.pixelRatio===t.pixelRatio&&this.overviewRulerLanes===t.overviewRulerLanes&&this.renderBorder===t.renderBorder&&this.borderColor===t.borderColor&&this.hideCursor===t.hideCursor&&this.cursorColorSingle===t.cursorColorSingle&&this.cursorColorPrimary===t.cursorColorPrimary&&this.cursorColorSecondary===t.cursorColorSecondary&&this.themeType===t.themeType&&k.Color.equals(this.backgroundColor,t.backgroundColor)&&this.top===t.top&&this.right===t.right&&this.domWidth===t.domWidth&&this.domHeight===t.domHeight&&this.canvasWidth===t.canvasWidth&&this.canvasHeight===t.canvasHeight}}class n extends I.ViewPart{constructor(t){super(t),this._actualShouldRender=0,this._renderedDecorations=[],this._renderedCursorPositions=[],this._domNode=(0,d.createFastDomNode)(document.createElement("canvas")),this._domNode.setClassName("decorationsOverviewRuler"),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._domNode.setAttribute("aria-hidden","true"),this._updateSettings(!1),this._tokensColorTrackerListener=y.TokenizationRegistry.onDidChange(i=>{i.changedColorMap&&this._updateSettings(!0)}),this._cursorPositions=[{position:new E.Position(1,1),color:this._settings.cursorColorSingle}]}dispose(){super.dispose(),this._tokensColorTrackerListener.dispose()}_updateSettings(t){const i=new p(this._context.configuration,this._context.theme);return this._settings&&this._settings.equals(i)?!1:(this._settings=i,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,t&&this._render(),!0)}_markRenderingIsNeeded(){return this._actualShouldRender=2,!0}_markRenderingIsMaybeNeeded(){return this._actualShouldRender=1,!0}onConfigurationChanged(t){return this._updateSettings(!1)?this._markRenderingIsNeeded():!1}onCursorStateChanged(t){this._cursorPositions=[];for(let i=0,s=t.selections.length;i1&&(g=i===0?this._settings.cursorColorPrimary:this._settings.cursorColorSecondary),this._cursorPositions.push({position:t.selections[i].getPosition(),color:g})}return this._cursorPositions.sort((i,s)=>E.Position.compare(i.position,s.position)),this._markRenderingIsMaybeNeeded()}onDecorationsChanged(t){return t.affectsOverviewRuler?this._markRenderingIsMaybeNeeded():!1}onFlushed(t){return this._markRenderingIsNeeded()}onScrollChanged(t){return t.scrollHeightChanged?this._markRenderingIsNeeded():!1}onZonesChanged(t){return this._markRenderingIsNeeded()}onThemeChanged(t){return this._updateSettings(!1)?this._markRenderingIsNeeded():!1}getDomNode(){return this._domNode.domNode}prepareRender(t){}render(t){this._render(),this._actualShouldRender=0}_render(){const t=this._settings.backgroundColor;if(this._settings.overviewRulerLanes===0){this._domNode.setBackgroundColor(t?k.Color.Format.CSS.formatHexA(t):""),this._domNode.setDisplay("none");return}const i=this._context.viewModel.getAllOverviewRulerDecorations(this._context.theme);if(i.sort(_.OverviewRulerDecorationsGroup.compareByRenderingProps),this._actualShouldRender===1&&!_.OverviewRulerDecorationsGroup.equalsArr(this._renderedDecorations,i)&&(this._actualShouldRender=2),this._actualShouldRender===1&&!(0,b.equals)(this._renderedCursorPositions,this._cursorPositions,(w,S)=>w.position.lineNumber===S.position.lineNumber&&w.color===S.color)&&(this._actualShouldRender=2),this._actualShouldRender===1)return;this._renderedDecorations=i,this._renderedCursorPositions=this._cursorPositions,this._domNode.setDisplay("block");const s=this._settings.canvasWidth,g=this._settings.canvasHeight,c=this._settings.lineHeight,l=this._context.viewLayout,a=this._context.viewLayout.getScrollHeight(),r=g/a,u=6*this._settings.pixelRatio|0,C=u/2|0,f=this._domNode.domNode.getContext("2d");t?t.isOpaque()?(f.fillStyle=k.Color.Format.CSS.formatHexA(t),f.fillRect(0,0,s,g)):(f.clearRect(0,0,s,g),f.fillStyle=k.Color.Format.CSS.formatHexA(t),f.fillRect(0,0,s,g)):f.clearRect(0,0,s,g);const h=this._settings.x,v=this._settings.w;for(const w of i){const S=w.color,L=w.data;f.fillStyle=S;let D=0,T=0,M=0;for(let A=0,P=L.length/3;Ag&&(q=g-C),x=q-C,W=q+C}x>M+1||N!==D?(A!==0&&f.fillRect(h[D],T,v[D],M-T),D=N,T=x,M=W):W>M&&(M=W)}f.fillRect(h[D],T,v[D],M-T)}if(!this._settings.hideCursor){const w=2*this._settings.pixelRatio|0,S=w/2|0,L=this._settings.x[7],D=this._settings.w[7];let T=-100,M=-100,A=null;for(let P=0,N=this._cursorPositions.length;Pg&&(x=g-S);const W=x-S,V=W+w;W>M+1||O!==A?(P!==0&&A&&f.fillRect(L,T,D,M-T),T=W,M=V):V>M&&(M=V),A=O,f.fillStyle=O}A&&f.fillRect(L,T,D,M-T)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(f.beginPath(),f.lineWidth=1,f.strokeStyle=this._settings.borderColor,f.moveTo(0,0),f.lineTo(0,g),f.moveTo(1,0),f.lineTo(s,0),f.stroke())}}e.DecorationsOverviewRuler=n}),define(ne[780],se([1,0,39,14,56,655,37,80,25,97,5,496]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewCursors=void 0;class n extends I.ViewPart{static{this.BLINK_INTERVAL=500}constructor(t){super(t);const i=this._context.configuration.options;this._readOnly=i.get(92),this._cursorBlinking=i.get(26),this._cursorStyle=i.get(28),this._cursorSmoothCaretAnimation=i.get(27),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new E.ViewCursor(this._context,E.CursorPlurality.Single),this._secondaryCursors=[],this._renderData=[],this._domNode=(0,d.createFastDomNode)(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._updateDomClassName(),this._domNode.appendChild(this._primaryCursor.getDomNode()),this._startCursorBlinkAnimation=new k.TimeoutTimer,this._cursorFlatBlinkInterval=new p.WindowIntervalTimer,this._blinkingEnabled=!1,this._editorHasFocus=!1,this._updateBlinking()}dispose(){super.dispose(),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()}getDomNode(){return this._domNode}onCompositionStart(t){return this._isComposingInput=!0,this._updateBlinking(),!0}onCompositionEnd(t){return this._isComposingInput=!1,this._updateBlinking(),!0}onConfigurationChanged(t){const i=this._context.configuration.options;this._readOnly=i.get(92),this._cursorBlinking=i.get(26),this._cursorStyle=i.get(28),this._cursorSmoothCaretAnimation=i.get(27),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(t);for(let s=0,g=this._secondaryCursors.length;si.length){const c=this._secondaryCursors.length-i.length;for(let l=0;l{for(let g=0,c=t.ranges.length;g{this._isVisible?this._hide():this._show()},n.BLINK_INTERVAL,(0,p.getWindow)(this._domNode.domNode)):this._startCursorBlinkAnimation.setIfNotSet(()=>{this._blinkingEnabled=!0,this._updateDomClassName()},n.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let t="cursors-layer";switch(this._selectionIsEmpty||(t+=" has-selection"),this._cursorStyle){case y.TextEditorCursorStyle.Line:t+=" cursor-line-style";break;case y.TextEditorCursorStyle.Block:t+=" cursor-block-style";break;case y.TextEditorCursorStyle.Underline:t+=" cursor-underline-style";break;case y.TextEditorCursorStyle.LineThin:t+=" cursor-line-thin-style";break;case y.TextEditorCursorStyle.BlockOutline:t+=" cursor-block-outline-style";break;case y.TextEditorCursorStyle.UnderlineThin:t+=" cursor-underline-thin-style";break;default:t+=" cursor-line-style"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:t+=" cursor-blink";break;case 2:t+=" cursor-smooth";break;case 3:t+=" cursor-phase";break;case 4:t+=" cursor-expand";break;case 5:t+=" cursor-solid";break;default:t+=" cursor-solid"}else t+=" cursor-solid";return(this._cursorSmoothCaretAnimation==="on"||this._cursorSmoothCaretAnimation==="explicit")&&(t+=" cursor-smooth-caret-animation"),t}_show(){this._primaryCursor.show();for(let t=0,i=this._secondaryCursors.length;t{const i=[{class:".cursor",foreground:m.editorCursorForeground,background:m.editorCursorBackground},{class:".cursor-primary",foreground:m.editorMultiCursorPrimaryForeground,background:m.editorMultiCursorPrimaryBackground},{class:".cursor-secondary",foreground:m.editorMultiCursorSecondaryForeground,background:m.editorMultiCursorSecondaryBackground}];for(const s of i){const g=o.getColor(s.foreground);if(g){let c=o.getColor(s.background);c||(c=g.opposite()),t.addRule(`.monaco-editor .cursors-layer ${s.class} { background-color: ${g}; border-color: ${g}; color: ${c}; }`),(0,b.isHighContrast)(o.type)&&t.addRule(`.monaco-editor .cursors-layer.has-selection ${s.class} { border-left: 1px solid ${c}; border-right: 1px solid ${c}; }`)}}})}),define(ne[781],se([1,0,133,11,136,9,80,497]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.WhitespaceOverlay=void 0;class m extends d.DynamicViewOverlay{constructor(p){super(),this._context=p,this._options=new _(this._context.configuration),this._selection=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(p){const n=new _(this._context.configuration);return this._options.equals(n)?p.hasChanged(146):(this._options=n,!0)}onCursorStateChanged(p){return this._selection=p.selections,this._options.renderWhitespace==="selection"}onDecorationsChanged(p){return!0}onFlushed(p){return!0}onLinesChanged(p){return!0}onLinesDeleted(p){return!0}onLinesInserted(p){return!0}onScrollChanged(p){return p.scrollTopChanged}onZonesChanged(p){return!0}prepareRender(p){if(this._options.renderWhitespace==="none"){this._renderResult=null;return}const n=p.visibleRange.startLineNumber,t=p.visibleRange.endLineNumber-n+1,i=new Array(t);for(let g=0;gg)continue;const C=u.startLineNumber===g?u.startColumn:l.minColumn,f=u.endLineNumber===g?u.endColumn:l.maxColumn;C=O.endOffset&&(N++,O=o&&o[N]),W!==9&&W!==32||u&&!M&&x<=P)continue;if(r&&x>=A&&x<=P&&W===32){const q=x-1>=0?g.charCodeAt(x-1):0,H=x+1=0?g.charCodeAt(x-1):0;if(W===32&&q!==32&&q!==9)continue}if(o&&(!O||O.startOffset>x||O.endOffset<=x))continue;const V=p.visibleRangeForPosition(new E.Position(n,x+1));V&&(s?(F=Math.max(F,V.left),W===9?T+=this._renderArrow(C,v,V.left):T+=``):W===9?T+=`
    ${D?"\uFFEB":"\u2192"}
    `:T+=`
    ${String.fromCharCode(L)}
    `)}return s?(F=Math.round(F+v),``+T+""):T}_renderArrow(p,n,o){const t=n/7,i=n,s=p/2,g=o,c={x:0,y:t/2},l={x:100/125*i,y:c.y},a={x:l.x-.2*l.x,y:l.y+.2*l.x},r={x:a.x+.1*l.x,y:a.y+.1*l.x},u={x:r.x+.35*l.x,y:r.y-.35*l.x},C={x:u.x,y:-u.y},f={x:r.x,y:-r.y},h={x:a.x,y:-a.y},v={x:l.x,y:-l.y},w={x:c.x,y:-c.y};return``}render(p,n){if(!this._renderResult)return"";const o=n-p;return o<0||o>=this._renderResult.length?"":this._renderResult[o]}}e.WhitespaceOverlay=m;class _{constructor(p){const n=p.options,o=n.get(50),t=n.get(38);t==="off"?(this.renderWhitespace="none",this.renderWithSVG=!1):t==="svg"?(this.renderWhitespace=n.get(100),this.renderWithSVG=!0):(this.renderWhitespace=n.get(100),this.renderWithSVG=!1),this.spaceWidth=o.spaceWidth,this.middotWidth=o.middotWidth,this.wsmiddotWidth=o.wsmiddotWidth,this.canUseHalfwidthRightwardsArrow=o.canUseHalfwidthRightwardsArrow,this.lineHeight=n.get(67),this.stopRenderingLineAfter=n.get(118)}equals(p){return this.renderWhitespace===p.renderWhitespace&&this.renderWithSVG===p.renderWithSVG&&this.spaceWidth===p.spaceWidth&&this.middotWidth===p.middotWidth&&this.wsmiddotWidth===p.wsmiddotWidth&&this.canUseHalfwidthRightwardsArrow===p.canUseHalfwidthRightwardsArrow&&this.lineHeight===p.lineHeight&&this.stopRenderingLineAfter===p.stopRenderingLineAfter}}}),define(ne[782],se([1,0,5,39,296,8,414,769,778,164,726,657,56,309,591,649,776,592,773,242,777,416,770,593,331,594,755,650,779,604,595,596,774,780,597,781,9,4,23,40,170,600,605,7,25]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M,A,P,N,O,F,x,W,V,q,H,z,U,j){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.View=void 0;let Y=class extends q.ViewEventHandler{constructor(J,ie,ue,he,pe,ae,ee){super(),this._instantiationService=ee,this._shouldRecomputeGlyphMarginLanes=!1,this._selections=[new W.Selection(1,1,1,1)],this._renderAnimationFrame=null;const de=new p.ViewController(ie,he,pe,J);this._context=new z.ViewContext(ie,ue,he),this._context.addEventHandler(this),this._viewParts=[],this._textAreaHandler=this._instantiationService.createInstance(_.TextAreaHandler,this._context,de,this._createTextAreaHandlerHelper()),this._viewParts.push(this._textAreaHandler),this._linesContent=(0,k.createFastDomNode)(document.createElement("div")),this._linesContent.setClassName("lines-content monaco-editor-background"),this._linesContent.setPosition("absolute"),this.domNode=(0,k.createFastDomNode)(document.createElement("div")),this.domNode.setClassName(this._getEditorClassName()),this.domNode.setAttribute("role","code"),this._overflowGuardContainer=(0,k.createFastDomNode)(document.createElement("div")),o.PartFingerprints.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName("overflow-guard"),this._scrollbar=new l.EditorScrollbar(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar),this._viewLines=new C.ViewLines(this._context,this._linesContent),this._viewZones=new N.ViewZones(this._context),this._viewParts.push(this._viewZones);const ge=new L.DecorationsOverviewRuler(this._context);this._viewParts.push(ge);const X=new M.ScrollDecorationViewPart(this._context);this._viewParts.push(X);const B=new n.ContentViewOverlays(this._context);this._viewParts.push(B),B.addDynamicOverlay(new g.CurrentLineHighlightOverlay(this._context)),B.addDynamicOverlay(new A.SelectionsOverlay(this._context)),B.addDynamicOverlay(new r.IndentGuidesOverlay(this._context)),B.addDynamicOverlay(new c.DecorationsOverlay(this._context)),B.addDynamicOverlay(new O.WhitespaceOverlay(this._context));const $=new n.MarginViewOverlays(this._context);this._viewParts.push($),$.addDynamicOverlay(new g.CurrentLineMarginHighlightOverlay(this._context)),$.addDynamicOverlay(new v.MarginViewLineDecorationsOverlay(this._context)),$.addDynamicOverlay(new f.LinesDecorationsOverlay(this._context)),$.addDynamicOverlay(new u.LineNumbersOverlay(this._context)),this._glyphMarginWidgets=new a.GlyphMarginWidgets(this._context),this._viewParts.push(this._glyphMarginWidgets);const Q=new h.Margin(this._context);Q.getDomNode().appendChild(this._viewZones.marginDomNode),Q.getDomNode().appendChild($.getDomNode()),Q.getDomNode().appendChild(this._glyphMarginWidgets.domNode),this._viewParts.push(Q),this._contentWidgets=new s.ViewContentWidgets(this._context,this.domNode),this._viewParts.push(this._contentWidgets),this._viewCursors=new P.ViewCursors(this._context),this._viewParts.push(this._viewCursors),this._overlayWidgets=new S.ViewOverlayWidgets(this._context,this.domNode),this._viewParts.push(this._overlayWidgets);const Z=new T.Rulers(this._context);this._viewParts.push(Z);const te=new i.BlockDecorations(this._context);this._viewParts.push(te);const re=new w.Minimap(this._context);if(this._viewParts.push(re),ge){const le=this._scrollbar.getOverviewRulerLayoutInfo();le.parent.insertBefore(ge.getDomNode(),le.insertBefore)}this._linesContent.appendChild(B.getDomNode()),this._linesContent.appendChild(Z.domNode),this._linesContent.appendChild(this._viewZones.domNode),this._linesContent.appendChild(this._viewLines.getDomNode()),this._linesContent.appendChild(this._contentWidgets.domNode),this._linesContent.appendChild(this._viewCursors.getDomNode()),this._overflowGuardContainer.appendChild(Q.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._overflowGuardContainer.appendChild(X.getDomNode()),this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(re.getDomNode()),this._overflowGuardContainer.appendChild(te.domNode),this.domNode.appendChild(this._overflowGuardContainer),ae?(ae.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode),ae.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode)):(this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this.domNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode)),this._applyLayout(),this._pointerHandler=this._register(new m.PointerHandler(this._context,de,this._createPointerHandlerHelper()))}_computeGlyphMarginLanes(){const J=this._context.viewModel.model,ie=this._context.viewModel.glyphLanes;let ue=[],he=0;ue=ue.concat(J.getAllMarginDecorations().map(pe=>{const ae=pe.options.glyphMargin?.position??V.GlyphMarginLane.Center;return he=Math.max(he,pe.range.endLineNumber),{range:pe.range,lane:ae,persist:pe.options.glyphMargin?.persistLane}})),ue=ue.concat(this._glyphMarginWidgets.getWidgets().map(pe=>{const ae=J.validateRange(pe.preference.range);return he=Math.max(he,ae.endLineNumber),{range:ae,lane:pe.preference.lane}})),ue.sort((pe,ae)=>x.Range.compareRangesUsingStarts(pe.range,ae.range)),ie.reset(he);for(const pe of ue)ie.push(pe.lane,pe.range,pe.persist);return ie}_createPointerHandlerHelper(){return{viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,viewLinesDomNode:this._viewLines.getDomNode().domNode,focusTextArea:()=>{this.focus()},dispatchTextAreaEvent:J=>{this._textAreaHandler.textArea.domNode.dispatchEvent(J)},getLastRenderData:()=>{const J=this._viewCursors.getLastRenderData()||[],ie=this._textAreaHandler.getLastRenderData();return new y.PointerHandlerLastRenderData(J,ie)},renderNow:()=>{this.render(!0,!1)},shouldSuppressMouseDownOnViewZone:J=>this._viewZones.shouldSuppressMouseDownOnViewZone(J),shouldSuppressMouseDownOnWidget:J=>this._contentWidgets.shouldSuppressMouseDownOnWidget(J),getPositionFromDOMInfo:(J,ie)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getPositionFromDOMInfo(J,ie)),visibleRangeForPosition:(J,ie)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(new F.Position(J,ie))),getLineWidth:J=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getLineWidth(J))}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:J=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(J))}}_applyLayout(){const ie=this._context.configuration.options.get(146);this.domNode.setWidth(ie.width),this.domNode.setHeight(ie.height),this._overflowGuardContainer.setWidth(ie.width),this._overflowGuardContainer.setHeight(ie.height),this._linesContent.setWidth(16777216),this._linesContent.setHeight(16777216)}_getEditorClassName(){const J=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(143)+" "+(0,j.getThemeTypeSelector)(this._context.theme.type)+J}handleEvents(J){super.handleEvents(J),this._scheduleRender()}onConfigurationChanged(J){return this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}onCursorStateChanged(J){return this._selections=J.selections,!1}onDecorationsChanged(J){return J.affectsGlyphMargin&&(this._shouldRecomputeGlyphMarginLanes=!0),!1}onFocusChanged(J){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(J){return this._context.theme.update(J.theme),this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){this._renderAnimationFrame!==null&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose();for(const J of this._viewParts)J.dispose();super.dispose()}_scheduleRender(){if(this._store.isDisposed)throw new E.BugIndicatingError;if(this._renderAnimationFrame===null){const J=this._createCoordinatedRendering();this._renderAnimationFrame=K.INSTANCE.scheduleCoordinatedRendering({window:d.getWindow(this.domNode?.domNode),prepareRenderText:()=>{if(this._store.isDisposed)throw new E.BugIndicatingError;try{return J.prepareRenderText()}finally{this._renderAnimationFrame=null}},renderText:()=>{if(this._store.isDisposed)throw new E.BugIndicatingError;return J.renderText()},prepareRender:(ie,ue)=>{if(this._store.isDisposed)throw new E.BugIndicatingError;return J.prepareRender(ie,ue)},render:(ie,ue)=>{if(this._store.isDisposed)throw new E.BugIndicatingError;return J.render(ie,ue)}})}}_flushAccumulatedAndRenderNow(){const J=this._createCoordinatedRendering();G(()=>J.prepareRenderText());const ie=G(()=>J.renderText());if(ie){const[ue,he]=ie;G(()=>J.prepareRender(ue,he)),G(()=>J.render(ue,he))}}_getViewPartsToRender(){const J=[];let ie=0;for(const ue of this._viewParts)ue.shouldRender()&&(J[ie++]=ue);return J}_createCoordinatedRendering(){return{prepareRenderText:()=>{if(this._shouldRecomputeGlyphMarginLanes){this._shouldRecomputeGlyphMarginLanes=!1;const J=this._computeGlyphMarginLanes();this._context.configuration.setGlyphMarginDecorationLaneCount(J.requiredLanes)}I.inputLatency.onRenderStart()},renderText:()=>{if(!this.domNode.domNode.isConnected)return null;let J=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&J.length===0)return null;const ie=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(ie.startLineNumber,ie.endLineNumber,ie.centeredLineNumber);const ue=new H.ViewportData(this._selections,ie,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);return this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(ue),this._viewLines.shouldRender()&&(this._viewLines.renderText(ue),this._viewLines.onDidRender(),J=this._getViewPartsToRender()),[J,new b.RenderingContext(this._context.viewLayout,ue,this._viewLines)]},prepareRender:(J,ie)=>{for(const ue of J)ue.prepareRender(ie)},render:(J,ie)=>{for(const ue of J)ue.render(ie),ue.onDidRender()}}}delegateVerticalScrollbarPointerDown(J){this._scrollbar.delegateVerticalScrollbarPointerDown(J)}delegateScrollFromMouseWheelEvent(J){this._scrollbar.delegateScrollFromMouseWheelEvent(J)}restoreState(J){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:J.scrollTop,scrollLeft:J.scrollLeft},1),this._context.viewModel.visibleLinesStabilized()}getOffsetForColumn(J,ie){const ue=this._context.viewModel.model.validatePosition({lineNumber:J,column:ie}),he=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(ue);this._flushAccumulatedAndRenderNow();const pe=this._viewLines.visibleRangeForPosition(new F.Position(he.lineNumber,he.column));return pe?pe.left:-1}getTargetAtClientPoint(J,ie){const ue=this._pointerHandler.getTargetAtClientPoint(J,ie);return ue?t.ViewUserInputEvents.convertViewToModelMouseTarget(ue,this._context.viewModel.coordinatesConverter):null}createOverviewRuler(J){return new D.OverviewRuler(this._context,J)}change(J){this._viewZones.changeViewZones(J),this._scheduleRender()}render(J,ie){if(ie){this._viewLines.forceShouldRender();for(const ue of this._viewParts)ue.forceShouldRender()}J?this._flushAccumulatedAndRenderNow():this._scheduleRender()}writeScreenReaderContent(J){this._textAreaHandler.writeScreenReaderContent(J)}focus(){this._textAreaHandler.focusTextArea()}isFocused(){return this._textAreaHandler.isFocused()}setAriaOptions(J){this._textAreaHandler.setAriaOptions(J)}addContentWidget(J){this._contentWidgets.addWidget(J.widget),this.layoutContentWidget(J),this._scheduleRender()}layoutContentWidget(J){this._contentWidgets.setWidgetPosition(J.widget,J.position?.position??null,J.position?.secondaryPosition??null,J.position?.preference??null,J.position?.positionAffinity??null),this._scheduleRender()}removeContentWidget(J){this._contentWidgets.removeWidget(J.widget),this._scheduleRender()}addOverlayWidget(J){this._overlayWidgets.addWidget(J.widget),this.layoutOverlayWidget(J),this._scheduleRender()}layoutOverlayWidget(J){this._overlayWidgets.setWidgetPosition(J.widget,J.position)&&this._scheduleRender()}removeOverlayWidget(J){this._overlayWidgets.removeWidget(J.widget),this._scheduleRender()}addGlyphMarginWidget(J){this._glyphMarginWidgets.addWidget(J.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}layoutGlyphMarginWidget(J){const ie=J.position;this._glyphMarginWidgets.setWidgetPosition(J.widget,ie)&&(this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender())}removeGlyphMarginWidget(J){this._glyphMarginWidgets.removeWidget(J.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}};e.View=Y,e.View=Y=ke([ce(6,U.IInstantiationService)],Y);function G(R){try{return R()}catch(J){return(0,E.onUnexpectedError)(J),null}}class K{static{this.INSTANCE=new K}constructor(){this._coordinatedRenderings=[],this._animationFrameRunners=new Map}scheduleCoordinatedRendering(J){return this._coordinatedRenderings.push(J),this._scheduleRender(J.window),{dispose:()=>{const ie=this._coordinatedRenderings.indexOf(J);if(ie!==-1&&(this._coordinatedRenderings.splice(ie,1),this._coordinatedRenderings.length===0)){for(const[ue,he]of this._animationFrameRunners)he.dispose();this._animationFrameRunners.clear()}}}}_scheduleRender(J){if(!this._animationFrameRunners.has(J)){const ie=()=>{this._animationFrameRunners.delete(J),this._onRenderScheduled()};this._animationFrameRunners.set(J,d.runAtThisOrScheduleAtNextAnimationFrame(J,ie,100))}}_onRenderScheduled(){const J=this._coordinatedRenderings.slice(0);this._coordinatedRenderings=[];for(const ue of J)G(()=>ue.prepareRenderText());const ie=[];for(let ue=0,he=J.length;uepe.renderText())}for(let ue=0,he=J.length;uepe.prepareRender(ee,de))}for(let ue=0,he=J.length;uepe.render(ee,de))}}}}),define(ne[783],se([1,0,6,2,4,80,25]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColorizedBracketPairsDecorationProvider=void 0;class m extends k.Disposable{constructor(p){super(),this.textModel=p,this.colorProvider=new _,this.onDidChangeEmitter=new d.Emitter,this.onDidChange=this.onDidChangeEmitter.event,this.colorizationOptions=p.getOptions().bracketPairColorizationOptions,this._register(p.bracketPairs.onDidChange(n=>{this.onDidChangeEmitter.fire()}))}handleDidChangeOptions(p){this.colorizationOptions=this.textModel.getOptions().bracketPairColorizationOptions}getDecorationsInRange(p,n,o,t){return t?[]:n===void 0?[]:this.colorizationOptions.enabled?this.textModel.bracketPairs.getBracketsInRange(p,!0).map(s=>({id:`bracket${s.range.toString()}-${s.nestingLevel}`,options:{description:"BracketPairColorization",inlineClassName:this.colorProvider.getInlineClassName(s,this.colorizationOptions.independentColorPoolPerBracketType)},ownerId:0,range:s.range})).toArray():[]}getAllDecorations(p,n){return p===void 0?[]:this.colorizationOptions.enabled?this.getDecorationsInRange(new I.Range(1,1,this.textModel.getLineCount(),1),p,n):[]}}e.ColorizedBracketPairsDecorationProvider=m;class _{constructor(){this.unexpectedClosingBracketClassName="unexpected-closing-bracket"}getInlineClassName(p,n){return p.isInvalid?this.unexpectedClosingBracketClassName:this.getInlineClassNameOfLevel(n?p.nestingLevelOfEqualBracketType:p.nestingLevel)}getInlineClassNameOfLevel(p){return`bracket-highlighting-${p%30}`}}(0,y.registerThemingParticipant)((b,p)=>{const n=[E.editorBracketHighlightingForeground1,E.editorBracketHighlightingForeground2,E.editorBracketHighlightingForeground3,E.editorBracketHighlightingForeground4,E.editorBracketHighlightingForeground5,E.editorBracketHighlightingForeground6],o=new _;p.addRule(`.monaco-editor .${o.unexpectedClosingBracketClassName} { color: ${b.getColor(E.editorBracketHighlightingUnexpectedBracketForeground)}; }`);const t=n.map(i=>b.getColor(i)).filter(i=>!!i).filter(i=>!i.isTransparent());for(let i=0;i<30;i++){const s=t[i%t.length];p.addRule(`.monaco-editor .${o.getInlineClassNameOfLevel(i)} { color: ${s}; }`)}})}),define(ne[784],se([1,0,108,2,40,25,80,51,4,42,6,32,45,298]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarkerDecorationsService=void 0;let i=class extends k.Disposable{constructor(c,l){super(),this._markerService=l,this._onDidChangeMarker=this._register(new p.Emitter),this._markerDecorations=new o.ResourceMap,c.getModels().forEach(a=>this._onModelAdded(a)),this._register(c.onModelAdded(this._onModelAdded,this)),this._register(c.onModelRemoved(this._onModelRemoved,this)),this._register(this._markerService.onMarkerChanged(this._handleMarkerChange,this))}dispose(){super.dispose(),this._markerDecorations.forEach(c=>c.dispose()),this._markerDecorations.clear()}getMarker(c,l){const a=this._markerDecorations.get(c);return a&&a.getMarker(l)||null}_handleMarkerChange(c){c.forEach(l=>{const a=this._markerDecorations.get(l);a&&this._updateDecorations(a)})}_onModelAdded(c){const l=new s(c);this._markerDecorations.set(c.uri,l),this._updateDecorations(l)}_onModelRemoved(c){const l=this._markerDecorations.get(c.uri);l&&(l.dispose(),this._markerDecorations.delete(c.uri)),(c.uri.scheme===b.Schemas.inMemory||c.uri.scheme===b.Schemas.internal||c.uri.scheme===b.Schemas.vscode)&&this._markerService?.read({resource:c.uri}).map(a=>a.owner).forEach(a=>this._markerService.remove(a,[c.uri]))}_updateDecorations(c){const l=this._markerService.read({resource:c.model.uri,take:500});c.update(l)&&this._onDidChangeMarker.fire(c.model)}};e.MarkerDecorationsService=i,e.MarkerDecorationsService=i=ke([ce(0,m.IModelService),ce(1,d.IMarkerService)],i);class s extends k.Disposable{constructor(c){super(),this.model=c,this._map=new o.BidirectionalMap,this._register((0,k.toDisposable)(()=>{this.model.deltaDecorations([...this._map.values()],[]),this._map.clear()}))}update(c){const{added:l,removed:a}=(0,t.diffSets)(new Set(this._map.keys()),new Set(c));if(l.length===0&&a.length===0)return!1;const r=a.map(f=>this._map.get(f)),u=l.map(f=>({range:this._createDecorationRange(this.model,f),options:this._createDecorationOption(f)})),C=this.model.deltaDecorations(r,u);for(const f of a)this._map.delete(f);for(let f=0;f=r)return a;const u=c.getWordAtPosition(a.getStartPosition());u&&(a=new _.Range(a.startLineNumber,u.startColumn,a.endLineNumber,u.endColumn))}else if(l.endColumn===Number.MAX_VALUE&&l.startColumn===1&&a.startLineNumber===a.endLineNumber){const r=c.getLineFirstNonWhitespaceColumn(l.startLineNumber);r=0:!1}}}),define(ne[282],se([1,0,148,25,62,589,43]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SemanticTokensProviderStyling=void 0,e.toMultilineTokens2=b;const m=!1;let _=class{constructor(t,i,s,g){this._legend=t,this._themeService=i,this._languageService=s,this._logService=g,this._hasWarnedOverlappingTokens=!1,this._hasWarnedInvalidLengthTokens=!1,this._hasWarnedInvalidEditStart=!1,this._hashTable=new n}getMetadata(t,i,s){const g=this._languageService.languageIdCodec.encodeLanguageId(s),c=this._hashTable.get(t,i,g);let l;if(c)l=c.metadata,m&&this._logService.getLevel()===I.LogLevel.Trace&&this._logService.trace(`SemanticTokensProviderStyling [CACHED] ${t} / ${i}: foreground ${d.TokenMetadata.getForeground(l)}, fontStyle ${d.TokenMetadata.getFontStyle(l).toString(2)}`);else{let a=this._legend.tokenTypes[t];const r=[];if(a){let u=i;for(let f=0;u>0&&f>1;m&&u>0&&this._logService.getLevel()===I.LogLevel.Trace&&(this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${i.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`),r.push("not-in-legend"));const C=this._themeService.getColorTheme().getTokenStyleMetadata(a,r,s);if(typeof C>"u")l=2147483647;else{if(l=0,typeof C.italic<"u"){const f=(C.italic?1:0)<<11;l|=f|1}if(typeof C.bold<"u"){const f=(C.bold?2:0)<<11;l|=f|2}if(typeof C.underline<"u"){const f=(C.underline?4:0)<<11;l|=f|4}if(typeof C.strikethrough<"u"){const f=(C.strikethrough?8:0)<<11;l|=f|8}if(C.foreground){const f=C.foreground<<15;l|=f|16}l===0&&(l=2147483647)}}else m&&this._logService.getLevel()===I.LogLevel.Trace&&this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${t} for legend: ${JSON.stringify(this._legend.tokenTypes)}`),l=2147483647,a="not-in-legend";this._hashTable.add(t,i,g,l),m&&this._logService.getLevel()===I.LogLevel.Trace&&this._logService.trace(`SemanticTokensProviderStyling ${t} (${a}) / ${i} (${r.join(" ")}): foreground ${d.TokenMetadata.getForeground(l)}, fontStyle ${d.TokenMetadata.getFontStyle(l).toString(2)}`)}return l}warnOverlappingSemanticTokens(t,i){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,this._logService.warn(`Overlapping semantic tokens detected at lineNumber ${t}, column ${i}`))}warnInvalidLengthSemanticTokens(t,i){this._hasWarnedInvalidLengthTokens||(this._hasWarnedInvalidLengthTokens=!0,this._logService.warn(`Semantic token with invalid length detected at lineNumber ${t}, column ${i}`))}warnInvalidEditStart(t,i,s,g,c){this._hasWarnedInvalidEditStart||(this._hasWarnedInvalidEditStart=!0,this._logService.warn(`Invalid semantic tokens edit detected (previousResultId: ${t}, resultId: ${i}) at edit #${s}: The provided start offset ${g} is outside the previous data (length ${c}).`))}};e.SemanticTokensProviderStyling=_,e.SemanticTokensProviderStyling=_=ke([ce(1,k.IThemeService),ce(2,y.ILanguageService),ce(3,I.ILogService)],_);function b(o,t,i){const s=o.data,g=o.data.length/5|0,c=Math.max(Math.ceil(g/1024),400),l=[];let a=0,r=1,u=0;for(;aC&&s[5*T]===0;)T--;if(T-1===C){let M=f;for(;M+1N)t.warnOverlappingSemanticTokens(P,N+1);else{const V=t.getMetadata(x,W,i);V!==2147483647&&(w===0&&(w=P),h[v]=P-w,h[v+1]=N,h[v+2]=F,h[v+3]=V,v+=4,S=P,L=F)}r=P,u=N,a++}v!==h.length&&(h=h.subarray(0,v));const D=E.SparseMultilineTokens.create(w,h);l.push(D)}return l}class p{constructor(t,i,s,g){this.tokenTypeIndex=t,this.tokenModifierSet=i,this.languageId=s,this.metadata=g,this.next=null}}class n{static{this._SIZES=[3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143]}constructor(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=n._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1=this._growCount){const c=this._elements;this._currentLengthIndex++,this._currentLength=n._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1{this._caches=new WeakMap}))}getStyling(n){return this._caches.has(n)||this._caches.set(n,new y.SemanticTokensProviderStyling(n.getLegend(),this._themeService,this._languageService,this._logService)),this._caches.get(n)}};e.SemanticTokensStylingService=b,e.SemanticTokensStylingService=b=ke([ce(0,I.IThemeService),ce(1,E.ILogService),ce(2,k.ILanguageService)],b),(0,_.registerSingleton)(m.ISemanticTokensStylingService,b,1)}),define(ne[786],se([1,0,15,80,3,89,379,700,528]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorContribution)(y.PlaceholderTextContribution.ID,(0,m.wrapInReloadableClass1)(()=>y.PlaceholderTextContribution),0),(0,E.registerColor)("editor.placeholder.foreground",k.ghostTextForeground,(0,I.localize)(1194,"Foreground color of the placeholder text in the editor."))}),define(ne[417],se([1,0,127,2,168,40,80,25,46]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractEditorNavigationQuickAccessProvider=void 0;class b{constructor(n){this.options=n,this.rangeHighlightDecorationId=void 0}provide(n,o,t){const i=new k.DisposableStore;n.canAcceptInBackground=!!this.options?.canAcceptInBackground,n.matchOnLabel=n.matchOnDescription=n.matchOnDetail=n.sortByLabel=!1;const s=i.add(new k.MutableDisposable);return s.value=this.doProvide(n,o,t),i.add(this.onDidActiveTextEditorControlChange(()=>{s.value=void 0,s.value=this.doProvide(n,o)})),i}doProvide(n,o,t){const i=new k.DisposableStore,s=this.activeTextEditorControl;if(s&&this.canProvideWithTextEditor(s)){const g={editor:s},c=(0,I.getCodeEditor)(s);if(c){let l=s.saveViewState()??void 0;i.add(c.onDidChangeCursorPosition(()=>{l=s.saveViewState()??void 0})),g.restoreViewState=()=>{l&&s===this.activeTextEditorControl&&s.restoreViewState(l)},i.add((0,d.createSingleCallFunction)(o.onCancellationRequested)(()=>g.restoreViewState?.()))}i.add((0,k.toDisposable)(()=>this.clearDecorations(s))),i.add(this.provideWithTextEditor(g,n,o,t))}else i.add(this.provideWithoutTextEditor(n,o));return i}canProvideWithTextEditor(n){return!0}gotoLocation({editor:n},o){n.setSelection(o.range,"code.jump"),n.revealRangeInCenter(o.range,0),o.preserveFocus||n.focus();const t=n.getModel();t&&"getLineContent"in t&&(0,_.status)(`${t.getLineContent(o.range.startLineNumber)}`)}getModel(n){return(0,I.isDiffEditor)(n)?n.getModel()?.modified:n.getModel()}addDecorations(n,o){n.changeDecorations(t=>{const i=[];this.rangeHighlightDecorationId&&(i.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),i.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const s=[{range:o,options:{description:"quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:o,options:{description:"quick-access-range-highlight-overview",overviewRuler:{color:(0,m.themeColorFromId)(y.overviewRulerRangeHighlight),position:E.OverviewRulerLane.Full}}}],[g,c]=t.deltaDecorations(i,s);this.rangeHighlightDecorationId={rangeHighlightId:g,overviewRulerDecorationId:c}})}clearDecorations(n){const o=this.rangeHighlightDecorationId;o&&(n.changeDecorations(t=>{t.deltaDecorations([o.overviewRulerDecorationId,o.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}}e.AbstractEditorNavigationQuickAccessProvider=b}),define(ne[787],se([1,0,2,168,417,3]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractGotoLineQuickAccessProvider=void 0;class y extends I.AbstractEditorNavigationQuickAccessProvider{static{this.PREFIX=":"}constructor(){super({canAcceptInBackground:!0})}provideWithoutTextEditor(_){const b=(0,E.localize)(1195,"Open a text editor first to go to a line.");return _.items=[{label:b}],_.ariaLabel=b,d.Disposable.None}provideWithTextEditor(_,b,p){const n=_.editor,o=new d.DisposableStore;o.add(b.onDidAccept(s=>{const[g]=b.selectedItems;if(g){if(!this.isValidLineNumber(n,g.lineNumber))return;this.gotoLocation(_,{range:this.toRange(g.lineNumber,g.column),keyMods:b.keyMods,preserveFocus:s.inBackground}),s.inBackground||b.hide()}}));const t=()=>{const s=this.parsePosition(n,b.value.trim().substr(y.PREFIX.length)),g=this.getPickLabel(n,s.lineNumber,s.column);if(b.items=[{lineNumber:s.lineNumber,column:s.column,label:g}],b.ariaLabel=g,!this.isValidLineNumber(n,s.lineNumber)){this.clearDecorations(n);return}const c=this.toRange(s.lineNumber,s.column);n.revealRangeInCenter(c,0),this.addDecorations(n,c)};t(),o.add(b.onDidChangeValue(()=>t()));const i=(0,k.getCodeEditor)(n);return i&&i.getOptions().get(68).renderType===2&&(i.updateOptions({lineNumbers:"on"}),o.add((0,d.toDisposable)(()=>i.updateOptions({lineNumbers:"relative"})))),o}toRange(_=1,b=1){return{startLineNumber:_,startColumn:b,endLineNumber:_,endColumn:b}}parsePosition(_,b){const p=b.split(/,|:|#/).map(o=>parseInt(o,10)).filter(o=>!isNaN(o)),n=this.lineCount(_)+1;return{lineNumber:p[0]>0?p[0]:n+p[0],column:p[1]}}getPickLabel(_,b,p){if(this.isValidLineNumber(_,b))return this.isValidColumn(_,b,p)?(0,E.localize)(1196,"Go to line {0} and character {1}.",b,p):(0,E.localize)(1197,"Go to line {0}.",b);const n=_.getPosition()||{lineNumber:1,column:1},o=this.lineCount(_);return o>1?(0,E.localize)(1198,"Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.",n.lineNumber,n.column,o):(0,E.localize)(1199,"Current Line: {0}, Character: {1}. Type a line number to navigate to.",n.lineNumber,n.column)}isValidLineNumber(_,b){return!b||typeof b!="number"?!1:b>0&&b<=this.lineCount(_)}isValidColumn(_,b,p){if(!p||typeof p!="number")return!1;const n=this.getModel(_);if(!n)return!1;const o={lineNumber:b,column:p};return n.validatePosition(o).equals(o)}lineCount(_){return this.getModel(_)?.getLineCount()??0}}e.AbstractGotoLineQuickAccessProvider=y}),define(ne[788],se([1,0,14,18,26,30,628,2,11,4,27,182,417,3,17,67]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";var g;Object.defineProperty(e,"__esModule",{value:!0}),e.AbstractGotoSymbolQuickAccessProvider=void 0;let c=class extends o.AbstractEditorNavigationQuickAccessProvider{static{g=this}static{this.PREFIX="@"}static{this.SCOPE_PREFIX=":"}static{this.PREFIX_BY_CATEGORY=`${this.PREFIX}${this.SCOPE_PREFIX}`}constructor(u,C,f=Object.create(null)){super(f),this._languageFeaturesService=u,this._outlineModelService=C,this.options=f,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(u){return this.provideLabelPick(u,(0,t.localize)(1200,"To go to a symbol, first open a text editor with symbol information.")),m.Disposable.None}provideWithTextEditor(u,C,f,h){const v=u.editor,w=this.getModel(v);return w?this._languageFeaturesService.documentSymbolProvider.has(w)?this.doProvideWithEditorSymbols(u,w,C,f,h):this.doProvideWithoutEditorSymbols(u,w,C,f):m.Disposable.None}doProvideWithoutEditorSymbols(u,C,f,h){const v=new m.DisposableStore;return this.provideLabelPick(f,(0,t.localize)(1201,"The active text editor does not provide symbol information.")),(async()=>!await this.waitForLanguageSymbolRegistry(C,v)||h.isCancellationRequested||v.add(this.doProvideWithEditorSymbols(u,C,f,h)))(),v}provideLabelPick(u,C){u.items=[{label:C,index:0,kind:14}],u.ariaLabel=C}async waitForLanguageSymbolRegistry(u,C){if(this._languageFeaturesService.documentSymbolProvider.has(u))return!0;const f=new d.DeferredPromise,h=C.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>{this._languageFeaturesService.documentSymbolProvider.has(u)&&(h.dispose(),f.complete(!0))}));return C.add((0,m.toDisposable)(()=>f.complete(!1))),f.p}doProvideWithEditorSymbols(u,C,f,h,v){const w=u.editor,S=new m.DisposableStore;S.add(f.onDidAccept(M=>{const[A]=f.selectedItems;A&&A.range&&(this.gotoLocation(u,{range:A.range.selection,keyMods:f.keyMods,preserveFocus:M.inBackground}),v?.handleAccept?.(A),M.inBackground||f.hide())})),S.add(f.onDidTriggerItemButton(({item:M})=>{M&&M.range&&(this.gotoLocation(u,{range:M.range.selection,keyMods:f.keyMods,forceSideBySide:!0}),f.hide())}));const L=this.getDocumentSymbols(C,h);let D;const T=async M=>{D?.dispose(!0),f.busy=!1,D=new k.CancellationTokenSource(h),f.busy=!0;try{const A=(0,y.prepareQuery)(f.value.substr(g.PREFIX.length).trim()),P=await this.doGetSymbolPicks(L,A,void 0,D.token,C);if(h.isCancellationRequested)return;if(P.length>0){if(f.items=P,M&&A.original.length===0){const N=(0,s.findLast)(P,O=>!!(O.type!=="separator"&&O.range&&b.Range.containsPosition(O.range.decoration,M)));N&&(f.activeItems=[N])}}else A.original.length>0?this.provideLabelPick(f,(0,t.localize)(1202,"No matching editor symbols")):this.provideLabelPick(f,(0,t.localize)(1203,"No editor symbols"))}finally{h.isCancellationRequested||(f.busy=!1)}};return S.add(f.onDidChangeValue(()=>T(void 0))),T(w.getSelection()?.getPosition()),S.add(f.onDidChangeActive(()=>{const[M]=f.activeItems;M&&M.range&&(w.revealRangeInCenter(M.range.selection,0),this.addDecorations(w,M.range.decoration))})),S}async doGetSymbolPicks(u,C,f,h,v){const w=await u;if(h.isCancellationRequested)return[];const S=C.original.indexOf(g.SCOPE_PREFIX)===0,L=S?1:0;let D,T;C.values&&C.values.length>1?(D=(0,y.pieceToQuery)(C.values[0]),T=(0,y.pieceToQuery)(C.values.slice(1))):D=C;let M;const A=this.options?.openSideBySideDirection?.();A&&(M=[{iconClass:A==="right"?E.ThemeIcon.asClassName(I.Codicon.splitHorizontal):E.ThemeIcon.asClassName(I.Codicon.splitVertical),tooltip:A==="right"?(0,t.localize)(1204,"Open to the Side"):(0,t.localize)(1205,"Open to the Bottom")}]);const P=[];for(let F=0;FL){let K=!1;if(D!==C&&([z,U]=(0,y.scoreFuzzy2)(V,{...C,values:void 0},L,q),typeof z=="number"&&(K=!0)),typeof z!="number"&&([z,U]=(0,y.scoreFuzzy2)(V,D,L,q),typeof z!="number"))continue;if(!K&&T){if(H&&T.original.length>0&&([j,Y]=(0,y.scoreFuzzy2)(H,T)),typeof j!="number")continue;typeof z=="number"&&(z+=j)}}const G=x.tags&&x.tags.indexOf(1)>=0;P.push({index:F,kind:x.kind,score:z,label:V,ariaLabel:(0,p.getAriaLabelForSymbol)(x.name,x.kind),description:H,highlights:G?void 0:{label:U,description:Y},range:{selection:b.Range.collapseToStart(x.selectionRange),decoration:x.range},uri:v.uri,symbolName:W,strikethrough:G,buttons:M})}const N=P.sort((F,x)=>S?this.compareByKindAndScore(F,x):this.compareByScore(F,x));let O=[];if(S){let V=function(){x&&typeof F=="number"&&W>0&&(x.label=(0,_.format)(a[F]||l,W))},F,x,W=0;for(const q of N)F!==q.kind?(V(),F=q.kind,W=1,x={type:"separator"},O.push(x)):W++,O.push(q);V()}else N.length>0&&(O=[{label:(0,t.localize)(1206,"symbols ({0})",P.length),type:"separator"},...N]);return O}compareByScore(u,C){if(typeof u.score!="number"&&typeof C.score=="number")return 1;if(typeof u.score=="number"&&typeof C.score!="number")return-1;if(typeof u.score=="number"&&typeof C.score=="number"){if(u.score>C.score)return-1;if(u.scoreC.index?1:0}compareByKindAndScore(u,C){const f=a[u.kind]||l,h=a[C.kind]||l,v=f.localeCompare(h);return v===0?this.compareByScore(u,C):v}async getDocumentSymbols(u,C){const f=await this._outlineModelService.getOrCreate(u,C);return C.isCancellationRequested?[]:f.asListOfDocumentSymbols()}};e.AbstractGotoSymbolQuickAccessProvider=c,e.AbstractGotoSymbolQuickAccessProvider=c=g=ke([ce(0,i.ILanguageFeaturesService),ce(1,n.IOutlineModelService)],c);const l=(0,t.localize)(1207,"properties ({0})"),a={5:(0,t.localize)(1208,"methods ({0})"),11:(0,t.localize)(1209,"functions ({0})"),8:(0,t.localize)(1210,"constructors ({0})"),12:(0,t.localize)(1211,"variables ({0})"),4:(0,t.localize)(1212,"classes ({0})"),22:(0,t.localize)(1213,"structs ({0})"),23:(0,t.localize)(1214,"events ({0})"),24:(0,t.localize)(1215,"operators ({0})"),10:(0,t.localize)(1216,"interfaces ({0})"),2:(0,t.localize)(1217,"namespaces ({0})"),3:(0,t.localize)(1218,"packages ({0})"),25:(0,t.localize)(1219,"type parameters ({0})"),1:(0,t.localize)(1220,"modules ({0})"),6:(0,t.localize)(1221,"properties ({0})"),9:(0,t.localize)(1222,"enumerations ({0})"),21:(0,t.localize)(1223,"enumeration members ({0})"),14:(0,t.localize)(1224,"strings ({0})"),0:(0,t.localize)(1225,"files ({0})"),17:(0,t.localize)(1226,"arrays ({0})"),15:(0,t.localize)(1227,"numbers ({0})"),16:(0,t.localize)(1228,"booleans ({0})"),18:(0,t.localize)(1229,"objects ({0})"),19:(0,t.localize)(1230,"keys ({0})"),7:(0,t.localize)(1231,"fields ({0})"),13:(0,t.localize)(1232,"constants ({0})")}}),define(ne[789],se([1,0,5,47,46,81,44,114,115,13,14,18,26,6,2,54,19,74,9,4,27,3,12,31,62,110,32,25,529]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RenameWidget=e.CONTEXT_RENAME_INPUT_FOCUSED=e.CONTEXT_RENAME_INPUT_VISIBLE=void 0;const L=!1;e.CONTEXT_RENAME_INPUT_VISIBLE=new C.RawContextKey("renameInputVisible",!1,u.localize(1246,"Whether the rename input widget is visible")),e.CONTEXT_RENAME_INPUT_FOCUSED=new C.RawContextKey("renameInputFocused",!1,u.localize(1247,"Whether the rename input widget is focused"));let D=class{constructor(N,O,F,x,W,V){this._editor=N,this._acceptKeybindings=O,this._themeService=F,this._keybindingService=x,this._logService=V,this.allowEditorOverflow=!0,this._disposables=new i.DisposableStore,this._visibleContextKey=e.CONTEXT_RENAME_INPUT_VISIBLE.bindTo(W),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new s.StopWatch,this._inputWithButton=new M,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration(q=>{q.hasChanged(50)&&this._updateFont()})),this._disposables.add(F.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._domNode.appendChild(this._inputWithButton.domNode),this._renameCandidateListView=this._disposables.add(new T(this._domNode,{fontInfo:this._editor.getOption(50),onFocusChange:N=>{this._inputWithButton.input.value=N,this._isEditingRenameCandidate=!1},onSelectionChange:()=>{this._isEditingRenameCandidate=!1,this.acceptInput(!1)}})),this._disposables.add(this._inputWithButton.onDidInputChange(()=>{this._renameCandidateListView?.focusedCandidate!==void 0&&(this._isEditingRenameCandidate=!0),this._timeBeforeFirstInputFieldEdit??=this._beforeFirstInputFieldEditSW.elapsed(),this._renameCandidateProvidersCts?.token.isCancellationRequested===!1&&this._renameCandidateProvidersCts.cancel(),this._renameCandidateListView?.clearFocus()})),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(N){if(!this._domNode)return;const O=N.getColor(w.widgetShadow),F=N.getColor(w.widgetBorder);this._domNode.style.backgroundColor=String(N.getColor(w.editorWidgetBackground)??""),this._domNode.style.boxShadow=O?` 0 0 8px 2px ${O}`:"",this._domNode.style.border=F?`1px solid ${F}`:"",this._domNode.style.color=String(N.getColor(w.inputForeground)??"");const x=N.getColor(w.inputBorder);this._inputWithButton.domNode.style.backgroundColor=String(N.getColor(w.inputBackground)??""),this._inputWithButton.input.style.backgroundColor=String(N.getColor(w.inputBackground)??""),this._inputWithButton.domNode.style.borderWidth=x?"1px":"0px",this._inputWithButton.domNode.style.borderStyle=x?"solid":"none",this._inputWithButton.domNode.style.borderColor=x?.toString()??"none"}_updateFont(){if(this._domNode===void 0)return;(0,g.assertType)(this._label!==void 0,"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined"),this._editor.applyFontInfo(this._inputWithButton.input);const N=this._editor.getOption(50);this._label.style.fontSize=`${this._computeLabelFontSize(N.fontSize)}px`}_computeLabelFontSize(N){return N*.8}getPosition(){if(!this._visible||!this._editor.hasModel()||!this._editor.getDomNode())return null;const N=d.getClientArea(this.getDomNode().ownerDocument.body),O=d.getDomNodePagePosition(this._editor.getDomNode()),F=this._getTopForPosition();this._nPxAvailableAbove=F+O.top,this._nPxAvailableBelow=N.height-this._nPxAvailableAbove;const x=this._editor.getOption(67),{totalHeight:W}=A.getLayoutInfo({lineHeight:x}),V=this._nPxAvailableBelow>W*6?[2,1]:[1,2];return{position:this._position,preference:V}}beforeRender(){const[N,O]=this._acceptKeybindings;return this._label.innerText=u.localize(1248,"{0} to Rename, {1} to Preview",this._keybindingService.lookupKeybinding(N)?.getLabel(),this._keybindingService.lookupKeybinding(O)?.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(N){if(N===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;(0,g.assertType)(this._renameCandidateListView),(0,g.assertType)(this._nPxAvailableAbove!==void 0),(0,g.assertType)(this._nPxAvailableBelow!==void 0);const O=d.getTotalHeight(this._inputWithButton.domNode),F=d.getTotalHeight(this._label);let x;N===2?x=this._nPxAvailableBelow:x=this._nPxAvailableAbove,this._renameCandidateListView.layout({height:x-F-O,width:d.getTotalWidth(this._inputWithButton.domNode)})}acceptInput(N){this._trace("invoking acceptInput"),this._currentAcceptInput?.(N)}cancelInput(N,O){this._currentCancelInput?.(N)}focusNextRenameSuggestion(){this._renameCandidateListView?.focusNext()||(this._inputWithButton.input.value=this._currentName)}focusPreviousRenameSuggestion(){this._renameCandidateListView?.focusPrevious()||(this._inputWithButton.input.value=this._currentName)}getInput(N,O,F,x,W){const{start:V,end:q}=this._getSelection(N,O);this._renameCts=W;const H=new i.DisposableStore;this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,x===void 0?this._inputWithButton.button.style.display="none":(this._inputWithButton.button.style.display="flex",this._requestRenameCandidatesOnce=x,this._requestRenameCandidates(O,!1),H.add(d.addDisposableListener(this._inputWithButton.button,"click",()=>this._requestRenameCandidates(O,!0))),H.add(d.addDisposableListener(this._inputWithButton.button,d.EventType.KEY_DOWN,U=>{const j=new k.StandardKeyboardEvent(U);(j.equals(3)||j.equals(10))&&(j.stopPropagation(),j.preventDefault(),this._requestRenameCandidates(O,!0))}))),this._isEditingRenameCandidate=!1,this._domNode.classList.toggle("preview",F),this._position=new l.Position(N.startLineNumber,N.startColumn),this._currentName=O,this._inputWithButton.input.value=O,this._inputWithButton.input.setAttribute("selectionStart",V.toString()),this._inputWithButton.input.setAttribute("selectionEnd",q.toString()),this._inputWithButton.input.size=Math.max((N.endColumn-N.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),H.add((0,i.toDisposable)(()=>{this._renameCts=void 0,W.dispose(!0)})),H.add((0,i.toDisposable)(()=>{this._renameCandidateProvidersCts!==void 0&&(this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0)})),H.add((0,i.toDisposable)(()=>this._candidates.clear()));const z=new p.DeferredPromise;return z.p.finally(()=>{H.dispose(),this._hide()}),this._currentCancelInput=U=>(this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView?.clearCandidates(),z.complete(U),!0),this._currentAcceptInput=U=>{this._trace("invoking _currentAcceptInput"),(0,g.assertType)(this._renameCandidateListView!==void 0);const j=this._renameCandidateListView.nCandidates;let Y,G;const K=this._renameCandidateListView.focusedCandidate;if(K!==void 0?(this._trace("using new name from renameSuggestion"),Y=K,G={k:"renameSuggestion"}):(this._trace("using new name from inputField"),Y=this._inputWithButton.input.value,G=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"}),Y===O||Y.trim().length===0){this.cancelInput(!0,"_currentAcceptInput (because newName === value || newName.trim().length === 0)");return}this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView.clearCandidates(),z.complete({newName:Y,wantsPreview:F&&U,stats:{source:G,nRenameSuggestions:j,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},H.add(W.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),L||H.add(this._editor.onDidBlurEditorWidget(()=>this.cancelInput(!this._domNode?.ownerDocument.hasFocus(),"editor.onDidBlurEditorWidget"))),this._show(),z.p}_requestRenameCandidates(N,O){if(this._requestRenameCandidatesOnce!==void 0&&(this._renameCandidateProvidersCts!==void 0&&this._renameCandidateProvidersCts.dispose(!0),(0,g.assertType)(this._renameCts),this._inputWithButton.buttonState!=="stop")){this._renameCandidateProvidersCts=new n.CancellationTokenSource;const F=O?r.NewSymbolNameTriggerKind.Invoke:r.NewSymbolNameTriggerKind.Automatic,x=this._requestRenameCandidatesOnce(F,this._renameCandidateProvidersCts.token);if(x.length===0){this._inputWithButton.setSparkleButton();return}O||(this._hadAutomaticRenameSuggestionsInvocation=!0),this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(x,N,this._renameCts.token)}}_getSelection(N,O){(0,g.assertType)(this._editor.hasModel());const F=this._editor.getSelection();let x=0,W=O.length;return!a.Range.isEmpty(F)&&!a.Range.spansMultipleLines(F)&&a.Range.containsRange(N,F)&&(x=Math.max(0,F.startColumn-N.startColumn),W=Math.min(N.endColumn,F.endColumn)-N.startColumn),{start:x,end:W}}_show(){this._trace("invoking _show"),this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout(()=>{this._inputWithButton.input.focus(),this._inputWithButton.input.setSelectionRange(parseInt(this._inputWithButton.input.getAttribute("selectionStart")),parseInt(this._inputWithButton.input.getAttribute("selectionEnd")))},100)}async _updateRenameCandidates(N,O,F){const x=(...z)=>this._trace("_updateRenameCandidates",...z);x("start");const W=await(0,p.raceCancellation)(Promise.allSettled(N),F);if(this._inputWithButton.setSparkleButton(),W===void 0){x("returning early - received updateRenameCandidates results - undefined");return}const V=W.flatMap(z=>z.status==="fulfilled"&&(0,g.isDefined)(z.value)?z.value:[]);x(`received updateRenameCandidates results - total (unfiltered) ${V.length} candidates.`);const q=b.distinct(V,z=>z.newSymbolName);x(`distinct candidates - ${q.length} candidates.`);const H=q.filter(({newSymbolName:z})=>z.trim().length>0&&z!==this._inputWithButton.input.value&&z!==O&&!this._candidates.has(z));if(x(`valid distinct candidates - ${V.length} candidates.`),H.forEach(z=>this._candidates.add(z.newSymbolName)),H.length<1){x("returning early - no valid distinct candidates");return}x("setting candidates"),this._renameCandidateListView.setCandidates(H),x("asking editor to re-layout"),this._editor.layoutContentWidget(this)}_hide(){this._trace("invoked _hide"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){const N=this._editor.getVisibleRanges();let O;return N.length>0?O=N[0].startLineNumber:(this._logService.warn("RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty"),O=Math.max(1,this._position.lineNumber-5)),this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(O)}_trace(...N){this._logService.trace("RenameWidget",...N)}};e.RenameWidget=D,e.RenameWidget=D=ke([ce(2,S.IThemeService),ce(3,f.IKeybindingService),ce(4,C.IContextKeyService),ce(5,h.ILogService)],D);class T{constructor(N,O){this._disposables=new i.DisposableStore,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=O.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=O.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.className="rename-box rename-candidate-list-container",N.appendChild(this._listContainer),this._listWidget=T._createListWidget(this._listContainer,this._candidateViewHeight,O.fontInfo),this._listWidget.onDidChangeFocus(F=>{F.elements.length===1&&O.onFocusChange(F.elements[0].newSymbolName)},this._disposables),this._listWidget.onDidChangeSelection(F=>{F.elements.length===1&&O.onSelectionChange()},this._disposables),this._disposables.add(this._listWidget.onDidBlur(F=>{this._listWidget.setFocus([])})),this._listWidget.style((0,v.getListStyles)({listInactiveFocusForeground:w.quickInputListFocusForeground,listInactiveFocusBackground:w.quickInputListFocusBackground}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:N,width:O}){this._availableHeight=N,this._minimumWidth=O}setCandidates(N){this._listWidget.splice(0,0,N);const O=this._pickListHeight(this._listWidget.length),F=this._pickListWidth(N);this._listWidget.layout(O,F),this._listContainer.style.height=`${O}px`,this._listContainer.style.width=`${F}px`,I.status(u.localize(1249,"Received {0} rename suggestions",N.length))}clearCandidates(){this._listContainer.style.height="0px",this._listContainer.style.width="0px",this._listWidget.splice(0,this._listWidget.length,[])}get nCandidates(){return this._listWidget.length}get focusedCandidate(){if(this._listWidget.length===0)return;const N=this._listWidget.getSelectedElements()[0];if(N!==void 0)return N.newSymbolName;const O=this._listWidget.getFocusedElements()[0];if(O!==void 0)return O.newSymbolName}focusNext(){if(this._listWidget.length===0)return!1;const N=this._listWidget.getFocus();if(N.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;if(N[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;{this._listWidget.focusNext();const O=this._listWidget.getFocus()[0];return this._listWidget.reveal(O),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;const N=this._listWidget.getFocus();if(N.length===0){this._listWidget.focusLast();const O=this._listWidget.getFocus()[0];return this._listWidget.reveal(O),!0}else{if(N[0]===0)return this._listWidget.setFocus([]),!1;{this._listWidget.focusPrevious();const O=this._listWidget.getFocus()[0];return this._listWidget.reveal(O),!0}}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){const{totalHeight:N}=A.getLayoutInfo({lineHeight:this._lineHeight});return N}_pickListHeight(N){const O=this._candidateViewHeight*N;return Math.min(O,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(N){const O=Math.ceil(Math.max(...N.map(x=>x.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+O+10)}static _createListWidget(N,O,F){const x=new class{getTemplateId(V){return"candidate"}getHeight(V){return O}},W=new class{constructor(){this.templateId="candidate"}renderTemplate(V){return new A(V,F)}renderElement(V,q,H){H.populate(V)}disposeTemplate(V){V.dispose()}};return new _.List("NewSymbolNameCandidates",N,x,[W],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class M{constructor(){this._onDidInputChange=new t.Emitter,this.onDidInputChange=this._onDidInputChange.event,this._disposables=new i.DisposableStore}get domNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="rename-input-with-button",this._domNode.style.display="flex",this._domNode.style.flexDirection="row",this._domNode.style.alignItems="center",this._inputNode=document.createElement("input"),this._inputNode.className="rename-input",this._inputNode.type="text",this._inputNode.style.border="none",this._inputNode.setAttribute("aria-label",u.localize(1250,"Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._inputNode),this._buttonNode=document.createElement("div"),this._buttonNode.className="rename-suggestions-button",this._buttonNode.setAttribute("tabindex","0"),this._buttonGenHoverText=u.localize(1251,"Generate new name suggestions"),this._buttonCancelHoverText=u.localize(1252,"Cancel"),this._buttonHover=(0,E.getBaseLayerHoverDelegate)().setupManagedHover((0,y.getDefaultHoverDelegate)("element"),this._buttonNode,this._buttonGenHoverText),this._disposables.add(this._buttonHover),this._domNode.appendChild(this._buttonNode),this._disposables.add(d.addDisposableListener(this.input,d.EventType.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(d.addDisposableListener(this.input,d.EventType.KEY_DOWN,N=>{const O=new k.StandardKeyboardEvent(N);(O.keyCode===15||O.keyCode===17)&&this._onDidInputChange.fire()})),this._disposables.add(d.addDisposableListener(this.input,d.EventType.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(d.addDisposableListener(this.input,d.EventType.FOCUS,()=>{this.domNode.style.outlineWidth="1px",this.domNode.style.outlineStyle="solid",this.domNode.style.outlineOffset="-1px",this.domNode.style.outlineColor="var(--vscode-focusBorder)"})),this._disposables.add(d.addDisposableListener(this.input,d.EventType.BLUR,()=>{this.domNode.style.outline="none"}))),this._domNode}get input(){return(0,g.assertType)(this._inputNode),this._inputNode}get button(){return(0,g.assertType)(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){this._buttonState="sparkle",this._sparkleIcon??=(0,m.renderIcon)(o.Codicon.sparkle),d.clearNode(this.button),this.button.appendChild(this._sparkleIcon),this.button.setAttribute("aria-label","Generating new name suggestions"),this._buttonHover?.update(this._buttonGenHoverText),this.input.focus()}setStopButton(){this._buttonState="stop",this._stopIcon??=(0,m.renderIcon)(o.Codicon.primitiveSquare),d.clearNode(this.button),this.button.appendChild(this._stopIcon),this.button.setAttribute("aria-label","Cancel generating new name suggestions"),this._buttonHover?.update(this._buttonCancelHoverText),this.input.focus()}dispose(){this._disposables.dispose()}}class A{static{this._PADDING=2}constructor(N,O){this._domNode=document.createElement("div"),this._domNode.className="rename-box rename-candidate",this._domNode.style.display="flex",this._domNode.style.columnGap="5px",this._domNode.style.alignItems="center",this._domNode.style.height=`${O.lineHeight}px`,this._domNode.style.padding=`${A._PADDING}px`;const F=document.createElement("div");F.style.display="flex",F.style.alignItems="center",F.style.width=F.style.height=`${O.lineHeight*.8}px`,this._domNode.appendChild(F),this._icon=(0,m.renderIcon)(o.Codicon.sparkle),this._icon.style.display="none",F.appendChild(this._icon),this._label=document.createElement("div"),c.applyFontInfo(this._label,O),this._domNode.appendChild(this._label),N.appendChild(this._domNode)}populate(N){this._updateIcon(N),this._updateLabel(N)}_updateIcon(N){const O=!!N.tags?.includes(r.NewSymbolNameTag.AIGenerated);this._icon.style.display=O?"inherit":"none"}_updateLabel(N){this._label.innerText=N.newSymbolName}static getLayoutInfo({lineHeight:N}){return{totalHeight:N+A._PADDING*2}}dispose(){}}}),define(ne[790],se([1,0,46,14,18,8,57,2,19,22,15,152,34,9,4,20,27,17,211,122,184,3,29,109,12,7,62,50,96,38,63,789]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M){"use strict";var A;Object.defineProperty(e,"__esModule",{value:!0}),e.RenameAction=void 0,e.rename=N;class P{constructor(V,q,H){this.model=V,this.position=q,this._providerRenameIdx=0,this._providers=H.ordered(V)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(V){const q=[];for(this._providerRenameIdx=0;this._providerRenameIdx0?q.join(` +`):void 0}:{range:i.Range.fromPositions(this.position),text:"",rejectReason:q.length>0?q.join(` +`):void 0}}async provideRenameEdits(V,q){return this._provideRenameEdits(V,this._providerRenameIdx,[],q)}async _provideRenameEdits(V,q,H,z){const U=this._providers[q];if(!U)return{edits:[],rejectReason:H.join(` +`)};const j=await U.provideRenameEdits(this.model,this.position,V,z);if(j){if(j.rejectReason)return this._provideRenameEdits(V,q+1,H.concat(j.rejectReason),z)}else return this._provideRenameEdits(V,q+1,H.concat(u.localize(1235,"No result.")),z);return j}}async function N(W,V,q,H){const z=new P(V,q,W),U=await z.resolveRenameLocation(I.CancellationToken.None);return U?.rejectReason?{edits:[],rejectReason:U.rejectReason}:z.provideRenameEdits(H,I.CancellationToken.None)}let O=class{static{A=this}static{this.ID="editor.contrib.renameController"}static get(V){return V.getContribution(A.ID)}constructor(V,q,H,z,U,j,Y,G,K){this.editor=V,this._instaService=q,this._notificationService=H,this._bulkEditService=z,this._progressService=U,this._logService=j,this._configService=Y,this._languageFeaturesService=G,this._telemetryService=K,this._disposableStore=new m.DisposableStore,this._cts=new I.CancellationTokenSource,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(M.RenameWidget,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){const V=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new I.CancellationTokenSource,!this.editor.hasModel()){V("editor has no model");return}const q=this.editor.getPosition(),H=new P(this.editor.getModel(),q,this._languageFeaturesService.renameProvider);if(!H.hasProvider()){V("skeleton has no provider");return}const z=new a.EditorStateCancellationTokenSource(this.editor,5,void 0,this._cts.token);let U;try{V("resolving rename location");const he=H.resolveRenameLocation(z.token);this._progressService.showWhile(he,250),U=await he,V("resolved rename location")}catch(he){he instanceof E.CancellationError?V("resolve rename location cancelled",JSON.stringify(he,null," ")):(V("resolve rename location failed",he instanceof Error?he:JSON.stringify(he,null," ")),(typeof he=="string"||(0,y.isMarkdownString)(he))&&r.MessageController.get(this.editor)?.showMessage(he||u.localize(1236,"An unknown error occurred while resolving rename location"),q));return}finally{z.dispose()}if(!U){V("returning early - no loc");return}if(U.rejectReason){V(`returning early - rejected with reason: ${U.rejectReason}`,U.rejectReason),r.MessageController.get(this.editor)?.showMessage(U.rejectReason,q);return}if(z.token.isCancellationRequested){V("returning early - cts1 cancelled");return}const j=new a.EditorStateCancellationTokenSource(this.editor,5,U.range,this._cts.token),Y=this.editor.getModel(),G=this._languageFeaturesService.newSymbolNamesProvider.all(Y),K=await Promise.all(G.map(async he=>[he,await he.supportsAutomaticNewSymbolNamesTriggerKind??!1])),R=(he,pe)=>{let ae=K.slice();return he===g.NewSymbolNameTriggerKind.Automatic&&(ae=ae.filter(([ee,de])=>de)),ae.map(([ee])=>ee.provideNewSymbolNames(Y,U.range,he,pe))};V("creating rename input field and awaiting its result");const J=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),ie=await this._renameWidget.getInput(U.range,U.text,J,G.length>0?R:void 0,j);if(V("received response from rename input field"),G.length>0&&this._reportTelemetry(G.length,Y.getLanguageId(),ie),typeof ie=="boolean"){V(`returning early - rename input field response - ${ie}`),ie&&this.editor.focus(),j.dispose();return}this.editor.focus(),V("requesting rename edits");const ue=(0,k.raceCancellation)(H.provideRenameEdits(ie.newName,j.token),j.token).then(async he=>{if(!he){V("returning early - no rename edits result");return}if(!this.editor.hasModel()){V("returning early - no model after rename edits are provided");return}if(he.rejectReason){V(`returning early - rejected with reason: ${he.rejectReason}`),this._notificationService.info(he.rejectReason);return}this.editor.setSelection(i.Range.fromPositions(this.editor.getSelection().getPosition())),V("applying edits"),this._bulkEditService.apply(he,{editor:this.editor,showPreview:ie.wantsPreview,label:u.localize(1237,"Renaming '{0}' to '{1}'",U?.text,ie.newName),code:"undoredo.rename",quotableLabel:u.localize(1238,"Renaming {0} to {1}",U?.text,ie.newName),respectAutoSaveConfig:!0}).then(pe=>{V("edits applied"),pe.ariaSummary&&(0,d.alert)(u.localize(1239,"Successfully renamed '{0}' to '{1}'. Summary: {2}",U.text,ie.newName,pe.ariaSummary))}).catch(pe=>{V(`error when applying edits ${JSON.stringify(pe,null," ")}`),this._notificationService.error(u.localize(1240,"Rename failed to apply edits")),this._logService.error(pe)})},he=>{V("error when providing rename edits",JSON.stringify(he,null," ")),this._notificationService.error(u.localize(1241,"Rename failed to compute edits")),this._logService.error(he)}).finally(()=>{j.dispose()});return V("returning rename operation"),this._progressService.showWhile(ue,250),ue}acceptRenameInput(V){this._renameWidget.acceptInput(V)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}_reportTelemetry(V,q,H){const z=typeof H=="boolean"?{kind:"cancelled",languageId:q,nRenameSuggestionProviders:V}:{kind:"accepted",languageId:q,nRenameSuggestionProviders:V,source:H.stats.source.k,nRenameSuggestions:H.stats.nRenameSuggestions,timeBeforeFirstInputFieldEdit:H.stats.timeBeforeFirstInputFieldEdit,wantsPreview:H.wantsPreview,nRenameSuggestionsInvocations:H.stats.nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:H.stats.hadAutomaticRenameSuggestionsInvocation};this._telemetryService.publicLog2("renameInvokedEvent",z)}};O=A=ke([ce(1,v.IInstantiationService),ce(2,S.INotificationService),ce(3,n.IBulkEditService),ce(4,L.IEditorProgressService),ce(5,w.ILogService),ce(6,l.ITextResourceConfigurationService),ce(7,c.ILanguageFeaturesService),ce(8,T.ITelemetryService)],O);class F extends p.EditorAction{constructor(){super({id:"editor.action.rename",label:u.localize(1242,"Rename Symbol"),alias:"Rename Symbol",precondition:h.ContextKeyExpr.and(s.EditorContextKeys.writable,s.EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}runCommand(V,q){const H=V.get(o.ICodeEditorService),[z,U]=Array.isArray(q)&&q||[void 0,void 0];return b.URI.isUri(z)&&t.Position.isIPosition(U)?H.openCodeEditor({resource:z},H.getActiveCodeEditor()).then(j=>{j&&(j.setPosition(U),j.invokeWithinContext(Y=>(this.reportTelemetry(Y,j),this.run(Y,j))))},E.onUnexpectedError):super.runCommand(V,q)}run(V,q){const H=V.get(w.ILogService),z=O.get(q);return z?(H.trace("[RenameAction] got controller, running..."),z.run()):(H.trace("[RenameAction] returning early - controller missing"),Promise.resolve())}}e.RenameAction=F,(0,p.registerEditorContribution)(O.ID,O,4),(0,p.registerEditorAction)(F);const x=p.EditorCommand.bindToContribution(O.get);(0,p.registerEditorCommand)(new x({id:"acceptRenameInput",precondition:M.CONTEXT_RENAME_INPUT_VISIBLE,handler:W=>W.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:h.ContextKeyExpr.and(s.EditorContextKeys.focus,h.ContextKeyExpr.not("isComposing")),primary:3}})),(0,p.registerEditorCommand)(new x({id:"acceptRenameInputWithPreview",precondition:h.ContextKeyExpr.and(M.CONTEXT_RENAME_INPUT_VISIBLE,h.ContextKeyExpr.has("config.editor.rename.enablePreview")),handler:W=>W.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:h.ContextKeyExpr.and(s.EditorContextKeys.focus,h.ContextKeyExpr.not("isComposing")),primary:2051}})),(0,p.registerEditorCommand)(new x({id:"cancelRenameInput",precondition:M.CONTEXT_RENAME_INPUT_VISIBLE,handler:W=>W.cancelRenameInput(),kbOpts:{weight:199,kbExpr:s.EditorContextKeys.focus,primary:9,secondary:[1033]}})),(0,C.registerAction2)(class extends C.Action2{constructor(){super({id:"focusNextRenameSuggestion",title:{...u.localize2(1244,"Focus Next Rename Suggestion")},precondition:M.CONTEXT_RENAME_INPUT_VISIBLE,keybinding:[{primary:18,weight:199}]})}run(V){const q=V.get(o.ICodeEditorService).getFocusedCodeEditor();if(!q)return;const H=O.get(q);H&&H.focusNextRenameSuggestion()}}),(0,C.registerAction2)(class extends C.Action2{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...u.localize2(1245,"Focus Previous Rename Suggestion")},precondition:M.CONTEXT_RENAME_INPUT_VISIBLE,keybinding:[{primary:16,weight:199}]})}run(V){const q=V.get(o.ICodeEditorService).getFocusedCodeEditor();if(!q)return;const H=O.get(q);H&&H.focusPreviousRenameSuggestion()}}),(0,p.registerModelAndPositionCommand)("_executeDocumentRenameProvider",function(W,V,q,...H){const[z]=H;(0,_.assertType)(typeof z=="string");const{renameProvider:U}=W.get(c.ILanguageFeaturesService);return N(U,V,q,z)}),(0,p.registerModelAndPositionCommand)("_executePrepareRename",async function(W,V,q){const{renameProvider:H}=W.get(c.ILanguageFeaturesService),U=await new P(V,q,H).resolveRenameLocation(I.CancellationToken.None);if(U?.rejectReason)throw new Error(U.rejectReason);return U}),D.Registry.as(f.Extensions.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:u.localize(1243,"Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}})}),define(ne[791],se([1,0,2,8,51,28,14,18,25,282,387,79,54,17,267,130,339]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";var c;Object.defineProperty(e,"__esModule",{value:!0}),e.DocumentSemanticTokensFeature=void 0;let l=class extends d.Disposable{constructor(C,f,h,v,w,S){super(),this._watchers=Object.create(null);const L=M=>{this._watchers[M.uri.toString()]=new a(M,C,h,w,S)},D=(M,A)=>{A.dispose(),delete this._watchers[M.uri.toString()]},T=()=>{for(const M of f.getModels()){const A=this._watchers[M.uri.toString()];(0,g.isSemanticColoringEnabled)(M,h,v)?A||L(M):A&&D(M,A)}};f.getModels().forEach(M=>{(0,g.isSemanticColoringEnabled)(M,h,v)&&L(M)}),this._register(f.onModelAdded(M=>{(0,g.isSemanticColoringEnabled)(M,h,v)&&L(M)})),this._register(f.onModelRemoved(M=>{const A=this._watchers[M.uri.toString()];A&&D(M,A)})),this._register(v.onDidChangeConfiguration(M=>{M.affectsConfiguration(g.SEMANTIC_HIGHLIGHTING_SETTING_ID)&&T()})),this._register(h.onDidColorThemeChange(T))}dispose(){for(const C of Object.values(this._watchers))C.dispose();super.dispose()}};e.DocumentSemanticTokensFeature=l,e.DocumentSemanticTokensFeature=l=ke([ce(0,i.ISemanticTokensStylingService),ce(1,I.IModelService),ce(2,_.IThemeService),ce(3,E.IConfigurationService),ce(4,n.ILanguageFeatureDebounceService),ce(5,t.ILanguageFeaturesService)],l);let a=class extends d.Disposable{static{c=this}static{this.REQUEST_MIN_DELAY=300}static{this.REQUEST_MAX_DELAY=2e3}constructor(C,f,h,v,w){super(),this._semanticTokensStylingService=f,this._isDisposed=!1,this._model=C,this._provider=w.documentSemanticTokensProvider,this._debounceInformation=v.for(this._provider,"DocumentSemanticTokens",{min:c.REQUEST_MIN_DELAY,max:c.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new y.RunOnceScheduler(()=>this._fetchDocumentSemanticTokensNow(),c.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeAttached(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)}));const S=()=>{(0,d.dispose)(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const L of this._provider.all(C))typeof L.onDidChange=="function"&&this._documentProvidersChangeListeners.push(L.onDidChange(()=>{if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}))};S(),this._register(this._provider.onDidChange(()=>{S(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(h.onDidColorThemeChange(L=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),(0,d.dispose)(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!(0,p.hasDocumentSemanticTokensProvider)(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;const C=new m.CancellationTokenSource,f=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,h=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,v=(0,p.getDocumentSemanticTokens)(this._provider,this._model,f,h,C.token);this._currentDocumentRequestCancellationTokenSource=C,this._providersChangedDuringRequest=!1;const w=[],S=this._model.onDidChangeContent(D=>{w.push(D)}),L=new o.StopWatch(!1);v.then(D=>{if(this._debounceInformation.update(this._model,L.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,S.dispose(),!D)this._setDocumentSemanticTokens(null,null,null,w);else{const{provider:T,tokens:M}=D,A=this._semanticTokensStylingService.getStyling(T);this._setDocumentSemanticTokens(T,M||null,A,w)}},D=>{D&&(k.isCancellationError(D)||typeof D.message=="string"&&D.message.indexOf("busy")!==-1)||k.onUnexpectedError(D),this._currentDocumentRequestCancellationTokenSource=null,S.dispose(),(w.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(C,f,h,v,w){w=Math.min(w,h.length-v,C.length-f);for(let S=0;S{(v.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed){C&&f&&C.releaseDocumentSemanticTokens(f.resultId);return}if(!C||!h){this._model.tokenization.setSemanticTokens(null,!1);return}if(!f){this._model.tokenization.setSemanticTokens(null,!0),S();return}if((0,p.isSemanticTokensEdits)(f)){if(!w){this._model.tokenization.setSemanticTokens(null,!0);return}if(f.edits.length===0)f={resultId:f.resultId,data:w.data};else{let L=0;for(const P of f.edits)L+=(P.data?P.data.length:0)-P.deleteCount;const D=w.data,T=new Uint32Array(D.length+L);let M=D.length,A=T.length;for(let P=f.edits.length-1;P>=0;P--){const N=f.edits[P];if(N.start>D.length){h.warnInvalidEditStart(w.resultId,f.resultId,P,N.start,D.length),this._model.tokenization.setSemanticTokens(null,!0);return}const O=M-(N.start+N.deleteCount);O>0&&(c._copy(D,M-O,T,A-O,O),A-=O),N.data&&(c._copy(N.data,0,T,A-N.data.length,N.data.length),A-=N.data.length),M=N.start}M>0&&c._copy(D,0,T,0,M),f={resultId:f.resultId,data:T}}}if((0,p.isSemanticTokens)(f)){this._currentDocumentResponse=new r(C,f.resultId,f.data);const L=(0,b.toMultilineTokens2)(f,h,this._model.getLanguageId());if(v.length>0)for(const D of v)for(const T of L)for(const M of D.changes)T.applyEdit(M.range,M.text);this._model.tokenization.setSemanticTokens(L,!0)}else this._model.tokenization.setSemanticTokens(null,!0);S()}};a=c=ke([ce(1,i.ISemanticTokensStylingService),ce(2,_.IThemeService),ce(3,n.ILanguageFeatureDebounceService),ce(4,t.ILanguageFeaturesService)],a);class r{constructor(C,f,h){this.provider=C,this.resultId=f,this.data=h}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}(0,s.registerEditorFeature)(l)}),define(ne[792],se([1,0,14,2,15,387,339,282,28,25,79,54,17,267]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewportSemanticTokensContribution=void 0;let i=class extends k.Disposable{static{this.ID="editor.contrib.viewportSemanticTokens"}constructor(g,c,l,a,r,u){super(),this._semanticTokensStylingService=c,this._themeService=l,this._configurationService=a,this._editor=g,this._provider=u.documentRangeSemanticTokensProvider,this._debounceInformation=r.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new d.RunOnceScheduler(()=>this._tokenizeViewportNow(),100)),this._outstandingRequests=[];const C=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))};this._register(this._editor.onDidScrollChange(()=>{C()})),this._register(this._editor.onDidChangeModel(()=>{this._cancelAll(),C()})),this._register(this._editor.onDidChangeModelContent(f=>{this._cancelAll(),C()})),this._register(this._provider.onDidChange(()=>{this._cancelAll(),C()})),this._register(this._configurationService.onDidChangeConfiguration(f=>{f.affectsConfiguration(y.SEMANTIC_HIGHLIGHTING_SETTING_ID)&&(this._cancelAll(),C())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),C()})),C()}_cancelAll(){for(const g of this._outstandingRequests)g.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(g){for(let c=0,l=this._outstandingRequests.length;cthis._requestRange(g,l)))}_requestRange(g,c){const l=g.getVersionId(),a=(0,d.createCancelablePromise)(u=>Promise.resolve((0,E.getDocumentRangeSemanticTokens)(this._provider,g,c,u))),r=new n.StopWatch(!1);return a.then(u=>{if(this._debounceInformation.update(g,r.elapsed()),!u||!u.tokens||g.isDisposed()||g.getVersionId()!==l)return;const{provider:C,tokens:f}=u,h=this._semanticTokensStylingService.getStyling(C);g.tokenization.setPartialSemanticTokens(c,(0,m.toMultilineTokens2)(f,h,g.getLanguageId()))}).then(()=>this._removeOutstandingRequest(a),()=>this._removeOutstandingRequest(a)),a}};e.ViewportSemanticTokensContribution=i,e.ViewportSemanticTokensContribution=i=ke([ce(1,t.ISemanticTokensStylingService),ce(2,b.IThemeService),ce(3,_.IConfigurationService),ce(4,p.ILanguageFeatureDebounceService),ce(5,o.ILanguageFeaturesService)],i),(0,I.registerEditorContribution)(i.ID,i,1)}),define(ne[793],se([1,0,5,254,26,30,6,82,2,22,27,708,51,43,3,382,71,25,402]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ItemRenderer=void 0,e.getAriaId=a;function a(h){return`suggest-aria-id:${h}`}const r=(0,g.registerIcon)("suggest-more-info",I.Codicon.chevronRight,i.localize(1346,"Icon for more information in the suggest widget.")),u=new class xt{static{this._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/}static{this._regexStrict=new RegExp(`^${xt._regexRelaxed.source}$`,"i")}extract(v,w){if(v.textLabel.match(xt._regexStrict))return w[0]=v.textLabel,!0;if(v.completion.detail&&v.completion.detail.match(xt._regexStrict))return w[0]=v.completion.detail,!0;if(v.completion.documentation){const S=typeof v.completion.documentation=="string"?v.completion.documentation:v.completion.documentation.value,L=xt._regexRelaxed.exec(S);if(L&&(L.index===0||L.index+L[0].length===S.length))return w[0]=L[0],!0}return!1}};let C=class{constructor(v,w,S,L){this._editor=v,this._modelService=w,this._languageService=S,this._themeService=L,this._onDidToggleDetails=new y.Emitter,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(v){const w=new _.DisposableStore,S=v;S.classList.add("show-file-icons");const L=(0,d.append)(v,(0,d.$)(".icon")),D=(0,d.append)(L,(0,d.$)("span.colorspan")),T=(0,d.append)(v,(0,d.$)(".contents")),M=(0,d.append)(T,(0,d.$)(".main")),A=(0,d.append)(M,(0,d.$)(".icon-label.codicon")),P=(0,d.append)(M,(0,d.$)("span.left")),N=(0,d.append)(M,(0,d.$)("span.right")),O=new k.IconLabel(P,{supportHighlights:!0,supportIcons:!0});w.add(O);const F=(0,d.append)(P,(0,d.$)("span.signature-label")),x=(0,d.append)(P,(0,d.$)("span.qualifier-label")),W=(0,d.append)(N,(0,d.$)("span.details-label")),V=(0,d.append)(N,(0,d.$)("span.readMore"+E.ThemeIcon.asCSSSelector(r)));return V.title=i.localize(1347,"Read More"),{root:S,left:P,right:N,icon:L,colorspan:D,iconLabel:O,iconContainer:A,parametersLabel:F,qualifierLabel:x,detailsLabel:W,readMore:V,disposables:w,configureFont:()=>{const H=this._editor.getOptions(),z=H.get(50),U=z.getMassagedFontFamily(),j=z.fontFeatureSettings,Y=H.get(120)||z.fontSize,G=H.get(121)||z.lineHeight,K=z.fontWeight,R=z.letterSpacing,J=`${Y}px`,ie=`${G}px`,ue=`${R}px`;S.style.fontSize=J,S.style.fontWeight=K,S.style.letterSpacing=ue,M.style.fontFamily=U,M.style.fontFeatureSettings=j,M.style.lineHeight=ie,L.style.height=ie,L.style.width=ie,V.style.height=ie,V.style.width=ie}}}renderElement(v,w,S){S.configureFont();const{completion:L}=v;S.root.id=a(w),S.colorspan.style.backgroundColor="";const D={labelEscapeNewLines:!0,matches:(0,m.createMatches)(v.score)},T=[];if(L.kind===19&&u.extract(v,T))S.icon.className="icon customcolor",S.iconContainer.className="icon hide",S.colorspan.style.backgroundColor=T[0];else if(L.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){S.icon.className="icon hide",S.iconContainer.className="icon hide";const M=(0,n.getIconClasses)(this._modelService,this._languageService,b.URI.from({scheme:"fake",path:v.textLabel}),s.FileKind.FILE),A=(0,n.getIconClasses)(this._modelService,this._languageService,b.URI.from({scheme:"fake",path:L.detail}),s.FileKind.FILE);D.extraClasses=M.length>A.length?M:A}else L.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons?(S.icon.className="icon hide",S.iconContainer.className="icon hide",D.extraClasses=[(0,n.getIconClasses)(this._modelService,this._languageService,b.URI.from({scheme:"fake",path:v.textLabel}),s.FileKind.FOLDER),(0,n.getIconClasses)(this._modelService,this._languageService,b.URI.from({scheme:"fake",path:L.detail}),s.FileKind.FOLDER)].flat()):(S.icon.className="icon hide",S.iconContainer.className="",S.iconContainer.classList.add("suggest-icon",...E.ThemeIcon.asClassNameArray(p.CompletionItemKinds.toIcon(L.kind))));L.tags&&L.tags.indexOf(1)>=0&&(D.extraClasses=(D.extraClasses||[]).concat(["deprecated"]),D.matches=[]),S.iconLabel.setLabel(v.textLabel,void 0,D),typeof L.label=="string"?(S.parametersLabel.textContent="",S.detailsLabel.textContent=f(L.detail||""),S.root.classList.add("string-label")):(S.parametersLabel.textContent=f(L.label.detail||""),S.detailsLabel.textContent=f(L.label.description||""),S.root.classList.remove("string-label")),this._editor.getOption(119).showInlineDetails?(0,d.show)(S.detailsLabel):(0,d.hide)(S.detailsLabel),(0,l.canExpandCompletionItem)(v)?(S.right.classList.add("can-expand-details"),(0,d.show)(S.readMore),S.readMore.onmousedown=M=>{M.stopPropagation(),M.preventDefault()},S.readMore.onclick=M=>{M.stopPropagation(),M.preventDefault(),this._onDidToggleDetails.fire()}):(S.right.classList.remove("can-expand-details"),(0,d.hide)(S.readMore),S.readMore.onmousedown=null,S.readMore.onclick=null)}disposeTemplate(v){v.disposables.dispose()}};e.ItemRenderer=C,e.ItemRenderer=C=ke([ce(1,o.IModelService),ce(2,t.ILanguageService),ce(3,c.IThemeService)],C);function f(h){return h.replace(/\r\n|\r|\n/g,"")}}),define(ne[794],se([1,0,787,38,156,34,107,6,15,20,66]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GotoLineAction=e.StandaloneGotoLineQuickAccessProvider=void 0;let n=class extends d.AbstractGotoLineQuickAccessProvider{constructor(i){super(),this.editorService=i,this.onDidActiveTextEditorControlChange=m.Event.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};e.StandaloneGotoLineQuickAccessProvider=n,e.StandaloneGotoLineQuickAccessProvider=n=ke([ce(0,E.ICodeEditorService)],n);class o extends _.EditorAction{static{this.ID="editor.action.gotoLine"}constructor(){super({id:o.ID,label:y.GoToLineNLS.gotoLineActionLabel,alias:"Go to Line/Column...",precondition:void 0,kbOpts:{kbExpr:b.EditorContextKeys.focus,primary:2085,mac:{primary:293},weight:100}})}run(i){i.get(p.IQuickInputService).quickAccess.show(n.PREFIX)}}e.GotoLineAction=o,(0,_.registerEditorAction)(o),k.Registry.as(I.Extensions.Quickaccess).registerQuickAccessProvider({ctor:n,prefix:n.PREFIX,helpEntries:[{description:y.GoToLineNLS.gotoLineActionLabel,commandId:o.ID}]})}),define(ne[795],se([1,0,788,38,156,34,107,6,15,20,66,182,17,195,280]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GotoSymbolAction=e.StandaloneGotoSymbolQuickAccessProvider=void 0;let t=class extends d.AbstractGotoSymbolQuickAccessProvider{constructor(g,c,l){super(c,l),this.editorService=g,this.onDidActiveTextEditorControlChange=m.Event.None}get activeTextEditorControl(){return this.editorService.getFocusedCodeEditor()??void 0}};e.StandaloneGotoSymbolQuickAccessProvider=t,e.StandaloneGotoSymbolQuickAccessProvider=t=ke([ce(0,E.ICodeEditorService),ce(1,o.ILanguageFeaturesService),ce(2,n.IOutlineModelService)],t);class i extends _.EditorAction{static{this.ID="editor.action.quickOutline"}constructor(){super({id:i.ID,label:y.QuickOutlineNLS.quickOutlineActionLabel,alias:"Go to Symbol...",precondition:b.EditorContextKeys.hasDocumentSymbolProvider,kbOpts:{kbExpr:b.EditorContextKeys.focus,primary:3117,weight:100},contextMenuOpts:{group:"navigation",order:3}})}run(g){g.get(p.IQuickInputService).quickAccess.show(d.AbstractGotoSymbolQuickAccessProvider.PREFIX,{itemActivation:p.ItemActivation.NONE})}}e.GotoSymbolAction=i,(0,_.registerEditorAction)(i),k.Registry.as(I.Extensions.Quickaccess).registerQuickAccessProvider({ctor:t,prefix:d.AbstractGotoSymbolQuickAccessProvider.PREFIX,helpEntries:[{description:y.QuickOutlineNLS.quickOutlineActionLabel,prefix:d.AbstractGotoSymbolQuickAccessProvider.PREFIX,commandId:i.ID},{description:y.QuickOutlineNLS.quickOutlineByCategoryActionLabel,prefix:d.AbstractGotoSymbolQuickAccessProvider.PREFIX_BY_CATEGORY}]})}),define(ne[418],se([1,0,5,42,771,34,12,49,25]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneCodeEditorService=void 0;let b=class extends I.AbstractCodeEditorService{constructor(n,o){super(o),this._register(this.onCodeEditorAdd(()=>this._checkContextKey())),this._register(this.onCodeEditorRemove(()=>this._checkContextKey())),this._editorIsOpen=n.createKey("editorIsOpen",!1),this._activeCodeEditor=null,this._register(this.registerCodeEditorOpenHandler(async(t,i,s)=>i?this.doOpenEditor(i,t):null))}_checkContextKey(){let n=!1;for(const o of this.listCodeEditors())if(!o.isSimpleWidget){n=!0;break}this._editorIsOpen.set(n)}setActiveCodeEditor(n){this._activeCodeEditor=n}getActiveCodeEditor(){return this._activeCodeEditor}doOpenEditor(n,o){if(!this.findModel(n,o.resource)){if(o.resource){const s=o.resource.scheme;if(s===k.Schemas.http||s===k.Schemas.https)return(0,d.windowOpenNoOpener)(o.resource.toString()),n}return null}const i=o.options?o.options.selection:null;if(i)if(typeof i.endLineNumber=="number"&&typeof i.endColumn=="number")n.setSelection(i),n.revealRangeInCenter(i,1);else{const s={lineNumber:i.startLineNumber,column:i.startColumn};n.setPosition(s),n.revealPositionInCenter(s,1)}return n}findModel(n,o){const t=n.getModel();return t&&t.uri.toString()!==o.toString()?null:t}};e.StandaloneCodeEditorService=b,e.StandaloneCodeEditorService=b=ke([ce(0,y.IContextKeyService),ce(1,_.IThemeService)],b),(0,m.registerSingleton)(E.ICodeEditorService,b,0)}),define(ne[796],se([1,0,80,32]),function(oe,e,d,k){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.hc_light=e.hc_black=e.vs_dark=e.vs=void 0,e.vs={base:"vs",inherit:!1,rules:[{token:"",foreground:"000000",background:"fffffe"},{token:"invalid",foreground:"cd3131"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"001188"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"delimiter.xml",foreground:"0000FF"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"FF0000"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"FF0000"},{token:"attribute.value",foreground:"0451A5"},{token:"attribute.value.number",foreground:"098658"},{token:"attribute.value.unit",foreground:"098658"},{token:"attribute.value.html",foreground:"0000FF"},{token:"attribute.value.xml",foreground:"0000FF"},{token:"string",foreground:"A31515"},{token:"string.html",foreground:"0000FF"},{token:"string.sql",foreground:"FF0000"},{token:"string.yaml",foreground:"0451A5"},{token:"keyword",foreground:"0000FF"},{token:"keyword.json",foreground:"0451A5"},{token:"keyword.flow",foreground:"AF00DB"},{token:"keyword.flow.scss",foreground:"0000FF"},{token:"operator.scss",foreground:"666666"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[k.editorBackground]:"#FFFFFE",[k.editorForeground]:"#000000",[k.editorInactiveSelection]:"#E5EBF1",[d.editorIndentGuide1]:"#D3D3D3",[d.editorActiveIndentGuide1]:"#939393",[k.editorSelectionHighlight]:"#ADD6FF4D"}},e.vs_dark={base:"vs-dark",inherit:!1,rules:[{token:"",foreground:"D4D4D4",background:"1E1E1E"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"74B0DF"},{token:"variable.predefined",foreground:"4864AA"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"B5CEA8"},{token:"number.hex",foreground:"5BB498"},{token:"regexp",foreground:"B46695"},{token:"annotation",foreground:"cc6666"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"DCDCDC"},{token:"delimiter.html",foreground:"808080"},{token:"delimiter.xml",foreground:"808080"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"A79873"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"DD6A6F"},{token:"metatag.content.html",foreground:"9CDCFE"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key.json",foreground:"9CDCFE"},{token:"string.value.json",foreground:"CE9178"},{token:"attribute.name",foreground:"9CDCFE"},{token:"attribute.value",foreground:"CE9178"},{token:"attribute.value.number.css",foreground:"B5CEA8"},{token:"attribute.value.unit.css",foreground:"B5CEA8"},{token:"attribute.value.hex.css",foreground:"D4D4D4"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"keyword.json",foreground:"CE9178"},{token:"keyword.flow.scss",foreground:"569CD6"},{token:"operator.scss",foreground:"909090"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[k.editorBackground]:"#1E1E1E",[k.editorForeground]:"#D4D4D4",[k.editorInactiveSelection]:"#3A3D41",[d.editorIndentGuide1]:"#404040",[d.editorActiveIndentGuide1]:"#707070",[k.editorSelectionHighlight]:"#ADD6FF26"}},e.hc_black={base:"hc-black",inherit:!1,rules:[{token:"",foreground:"FFFFFF",background:"000000"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"1AEBFF"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"FFFFFF"},{token:"regexp",foreground:"C0C0C0"},{token:"annotation",foreground:"569CD6"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"FFFF00"},{token:"delimiter.html",foreground:"FFFF00"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta",foreground:"D4D4D4"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"569CD6"},{token:"metatag.content.html",foreground:"1AEBFF"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key",foreground:"9CDCFE"},{token:"string.value",foreground:"CE9178"},{token:"attribute.name",foreground:"569CD6"},{token:"attribute.value",foreground:"3FF23F"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:{[k.editorBackground]:"#000000",[k.editorForeground]:"#FFFFFF",[d.editorIndentGuide1]:"#FFFFFF",[d.editorActiveIndentGuide1]:"#FFFFFF"}},e.hc_light={base:"hc-light",inherit:!1,rules:[{token:"",foreground:"292929",background:"FFFFFF"},{token:"invalid",foreground:"B5200D"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"264F70"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"098658"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"B5200D"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"264F78"},{token:"attribute.value",foreground:"0451A5"},{token:"string",foreground:"A31515"},{token:"string.sql",foreground:"B5200D"},{token:"keyword",foreground:"0000FF"},{token:"keyword.flow",foreground:"AF00DB"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"C700C7"}],colors:{[k.editorBackground]:"#FFFFFF",[k.editorForeground]:"#292929",[d.editorIndentGuide1]:"#292929",[d.editorActiveIndentGuide1]:"#292929"}}}),define(ne[419],se([1,0,5,64,33,6,27,148,572,796,38,32,25,2,97,767,52]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneThemeService=e.HC_LIGHT_THEME_NAME=e.HC_BLACK_THEME_NAME=e.VS_DARK_THEME_NAME=e.VS_LIGHT_THEME_NAME=void 0,e.VS_LIGHT_THEME_NAME="vs",e.VS_DARK_THEME_NAME="vs-dark",e.HC_BLACK_THEME_NAME="hc-black",e.HC_LIGHT_THEME_NAME="hc-light";const c=p.Registry.as(n.Extensions.ColorContribution),l=p.Registry.as(o.Extensions.ThemingContribution);class a{constructor(v,w){this.semanticHighlighting=!1,this.themeData=w;const S=w.base;v.length>0?(r(v)?this.id=v:this.id=S+" "+v,this.themeName=v):(this.id=S,this.themeName=S),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}get base(){return this.themeData.base}notifyBaseUpdated(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}getColors(){if(!this.colors){const v=new Map;for(const w in this.themeData.colors)v.set(w,I.Color.fromHex(this.themeData.colors[w]));if(this.themeData.inherit){const w=u(this.themeData.base);for(const S in w.colors)v.has(S)||v.set(S,I.Color.fromHex(w.colors[S]))}this.colors=v}return this.colors}getColor(v,w){const S=this.getColors().get(v);if(S)return S;if(w!==!1)return this.getDefault(v)}getDefault(v){let w=this.defaultColors[v];return w||(w=c.resolveDefaultColor(v,this),this.defaultColors[v]=w,w)}defines(v){return this.getColors().has(v)}get type(){switch(this.base){case e.VS_LIGHT_THEME_NAME:return i.ColorScheme.LIGHT;case e.HC_BLACK_THEME_NAME:return i.ColorScheme.HIGH_CONTRAST_DARK;case e.HC_LIGHT_THEME_NAME:return i.ColorScheme.HIGH_CONTRAST_LIGHT;default:return i.ColorScheme.DARK}}get tokenTheme(){if(!this._tokenTheme){let v=[],w=[];if(this.themeData.inherit){const D=u(this.themeData.base);v=D.rules,D.encodedTokensColors&&(w=D.encodedTokensColors)}const S=this.themeData.colors["editor.foreground"],L=this.themeData.colors["editor.background"];if(S||L){const D={token:""};S&&(D.foreground=S),L&&(D.background=L),v.push(D)}v=v.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(w=this.themeData.encodedTokensColors),this._tokenTheme=_.TokenTheme.createFromRawTokenTheme(v,w)}return this._tokenTheme}getTokenStyleMetadata(v,w,S){const D=this.tokenTheme._match([v].concat(w).join(".")).metadata,T=m.TokenMetadata.getForeground(D),M=m.TokenMetadata.getFontStyle(D);return{foreground:T,italic:!!(M&1),bold:!!(M&2),underline:!!(M&4),strikethrough:!!(M&8)}}}function r(h){return h===e.VS_LIGHT_THEME_NAME||h===e.VS_DARK_THEME_NAME||h===e.HC_BLACK_THEME_NAME||h===e.HC_LIGHT_THEME_NAME}function u(h){switch(h){case e.VS_LIGHT_THEME_NAME:return b.vs;case e.VS_DARK_THEME_NAME:return b.vs_dark;case e.HC_BLACK_THEME_NAME:return b.hc_black;case e.HC_LIGHT_THEME_NAME:return b.hc_light}}function C(h){const v=u(h);return new a(h,v)}class f extends t.Disposable{constructor(){super(),this._onColorThemeChange=this._register(new E.Emitter),this.onDidColorThemeChange=this._onColorThemeChange.event,this._onProductIconThemeChange=this._register(new E.Emitter),this.onDidProductIconThemeChange=this._onProductIconThemeChange.event,this._environment=Object.create(null),this._builtInProductIconTheme=new s.UnthemedProductIconTheme,this._autoDetectHighContrast=!0,this._knownThemes=new Map,this._knownThemes.set(e.VS_LIGHT_THEME_NAME,C(e.VS_LIGHT_THEME_NAME)),this._knownThemes.set(e.VS_DARK_THEME_NAME,C(e.VS_DARK_THEME_NAME)),this._knownThemes.set(e.HC_BLACK_THEME_NAME,C(e.HC_BLACK_THEME_NAME)),this._knownThemes.set(e.HC_LIGHT_THEME_NAME,C(e.HC_LIGHT_THEME_NAME));const v=this._register((0,s.getIconsStyleSheet)(this));this._codiconCSS=v.getCSS(),this._themeCSS="",this._allCSS=`${this._codiconCSS} +${this._themeCSS}`,this._globalStyleElement=null,this._styleElements=[],this._colorMapOverride=null,this.setTheme(e.VS_LIGHT_THEME_NAME),this._onOSSchemeChanged(),this._register(v.onDidChange(()=>{this._codiconCSS=v.getCSS(),this._updateCSS()})),(0,k.addMatchMediaChangeListener)(g.mainWindow,"(forced-colors: active)",()=>{this._onOSSchemeChanged()})}registerEditorContainer(v){return d.isInShadowDOM(v)?this._registerShadowDomContainer(v):this._registerRegularEditorContainer()}_registerRegularEditorContainer(){return this._globalStyleElement||(this._globalStyleElement=d.createStyleSheet(void 0,v=>{v.className="monaco-colors",v.textContent=this._allCSS}),this._styleElements.push(this._globalStyleElement)),t.Disposable.None}_registerShadowDomContainer(v){const w=d.createStyleSheet(v,S=>{S.className="monaco-colors",S.textContent=this._allCSS});return this._styleElements.push(w),{dispose:()=>{for(let S=0;S{S.base===v&&S.notifyBaseUpdated()}),this._theme.themeName===v&&this.setTheme(v)}getColorTheme(){return this._theme}setColorMapOverride(v){this._colorMapOverride=v,this._updateThemeOrColorMap()}setTheme(v){let w;this._knownThemes.has(v)?w=this._knownThemes.get(v):w=this._knownThemes.get(e.VS_LIGHT_THEME_NAME),this._updateActualTheme(w)}_updateActualTheme(v){!v||this._theme===v||(this._theme=v,this._updateThemeOrColorMap())}_onOSSchemeChanged(){if(this._autoDetectHighContrast){const v=g.mainWindow.matchMedia("(forced-colors: active)").matches;if(v!==(0,i.isHighContrast)(this._theme.type)){let w;(0,i.isDark)(this._theme.type)?w=v?e.HC_BLACK_THEME_NAME:e.VS_DARK_THEME_NAME:w=v?e.HC_LIGHT_THEME_NAME:e.VS_LIGHT_THEME_NAME,this._updateActualTheme(this._knownThemes.get(w))}}}setAutoDetectHighContrast(v){this._autoDetectHighContrast=v,this._onOSSchemeChanged()}_updateThemeOrColorMap(){const v=[],w={},S={addRule:T=>{w[T]||(v.push(T),w[T]=!0)}};l.getThemingParticipants().forEach(T=>T(this._theme,S,this._environment));const L=[];for(const T of c.getColors()){const M=this._theme.getColor(T.id,!0);M&&L.push(`${(0,n.asCssVariableName)(T.id)}: ${M.toString()};`)}S.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${L.join(` +`)} }`);const D=this._colorMapOverride||this._theme.tokenTheme.getColorMap();S.addRule((0,_.generateTokensCSSForColorMap)(D)),this._themeCSS=v.join(` +`),this._updateCSS(),y.TokenizationRegistry.setColorMap(D),this._onColorThemeChange.fire(this._theme)}_updateCSS(){this._allCSS=`${this._codiconCSS} +${this._themeCSS}`,this._styleElements.forEach(v=>v.textContent=this._allCSS)}getFileIconTheme(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}getProductIconTheme(){return this._builtInProductIconTheme}}e.StandaloneThemeService=f}),define(ne[797],se([1,0,15,153,107,97,419]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class m extends d.EditorAction{constructor(){super({id:"editor.action.toggleHighContrast",label:I.ToggleHighContrastNLS.toggleHighContrast,alias:"Toggle High Contrast Theme",precondition:void 0}),this._originalThemeName=null}run(b,p){const n=b.get(k.IStandaloneThemeService),o=n.getColorTheme();(0,E.isHighContrast)(o.type)?(n.setTheme(this._originalThemeName||((0,E.isDark)(o.type)?y.VS_DARK_THEME_NAME:y.VS_LIGHT_THEME_NAME)),this._originalThemeName=null):(n.setTheme((0,E.isDark)(o.type)?y.HC_BLACK_THEME_NAME:y.HC_LIGHT_THEME_NAME),this._originalThemeName=o.themeName)}}(0,d.registerEditorAction)(m)}),define(ne[124],se([1,0,5,47,151,359,41,247,2,16,3,29,381,12,58,7,31,50,101,25,30,97,19,32,110,61,542]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DropdownWithDefaultActionViewItem=e.SubmenuEntryActionViewItem=e.TextOnlyMenuEntryActionViewItem=e.MenuEntryActionViewItem=void 0,e.createAndFillInContextMenuActions=w,e.createAndFillInActionBarActions=S,e.createActionViewItem=N;function w(O,F,x,W){let V,q,H;if(Array.isArray(O))H=O,V=F,q=x;else{const j=F;H=O.getActions(j),V=x,q=W}const z=d.ModifierKeyEmitter.getInstance(),U=z.keyStatus.altKey||(b.isWindows||b.isLinux)&&z.keyStatus.shiftKey;L(H,V,U,q?j=>j===q:j=>j==="navigation")}function S(O,F,x,W,V,q){let H,z,U,j,Y;if(Array.isArray(O))Y=O,H=F,z=x,U=W,j=V;else{const K=F;Y=O.getActions(K),H=x,z=W,U=V,j=q}L(Y,H,!1,typeof z=="string"?K=>K===z:z,U,j)}function L(O,F,x,W=H=>H==="navigation",V=()=>!1,q=!1){let H,z;Array.isArray(F)?(H=F,z=F):(H=F.primary,z=F.secondary);const U=new Set;for(const[j,Y]of O){let G;W(j)?(G=H,G.length>0&&q&&G.push(new y.Separator)):(G=z,G.length>0&&G.push(new y.Separator));for(let K of Y){x&&(K=K instanceof n.MenuItemAction&&K.alt?K.alt:K);const R=G.push(K);K instanceof y.SubmenuAction&&U.add({group:j,action:K,index:R-1})}}for(const{group:j,action:Y,index:G}of U){const K=W(j)?H:z,R=Y.actions;V(Y,j,K.length)&&K.splice(G,1,...R)}}let D=class extends I.ActionViewItem{constructor(F,x,W,V,q,H,z,U){super(void 0,F,{icon:!!(F.class||F.item.icon),label:!F.class&&!F.item.icon,draggable:x?.draggable,keybinding:x?.keybinding,hoverDelegate:x?.hoverDelegate}),this._options=x,this._keybindingService=W,this._notificationService=V,this._contextKeyService=q,this._themeService=H,this._contextMenuService=z,this._accessibilityService=U,this._wantsAltCommand=!1,this._itemClassDispose=this._register(new _.MutableDisposable),this._altKey=d.ModifierKeyEmitter.getInstance()}get _menuItemAction(){return this._action}get _commandAction(){return this._wantsAltCommand&&this._menuItemAction.alt||this._menuItemAction}async onClick(F){F.preventDefault(),F.stopPropagation();try{await this.actionRunner.run(this._commandAction,this._context)}catch(x){this._notificationService.error(x)}}render(F){if(super.render(F),F.classList.add("menu-entry"),this.options.icon&&this._updateItemClass(this._menuItemAction.item),this._menuItemAction.alt){let x=!1;const W=()=>{const V=!!this._menuItemAction.alt?.enabled&&(!this._accessibilityService.isMotionReduced()||x)&&(this._altKey.keyStatus.altKey||this._altKey.keyStatus.shiftKey&&x);V!==this._wantsAltCommand&&(this._wantsAltCommand=V,this.updateLabel(),this.updateTooltip(),this.updateClass())};this._register(this._altKey.event(W)),this._register((0,d.addDisposableListener)(F,"mouseleave",V=>{x=!1,W()})),this._register((0,d.addDisposableListener)(F,"mouseenter",V=>{x=!0,W()})),W()}}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}getTooltip(){const F=this._keybindingService.lookupKeybinding(this._commandAction.id,this._contextKeyService),x=F&&F.getLabel(),W=this._commandAction.tooltip||this._commandAction.label;let V=x?(0,p.localize)(1483,"{0} ({1})",W,x):W;if(!this._wantsAltCommand&&this._menuItemAction.alt?.enabled){const q=this._menuItemAction.alt.tooltip||this._menuItemAction.alt.label,H=this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id,this._contextKeyService),z=H&&H.getLabel(),U=z?(0,p.localize)(1484,"{0} ({1})",q,z):q;V=(0,p.localize)(1485,`{0} +[{1}] {2}`,V,m.UILabelProvider.modifierLabels[b.OS].altKey,U)}return V}updateClass(){this.options.icon&&(this._commandAction!==this._menuItemAction?this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.alt.item):this._updateItemClass(this._menuItemAction.item))}_updateItemClass(F){this._itemClassDispose.value=void 0;const{element:x,label:W}=this;if(!x||!W)return;const V=this._commandAction.checked&&(0,o.isICommandActionToggleInfo)(F.toggled)&&F.toggled.icon?F.toggled.icon:F.icon;if(V)if(r.ThemeIcon.isThemeIcon(V)){const q=r.ThemeIcon.asClassNameArray(V);W.classList.add(...q),this._itemClassDispose.value=(0,_.toDisposable)(()=>{W.classList.remove(...q)})}else W.style.backgroundImage=(0,u.isDark)(this._themeService.getColorTheme().type)?(0,d.asCSSUrl)(V.dark):(0,d.asCSSUrl)(V.light),W.classList.add("icon"),this._itemClassDispose.value=(0,_.combinedDisposable)((0,_.toDisposable)(()=>{W.style.backgroundImage="",W.classList.remove("icon")}),this._themeService.onDidColorThemeChange(()=>{this.updateClass()}))}};e.MenuEntryActionViewItem=D,e.MenuEntryActionViewItem=D=ke([ce(2,g.IKeybindingService),ce(3,c.INotificationService),ce(4,t.IContextKeyService),ce(5,a.IThemeService),ce(6,i.IContextMenuService),ce(7,v.IAccessibilityService)],D);class T extends D{render(F){this.options.label=!0,this.options.icon=!1,super.render(F),F.classList.add("text-only"),F.classList.toggle("use-comma",this._options?.useComma??!1)}updateLabel(){const F=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!F)return super.updateLabel();if(this.label){const x=T._symbolPrintEnter(F);this._options?.conversational?this.label.textContent=(0,p.localize)(1486,"{1} to {0}",this._action.label,x):this.label.textContent=(0,p.localize)(1487,"{0} ({1})",this._action.label,x)}}static _symbolPrintEnter(F){return F.getLabel()?.replace(/\benter\b/gi,"\u23CE").replace(/\bEscape\b/gi,"Esc")}}e.TextOnlyMenuEntryActionViewItem=T;let M=class extends E.DropdownMenuActionViewItem{constructor(F,x,W,V,q){const H={...x,menuAsChild:x?.menuAsChild??!1,classNames:x?.classNames??(r.ThemeIcon.isThemeIcon(F.item.icon)?r.ThemeIcon.asClassName(F.item.icon):void 0),keybindingProvider:x?.keybindingProvider??(z=>W.lookupKeybinding(z.id))};super(F,{getActions:()=>F.actions},V,H),this._keybindingService=W,this._contextMenuService=V,this._themeService=q}render(F){super.render(F),(0,C.assertType)(this.element),F.classList.add("menu-entry");const x=this._action,{icon:W}=x.item;if(W&&!r.ThemeIcon.isThemeIcon(W)){this.element.classList.add("icon");const V=()=>{this.element&&(this.element.style.backgroundImage=(0,u.isDark)(this._themeService.getColorTheme().type)?(0,d.asCSSUrl)(W.dark):(0,d.asCSSUrl)(W.light))};V(),this._register(this._themeService.onDidColorThemeChange(()=>{V()}))}}};e.SubmenuEntryActionViewItem=M,e.SubmenuEntryActionViewItem=M=ke([ce(2,g.IKeybindingService),ce(3,i.IContextMenuService),ce(4,a.IThemeService)],M);let A=class extends I.BaseActionViewItem{constructor(F,x,W,V,q,H,z,U){super(null,F),this._keybindingService=W,this._notificationService=V,this._contextMenuService=q,this._menuService=H,this._instaService=z,this._storageService=U,this._container=null,this._options=x,this._storageKey=`${F.item.submenu.id}_lastActionId`;let j;const Y=x?.persistLastActionId?U.get(this._storageKey,1):void 0;Y&&(j=F.actions.find(K=>Y===K.id)),j||(j=F.actions[0]),this._defaultAction=this._instaService.createInstance(D,j,{keybinding:this._getDefaultActionKeybindingLabel(j)});const G={keybindingProvider:K=>this._keybindingService.lookupKeybinding(K.id),...x,menuAsChild:x?.menuAsChild??!0,classNames:x?.classNames??["codicon","codicon-chevron-down"],actionRunner:x?.actionRunner??new y.ActionRunner};this._dropdown=new E.DropdownMenuActionViewItem(F,F.actions,this._contextMenuService,G),this._register(this._dropdown.actionRunner.onDidRun(K=>{K.action instanceof n.MenuItemAction&&this.update(K.action)}))}update(F){this._options?.persistLastActionId&&this._storageService.store(this._storageKey,F.id,1,1),this._defaultAction.dispose(),this._defaultAction=this._instaService.createInstance(D,F,{keybinding:this._getDefaultActionKeybindingLabel(F)}),this._defaultAction.actionRunner=new class extends y.ActionRunner{async runAction(x,W){await x.run(void 0)}},this._container&&this._defaultAction.render((0,d.prepend)(this._container,(0,d.$)(".action-container")))}_getDefaultActionKeybindingLabel(F){let x;if(this._options?.renderKeybindingWithDefaultActionLabel){const W=this._keybindingService.lookupKeybinding(F.id);W&&(x=`(${W.getLabel()})`)}return x}setActionContext(F){super.setActionContext(F),this._defaultAction.setActionContext(F),this._dropdown.setActionContext(F)}render(F){this._container=F,super.render(this._container),this._container.classList.add("monaco-dropdown-with-default");const x=(0,d.$)(".action-container");this._defaultAction.render((0,d.append)(this._container,x)),this._register((0,d.addDisposableListener)(x,d.EventType.KEY_DOWN,V=>{const q=new k.StandardKeyboardEvent(V);q.equals(17)&&(this._defaultAction.element.tabIndex=-1,this._dropdown.focus(),q.stopPropagation())}));const W=(0,d.$)(".dropdown-action-container");this._dropdown.render((0,d.append)(this._container,W)),this._register((0,d.addDisposableListener)(W,d.EventType.KEY_DOWN,V=>{const q=new k.StandardKeyboardEvent(V);q.equals(15)&&(this._defaultAction.element.tabIndex=0,this._dropdown.setFocusable(!1),this._defaultAction.element?.focus(),q.stopPropagation())}))}focus(F){F?this._dropdown.focus():(this._defaultAction.element.tabIndex=0,this._defaultAction.element.focus())}blur(){this._defaultAction.element.tabIndex=-1,this._dropdown.blur(),this._container.blur()}setFocusable(F){F?this._defaultAction.element.tabIndex=0:(this._defaultAction.element.tabIndex=-1,this._dropdown.setFocusable(!1))}dispose(){this._defaultAction.dispose(),this._dropdown.dispose(),super.dispose()}};e.DropdownWithDefaultActionViewItem=A,e.DropdownWithDefaultActionViewItem=A=ke([ce(2,g.IKeybindingService),ce(3,c.INotificationService),ce(4,i.IContextMenuService),ce(5,n.IMenuService),ce(6,s.IInstantiationService),ce(7,l.IStorageService)],A);let P=class extends I.SelectActionViewItem{constructor(F,x){super(null,F,F.actions.map(W=>({text:W.id===y.Separator.ID?"\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500":W.label,isDisabled:!W.enabled})),0,x,h.defaultSelectBoxStyles,{ariaLabel:F.tooltip,optionsAsChildren:!0}),this.select(Math.max(0,F.actions.findIndex(W=>W.checked)))}render(F){super.render(F),F.style.borderColor=(0,f.asCssVariable)(f.selectBorder)}runAction(F,x){const W=this.action.actions[x];W&&this.actionRunner.run(W)}};P=ke([ce(1,i.IContextViewService)],P);function N(O,F,x){return F instanceof n.MenuItemAction?O.createInstance(D,F,x):F instanceof n.SubmenuItemAction?F.item.isSelection?O.createInstance(P,F):F.item.rememberDefaultAction?O.createInstance(A,F,{...x,persistLastActionId:!0}):O.createInstance(M,F,x):void 0}}),define(ne[798],se([1,0,5,87,2,124,29,12,7]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestWidgetStatus=void 0;let b=class{constructor(n,o,t,i,s){this._menuId=o,this._menuService=i,this._contextKeyService=s,this._menuDisposables=new I.DisposableStore,this.element=d.append(n,d.$(".suggest-status-bar"));const g=c=>c instanceof y.MenuItemAction?t.createInstance(E.TextOnlyMenuEntryActionViewItem,c,{useComma:!0}):void 0;this._leftActions=new k.ActionBar(this.element,{actionViewItemProvider:g}),this._rightActions=new k.ActionBar(this.element,{actionViewItemProvider:g}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){const n=this._menuService.createMenu(this._menuId,this._contextKeyService),o=()=>{const t=[],i=[];for(const[s,g]of n.getActions())s==="left"?t.push(...g):i.push(...g);this._leftActions.clear(),this._leftActions.push(t),this._rightActions.clear(),this._rightActions.push(i)};this._menuDisposables.add(n.onDidChange(()=>o())),this._menuDisposables.add(n)}hide(){this._menuDisposables.clear()}};e.SuggestWidgetStatus=b,e.SuggestWidgetStatus=b=ke([ce(2,_.IInstantiationService),ce(3,y.IMenuService),ce(4,m.IContextKeyService)],b)}),define(ne[218],se([1,0,5,77,643,41,13,298,8,6,53,2,3,124,29,406,24,12,58,31,63]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MenuWorkbenchToolBar=e.WorkbenchToolBar=void 0;let u=class extends I.ToolBar{constructor(h,v,w,S,L,D,T,M){super(h,L,{getKeyBinding:P=>D.lookupKeybinding(P.id)??void 0,...v,allowContextMenu:!0,skipTelemetry:typeof v?.telemetrySource=="string"}),this._options=v,this._menuService=w,this._contextKeyService=S,this._contextMenuService=L,this._keybindingService=D,this._commandService=T,this._sessionDisposables=this._store.add(new n.DisposableStore);const A=v?.telemetrySource;A&&this._store.add(this.actionBar.onDidRun(P=>M.publicLog2("workbenchActionExecuted",{id:P.action.id,from:A})))}setActions(h,v=[],w){this._sessionDisposables.clear();const S=h.slice(),L=v.slice(),D=[];let T=0;const M=[];let A=!1;if(this._options?.hiddenItemStrategy!==-1)for(let P=0;PF?.id)),N=this._options.overflowBehavior.maxItems-P.size;let O=0;for(let F=0;F=N&&(S[F]=void 0,M[F]=x))}}(0,y.coalesceInPlace)(S),(0,y.coalesceInPlace)(M),super.setActions(S,E.Separator.join(M,L)),(D.length>0||S.length>0)&&this._sessionDisposables.add((0,d.addDisposableListener)(this.getElement(),"contextmenu",P=>{const N=new k.StandardMouseEvent((0,d.getWindow)(this.getElement()),P),O=this.getItemAction(N.target);if(!O)return;N.preventDefault(),N.stopPropagation();const F=[];if(O instanceof i.MenuItemAction&&O.menuKeybinding)F.push(O.menuKeybinding);else if(!(O instanceof i.SubmenuItemAction||O instanceof I.ToggleMenuAction)){const W=!!this._keybindingService.lookupKeybinding(O.id);F.push((0,s.createConfigureKeybindingAction)(this._commandService,this._keybindingService,O.id,void 0,W))}if(D.length>0){let W=!1;if(T===1&&this._options?.hiddenItemStrategy===0){W=!0;for(let V=0;Vthis._menuService.resetHiddenStates(w)}))),x.length!==0&&this._contextMenuService.showContextMenu({getAnchor:()=>N,getActions:()=>x,menuId:this._options?.contextMenu,menuActionOptions:{renderShortTitle:!0,...this._options?.menuOptions},skipTelemetry:typeof this._options?.telemetrySource=="string",contextKeyService:this._contextKeyService})}))}};e.WorkbenchToolBar=u,e.WorkbenchToolBar=u=ke([ce(2,i.IMenuService),ce(3,c.IContextKeyService),ce(4,l.IContextMenuService),ce(5,a.IKeybindingService),ce(6,g.ICommandService),ce(7,r.ITelemetryService)],u);let C=class extends u{constructor(h,v,w,S,L,D,T,M,A){super(h,{resetMenu:v,...w},S,L,D,T,M,A),this._onDidChangeMenuItems=this._store.add(new b.Emitter),this.onDidChangeMenuItems=this._onDidChangeMenuItems.event;const P=this._store.add(S.createMenu(v,L,{emitEventsForSubmenuChanges:!0})),N=()=>{const O=[],F=[];(0,t.createAndFillInActionBarActions)(P,w?.menuOptions,{primary:O,secondary:F},w?.toolbarOptions?.primaryGroup,w?.toolbarOptions?.shouldInlineSubmenu,w?.toolbarOptions?.useSeparatorsInPrimaryActions),h.classList.toggle("has-no-actions",O.length===0&&F.length===0),super.setActions(O,F)};this._store.add(P.onDidChange(()=>{N(),this._onDidChangeMenuItems.fire(this)})),N()}setActions(){throw new _.BugIndicatingError("This toolbar is populated from a menu.")}};e.MenuWorkbenchToolBar=C,e.MenuWorkbenchToolBar=C=ke([ce(3,i.IMenuService),ce(4,c.IContextKeyService),ce(5,l.IContextMenuService),ce(6,a.IKeybindingService),ce(7,g.ICommandService),ce(8,r.ITelemetryService)],C)}),define(ne[799],se([1,0,5,2,21,65,363,88,654,365,55,68,4,104,105,581,218,29,12,118,7]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorGutter=void 0;const u=[],C=35;let f=class extends k.Disposable{constructor(S,L,D,T,M,A,P,N,O){super(),this._diffModel=L,this._editors=D,this._options=T,this._sashLayout=M,this._boundarySashes=A,this._instantiationService=P,this._contextKeyService=N,this._menuService=O,this._menu=this._register(this._menuService.createMenu(c.MenuId.DiffEditorHunkToolbar,this._contextKeyService)),this._actions=(0,I.observableFromEvent)(this,this._menu.onDidChange,()=>this._menu.getActions()),this._hasActions=this._actions.map(F=>F.length>0),this._showSash=(0,I.derived)(this,F=>this._options.renderSideBySide.read(F)&&this._hasActions.read(F)),this.width=(0,I.derived)(this,F=>this._hasActions.read(F)?C:0),this.elements=(0,d.h)("div.gutter@gutter",{style:{position:"absolute",height:"100%",width:C+"px"}},[]),this._currentDiff=(0,I.derived)(this,F=>{const x=this._diffModel.read(F);if(!x)return;const W=x.diff.read(F)?.mappings,V=this._editors.modifiedCursor.read(F);if(V)return W?.find(q=>q.lineRangeMapping.modified.contains(V.lineNumber))}),this._selectedDiffs=(0,I.derived)(this,F=>{const W=this._diffModel.read(F)?.diff.read(F);if(!W)return u;const V=this._editors.modifiedSelections.read(F);if(V.every(U=>U.isEmpty()))return u;const q=new p.LineRangeSet(V.map(U=>p.LineRange.fromRangeInclusive(U))),z=W.mappings.filter(U=>U.lineRangeMapping.innerChanges&&q.intersects(U.lineRangeMapping.modified)).map(U=>({mapping:U,rangeMappings:U.lineRangeMapping.innerChanges.filter(j=>V.some(Y=>o.Range.areIntersecting(j.modifiedRange,Y)))}));return z.length===0||z.every(U=>U.rangeMappings.length===0)?u:z}),this._register((0,m.prependRemoveOnDispose)(S,this.elements.root)),this._register((0,d.addDisposableListener)(this.elements.root,"click",()=>{this._editors.modified.focus()})),this._register((0,m.applyStyle)(this.elements.root,{display:this._hasActions.map(F=>F?"block":"none")})),(0,E.derivedDisposable)(this,F=>this._showSash.read(F)?new y.DiffEditorSash(S,this._sashLayout.dimensions,this._options.enableSplitViewResizing,this._boundarySashes,(0,E.derivedWithSetter)(this,W=>this._sashLayout.sashLeft.read(W)-C,(W,V)=>this._sashLayout.sashLeft.set(W+C,V)),()=>this._sashLayout.resetSash()):void 0).recomputeInitiallyAndOnChange(this._store),this._register(new _.EditorGutter(this._editors.modified,this.elements.root,{getIntersectingGutterItems:(F,x)=>{const W=this._diffModel.read(x);if(!W)return[];const V=W.diff.read(x);if(!V)return[];const q=this._selectedDiffs.read(x);if(q.length>0){const z=i.DetailedLineRangeMapping.fromRangeMappings(q.flatMap(U=>U.rangeMappings));return[new h(z,!0,c.MenuId.DiffEditorSelectionToolbar,void 0,W.model.original.uri,W.model.modified.uri)]}const H=this._currentDiff.read(x);return V.mappings.map(z=>new h(z.lineRangeMapping.withInnerChangesFromLineRanges(),z.lineRangeMapping===H?.lineRangeMapping,c.MenuId.DiffEditorHunkToolbar,void 0,W.model.original.uri,W.model.modified.uri))},createView:(F,x)=>this._instantiationService.createInstance(v,F,x,this)})),this._register((0,d.addDisposableListener)(this.elements.gutter,d.EventType.MOUSE_WHEEL,F=>{this._editors.modified.getOption(104).handleMouseWheel&&this._editors.modified.delegateScrollFromMouseWheelEvent(F)},{passive:!1}))}computeStagedValue(S){const L=S.innerChanges??[],D=new s.TextModelText(this._editors.modifiedModel.get()),T=new s.TextModelText(this._editors.original.getModel());return new t.TextEdit(L.map(P=>P.toTextEdit(D))).apply(T)}layout(S){this.elements.gutter.style.left=S+"px"}};e.DiffEditorGutter=f,e.DiffEditorGutter=f=ke([ce(6,r.IInstantiationService),ce(7,l.IContextKeyService),ce(8,c.IMenuService)],f);class h{constructor(S,L,D,T,M,A){this.mapping=S,this.showAlways=L,this.menuId=D,this.rangeOverride=T,this.originalUri=M,this.modifiedUri=A}get id(){return this.mapping.modified.toString()}get range(){return this.rangeOverride??this.mapping.modified}}let v=class extends k.Disposable{constructor(S,L,D,T){super(),this._item=S,this._elements=(0,d.h)("div.gutterItem",{style:{height:"20px",width:"34px"}},[(0,d.h)("div.background@background",{},[]),(0,d.h)("div.buttons@buttons",{},[])]),this._showAlways=this._item.map(this,A=>A.showAlways),this._menuId=this._item.map(this,A=>A.menuId),this._isSmall=(0,I.observableValue)(this,!1),this._lastItemRange=void 0,this._lastViewRange=void 0;const M=this._register(T.createInstance(a.WorkbenchHoverDelegate,"element",!0,{position:{hoverPosition:1}}));this._register((0,m.appendRemoveOnDispose)(L,this._elements.root)),this._register((0,I.autorun)(A=>{const P=this._showAlways.read(A);this._elements.root.classList.toggle("noTransition",!0),this._elements.root.classList.toggle("showAlways",P),setTimeout(()=>{this._elements.root.classList.toggle("noTransition",!1)},0)})),this._register((0,I.autorunWithStore)((A,P)=>{this._elements.buttons.replaceChildren();const N=P.add(T.createInstance(g.MenuWorkbenchToolBar,this._elements.buttons,this._menuId.read(A),{orientation:1,hoverDelegate:M,toolbarOptions:{primaryGroup:O=>O.startsWith("primary")},overflowBehavior:{maxItems:this._isSmall.read(A)?1:3},hiddenItemStrategy:0,actionRunner:new b.ActionRunnerWithContext(()=>{const O=this._item.get(),F=O.mapping;return{mapping:F,originalWithModifiedChanges:D.computeStagedValue(F),originalUri:O.originalUri,modifiedUri:O.modifiedUri}}),menuOptions:{shouldForwardArgs:!0}}));P.add(N.onDidChangeMenuItems(()=>{this._lastItemRange&&this.layout(this._lastItemRange,this._lastViewRange)}))}))}layout(S,L){this._lastItemRange=S,this._lastViewRange=L;let D=this._elements.buttons.clientHeight;this._isSmall.set(this._item.get().mapping.original.startLineNumber===1&&S.length<30,void 0),D=this._elements.buttons.clientHeight;const T=S.length/2-D/2,M=D;let A=S.start+T;const P=n.OffsetRange.tryCreate(M,L.endExclusive-M-D),N=n.OffsetRange.tryCreate(S.start+M,S.endExclusive-D-M);N&&P&&N.startthis.editor.getOption(62).showToolbar==="always"),this.sessionPosition=void 0,this.position=(0,p.derived)(this,q=>{const H=this.model.read(q)?.primaryGhostText.read(q);if(!this.alwaysShowToolbar.read(q)||!H||H.parts.length===0)return this.sessionPosition=void 0,null;const z=H.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==H.lineNumber&&(this.sessionPosition=void 0);const U=new i.Position(H.lineNumber,Math.min(z,this.sessionPosition?.column??Number.MAX_SAFE_INTEGER));return this.sessionPosition=U,U}),this._register((0,p.autorunWithStore)((q,H)=>{const z=this.model.read(q);if(!z||!this.alwaysShowToolbar.read(q))return;const U=(0,n.derivedWithStore)((Y,G)=>{const K=G.add(this.instantiationService.createInstance(A,this.editor,!0,this.position,z.selectedInlineCompletionIndex,z.inlineCompletionsCount,z.activeCommands));return x.addContentWidget(K),G.add((0,b.toDisposable)(()=>x.removeContentWidget(K))),G.add((0,p.autorun)(R=>{this.position.read(R)&&z.lastTriggerKind.read(R)!==s.InlineCompletionTriggerKind.Explicit&&z.triggerExplicitly()})),K}),j=(0,p.derivedObservableWithCache)(this,(Y,G)=>!!this.position.read(Y)||!!G);H.add((0,p.autorun)(Y=>{j.read(Y)&&U.read(Y)}))}))}};e.InlineCompletionsHintsWidget=D,e.InlineCompletionsHintsWidget=D=ke([ce(2,h.IInstantiationService)],D);const T=(0,S.registerIcon)("inline-suggestion-hints-next",_.Codicon.chevronRight,(0,c.localize)(1090,"Icon for show next parameter hint.")),M=(0,S.registerIcon)("inline-suggestion-hints-previous",_.Codicon.chevronLeft,(0,c.localize)(1091,"Icon for show previous parameter hint."));let A=class extends b.Disposable{static{L=this}static{this._dropDownVisible=!1}static get dropDownVisible(){return this._dropDownVisible}static{this.id=0}createCommandAction(x,W,V){const q=new E.Action(x,W,V,!0,()=>this._commandService.executeCommand(x)),H=this.keybindingService.lookupKeybinding(x,this._contextKeyService);let z=W;return H&&(z=(0,c.localize)(1092,"{0} ({1})",W,H.getLabel())),q.tooltip=z,q}constructor(x,W,V,q,H,z,U,j,Y,G,K){super(),this.editor=x,this.withBorder=W,this._position=V,this._currentSuggestionIdx=q,this._suggestionCount=H,this._extraCommands=z,this._commandService=U,this.keybindingService=Y,this._contextKeyService=G,this._menuService=K,this.id=`InlineSuggestionHintsContentWidget${L.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=(0,d.h)("div.inlineSuggestionsHints",{className:this.withBorder?".withBorder":""},[(0,d.h)("div@toolBar")]),this.previousAction=this.createCommandAction(g.showPreviousInlineSuggestionActionId,(0,c.localize)(1093,"Previous"),t.ThemeIcon.asClassName(M)),this.availableSuggestionCountAction=new E.Action("inlineSuggestionHints.availableSuggestionCount","",void 0,!1),this.nextAction=this.createCommandAction(g.showNextInlineSuggestionActionId,(0,c.localize)(1094,"Next"),t.ThemeIcon.asClassName(T)),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(r.MenuId.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new m.RunOnceScheduler(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new m.RunOnceScheduler(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this.toolBar=this._register(j.createInstance(O,this.nodes.toolBar,r.MenuId.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:R=>R.startsWith("primary")},actionViewItemProvider:(R,J)=>{if(R instanceof r.MenuItemAction)return j.createInstance(N,R,void 0);if(R===this.availableSuggestionCountAction){const ie=new P(void 0,R,{label:!0,icon:!1});return ie.setClass("availableSuggestionCount"),ie}},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility(R=>{L._dropDownVisible=R})),this._register((0,p.autorun)(R=>{this._position.read(R),this.editor.layoutContentWidget(this)})),this._register((0,p.autorun)(R=>{const J=this._suggestionCount.read(R),ie=this._currentSuggestionIdx.read(R);J!==void 0?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${ie+1}/${J}`):this.clearAvailableSuggestionCountLabelDebounced.schedule(),J!==void 0&&J>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()})),this._register((0,p.autorun)(R=>{const ie=this._extraCommands.read(R).map(ue=>({class:void 0,id:ue.id,enabled:!0,tooltip:ue.tooltip||"",label:ue.title,run:he=>this._commandService.executeCommand(ue.id)}));for(const[ue,he]of this.inlineCompletionsActionsMenus.getActions())for(const pe of he)pe instanceof r.MenuItemAction&&ie.push(pe);ie.length>0&&ie.unshift(new E.Separator),this.toolBar.setAdditionalSecondaryActions(ie)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};e.InlineSuggestionHintsContentWidget=A,e.InlineSuggestionHintsContentWidget=A=L=ke([ce(6,u.ICommandService),ce(7,h.IInstantiationService),ce(8,v.IKeybindingService),ce(9,C.IContextKeyService),ce(10,r.IMenuService)],A);class P extends k.ActionViewItem{constructor(){super(...arguments),this._className=void 0}setClass(x){this._className=x}render(x){super.render(x),this._className&&x.classList.add(this._className)}updateTooltip(){}}class N extends l.MenuEntryActionViewItem{updateLabel(){const x=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!x)return super.updateLabel();if(this.label){const W=(0,d.h)("div.keybinding").root;this._register(new I.KeybindingLabel(W,o.OS,{disableTitle:!0,...I.unthemedKeybindingLabelOptions})).set(x),this.label.textContent=this._action.label,this.label.appendChild(W),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}}let O=class extends a.WorkbenchToolBar{constructor(x,W,V,q,H,z,U,j,Y){super(x,{resetMenu:W,...V},q,H,z,U,j,Y),this.menuId=W,this.options2=V,this.menuService=q,this.contextKeyService=H,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){const x=[],W=[];(0,l.createAndFillInActionBarActions)(this.menu,this.options2?.menuOptions,{primary:x,secondary:W},this.options2?.toolbarOptions?.primaryGroup,this.options2?.toolbarOptions?.shouldInlineSubmenu,this.options2?.toolbarOptions?.useSeparatorsInPrimaryActions),W.push(...this.additionalActions),x.unshift(...this.prependedPrimaryActions),this.setActions(x,W)}setPrependedPrimaryActions(x){(0,y.equals)(this.prependedPrimaryActions,x,(W,V)=>W===V)||(this.prependedPrimaryActions=x,this.updateToolbar())}setAdditionalSecondaryActions(x){(0,y.equals)(this.additionalActions,x,(W,V)=>W===V)||(this.additionalActions=x,this.updateToolbar())}};e.CustomizedMenuWorkbenchToolBar=O,e.CustomizedMenuWorkbenchToolBar=O=ke([ce(3,r.IMenuService),ce(4,C.IContextKeyService),ce(5,f.IContextMenuService),ce(6,v.IKeybindingService),ce(7,u.ICommandService),ce(8,w.ITelemetryService)],O)}),define(ne[800],se([1,0,5,206,41,13,2,21,16,9,124,218,29,24,12,58,7,31,63,519]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),e.CustomizedMenuWorkbenchToolBar=e.InlineEditHintsContentWidget=e.InlineEditHintsWidget=void 0;let r=class extends y.Disposable{constructor(v,w,S){super(),this.editor=v,this.model=w,this.instantiationService=S,this.alwaysShowToolbar=(0,m.observableFromEvent)(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).showToolbar==="always"),this.sessionPosition=void 0,this.position=(0,m.derived)(this,L=>{const D=this.model.read(L)?.model.ghostText.read(L);if(!this.alwaysShowToolbar.read(L)||!D||D.parts.length===0)return this.sessionPosition=void 0,null;const T=D.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==D.lineNumber&&(this.sessionPosition=void 0);const M=new b.Position(D.lineNumber,Math.min(T,this.sessionPosition?.column??Number.MAX_SAFE_INTEGER));return this.sessionPosition=M,M}),this._register((0,m.autorunWithStore)((L,D)=>{if(!this.model.read(L)||!this.alwaysShowToolbar.read(L))return;const M=D.add(this.instantiationService.createInstance(u,this.editor,!0,this.position));v.addContentWidget(M),D.add((0,y.toDisposable)(()=>v.removeContentWidget(M)))}))}};e.InlineEditHintsWidget=r,e.InlineEditHintsWidget=r=ke([ce(2,g.IInstantiationService)],r);let u=class extends y.Disposable{static{a=this}static{this._dropDownVisible=!1}static{this.id=0}constructor(v,w,S,L,D,T){super(),this.editor=v,this.withBorder=w,this._position=S,this._contextKeyService=D,this._menuService=T,this.id=`InlineEditHintsContentWidget${a.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=(0,d.h)("div.inlineEditHints",{className:this.withBorder?".withBorder":""},[(0,d.h)("div@toolBar")]),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu(o.MenuId.InlineEditActions,this._contextKeyService)),this.toolBar=this._register(L.createInstance(f,this.nodes.toolBar,this.editor,o.MenuId.InlineEditToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:M=>M.startsWith("primary")},actionViewItemProvider:(M,A)=>{if(M instanceof o.MenuItemAction)return L.createInstance(C,M,void 0)},telemetrySource:"InlineEditToolbar"})),this._register(this.toolBar.onDidChangeDropdownVisibility(M=>{a._dropDownVisible=M})),this._register((0,m.autorun)(M=>{this._position.read(M),this.editor.layoutContentWidget(this)})),this._register((0,m.autorun)(M=>{const A=[];for(const[P,N]of this.inlineCompletionsActionsMenus.getActions())for(const O of N)O instanceof o.MenuItemAction&&A.push(O);A.length>0&&A.unshift(new I.Separator),this.toolBar.setAdditionalSecondaryActions(A)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};e.InlineEditHintsContentWidget=u,e.InlineEditHintsContentWidget=u=a=ke([ce(3,g.IInstantiationService),ce(4,i.IContextKeyService),ce(5,o.IMenuService)],u);class C extends p.MenuEntryActionViewItem{updateLabel(){const v=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!v)return super.updateLabel();if(this.label){const w=(0,d.h)("div.keybinding").root;this._register(new k.KeybindingLabel(w,_.OS,{disableTitle:!0,...k.unthemedKeybindingLabelOptions})).set(v),this.label.textContent=this._action.label,this.label.appendChild(w),this.label.classList.add("inlineEditStatusBarItemLabel")}}updateTooltip(){}}let f=class extends n.WorkbenchToolBar{constructor(v,w,S,L,D,T,M,A,P,N){super(v,{resetMenu:S,...L},D,T,M,A,P,N),this.editor=w,this.menuId=S,this.options2=L,this.menuService=D,this.contextKeyService=T,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this._store.add(this.editor.onDidChangeCursorPosition(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){const v=[],w=[];(0,p.createAndFillInActionBarActions)(this.menu,this.options2?.menuOptions,{primary:v,secondary:w},this.options2?.toolbarOptions?.primaryGroup,this.options2?.toolbarOptions?.shouldInlineSubmenu,this.options2?.toolbarOptions?.useSeparatorsInPrimaryActions),w.push(...this.additionalActions),v.unshift(...this.prependedPrimaryActions),this.setActions(v,w)}setAdditionalSecondaryActions(v){(0,E.equals)(this.additionalActions,v,(w,S)=>w===S)||(this.additionalActions=v,this.updateToolbar())}};e.CustomizedMenuWorkbenchToolBar=f,e.CustomizedMenuWorkbenchToolBar=f=ke([ce(4,o.IMenuService),ce(5,i.IContextKeyService),ce(6,s.IContextMenuService),ce(7,c.IKeybindingService),ce(8,t.ICommandService),ce(9,l.ITelemetryService)],f)}),define(ne[801],se([1,0,5,41,6,2,124,29,12,31,50,63,761,58]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextMenuMenuDelegate=e.ContextMenuService=void 0;let i=class extends E.Disposable{get contextMenuHandler(){return this._contextMenuHandler||(this._contextMenuHandler=new o.ContextMenuHandler(this.contextViewService,this.telemetryService,this.notificationService,this.keybindingService)),this._contextMenuHandler}constructor(c,l,a,r,u,C){super(),this.telemetryService=c,this.notificationService=l,this.contextViewService=a,this.keybindingService=r,this.menuService=u,this.contextKeyService=C,this._contextMenuHandler=void 0,this._onDidShowContextMenu=this._store.add(new I.Emitter),this.onDidShowContextMenu=this._onDidShowContextMenu.event,this._onDidHideContextMenu=this._store.add(new I.Emitter)}configure(c){this.contextMenuHandler.configure(c)}showContextMenu(c){c=s.transform(c,this.menuService,this.contextKeyService),this.contextMenuHandler.showContextMenu({...c,onHide:l=>{c.onHide?.(l),this._onDidHideContextMenu.fire()}}),d.ModifierKeyEmitter.getInstance().resetKeyStatus(),this._onDidShowContextMenu.fire()}};e.ContextMenuService=i,e.ContextMenuService=i=ke([ce(0,n.ITelemetryService),ce(1,p.INotificationService),ce(2,t.IContextViewService),ce(3,b.IKeybindingService),ce(4,m.IMenuService),ce(5,_.IContextKeyService)],i);var s;(function(g){function c(a){return a&&a.menuId instanceof m.MenuId}function l(a,r,u){if(!c(a))return a;const{menuId:C,menuActionOptions:f,contextKeyService:h}=a;return{...a,getActions:()=>{const v=[];if(C){const w=r.getMenuActions(C,h??u,f);(0,y.createAndFillInContextMenuActions)(w,v)}return a.getActions?k.Separator.join(a.getActions(),v):v}}}g.transform=l})(s||(e.ContextMenuMenuDelegate=s={}))}),define(ne[802],se([1,0,5,6,3,7,216,25,2,66,47,16,126,254,206,87,97,22,398,98,142,445,11,176,14,8,61,21,13]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L){"use strict";var D;Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputTree=void 0;const T=d.$;class M{constructor(Y,G,K){this.index=Y,this.hasCheckbox=G,this._hidden=!1,this._init=new a.Lazy(()=>{const R=K.label??"",J=(0,r.parseLabelWithIcons)(R).text.trim(),ie=K.ariaLabel||[R,this.saneDescription,this.saneDetail].map(ue=>(0,r.getCodiconAriaLabel)(ue)).filter(ue=>!!ue).join(", ");return{saneLabel:R,saneSortLabel:J,saneAriaLabel:ie}}),this._saneDescription=K.description,this._saneTooltip=K.tooltip}get saneLabel(){return this._init.value.saneLabel}get saneSortLabel(){return this._init.value.saneSortLabel}get saneAriaLabel(){return this._init.value.saneAriaLabel}get element(){return this._element}set element(Y){this._element=Y}get hidden(){return this._hidden}set hidden(Y){this._hidden=Y}get saneDescription(){return this._saneDescription}set saneDescription(Y){this._saneDescription=Y}get saneDetail(){return this._saneDetail}set saneDetail(Y){this._saneDetail=Y}get saneTooltip(){return this._saneTooltip}set saneTooltip(Y){this._saneTooltip=Y}get labelHighlights(){return this._labelHighlights}set labelHighlights(Y){this._labelHighlights=Y}get descriptionHighlights(){return this._descriptionHighlights}set descriptionHighlights(Y){this._descriptionHighlights=Y}get detailHighlights(){return this._detailHighlights}set detailHighlights(Y){this._detailHighlights=Y}}class A extends M{constructor(Y,G,K,R,J,ie){super(Y,G,J),this.fireButtonTriggered=K,this._onChecked=R,this.item=J,this._separator=ie,this._checked=!1,this.onChecked=G?k.Event.map(k.Event.filter(this._onChecked.event,ue=>ue.element===this),ue=>ue.checked):k.Event.None,this._saneDetail=J.detail,this._labelHighlights=J.highlights?.label,this._descriptionHighlights=J.highlights?.description,this._detailHighlights=J.highlights?.detail}get separator(){return this._separator}set separator(Y){this._separator=Y}get checked(){return this._checked}set checked(Y){Y!==this._checked&&(this._checked=Y,this._onChecked.fire({element:this,checked:Y}))}get checkboxDisabled(){return!!this.item.disabled}}var P;(function(j){j[j.NONE=0]="NONE",j[j.MOUSE_HOVER=1]="MOUSE_HOVER",j[j.ACTIVE_ITEM=2]="ACTIVE_ITEM"})(P||(P={}));class N extends M{constructor(Y,G,K){super(Y,!1,K),this.fireSeparatorButtonTriggered=G,this.separator=K,this.children=new Array,this.focusInsideSeparator=P.NONE}}class O{getHeight(Y){return Y instanceof N?30:Y.saneDetail?44:22}getTemplateId(Y){return Y instanceof A?W.ID:V.ID}}class F{getWidgetAriaLabel(){return(0,I.localize)(1597,"Quick Input")}getAriaLabel(Y){return Y.separator?.label?`${Y.saneAriaLabel}, ${Y.separator.label}`:Y.saneAriaLabel}getWidgetRole(){return"listbox"}getRole(Y){return Y.hasCheckbox?"checkbox":"option"}isChecked(Y){if(!(!Y.hasCheckbox||!(Y instanceof A)))return{get value(){return Y.checked},onDidChange:G=>Y.onChecked(()=>G())}}}class x{constructor(Y){this.hoverDelegate=Y}renderTemplate(Y){const G=Object.create(null);G.toDisposeElement=new _.DisposableStore,G.toDisposeTemplate=new _.DisposableStore,G.entry=d.append(Y,T(".quick-input-list-entry"));const K=d.append(G.entry,T("label.quick-input-list-label"));G.toDisposeTemplate.add(d.addStandardDisposableListener(K,d.EventType.CLICK,pe=>{G.checkbox.offsetParent||pe.preventDefault()})),G.checkbox=d.append(K,T("input.quick-input-list-checkbox")),G.checkbox.type="checkbox";const R=d.append(K,T(".quick-input-list-rows")),J=d.append(R,T(".quick-input-list-row")),ie=d.append(R,T(".quick-input-list-row"));G.label=new t.IconLabel(J,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),G.toDisposeTemplate.add(G.label),G.icon=d.prepend(G.label.element,T(".quick-input-list-icon"));const ue=d.append(J,T(".quick-input-list-entry-keybinding"));G.keybinding=new i.KeybindingLabel(ue,n.OS),G.toDisposeTemplate.add(G.keybinding);const he=d.append(ie,T(".quick-input-list-label-meta"));return G.detail=new t.IconLabel(he,{supportHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),G.toDisposeTemplate.add(G.detail),G.separator=d.append(G.entry,T(".quick-input-list-separator")),G.actionBar=new s.ActionBar(G.entry,this.hoverDelegate?{hoverDelegate:this.hoverDelegate}:void 0),G.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),G.toDisposeTemplate.add(G.actionBar),G}disposeTemplate(Y){Y.toDisposeElement.dispose(),Y.toDisposeTemplate.dispose()}disposeElement(Y,G,K){K.toDisposeElement.clear(),K.actionBar.clear()}}let W=class extends x{static{D=this}static{this.ID="quickpickitem"}constructor(Y,G){super(Y),this.themeService=G,this._itemsWithSeparatorsFrequency=new Map}get templateId(){return D.ID}renderTemplate(Y){const G=super.renderTemplate(Y);return G.toDisposeTemplate.add(d.addStandardDisposableListener(G.checkbox,d.EventType.CHANGE,K=>{G.element.checked=G.checkbox.checked})),G}renderElement(Y,G,K){const R=Y.element;K.element=R,R.element=K.entry??void 0;const J=R.item;K.checkbox.checked=R.checked,K.toDisposeElement.add(R.onChecked(de=>K.checkbox.checked=de)),K.checkbox.disabled=R.checkboxDisabled;const{labelHighlights:ie,descriptionHighlights:ue,detailHighlights:he}=R;if(J.iconPath){const de=(0,g.isDark)(this.themeService.getColorTheme().type)?J.iconPath.dark:J.iconPath.light??J.iconPath.dark,ge=c.URI.revive(de);K.icon.className="quick-input-list-icon",K.icon.style.backgroundImage=d.asCSSUrl(ge)}else K.icon.style.backgroundImage="",K.icon.className=J.iconClass?`quick-input-list-icon ${J.iconClass}`:"";let pe;!R.saneTooltip&&R.saneDescription&&(pe={markdown:{value:R.saneDescription,supportThemeIcons:!0},markdownNotSupportedFallback:R.saneDescription});const ae={matches:ie||[],descriptionTitle:pe,descriptionMatches:ue||[],labelEscapeNewLines:!0};if(ae.extraClasses=J.iconClasses,ae.italic=J.italic,ae.strikethrough=J.strikethrough,K.entry.classList.remove("quick-input-list-separator-as-item"),K.label.setLabel(R.saneLabel,R.saneDescription,ae),K.keybinding.set(J.keybinding),R.saneDetail){let de;R.saneTooltip||(de={markdown:{value:R.saneDetail,supportThemeIcons:!0},markdownNotSupportedFallback:R.saneDetail}),K.detail.element.style.display="",K.detail.setLabel(R.saneDetail,void 0,{matches:he,title:de,labelEscapeNewLines:!0})}else K.detail.element.style.display="none";R.separator?.label?(K.separator.textContent=R.separator.label,K.separator.style.display="",this.addItemWithSeparator(R)):K.separator.style.display="none",K.entry.classList.toggle("quick-input-list-separator-border",!!R.separator);const ee=J.buttons;ee&&ee.length?(K.actionBar.push(ee.map((de,ge)=>(0,l.quickInputButtonToAction)(de,`id-${ge}`,()=>R.fireButtonTriggered({button:de,item:R.item}))),{icon:!0,label:!1}),K.entry.classList.add("has-actions")):K.entry.classList.remove("has-actions")}disposeElement(Y,G,K){this.removeItemWithSeparator(Y.element),super.disposeElement(Y,G,K)}isItemWithSeparatorVisible(Y){return this._itemsWithSeparatorsFrequency.has(Y)}addItemWithSeparator(Y){this._itemsWithSeparatorsFrequency.set(Y,(this._itemsWithSeparatorsFrequency.get(Y)||0)+1)}removeItemWithSeparator(Y){const G=this._itemsWithSeparatorsFrequency.get(Y)||0;G>1?this._itemsWithSeparatorsFrequency.set(Y,G-1):this._itemsWithSeparatorsFrequency.delete(Y)}};W=D=ke([ce(1,m.IThemeService)],W);class V extends x{constructor(){super(...arguments),this._visibleSeparatorsFrequency=new Map}static{this.ID="quickpickseparator"}get templateId(){return V.ID}get visibleSeparators(){return[...this._visibleSeparatorsFrequency.keys()]}isSeparatorVisible(Y){return this._visibleSeparatorsFrequency.has(Y)}renderTemplate(Y){const G=super.renderTemplate(Y);return G.checkbox.style.display="none",G}renderElement(Y,G,K){const R=Y.element;K.element=R,R.element=K.entry??void 0,R.element.classList.toggle("focus-inside",!!R.focusInsideSeparator);const J=R.separator,{labelHighlights:ie,descriptionHighlights:ue,detailHighlights:he}=R;K.icon.style.backgroundImage="",K.icon.className="";let pe;!R.saneTooltip&&R.saneDescription&&(pe={markdown:{value:R.saneDescription,supportThemeIcons:!0},markdownNotSupportedFallback:R.saneDescription});const ae={matches:ie||[],descriptionTitle:pe,descriptionMatches:ue||[],labelEscapeNewLines:!0};if(K.entry.classList.add("quick-input-list-separator-as-item"),K.label.setLabel(R.saneLabel,R.saneDescription,ae),R.saneDetail){let de;R.saneTooltip||(de={markdown:{value:R.saneDetail,supportThemeIcons:!0},markdownNotSupportedFallback:R.saneDetail}),K.detail.element.style.display="",K.detail.setLabel(R.saneDetail,void 0,{matches:he,title:de,labelEscapeNewLines:!0})}else K.detail.element.style.display="none";K.separator.style.display="none",K.entry.classList.add("quick-input-list-separator-border");const ee=J.buttons;ee&&ee.length?(K.actionBar.push(ee.map((de,ge)=>(0,l.quickInputButtonToAction)(de,`id-${ge}`,()=>R.fireSeparatorButtonTriggered({button:de,separator:R.separator}))),{icon:!0,label:!1}),K.entry.classList.add("has-actions")):K.entry.classList.remove("has-actions"),this.addSeparator(R)}disposeElement(Y,G,K){this.removeSeparator(Y.element),this.isSeparatorVisible(Y.element)||Y.element.element?.classList.remove("focus-inside"),super.disposeElement(Y,G,K)}addSeparator(Y){this._visibleSeparatorsFrequency.set(Y,(this._visibleSeparatorsFrequency.get(Y)||0)+1)}removeSeparator(Y){const G=this._visibleSeparatorsFrequency.get(Y)||0;G>1?this._visibleSeparatorsFrequency.set(Y,G-1):this._visibleSeparatorsFrequency.delete(Y)}}let q=class extends _.Disposable{constructor(Y,G,K,R,J,ie){super(),this.parent=Y,this.hoverDelegate=G,this.linkOpenerDelegate=K,this.accessibilityService=ie,this._onKeyDown=new k.Emitter,this._onLeave=new k.Emitter,this.onLeave=this._onLeave.event,this._visibleCountObservable=(0,S.observableValue)("VisibleCount",0),this.onChangedVisibleCount=k.Event.fromObservable(this._visibleCountObservable,this._store),this._allVisibleCheckedObservable=(0,S.observableValue)("AllVisibleChecked",!1),this.onChangedAllVisibleChecked=k.Event.fromObservable(this._allVisibleCheckedObservable,this._store),this._checkedCountObservable=(0,S.observableValue)("CheckedCount",0),this.onChangedCheckedCount=k.Event.fromObservable(this._checkedCountObservable,this._store),this._checkedElementsObservable=(0,S.observableValueOpts)({equalsFn:L.equals},new Array),this.onChangedCheckedElements=k.Event.fromObservable(this._checkedElementsObservable,this._store),this._onButtonTriggered=new k.Emitter,this.onButtonTriggered=this._onButtonTriggered.event,this._onSeparatorButtonTriggered=new k.Emitter,this.onSeparatorButtonTriggered=this._onSeparatorButtonTriggered.event,this._elementChecked=new k.Emitter,this._elementCheckedEventBufferer=new k.EventBufferer,this._hasCheckboxes=!1,this._inputElements=new Array,this._elementTree=new Array,this._itemElements=new Array,this._elementDisposable=this._register(new _.DisposableStore),this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._shouldLoop=!0,this._container=d.append(this.parent,T(".quick-input-list")),this._separatorRenderer=new V(G),this._itemRenderer=J.createInstance(W,G),this._tree=this._register(J.createInstance(y.WorkbenchObjectTree,"QuickInput",this._container,new O,[this._itemRenderer,this._separatorRenderer],{filter:{filter(ue){return ue.hidden?0:ue instanceof N?2:1}},sorter:{compare:(ue,he)=>{if(!this.sortByLabel||!this._lastQueryString)return 0;const pe=this._lastQueryString.toLowerCase();return U(ue,he,pe)}},accessibilityProvider:new F,setRowLineHeight:!1,multipleSelectionSupport:!1,hideTwistiesOfChildlessElements:!0,renderIndentGuides:f.RenderIndentGuides.None,findWidgetEnabled:!1,indent:0,horizontalScrolling:!1,allowNonCollapsibleParents:!0,alwaysConsumeMouseWheel:!0})),this._tree.getHTMLElement().id=R,this._registerListeners()}get onDidChangeFocus(){return k.Event.map(this._tree.onDidChangeFocus,Y=>Y.elements.filter(G=>G instanceof A).map(G=>G.item),this._store)}get onDidChangeSelection(){return k.Event.map(this._tree.onDidChangeSelection,Y=>({items:Y.elements.filter(G=>G instanceof A).map(G=>G.item),event:Y.browserEvent}),this._store)}get displayed(){return this._container.style.display!=="none"}set displayed(Y){this._container.style.display=Y?"":"none"}get scrollTop(){return this._tree.scrollTop}set scrollTop(Y){this._tree.scrollTop=Y}get ariaLabel(){return this._tree.ariaLabel}set ariaLabel(Y){this._tree.ariaLabel=Y??""}set enabled(Y){this._tree.getHTMLElement().style.pointerEvents=Y?"":"none"}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(Y){this._matchOnDescription=Y}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(Y){this._matchOnDetail=Y}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(Y){this._matchOnLabel=Y}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(Y){this._matchOnLabelMode=Y}get sortByLabel(){return this._sortByLabel}set sortByLabel(Y){this._sortByLabel=Y}get shouldLoop(){return this._shouldLoop}set shouldLoop(Y){this._shouldLoop=Y}_registerListeners(){this._registerOnKeyDown(),this._registerOnContainerClick(),this._registerOnMouseMiddleClick(),this._registerOnTreeModelChanged(),this._registerOnElementChecked(),this._registerOnContextMenu(),this._registerHoverListeners(),this._registerSelectionChangeListener(),this._registerSeparatorActionShowingListeners()}_registerOnKeyDown(){this._register(this._tree.onKeyDown(Y=>{const G=new p.StandardKeyboardEvent(Y);switch(G.keyCode){case 10:this.toggleCheckbox();break}this._onKeyDown.fire(G)}))}_registerOnContainerClick(){this._register(d.addDisposableListener(this._container,d.EventType.CLICK,Y=>{(Y.x||Y.y)&&this._onLeave.fire()}))}_registerOnMouseMiddleClick(){this._register(d.addDisposableListener(this._container,d.EventType.AUXCLICK,Y=>{Y.button===1&&this._onLeave.fire()}))}_registerOnTreeModelChanged(){this._register(this._tree.onDidChangeModel(()=>{const Y=this._itemElements.filter(G=>!G.hidden).length;this._visibleCountObservable.set(Y,void 0),this._hasCheckboxes&&this._updateCheckedObservables()}))}_registerOnElementChecked(){this._register(this._elementCheckedEventBufferer.wrapEvent(this._elementChecked.event,(Y,G)=>G)(Y=>this._updateCheckedObservables()))}_registerOnContextMenu(){this._register(this._tree.onContextMenu(Y=>{Y.element&&(Y.browserEvent.preventDefault(),this._tree.setSelection([Y.element]))}))}_registerHoverListeners(){const Y=this._register(new h.ThrottledDelayer(this.hoverDelegate.delay));this._register(this._tree.onMouseOver(async G=>{if(d.isHTMLAnchorElement(G.browserEvent.target)){Y.cancel();return}if(!(!d.isHTMLAnchorElement(G.browserEvent.relatedTarget)&&d.isAncestor(G.browserEvent.relatedTarget,G.element?.element)))try{await Y.trigger(async()=>{G.element instanceof A&&this.showHover(G.element)})}catch(K){if(!(0,v.isCancellationError)(K))throw K}})),this._register(this._tree.onMouseOut(G=>{d.isAncestor(G.browserEvent.relatedTarget,G.element?.element)||Y.cancel()}))}_registerSeparatorActionShowingListeners(){this._register(this._tree.onDidChangeFocus(Y=>{const G=Y.elements[0]?this._tree.getParentElement(Y.elements[0]):null;for(const K of this._separatorRenderer.visibleSeparators){const R=K===G;!!(K.focusInsideSeparator&P.ACTIVE_ITEM)!==R&&(R?K.focusInsideSeparator|=P.ACTIVE_ITEM:K.focusInsideSeparator&=~P.ACTIVE_ITEM,this._tree.rerender(K))}})),this._register(this._tree.onMouseOver(Y=>{const G=Y.element?this._tree.getParentElement(Y.element):null;for(const K of this._separatorRenderer.visibleSeparators){if(K!==G)continue;!!(K.focusInsideSeparator&P.MOUSE_HOVER)||(K.focusInsideSeparator|=P.MOUSE_HOVER,this._tree.rerender(K))}})),this._register(this._tree.onMouseOut(Y=>{const G=Y.element?this._tree.getParentElement(Y.element):null;for(const K of this._separatorRenderer.visibleSeparators){if(K!==G)continue;!!(K.focusInsideSeparator&P.MOUSE_HOVER)&&(K.focusInsideSeparator&=~P.MOUSE_HOVER,this._tree.rerender(K))}}))}_registerSelectionChangeListener(){this._register(this._tree.onDidChangeSelection(Y=>{const G=Y.elements.filter(K=>K instanceof A);G.length!==Y.elements.length&&(Y.elements.length===1&&Y.elements[0]instanceof N&&(this._tree.setFocus([Y.elements[0].children[0]]),this._tree.reveal(Y.elements[0],0)),this._tree.setSelection(G))}))}setAllVisibleChecked(Y){this._elementCheckedEventBufferer.bufferEvents(()=>{this._itemElements.forEach(G=>{!G.hidden&&!G.checkboxDisabled&&(G.checked=Y)})})}setElements(Y){this._elementDisposable.clear(),this._lastQueryString=void 0,this._inputElements=Y,this._hasCheckboxes=this.parent.classList.contains("show-checkboxes");let G;this._itemElements=new Array,this._elementTree=Y.reduce((K,R,J)=>{let ie;if(R.type==="separator"){if(!R.buttons)return K;G=new N(J,ue=>this._onSeparatorButtonTriggered.fire(ue),R),ie=G}else{const ue=J>0?Y[J-1]:void 0;let he;ue&&ue.type==="separator"&&!ue.buttons&&(G=void 0,he=ue);const pe=new A(J,this._hasCheckboxes,ae=>this._onButtonTriggered.fire(ae),this._elementChecked,R,he);if(this._itemElements.push(pe),G)return G.children.push(pe),K;ie=pe}return K.push(ie),K},new Array),this._setElementsToTree(this._elementTree),this.accessibilityService.isScreenReaderOptimized()&&setTimeout(()=>{const K=this._tree.getHTMLElement().querySelector(".monaco-list-row.focused"),R=K?.parentNode;if(K&&R){const J=K.nextSibling;K.remove(),R.insertBefore(K,J)}},0)}setFocusedElements(Y){const G=Y.map(K=>this._itemElements.find(R=>R.item===K)).filter(K=>!!K).filter(K=>!K.hidden);if(this._tree.setFocus(G),Y.length>0){const K=this._tree.getFocus()[0];K&&this._tree.reveal(K)}}getActiveDescendant(){return this._tree.getHTMLElement().getAttribute("aria-activedescendant")}setSelectedElements(Y){const G=Y.map(K=>this._itemElements.find(R=>R.item===K)).filter(K=>!!K);this._tree.setSelection(G)}getCheckedElements(){return this._itemElements.filter(Y=>Y.checked).map(Y=>Y.item)}setCheckedElements(Y){this._elementCheckedEventBufferer.bufferEvents(()=>{const G=new Set;for(const K of Y)G.add(K);for(const K of this._itemElements)K.checked=G.has(K.item)})}focus(Y){if(this._itemElements.length)switch(Y===b.QuickPickFocus.Second&&this._itemElements.length<2&&(Y=b.QuickPickFocus.First),Y){case b.QuickPickFocus.First:this._tree.scrollTop=0,this._tree.focusFirst(void 0,G=>G.element instanceof A);break;case b.QuickPickFocus.Second:{this._tree.scrollTop=0;let G=!1;this._tree.focusFirst(void 0,K=>K.element instanceof A?G?!0:(G=!G,!1):!1);break}case b.QuickPickFocus.Last:this._tree.scrollTop=this._tree.scrollHeight,this._tree.focusLast(void 0,G=>G.element instanceof A);break;case b.QuickPickFocus.Next:{const G=this._tree.getFocus();this._tree.focusNext(void 0,this._shouldLoop,void 0,R=>R.element instanceof A?(this._tree.reveal(R.element),!0):!1);const K=this._tree.getFocus();G.length&&G[0]===K[0]&&G[0]===this._itemElements[this._itemElements.length-1]&&this._onLeave.fire();break}case b.QuickPickFocus.Previous:{const G=this._tree.getFocus();this._tree.focusPrevious(void 0,this._shouldLoop,void 0,R=>{if(!(R.element instanceof A))return!1;const J=this._tree.getParentElement(R.element);return J===null||J.children[0]!==R.element?this._tree.reveal(R.element):this._tree.reveal(J),!0});const K=this._tree.getFocus();G.length&&G[0]===K[0]&&G[0]===this._itemElements[0]&&this._onLeave.fire();break}case b.QuickPickFocus.NextPage:this._tree.focusNextPage(void 0,G=>G.element instanceof A?(this._tree.reveal(G.element),!0):!1);break;case b.QuickPickFocus.PreviousPage:this._tree.focusPreviousPage(void 0,G=>{if(!(G.element instanceof A))return!1;const K=this._tree.getParentElement(G.element);return K===null||K.children[0]!==G.element?this._tree.reveal(G.element):this._tree.reveal(K),!0});break;case b.QuickPickFocus.NextSeparator:{let G=!1;const K=this._tree.getFocus()[0];this._tree.focusNext(void 0,!0,void 0,J=>{if(G)return!0;if(J.element instanceof N)G=!0,this._separatorRenderer.isSeparatorVisible(J.element)?this._tree.reveal(J.element.children[0]):this._tree.reveal(J.element,0);else if(J.element instanceof A){if(J.element.separator)return this._itemRenderer.isItemWithSeparatorVisible(J.element)?this._tree.reveal(J.element):this._tree.reveal(J.element,0),!0;if(J.element===this._elementTree[0])return this._tree.reveal(J.element,0),!0}return!1});const R=this._tree.getFocus()[0];K===R&&(this._tree.scrollTop=this._tree.scrollHeight,this._tree.focusLast(void 0,J=>J.element instanceof A));break}case b.QuickPickFocus.PreviousSeparator:{let G,K=!!this._tree.getFocus()[0]?.separator;this._tree.focusPrevious(void 0,!0,void 0,R=>{if(R.element instanceof N)K?G||(this._separatorRenderer.isSeparatorVisible(R.element)?this._tree.reveal(R.element):this._tree.reveal(R.element,0),G=R.element.children[0]):K=!0;else if(R.element instanceof A&&!G){if(R.element.separator)this._itemRenderer.isItemWithSeparatorVisible(R.element)?this._tree.reveal(R.element):this._tree.reveal(R.element,0),G=R.element;else if(R.element===this._elementTree[0])return this._tree.reveal(R.element,0),!0}return!1}),G&&this._tree.setFocus([G]);break}}}clearFocus(){this._tree.setFocus([])}domFocus(){this._tree.domFocus()}layout(Y){this._tree.getHTMLElement().style.maxHeight=Y?`${Math.floor(Y/44)*44+6}px`:"",this._tree.layout()}filter(Y){if(this._lastQueryString=Y,!(this._sortByLabel||this._matchOnLabel||this._matchOnDescription||this._matchOnDetail))return this._tree.layout(),!1;const G=Y;if(Y=Y.trim(),!Y||!(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))this._itemElements.forEach(K=>{K.labelHighlights=void 0,K.descriptionHighlights=void 0,K.detailHighlights=void 0,K.hidden=!1;const R=K.index&&this._inputElements[K.index-1];K.item&&(K.separator=R&&R.type==="separator"&&!R.buttons?R:void 0)});else{let K;this._itemElements.forEach(R=>{let J;this.matchOnLabelMode==="fuzzy"?J=this.matchOnLabel?(0,r.matchesFuzzyIconAware)(Y,(0,r.parseLabelWithIcons)(R.saneLabel))??void 0:void 0:J=this.matchOnLabel?H(G,(0,r.parseLabelWithIcons)(R.saneLabel))??void 0:void 0;const ie=this.matchOnDescription?(0,r.matchesFuzzyIconAware)(Y,(0,r.parseLabelWithIcons)(R.saneDescription||""))??void 0:void 0,ue=this.matchOnDetail?(0,r.matchesFuzzyIconAware)(Y,(0,r.parseLabelWithIcons)(R.saneDetail||""))??void 0:void 0;if(J||ie||ue?(R.labelHighlights=J,R.descriptionHighlights=ie,R.detailHighlights=ue,R.hidden=!1):(R.labelHighlights=void 0,R.descriptionHighlights=void 0,R.detailHighlights=void 0,R.hidden=R.item?!R.item.alwaysShow:!0),R.item?R.separator=void 0:R.separator&&(R.hidden=!0),!this.sortByLabel){const he=R.index&&this._inputElements[R.index-1]||void 0;he?.type==="separator"&&!he.buttons&&(K=he),K&&!R.hidden&&(R.separator=K,K=void 0)}})}return this._setElementsToTree(this._sortByLabel&&Y?this._itemElements:this._elementTree),this._tree.layout(),!0}toggleCheckbox(){this._elementCheckedEventBufferer.bufferEvents(()=>{const Y=this._tree.getFocus().filter(K=>K instanceof A),G=this._allVisibleChecked(Y);for(const K of Y)K.checkboxDisabled||(K.checked=!G)})}style(Y){this._tree.style(Y)}toggleHover(){const Y=this._tree.getFocus()[0];if(!Y?.saneTooltip||!(Y instanceof A))return;if(this._lastHover&&!this._lastHover.isDisposed){this._lastHover.dispose();return}this.showHover(Y);const G=new _.DisposableStore;G.add(this._tree.onDidChangeFocus(K=>{K.elements[0]instanceof A&&this.showHover(K.elements[0])})),this._lastHover&&G.add(this._lastHover),this._elementDisposable.add(G)}_setElementsToTree(Y){const G=new Array;for(const K of Y)K instanceof N?G.push({element:K,collapsible:!1,collapsed:!1,children:K.children.map(R=>({element:R,collapsible:!1,collapsed:!1}))}):G.push({element:K,collapsible:!1,collapsed:!1});this._tree.setChildren(null,G)}_allVisibleChecked(Y,G=!0){for(let K=0,R=Y.length;K{this._allVisibleCheckedObservable.set(this._allVisibleChecked(this._itemElements,!1),Y);const G=this._itemElements.filter(K=>K.checked).length;this._checkedCountObservable.set(G,Y),this._checkedElementsObservable.set(this.getCheckedElements(),Y)})}showHover(Y){this._lastHover&&!this._lastHover.isDisposed&&(this.hoverDelegate.onDidHideHover?.(),this._lastHover?.dispose()),!(!Y.element||!Y.saneTooltip)&&(this._lastHover=this.hoverDelegate.showHover({content:Y.saneTooltip,target:Y.element,linkHandler:G=>{this.linkOpenerDelegate(G)},appearance:{showPointer:!0},container:this._container,position:{hoverPosition:1}},!1))}};e.QuickInputTree=q,ke([o.memoize],q.prototype,"onDidChangeFocus",null),ke([o.memoize],q.prototype,"onDidChangeSelection",null),e.QuickInputTree=q=ke([ce(4,E.IInstantiationService),ce(5,w.IAccessibilityService)],q);function H(j,Y){const{text:G,iconOffsets:K}=Y;if(!K||K.length===0)return z(j,G);const R=(0,C.ltrim)(G," "),J=G.length-R.length,ie=z(j,R);if(ie)for(const ue of ie){const he=K[ue.start+J]+J;ue.start+=he,ue.end+=he}return ie}function z(j,Y){const G=Y.toLowerCase().indexOf(j.toLowerCase());return G!==-1?[{start:G,end:G+j.length}]:null}function U(j,Y,G){const K=j.labelHighlights||[],R=Y.labelHighlights||[];return K.length&&!R.length?-1:!K.length&&R.length?1:K.length===0&&R.length===0?0:(0,u.compareAnything)(j.saneSortLabel,Y.saneSortLabel,G)}}),define(ne[803],se([1,0,5,87,258,354,633,18,6,2,111,3,66,704,272,119,52,7,802,12,719]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a){"use strict";var r;Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputController=void 0;const u=d.$;let C=class extends b.Disposable{static{r=this}static{this.MAX_WIDTH=600}get currentQuickInput(){return this.controller??void 0}get container(){return this._container}constructor(h,v,w,S){super(),this.options=h,this.layoutService=v,this.instantiationService=w,this.contextKeyService=S,this.enabled=!0,this.onDidAcceptEmitter=this._register(new _.Emitter),this.onDidCustomEmitter=this._register(new _.Emitter),this.onDidTriggerButtonEmitter=this._register(new _.Emitter),this.keyMods={ctrlCmd:!1,alt:!1},this.controller=null,this.onShowEmitter=this._register(new _.Emitter),this.onShow=this.onShowEmitter.event,this.onHideEmitter=this._register(new _.Emitter),this.onHide=this.onHideEmitter.event,this.inQuickInputContext=i.InQuickInputContextKey.bindTo(this.contextKeyService),this.quickInputTypeContext=i.QuickInputTypeContextKey.bindTo(this.contextKeyService),this.endOfQuickInputBoxContext=i.EndOfQuickInputBoxContextKey.bindTo(this.contextKeyService),this.idPrefix=h.idPrefix,this._container=h.container,this.styles=h.styles,this._register(_.Event.runAndSubscribe(d.onDidRegisterWindow,({window:L,disposables:D})=>this.registerKeyModsListeners(L,D),{window:g.mainWindow,disposables:this._store})),this._register(d.onWillUnregisterWindow(L=>{this.ui&&d.getWindow(this.ui.container)===L&&(this.reparentUI(this.layoutService.mainContainer),this.layout(this.layoutService.mainContainerDimension,this.layoutService.mainContainerOffset.quickPickTop))}))}registerKeyModsListeners(h,v){const w=S=>{this.keyMods.ctrlCmd=S.ctrlKey||S.metaKey,this.keyMods.alt=S.altKey};for(const S of[d.EventType.KEY_DOWN,d.EventType.KEY_UP,d.EventType.MOUSE_DOWN])v.add(d.addDisposableListener(h,S,w,!0))}getUI(h){if(this.ui)return h&&d.getWindow(this._container)!==d.getWindow(this.layoutService.activeContainer)&&(this.reparentUI(this.layoutService.activeContainer),this.layout(this.layoutService.activeContainerDimension,this.layoutService.activeContainerOffset.quickPickTop)),this.ui;const v=d.append(this._container,u(".quick-input-widget.show-file-icons"));v.tabIndex=-1,v.style.display="none";const w=d.createStyleSheet(v),S=d.append(v,u(".quick-input-titlebar")),L=this._register(new k.ActionBar(S,{hoverDelegate:this.options.hoverDelegate}));L.domNode.classList.add("quick-input-left-action-bar");const D=d.append(S,u(".quick-input-title")),T=this._register(new k.ActionBar(S,{hoverDelegate:this.options.hoverDelegate}));T.domNode.classList.add("quick-input-right-action-bar");const M=d.append(v,u(".quick-input-header")),A=d.append(M,u("input.quick-input-check-all"));A.type="checkbox",A.setAttribute("aria-label",(0,n.localize)(1590,"Toggle all checkboxes")),this._register(d.addStandardDisposableListener(A,d.EventType.CHANGE,pe=>{const ae=A.checked;ue.setAllVisibleChecked(ae)})),this._register(d.addDisposableListener(A,d.EventType.CLICK,pe=>{(pe.x||pe.y)&&F.setFocus()}));const P=d.append(M,u(".quick-input-description")),N=d.append(M,u(".quick-input-and-message")),O=d.append(N,u(".quick-input-filter")),F=this._register(new t.QuickInputBox(O,this.styles.inputBox,this.styles.toggle));F.setAttribute("aria-describedby",`${this.idPrefix}message`);const x=d.append(O,u(".quick-input-visible-count"));x.setAttribute("aria-live","polite"),x.setAttribute("aria-atomic","true");const W=new E.CountBadge(x,{countFormat:(0,n.localize)(1591,"{0} Results")},this.styles.countBadge),V=d.append(O,u(".quick-input-count"));V.setAttribute("aria-live","polite");const q=new E.CountBadge(V,{countFormat:(0,n.localize)(1592,"{0} Selected")},this.styles.countBadge),H=this._register(new k.ActionBar(M,{hoverDelegate:this.options.hoverDelegate}));H.domNode.classList.add("quick-input-inline-action-bar");const z=d.append(M,u(".quick-input-action")),U=this._register(new I.Button(z,this.styles.button));U.label=(0,n.localize)(1593,"OK"),this._register(U.onDidClick(pe=>{this.onDidAcceptEmitter.fire()}));const j=d.append(M,u(".quick-input-action")),Y=this._register(new I.Button(j,{...this.styles.button,supportIcons:!0}));Y.label=(0,n.localize)(1594,"Custom"),this._register(Y.onDidClick(pe=>{this.onDidCustomEmitter.fire()}));const G=d.append(N,u(`#${this.idPrefix}message.quick-input-message`)),K=this._register(new y.ProgressBar(v,this.styles.progressBar));K.getContainer().classList.add("quick-input-progress");const R=d.append(v,u(".quick-input-html-widget"));R.tabIndex=-1;const J=d.append(v,u(".quick-input-description")),ie=this.idPrefix+"list",ue=this._register(this.instantiationService.createInstance(l.QuickInputTree,v,this.options.hoverDelegate,this.options.linkOpenerDelegate,ie));F.setAttribute("aria-controls",ie),this._register(ue.onDidChangeFocus(()=>{F.setAttribute("aria-activedescendant",ue.getActiveDescendant()??"")})),this._register(ue.onChangedAllVisibleChecked(pe=>{A.checked=pe})),this._register(ue.onChangedVisibleCount(pe=>{W.setCount(pe)})),this._register(ue.onChangedCheckedCount(pe=>{q.setCount(pe)})),this._register(ue.onLeave(()=>{setTimeout(()=>{this.controller&&(F.setFocus(),this.controller instanceof i.QuickPick&&this.controller.canSelectMany&&ue.clearFocus())},0)}));const he=d.trackFocus(v);return this._register(he),this._register(d.addDisposableListener(v,d.EventType.FOCUS,pe=>{const ae=this.getUI();if(d.isAncestor(pe.relatedTarget,ae.inputContainer)){const ee=ae.inputBox.isSelectionAtEnd();this.endOfQuickInputBoxContext.get()!==ee&&this.endOfQuickInputBoxContext.set(ee)}d.isAncestor(pe.relatedTarget,ae.container)||(this.inQuickInputContext.set(!0),this.previousFocusElement=d.isHTMLElement(pe.relatedTarget)?pe.relatedTarget:void 0)},!0)),this._register(he.onDidBlur(()=>{!this.getUI().ignoreFocusOut&&!this.options.ignoreFocusOut()&&this.hide(o.QuickInputHideReason.Blur),this.inQuickInputContext.set(!1),this.endOfQuickInputBoxContext.set(!1),this.previousFocusElement=void 0})),this._register(F.onKeyDown(pe=>{const ae=this.getUI().inputBox.isSelectionAtEnd();this.endOfQuickInputBoxContext.get()!==ae&&this.endOfQuickInputBoxContext.set(ae)})),this._register(d.addDisposableListener(v,d.EventType.FOCUS,pe=>{F.setFocus()})),this._register(d.addStandardDisposableListener(v,d.EventType.KEY_DOWN,pe=>{if(!d.isAncestor(pe.target,R))switch(pe.keyCode){case 3:d.EventHelper.stop(pe,!0),this.enabled&&this.onDidAcceptEmitter.fire();break;case 9:d.EventHelper.stop(pe,!0),this.hide(o.QuickInputHideReason.Gesture);break;case 2:if(!pe.altKey&&!pe.ctrlKey&&!pe.metaKey){const ae=[".quick-input-list .monaco-action-bar .always-visible",".quick-input-list-entry:hover .monaco-action-bar",".monaco-list-row.focused .monaco-action-bar"];if(v.classList.contains("show-checkboxes")?ae.push("input"):ae.push("input[type=text]"),this.getUI().list.displayed&&ae.push(".monaco-list"),this.getUI().message&&ae.push(".quick-input-message a"),this.getUI().widget){if(d.isAncestor(pe.target,this.getUI().widget))break;ae.push(".quick-input-html-widget")}const ee=v.querySelectorAll(ae.join(", "));pe.shiftKey&&pe.target===ee[0]?(d.EventHelper.stop(pe,!0),ue.clearFocus()):!pe.shiftKey&&d.isAncestor(pe.target,ee[ee.length-1])&&(d.EventHelper.stop(pe,!0),ee[0].focus())}break;case 10:pe.ctrlKey&&(d.EventHelper.stop(pe,!0),this.getUI().list.toggleHover());break}})),this.ui={container:v,styleSheet:w,leftActionBar:L,titleBar:S,title:D,description1:J,description2:P,widget:R,rightActionBar:T,inlineActionBar:H,checkAll:A,inputContainer:N,filterContainer:O,inputBox:F,visibleCountContainer:x,visibleCount:W,countContainer:V,count:q,okContainer:z,ok:U,message:G,customButtonContainer:j,customButton:Y,list:ue,progressBar:K,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,show:pe=>this.show(pe),hide:()=>this.hide(),setVisibilities:pe=>this.setVisibilities(pe),setEnabled:pe=>this.setEnabled(pe),setContextKey:pe=>this.options.setContextKey(pe),linkOpenerDelegate:pe=>this.options.linkOpenerDelegate(pe)},this.updateStyles(),this.ui}reparentUI(h){this.ui&&(this._container=h,d.append(this._container,this.ui.container))}pick(h,v={},w=m.CancellationToken.None){return new Promise((S,L)=>{let D=P=>{D=S,v.onKeyMods?.(T.keyMods),S(P)};if(w.isCancellationRequested){D(void 0);return}const T=this.createQuickPick({useSeparators:!0});let M;const A=[T,T.onDidAccept(()=>{if(T.canSelectMany)D(T.selectedItems.slice()),T.hide();else{const P=T.activeItems[0];P&&(D(P),T.hide())}}),T.onDidChangeActive(P=>{const N=P[0];N&&v.onDidFocus&&v.onDidFocus(N)}),T.onDidChangeSelection(P=>{if(!T.canSelectMany){const N=P[0];N&&(D(N),T.hide())}}),T.onDidTriggerItemButton(P=>v.onDidTriggerItemButton&&v.onDidTriggerItemButton({...P,removeItem:()=>{const N=T.items.indexOf(P.item);if(N!==-1){const O=T.items.slice(),F=O.splice(N,1),x=T.activeItems.filter(V=>V!==F[0]),W=T.keepScrollPosition;T.keepScrollPosition=!0,T.items=O,x&&(T.activeItems=x),T.keepScrollPosition=W}}})),T.onDidTriggerSeparatorButton(P=>v.onDidTriggerSeparatorButton?.(P)),T.onDidChangeValue(P=>{M&&!P&&(T.activeItems.length!==1||T.activeItems[0]!==M)&&(T.activeItems=[M])}),w.onCancellationRequested(()=>{T.hide()}),T.onDidHide(()=>{(0,b.dispose)(A),D(void 0)})];T.title=v.title,v.value&&(T.value=v.value),T.canSelectMany=!!v.canPickMany,T.placeholder=v.placeHolder,T.ignoreFocusOut=!!v.ignoreFocusLost,T.matchOnDescription=!!v.matchOnDescription,T.matchOnDetail=!!v.matchOnDetail,T.matchOnLabel=v.matchOnLabel===void 0||v.matchOnLabel,T.quickNavigate=v.quickNavigate,T.hideInput=!!v.hideInput,T.contextKey=v.contextKey,T.busy=!0,Promise.all([h,v.activeItem]).then(([P,N])=>{M=N,T.busy=!1,T.items=P,T.canSelectMany&&(T.selectedItems=P.filter(O=>O.type!=="separator"&&O.picked)),M&&(T.activeItems=[M])}),T.show(),Promise.resolve(h).then(void 0,P=>{L(P),T.hide()})})}createQuickPick(h={useSeparators:!1}){const v=this.getUI(!0);return new i.QuickPick(v)}createInputBox(){const h=this.getUI(!0);return new i.InputBox(h)}show(h){const v=this.getUI(!0);this.onShowEmitter.fire();const w=this.controller;this.controller=h,w?.didHide(),this.setEnabled(!0),v.leftActionBar.clear(),v.title.textContent="",v.description1.textContent="",v.description2.textContent="",d.reset(v.widget),v.rightActionBar.clear(),v.inlineActionBar.clear(),v.checkAll.checked=!1,v.inputBox.placeholder="",v.inputBox.password=!1,v.inputBox.showDecoration(p.default.Ignore),v.visibleCount.setCount(0),v.count.setCount(0),d.reset(v.message),v.progressBar.stop(),v.list.setElements([]),v.list.matchOnDescription=!1,v.list.matchOnDetail=!1,v.list.matchOnLabel=!0,v.list.sortByLabel=!0,v.ignoreFocusOut=!1,v.inputBox.toggles=void 0;const S=this.options.backKeybindingLabel();i.backButton.tooltip=S?(0,n.localize)(1595,"Back ({0})",S):(0,n.localize)(1596,"Back"),v.container.style.display="",this.updateLayout(),v.inputBox.setFocus(),this.quickInputTypeContext.set(h.type)}isVisible(){return!!this.ui&&this.ui.container.style.display!=="none"}setVisibilities(h){const v=this.getUI();v.title.style.display=h.title?"":"none",v.description1.style.display=h.description&&(h.inputBox||h.checkAll)?"":"none",v.description2.style.display=h.description&&!(h.inputBox||h.checkAll)?"":"none",v.checkAll.style.display=h.checkAll?"":"none",v.inputContainer.style.display=h.inputBox?"":"none",v.filterContainer.style.display=h.inputBox?"":"none",v.visibleCountContainer.style.display=h.visibleCount?"":"none",v.countContainer.style.display=h.count?"":"none",v.okContainer.style.display=h.ok?"":"none",v.customButtonContainer.style.display=h.customButton?"":"none",v.message.style.display=h.message?"":"none",v.progressBar.getContainer().style.display=h.progressBar?"":"none",v.list.displayed=!!h.list,v.container.classList.toggle("show-checkboxes",!!h.checkBox),v.container.classList.toggle("hidden-input",!h.inputBox&&!h.description),this.updateLayout()}setEnabled(h){if(h!==this.enabled){this.enabled=h;for(const v of this.getUI().leftActionBar.viewItems)v.action.enabled=h;for(const v of this.getUI().rightActionBar.viewItems)v.action.enabled=h;this.getUI().checkAll.disabled=!h,this.getUI().inputBox.enabled=h,this.getUI().ok.enabled=h,this.getUI().list.enabled=h}}hide(h){const v=this.controller;if(!v)return;v.willHide(h);const w=this.ui?.container,S=w&&!d.isAncestorOfActiveElement(w);if(this.controller=null,this.onHideEmitter.fire(),w&&(w.style.display="none"),!S){let L=this.previousFocusElement;for(;L&&!L.offsetParent;)L=L.parentElement??void 0;L?.offsetParent?(L.focus(),this.previousFocusElement=void 0):this.options.returnFocus()}v.didHide(h)}layout(h,v){this.dimension=h,this.titleBarOffset=v,this.updateLayout()}updateLayout(){if(this.ui&&this.isVisible()){this.ui.container.style.top=`${this.titleBarOffset}px`;const h=this.ui.container.style,v=Math.min(this.dimension.width*.62,r.MAX_WIDTH);h.width=v+"px",h.marginLeft="-"+v/2+"px",this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&this.dimension.height*.4)}}applyStyles(h){this.styles=h,this.updateStyles()}updateStyles(){if(this.ui){const{quickInputTitleBackground:h,quickInputBackground:v,quickInputForeground:w,widgetBorder:S,widgetShadow:L}=this.styles.widget;this.ui.titleBar.style.backgroundColor=h??"",this.ui.container.style.backgroundColor=v??"",this.ui.container.style.color=w??"",this.ui.container.style.border=S?`1px solid ${S}`:"",this.ui.container.style.boxShadow=L?`0 0 8px 2px ${L}`:"",this.ui.list.style(this.styles.list);const D=[];this.styles.pickerGroup.pickerGroupBorder&&D.push(`.quick-input-list .quick-input-list-entry { border-top-color: ${this.styles.pickerGroup.pickerGroupBorder}; }`),this.styles.pickerGroup.pickerGroupForeground&&D.push(`.quick-input-list .quick-input-list-separator { color: ${this.styles.pickerGroup.pickerGroupForeground}; }`),this.styles.pickerGroup.pickerGroupForeground&&D.push(".quick-input-list .quick-input-list-separator-as-item { color: var(--vscode-descriptionForeground); }"),(this.styles.keybindingLabel.keybindingLabelBackground||this.styles.keybindingLabel.keybindingLabelBorder||this.styles.keybindingLabel.keybindingLabelBottomBorder||this.styles.keybindingLabel.keybindingLabelShadow||this.styles.keybindingLabel.keybindingLabelForeground)&&(D.push(".quick-input-list .monaco-keybinding > .monaco-keybinding-key {"),this.styles.keybindingLabel.keybindingLabelBackground&&D.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`),this.styles.keybindingLabel.keybindingLabelBorder&&D.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`),this.styles.keybindingLabel.keybindingLabelBottomBorder&&D.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`),this.styles.keybindingLabel.keybindingLabelShadow&&D.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`),this.styles.keybindingLabel.keybindingLabelForeground&&D.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`),D.push("}"));const T=D.join(` +`);T!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=T)}}};e.QuickInputController=C,e.QuickInputController=C=r=ke([ce(1,s.ILayoutService),ce(2,c.IInstantiationService),ce(3,a.IContextKeyService)],C)}),define(ne[804],se([1,0,18,6,12,7,119,59,722,110,32,25,272,803,28,5]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputService=void 0;let g=class extends n.Themable{get controller(){return this._controller||(this._controller=this._register(this.createController())),this._controller}get hasController(){return!!this._controller}get currentQuickInput(){return this.controller.currentQuickInput}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(_.QuickAccessController))),this._quickAccess}constructor(l,a,r,u,C){super(r),this.instantiationService=l,this.contextKeyService=a,this.layoutService=u,this.configurationService=C,this._onShow=this._register(new k.Emitter),this._onHide=this._register(new k.Emitter),this.contexts=new Map}createController(l=this.layoutService,a){const r={idPrefix:"quickInput_",container:l.activeContainer,ignoreFocusOut:()=>!1,backKeybindingLabel:()=>{},setContextKey:C=>this.setContextKey(C),linkOpenerDelegate:C=>{this.instantiationService.invokeFunction(f=>{f.get(m.IOpenerService).open(C,{allowCommands:!0,fromUserGesture:!0})})},returnFocus:()=>l.focus(),styles:this.computeStyles(),hoverDelegate:this._register(this.instantiationService.createInstance(o.QuickInputHoverDelegate))},u=this._register(this.instantiationService.createInstance(t.QuickInputController,{...r,...a}));return u.layout(l.activeContainerDimension,l.activeContainerOffset.quickPickTop),this._register(l.onDidLayoutActiveContainer(C=>{(0,s.getWindow)(l.activeContainer)===(0,s.getWindow)(u.container)&&u.layout(C,l.activeContainerOffset.quickPickTop)})),this._register(l.onDidChangeActiveContainer(()=>{u.isVisible()||u.layout(l.activeContainerDimension,l.activeContainerOffset.quickPickTop)})),this._register(u.onShow(()=>{this.resetContextKeys(),this._onShow.fire()})),this._register(u.onHide(()=>{this.resetContextKeys(),this._onHide.fire()})),u}setContextKey(l){let a;l&&(a=this.contexts.get(l),a||(a=new I.RawContextKey(l,!1).bindTo(this.contextKeyService),this.contexts.set(l,a))),!(a&&a.get())&&(this.resetContextKeys(),a?.set(!0))}resetContextKeys(){this.contexts.forEach(l=>{l.get()&&l.reset()})}pick(l,a,r=d.CancellationToken.None){return this.controller.pick(l,a,r)}createQuickPick(l={useSeparators:!1}){return this.controller.createQuickPick(l)}createInputBox(){return this.controller.createInputBox()}updateStyles(){this.hasController&&this.controller.applyStyles(this.computeStyles())}computeStyles(){return{widget:{quickInputBackground:(0,p.asCssVariable)(p.quickInputBackground),quickInputForeground:(0,p.asCssVariable)(p.quickInputForeground),quickInputTitleBackground:(0,p.asCssVariable)(p.quickInputTitleBackground),widgetBorder:(0,p.asCssVariable)(p.widgetBorder),widgetShadow:(0,p.asCssVariable)(p.widgetShadow)},inputBox:b.defaultInputBoxStyles,toggle:b.defaultToggleStyles,countBadge:b.defaultCountBadgeStyles,button:b.defaultButtonStyles,progressBar:b.defaultProgressBarStyles,keybindingLabel:b.defaultKeybindingLabelStyles,list:(0,b.getListStyles)({listBackground:p.quickInputBackground,listFocusBackground:p.quickInputListFocusBackground,listFocusForeground:p.quickInputListFocusForeground,listInactiveFocusForeground:p.quickInputListFocusForeground,listInactiveSelectionIconForeground:p.quickInputListFocusIconForeground,listInactiveFocusBackground:p.quickInputListFocusBackground,listFocusOutline:p.activeContrastBorder,listInactiveFocusOutline:p.activeContrastBorder}),pickerGroup:{pickerGroupBorder:(0,p.asCssVariable)(p.pickerGroupBorder),pickerGroupForeground:(0,p.asCssVariable)(p.pickerGroupForeground)}}}};e.QuickInputService=g,e.QuickInputService=g=ke([ce(0,E.IInstantiationService),ce(1,I.IContextKeyService),ce(2,n.IThemeService),ce(3,y.ILayoutService),ce(4,i.IConfigurationService)],g)}),define(ne[805],se([1,0,6,15,25,18,7,12,394,34,804,127,28,540]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.QuickInputEditorWidget=e.QuickInputEditorContribution=e.StandaloneQuickInputService=void 0;let t=class extends p.QuickInputService{constructor(l,a,r,u,C,f){super(a,r,u,new _.EditorScopedLayoutService(l.getContainerDomNode(),C),f),this.host=void 0;const h=s.get(l);if(h){const v=h.widget;this.host={_serviceBrand:void 0,get mainContainer(){return v.getDomNode()},getContainer(){return v.getDomNode()},whenContainerStylesLoaded(){},get containers(){return[v.getDomNode()]},get activeContainer(){return v.getDomNode()},get mainContainerDimension(){return l.getLayoutInfo()},get activeContainerDimension(){return l.getLayoutInfo()},get onDidLayoutMainContainer(){return l.onDidLayoutChange},get onDidLayoutActiveContainer(){return l.onDidLayoutChange},get onDidLayoutContainer(){return d.Event.map(l.onDidLayoutChange,w=>({container:v.getDomNode(),dimension:w}))},get onDidChangeActiveContainer(){return d.Event.None},get onDidAddContainer(){return d.Event.None},get mainContainerOffset(){return{top:0,quickPickTop:0}},get activeContainerOffset(){return{top:0,quickPickTop:0}},focus:()=>l.focus()}}else this.host=void 0}createController(){return super.createController(this.host)}};t=ke([ce(1,y.IInstantiationService),ce(2,m.IContextKeyService),ce(3,I.IThemeService),ce(4,b.ICodeEditorService),ce(5,o.IConfigurationService)],t);let i=class{get activeService(){const l=this.codeEditorService.getFocusedCodeEditor();if(!l)throw new Error("Quick input service needs a focused editor to work.");let a=this.mapEditorToService.get(l);if(!a){const r=a=this.instantiationService.createInstance(t,l);this.mapEditorToService.set(l,a),(0,n.createSingleCallFunction)(l.onDidDispose)(()=>{r.dispose(),this.mapEditorToService.delete(l)})}return a}get currentQuickInput(){return this.activeService.currentQuickInput}get quickAccess(){return this.activeService.quickAccess}constructor(l,a){this.instantiationService=l,this.codeEditorService=a,this.mapEditorToService=new Map}pick(l,a,r=E.CancellationToken.None){return this.activeService.pick(l,a,r)}createQuickPick(l={useSeparators:!1}){return this.activeService.createQuickPick(l)}createInputBox(){return this.activeService.createInputBox()}};e.StandaloneQuickInputService=i,e.StandaloneQuickInputService=i=ke([ce(0,y.IInstantiationService),ce(1,b.ICodeEditorService)],i);class s{static{this.ID="editor.controller.quickInput"}static get(l){return l.getContribution(s.ID)}constructor(l){this.editor=l,this.widget=new g(this.editor)}dispose(){this.widget.dispose()}}e.QuickInputEditorContribution=s;class g{static{this.ID="editor.contrib.quickInputWidget"}constructor(l){this.codeEditor=l,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}getId(){return g.ID}getDomNode(){return this.domNode}getPosition(){return{preference:2}}dispose(){this.codeEditor.removeOverlayWidget(this)}}e.QuickInputEditorWidget=g,(0,k.registerEditorContribution)(s.ID,s,4)}),define(ne[284],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UndoRedoSource=e.UndoRedoGroup=e.ResourceEditStackSnapshot=e.IUndoRedoService=void 0,e.IUndoRedoService=(0,d.createDecorator)("undoRedoService");class k{constructor(m,_){this.resource=m,this.elements=_}}e.ResourceEditStackSnapshot=k;class I{static{this._ID=0}constructor(){this.id=I._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}static{this.None=new I}}e.UndoRedoGroup=I;class E{static{this._ID=0}constructor(){this.id=E._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}static{this.None=new E}}e.UndoRedoSource=E}),define(ne[35],se([1,0,13,33,8,6,2,11,22,145,230,9,4,23,197,43,36,40,661,783,370,329,577,578,371,662,202,707,263,132,7,284]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M){"use strict";var A;Object.defineProperty(e,"__esModule",{value:!0}),e.ModelDecorationOptions=e.ModelDecorationInjectedTextOptions=e.ModelDecorationMinimapOptions=e.ModelDecorationGlyphMarginOptions=e.ModelDecorationOverviewRulerOptions=e.TextModel=void 0,e.createTextBufferFactory=P,e.createTextBufferFactoryFromSnapshot=N,e.createTextBuffer=O,e.indentOfLine=z;function P(X){const B=new v.PieceTreeTextBufferBuilder;return B.acceptChunk(X),B.finish()}function N(X){const B=new v.PieceTreeTextBufferBuilder;let $;for(;typeof($=X.read())=="string";)B.acceptChunk($);return B.finish()}function O(X,B){let $;return typeof X=="string"?$=P(X):c.isITextSnapshot(X)?$=N(X):$=X,$.create(B)}let F=0;const x=999,W=1e4;class V{constructor(B){this._source=B,this._eos=!1}read(){if(this._eos)return null;const B=[];let $=0,Q=0;do{const Z=this._source.read();if(Z===null)return this._eos=!0,$===0?null:B.join("");if(Z.length>0&&(B[$++]=Z,Q+=Z.length),Q>=64*1024)return B.join("")}while(!0)}}const q=()=>{throw new Error("Invalid change accessor")};let H=class extends y.Disposable{static{A=this}static{this._MODEL_SYNC_LIMIT=50*1024*1024}static{this.LARGE_FILE_SIZE_THRESHOLD=20*1024*1024}static{this.LARGE_FILE_LINE_COUNT_THRESHOLD=300*1e3}static{this.LARGE_FILE_HEAP_OPERATION_THRESHOLD=256*1024*1024}static{this.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:i.EDITOR_MODEL_DEFAULTS.tabSize,indentSize:i.EDITOR_MODEL_DEFAULTS.indentSize,insertSpaces:i.EDITOR_MODEL_DEFAULTS.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:i.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,largeFileOptimizations:i.EDITOR_MODEL_DEFAULTS.largeFileOptimizations,bracketPairColorizationOptions:i.EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions}}static resolveOptions(B,$){if($.detectIndentation){const Q=(0,C.guessIndentation)(B,$.tabSize,$.insertSpaces);return new c.TextModelResolvedOptions({tabSize:Q.tabSize,indentSize:"tabSize",insertSpaces:Q.insertSpaces,trimAutoWhitespace:$.trimAutoWhitespace,defaultEOL:$.defaultEOL,bracketPairColorizationOptions:$.bracketPairColorizationOptions})}return new c.TextModelResolvedOptions($)}get onDidChangeLanguage(){return this._tokenizationTextModelPart.onDidChangeLanguage}get onDidChangeLanguageConfiguration(){return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration}get onDidChangeTokens(){return this._tokenizationTextModelPart.onDidChangeTokens}onDidChangeContent(B){return this._eventEmitter.slowEvent($=>B($.contentChangedEvent))}onDidChangeContentOrInjectedText(B){return(0,y.combinedDisposable)(this._eventEmitter.fastEvent($=>B($)),this._onDidChangeInjectedText.event($=>B($)))}_isDisposing(){return this.__isDisposing}get tokenization(){return this._tokenizationTextModelPart}get bracketPairs(){return this._bracketPairs}get guides(){return this._guidesTextModelPart}constructor(B,$,Q,Z=null,te,re,le,me){super(),this._undoRedoService=te,this._languageService=re,this._languageConfigurationService=le,this.instantiationService=me,this._onWillDispose=this._register(new E.Emitter),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new de(Ae=>this.handleBeforeFireDecorationsChangedEvent(Ae))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new E.Emitter),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new E.Emitter),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new E.Emitter),this._eventEmitter=this._register(new ge),this._languageSelectionListener=this._register(new y.MutableDisposable),this._deltaDecorationCallCnt=0,this._attachedViews=new L.AttachedViews,F++,this.id="$model"+F,this.isForSimpleWidget=Q.isForSimpleWidget,typeof Z>"u"||Z===null?this._associatedResource=_.URI.parse("inmemory://model/"+F):this._associatedResource=Z,this._attachedEditorCount=0;const{textBuffer:Ce,disposable:ye}=O(B,Q.defaultEOL);this._buffer=Ce,this._bufferDisposable=ye,this._options=A.resolveOptions(this._buffer,Q);const Le=typeof $=="string"?$:$.languageId;typeof $!="string"&&(this._languageSelectionListener.value=$.onDidChange(()=>this._setLanguage($.languageId))),this._bracketPairs=this._register(new l.BracketPairsTextModelPart(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new u.GuidesTextModelPart(this,this._languageConfigurationService)),this._decorationProvider=this._register(new a.ColorizedBracketPairsDecorationProvider(this)),this._tokenizationTextModelPart=this.instantiationService.createInstance(S.TokenizationTextModelPart,this,this._bracketPairs,Le,this._attachedViews);const Ee=this._buffer.getLineCount(),Me=this._buffer.getValueLengthInRange(new o.Range(1,1,Ee,this._buffer.getLineLength(Ee)+1),0);Q.largeFileOptimizations?(this._isTooLargeForTokenization=Me>A.LARGE_FILE_SIZE_THRESHOLD||Ee>A.LARGE_FILE_LINE_COUNT_THRESHOLD,this._isTooLargeForHeapOperation=Me>A.LARGE_FILE_HEAP_OPERATION_THRESHOLD):(this._isTooLargeForTokenization=!1,this._isTooLargeForHeapOperation=!1),this._isTooLargeForSyncing=Me>A._MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this.__isDisposing=!1,this._instanceId=m.singleLetterHash(F),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new G,this._commandManager=new r.EditStack(this,this._undoRedoService),this._isUndoing=!1,this._isRedoing=!1,this._trimAutoWhitespaceLines=null,this._register(this._decorationProvider.onDidChange(()=>{this._onDidChangeDecorations.beginDeferredEmit(),this._onDidChangeDecorations.fire(),this._onDidChangeDecorations.endDeferredEmit()})),this._languageService.requestRichLanguageFeatures(Le),this._register(this._languageConfigurationService.onDidChange(Ae=>{this._bracketPairs.handleLanguageConfigurationServiceChange(Ae),this._tokenizationTextModelPart.handleLanguageConfigurationServiceChange(Ae)}))}dispose(){this.__isDisposing=!0,this._onWillDispose.fire(),this._tokenizationTextModelPart.dispose(),this._isDisposed=!0,super.dispose(),this._bufferDisposable.dispose(),this.__isDisposing=!1;const B=new h.PieceTreeTextBuffer([],"",` +`,!1,!1,!0,!0);B.dispose(),this._buffer=B,this._bufferDisposable=y.Disposable.None}_assertNotDisposed(){if(this._isDisposed)throw new I.BugIndicatingError("Model is disposed!")}_emitContentChangedEvent(B,$){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent($),this._bracketPairs.handleDidChangeContent($),this._eventEmitter.fire(new D.InternalModelContentChangeEvent(B,$)))}setValue(B){if(this._assertNotDisposed(),B==null)throw(0,I.illegalArgument)();const{textBuffer:$,disposable:Q}=O(B,this._options.defaultEOL);this._setValueFromTextBuffer($,Q)}_createContentChanged2(B,$,Q,Z,te,re,le,me){return{changes:[{range:B,rangeOffset:$,rangeLength:Q,text:Z}],eol:this._buffer.getEOL(),isEolChange:me,versionId:this.getVersionId(),isUndoing:te,isRedoing:re,isFlush:le}}_setValueFromTextBuffer(B,$){this._assertNotDisposed();const Q=this.getFullModelRange(),Z=this.getValueLengthInRange(Q),te=this.getLineCount(),re=this.getLineMaxColumn(te);this._buffer=B,this._bufferDisposable.dispose(),this._bufferDisposable=$,this._increaseVersionId(),this._decorations=Object.create(null),this._decorationsTree=new G,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new D.ModelRawContentChangedEvent([new D.ModelRawFlush],this._versionId,!1,!1),this._createContentChanged2(new o.Range(1,1,te,re),0,Z,this.getValue(),!1,!1,!0,!1))}setEOL(B){this._assertNotDisposed();const $=B===1?`\r +`:` +`;if(this._buffer.getEOL()===$)return;const Q=this.getFullModelRange(),Z=this.getValueLengthInRange(Q),te=this.getLineCount(),re=this.getLineMaxColumn(te);this._onBeforeEOLChange(),this._buffer.setEOL($),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new D.ModelRawContentChangedEvent([new D.ModelRawEOLChanged],this._versionId,!1,!1),this._createContentChanged2(new o.Range(1,1,te,re),0,Z,this.getValue(),!1,!1,!1,!0))}_onBeforeEOLChange(){this._decorationsTree.ensureAllNodesHaveRanges(this)}_onAfterEOLChange(){const B=this.getVersionId(),$=this._decorationsTree.collectNodesPostOrder();for(let Q=0,Z=$.length;Q0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}isTooLargeForHeapOperation(){return this._isTooLargeForHeapOperation}isDisposed(){return this._isDisposed}isDominatedByLongLines(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;let B=0,$=0;const Q=this._buffer.getLineCount();for(let Z=1;Z<=Q;Z++){const te=this._buffer.getLineLength(Z);te>=W?$+=te:B+=te}return $>B}get uri(){return this._associatedResource}getOptions(){return this._assertNotDisposed(),this._options}getFormattingOptions(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}}updateOptions(B){this._assertNotDisposed();const $=typeof B.tabSize<"u"?B.tabSize:this._options.tabSize,Q=typeof B.indentSize<"u"?B.indentSize:this._options.originalIndentSize,Z=typeof B.insertSpaces<"u"?B.insertSpaces:this._options.insertSpaces,te=typeof B.trimAutoWhitespace<"u"?B.trimAutoWhitespace:this._options.trimAutoWhitespace,re=typeof B.bracketColorizationOptions<"u"?B.bracketColorizationOptions:this._options.bracketPairColorizationOptions,le=new c.TextModelResolvedOptions({tabSize:$,indentSize:Q,insertSpaces:Z,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:te,bracketPairColorizationOptions:re});if(this._options.equals(le))return;const me=this._options.createChangeEvent(le);this._options=le,this._bracketPairs.handleDidChangeOptions(me),this._decorationProvider.handleDidChangeOptions(me),this._onDidChangeOptions.fire(me)}detectIndentation(B,$){this._assertNotDisposed();const Q=(0,C.guessIndentation)(this._buffer,$,B);this.updateOptions({insertSpaces:Q.insertSpaces,tabSize:Q.tabSize,indentSize:Q.tabSize})}normalizeIndentation(B){return this._assertNotDisposed(),(0,p.normalizeIndentation)(B,this._options.indentSize,this._options.insertSpaces)}getVersionId(){return this._assertNotDisposed(),this._versionId}mightContainRTL(){return this._buffer.mightContainRTL()}mightContainUnusualLineTerminators(){return this._buffer.mightContainUnusualLineTerminators()}removeUnusualLineTerminators(B=null){const $=this.findMatches(m.UNUSUAL_LINE_TERMINATORS.source,!1,!0,!1,null,!1,1073741824);this._buffer.resetMightContainUnusualLineTerminators(),this.pushEditOperations(B,$.map(Q=>({range:Q.range,text:null})),()=>null)}mightContainNonBasicASCII(){return this._buffer.mightContainNonBasicASCII()}getAlternativeVersionId(){return this._assertNotDisposed(),this._alternativeVersionId}getInitialUndoRedoSnapshot(){return this._assertNotDisposed(),this._initialUndoRedoSnapshot}getOffsetAt(B){this._assertNotDisposed();const $=this._validatePosition(B.lineNumber,B.column,0);return this._buffer.getOffsetAt($.lineNumber,$.column)}getPositionAt(B){this._assertNotDisposed();const $=Math.min(this._buffer.getLength(),Math.max(0,B));return this._buffer.getPositionAt($)}_increaseVersionId(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId}_overwriteVersionId(B){this._versionId=B}_overwriteAlternativeVersionId(B){this._alternativeVersionId=B}_overwriteInitialUndoRedoSnapshot(B){this._initialUndoRedoSnapshot=B}getValue(B,$=!1){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new I.BugIndicatingError("Operation would exceed heap memory limits");const Q=this.getFullModelRange(),Z=this.getValueInRange(Q,B);return $?this._buffer.getBOM()+Z:Z}createSnapshot(B=!1){return new V(this._buffer.createSnapshot(B))}getValueLength(B,$=!1){this._assertNotDisposed();const Q=this.getFullModelRange(),Z=this.getValueLengthInRange(Q,B);return $?this._buffer.getBOM().length+Z:Z}getValueInRange(B,$=0){return this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(B),$)}getValueLengthInRange(B,$=0){return this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(B),$)}getCharacterCountInRange(B,$=0){return this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(B),$)}getLineCount(){return this._assertNotDisposed(),this._buffer.getLineCount()}getLineContent(B){if(this._assertNotDisposed(),B<1||B>this.getLineCount())throw new I.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineContent(B)}getLineLength(B){if(this._assertNotDisposed(),B<1||B>this.getLineCount())throw new I.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineLength(B)}getLinesContent(){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new I.BugIndicatingError("Operation would exceed heap memory limits");return this._buffer.getLinesContent()}getEOL(){return this._assertNotDisposed(),this._buffer.getEOL()}getEndOfLineSequence(){return this._assertNotDisposed(),this._buffer.getEOL()===` +`?0:1}getLineMinColumn(B){return this._assertNotDisposed(),1}getLineMaxColumn(B){if(this._assertNotDisposed(),B<1||B>this.getLineCount())throw new I.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineLength(B)+1}getLineFirstNonWhitespaceColumn(B){if(this._assertNotDisposed(),B<1||B>this.getLineCount())throw new I.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(B)}getLineLastNonWhitespaceColumn(B){if(this._assertNotDisposed(),B<1||B>this.getLineCount())throw new I.BugIndicatingError("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(B)}_validateRangeRelaxedNoAllocations(B){const $=this._buffer.getLineCount(),Q=B.startLineNumber,Z=B.startColumn;let te=Math.floor(typeof Q=="number"&&!isNaN(Q)?Q:1),re=Math.floor(typeof Z=="number"&&!isNaN(Z)?Z:1);if(te<1)te=1,re=1;else if(te>$)te=$,re=this.getLineMaxColumn(te);else if(re<=1)re=1;else{const Le=this.getLineMaxColumn(te);re>=Le&&(re=Le)}const le=B.endLineNumber,me=B.endColumn;let Ce=Math.floor(typeof le=="number"&&!isNaN(le)?le:1),ye=Math.floor(typeof me=="number"&&!isNaN(me)?me:1);if(Ce<1)Ce=1,ye=1;else if(Ce>$)Ce=$,ye=this.getLineMaxColumn(Ce);else if(ye<=1)ye=1;else{const Le=this.getLineMaxColumn(Ce);ye>=Le&&(ye=Le)}return Q===te&&Z===re&&le===Ce&&me===ye&&B instanceof o.Range&&!(B instanceof t.Selection)?B:new o.Range(te,re,Ce,ye)}_isValidPosition(B,$,Q){if(typeof B!="number"||typeof $!="number"||isNaN(B)||isNaN($)||B<1||$<1||(B|0)!==B||($|0)!==$)return!1;const Z=this._buffer.getLineCount();if(B>Z)return!1;if($===1)return!0;const te=this.getLineMaxColumn(B);if($>te)return!1;if(Q===1){const re=this._buffer.getLineCharCode(B,$-2);if(m.isHighSurrogate(re))return!1}return!0}_validatePosition(B,$,Q){const Z=Math.floor(typeof B=="number"&&!isNaN(B)?B:1),te=Math.floor(typeof $=="number"&&!isNaN($)?$:1),re=this._buffer.getLineCount();if(Z<1)return new n.Position(1,1);if(Z>re)return new n.Position(re,this.getLineMaxColumn(re));if(te<=1)return new n.Position(Z,1);const le=this.getLineMaxColumn(Z);if(te>=le)return new n.Position(Z,le);if(Q===1){const me=this._buffer.getLineCharCode(Z,te-2);if(m.isHighSurrogate(me))return new n.Position(Z,te-1)}return new n.Position(Z,te)}validatePosition(B){return this._assertNotDisposed(),B instanceof n.Position&&this._isValidPosition(B.lineNumber,B.column,1)?B:this._validatePosition(B.lineNumber,B.column,1)}_isValidRange(B,$){const Q=B.startLineNumber,Z=B.startColumn,te=B.endLineNumber,re=B.endColumn;if(!this._isValidPosition(Q,Z,0)||!this._isValidPosition(te,re,0))return!1;if($===1){const le=Z>1?this._buffer.getLineCharCode(Q,Z-2):0,me=re>1&&re<=this._buffer.getLineLength(te)?this._buffer.getLineCharCode(te,re-2):0,Ce=m.isHighSurrogate(le),ye=m.isHighSurrogate(me);return!Ce&&!ye}return!0}validateRange(B){if(this._assertNotDisposed(),B instanceof o.Range&&!(B instanceof t.Selection)&&this._isValidRange(B,1))return B;const Q=this._validatePosition(B.startLineNumber,B.startColumn,0),Z=this._validatePosition(B.endLineNumber,B.endColumn,0),te=Q.lineNumber,re=Q.column,le=Z.lineNumber,me=Z.column;{const Ce=re>1?this._buffer.getLineCharCode(te,re-2):0,ye=me>1&&me<=this._buffer.getLineLength(le)?this._buffer.getLineCharCode(le,me-2):0,Le=m.isHighSurrogate(Ce),Ee=m.isHighSurrogate(ye);return!Le&&!Ee?new o.Range(te,re,le,me):te===le&&re===me?new o.Range(te,re-1,le,me-1):Le&&Ee?new o.Range(te,re-1,le,me+1):Le?new o.Range(te,re-1,le,me):new o.Range(te,re,le,me+1)}return new o.Range(te,re,le,me)}modifyPosition(B,$){this._assertNotDisposed();const Q=this.getOffsetAt(B)+$;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,Q)))}getFullModelRange(){this._assertNotDisposed();const B=this.getLineCount();return new o.Range(1,1,B,this.getLineMaxColumn(B))}findMatchesLineByLine(B,$,Q,Z){return this._buffer.findMatchesLineByLine(B,$,Q,Z)}findMatches(B,$,Q,Z,te,re,le=x){this._assertNotDisposed();let me=null;$!==null&&(Array.isArray($)||($=[$]),$.every(Le=>o.Range.isIRange(Le))&&(me=$.map(Le=>this.validateRange(Le)))),me===null&&(me=[this.getFullModelRange()]),me=me.sort((Le,Ee)=>Le.startLineNumber-Ee.startLineNumber||Le.startColumn-Ee.startColumn);const Ce=[];Ce.push(me.reduce((Le,Ee)=>o.Range.areIntersecting(Le,Ee)?Le.plusRange(Ee):(Ce.push(Le),Ee)));let ye;if(!Q&&B.indexOf(` +`)<0){const Ee=new w.SearchParams(B,Q,Z,te).parseSearchRequest();if(!Ee)return[];ye=Me=>this.findMatchesLineByLine(Me,Ee,re,le)}else ye=Le=>w.TextModelSearch.findMatches(this,new w.SearchParams(B,Q,Z,te),Le,re,le);return Ce.map(ye).reduce((Le,Ee)=>Le.concat(Ee),[])}findNextMatch(B,$,Q,Z,te,re){this._assertNotDisposed();const le=this.validatePosition($);if(!Q&&B.indexOf(` +`)<0){const Ce=new w.SearchParams(B,Q,Z,te).parseSearchRequest();if(!Ce)return null;const ye=this.getLineCount();let Le=new o.Range(le.lineNumber,le.column,ye,this.getLineMaxColumn(ye)),Ee=this.findMatchesLineByLine(Le,Ce,re,1);return w.TextModelSearch.findNextMatch(this,new w.SearchParams(B,Q,Z,te),le,re),Ee.length>0||(Le=new o.Range(1,1,le.lineNumber,this.getLineMaxColumn(le.lineNumber)),Ee=this.findMatchesLineByLine(Le,Ce,re,1),Ee.length>0)?Ee[0]:null}return w.TextModelSearch.findNextMatch(this,new w.SearchParams(B,Q,Z,te),le,re)}findPreviousMatch(B,$,Q,Z,te,re){this._assertNotDisposed();const le=this.validatePosition($);return w.TextModelSearch.findPreviousMatch(this,new w.SearchParams(B,Q,Z,te),le,re)}pushStackElement(){this._commandManager.pushStackElement()}popStackElement(){this._commandManager.popStackElement()}pushEOL(B){if((this.getEOL()===` +`?0:1)!==B)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEOL(B)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_validateEditOperation(B){return B instanceof c.ValidAnnotatedEditOperation?B:new c.ValidAnnotatedEditOperation(B.identifier||null,this.validateRange(B.range),B.text,B.forceMoveMarkers||!1,B.isAutoWhitespaceEdit||!1,B._isTracked||!1)}_validateEditOperations(B){const $=[];for(let Q=0,Z=B.length;Q({range:this.validateRange(le.range),text:le.text}));let re=!0;if(B)for(let le=0,me=B.length;leCe.endLineNumber,Ne=Ce.startLineNumber>Me.endLineNumber;if(!Ae&&!Ne){ye=!0;break}}if(!ye){re=!1;break}}if(re)for(let le=0,me=this._trimAutoWhitespaceLines.length;leAe.endLineNumber)&&!(Ce===Ae.startLineNumber&&Ae.startColumn===ye&&Ae.isEmpty()&&Ne&&Ne.length>0&&Ne.charAt(0)===` +`)&&!(Ce===Ae.startLineNumber&&Ae.startColumn===1&&Ae.isEmpty()&&Ne&&Ne.length>0&&Ne.charAt(Ne.length-1)===` +`)){Le=!1;break}}if(Le){const Ee=new o.Range(Ce,1,Ce,ye);$.push(new c.ValidAnnotatedEditOperation(null,Ee,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(B,$,Q,Z)}_applyUndo(B,$,Q,Z){const te=B.map(re=>{const le=this.getPositionAt(re.newPosition),me=this.getPositionAt(re.newEnd);return{range:new o.Range(le.lineNumber,le.column,me.lineNumber,me.column),text:re.oldText}});this._applyUndoRedoEdits(te,$,!0,!1,Q,Z)}_applyRedo(B,$,Q,Z){const te=B.map(re=>{const le=this.getPositionAt(re.oldPosition),me=this.getPositionAt(re.oldEnd);return{range:new o.Range(le.lineNumber,le.column,me.lineNumber,me.column),text:re.newText}});this._applyUndoRedoEdits(te,$,!1,!0,Q,Z)}_applyUndoRedoEdits(B,$,Q,Z,te,re){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=Q,this._isRedoing=Z,this.applyEdits(B,!1),this.setEOL($),this._overwriteAlternativeVersionId(te)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(re),this._onDidChangeDecorations.endDeferredEmit()}}applyEdits(B,$=!1){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();const Q=this._validateEditOperations(B);return this._doApplyEdits(Q,$)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_doApplyEdits(B,$){const Q=this._buffer.getLineCount(),Z=this._buffer.applyEdits(B,this._options.trimAutoWhitespace,$),te=this._buffer.getLineCount(),re=Z.changes;if(this._trimAutoWhitespaceLines=Z.trimAutoWhitespaceLineNumbers,re.length!==0){for(let Ce=0,ye=re.length;Ce=0;be--){const ve=Me+be,we=it+be;xe.takeFromEndWhile(Pe=>Pe.lineNumber>we);const Te=xe.takeFromEndWhile(Pe=>Pe.lineNumber===we);le.push(new D.ModelRawLineChanged(ve,this.getLineContent(we),Te))}if(zeje.lineNumber<$e),Pe[He]=be.takeWhile(je=>je.lineNumber===$e)}le.push(new D.ModelRawLinesInserted(ve+1,Me+Ke,Be,Pe))}me+=Ge}this._emitContentChangedEvent(new D.ModelRawContentChangedEvent(le,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:re,eol:this._buffer.getEOL(),isEolChange:!1,versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return Z.reverseEdits===null?void 0:Z.reverseEdits}undo(){return this._undoRedoService.undo(this.uri)}canUndo(){return this._undoRedoService.canUndo(this.uri)}redo(){return this._undoRedoService.redo(this.uri)}canRedo(){return this._undoRedoService.canRedo(this.uri)}handleBeforeFireDecorationsChangedEvent(B){if(B===null||B.size===0)return;const Q=Array.from(B).map(Z=>new D.ModelRawLineChanged(Z,this.getLineContent(Z),this._getInjectedTextInLine(Z)));this._onDidChangeInjectedText.fire(new D.ModelInjectedTextChangedEvent(Q))}changeDecorations(B,$=0){this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations($,B)}finally{this._onDidChangeDecorations.endDeferredEmit()}}_changeDecorations(B,$){const Q={addDecoration:(te,re)=>this._deltaDecorationsImpl(B,[],[{range:te,options:re}])[0],changeDecoration:(te,re)=>{this._changeDecorationImpl(te,re)},changeDecorationOptions:(te,re)=>{this._changeDecorationOptionsImpl(te,ee(re))},removeDecoration:te=>{this._deltaDecorationsImpl(B,[te],[])},deltaDecorations:(te,re)=>te.length===0&&re.length===0?[]:this._deltaDecorationsImpl(B,te,re)};let Z=null;try{Z=$(Q)}catch(te){(0,I.onUnexpectedError)(te)}return Q.addDecoration=q,Q.changeDecoration=q,Q.changeDecorationOptions=q,Q.removeDecoration=q,Q.deltaDecorations=q,Z}deltaDecorations(B,$,Q=0){if(this._assertNotDisposed(),B||(B=[]),B.length===0&&$.length===0)return[];try{return this._deltaDecorationCallCnt++,this._deltaDecorationCallCnt>1&&(console.warn("Invoking deltaDecorations recursively could lead to leaking decorations."),(0,I.onUnexpectedError)(new Error("Invoking deltaDecorations recursively could lead to leaking decorations."))),this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(Q,B,$)}finally{this._onDidChangeDecorations.endDeferredEmit(),this._deltaDecorationCallCnt--}}_getTrackedRange(B){return this.getDecorationRange(B)}_setTrackedRange(B,$,Q){const Z=B?this._decorations[B]:null;if(!Z)return $?this._deltaDecorationsImpl(0,[],[{range:$,options:ae[Q]}],!0)[0]:null;if(!$)return this._decorationsTree.delete(Z),delete this._decorations[Z.id],null;const te=this._validateRangeRelaxedNoAllocations($),re=this._buffer.getOffsetAt(te.startLineNumber,te.startColumn),le=this._buffer.getOffsetAt(te.endLineNumber,te.endColumn);return this._decorationsTree.delete(Z),Z.reset(this.getVersionId(),re,le,te),Z.setOptions(ae[Q]),this._decorationsTree.insert(Z),Z.id}removeAllDecorationsWithOwnerId(B){if(this._isDisposed)return;const $=this._decorationsTree.collectNodesFromOwner(B);for(let Q=0,Z=$.length;Qthis.getLineCount()?[]:this.getLinesDecorations(B,B,$,Q)}getLinesDecorations(B,$,Q=0,Z=!1,te=!1){const re=this.getLineCount(),le=Math.min(re,Math.max(1,B)),me=Math.min(re,Math.max(1,$)),Ce=this.getLineMaxColumn(me),ye=new o.Range(le,1,me,Ce),Le=this._getDecorationsInRange(ye,Q,Z,te);return(0,d.pushMany)(Le,this._decorationProvider.getDecorationsInRange(ye,Q,Z)),Le}getDecorationsInRange(B,$=0,Q=!1,Z=!1,te=!1){const re=this.validateRange(B),le=this._getDecorationsInRange(re,$,Q,te);return(0,d.pushMany)(le,this._decorationProvider.getDecorationsInRange(re,$,Q,Z)),le}getOverviewRulerDecorations(B=0,$=!1){return this._decorationsTree.getAll(this,B,$,!0,!1)}getInjectedTextDecorations(B=0){return this._decorationsTree.getAllInjectedText(this,B)}_getInjectedTextInLine(B){const $=this._buffer.getOffsetAt(B,1),Q=$+this._buffer.getLineLength(B),Z=this._decorationsTree.getInjectedTextInInterval(this,$,Q,0);return D.LineInjectedText.fromDecorations(Z).filter(te=>te.lineNumber===B)}getAllDecorations(B=0,$=!1){let Q=this._decorationsTree.getAll(this,B,$,!1,!1);return Q=Q.concat(this._decorationProvider.getAllDecorations(B,$)),Q}getAllMarginDecorations(B=0){return this._decorationsTree.getAll(this,B,!1,!1,!0)}_getDecorationsInRange(B,$,Q,Z){const te=this._buffer.getOffsetAt(B.startLineNumber,B.startColumn),re=this._buffer.getOffsetAt(B.endLineNumber,B.endColumn);return this._decorationsTree.getAllInInterval(this,te,re,$,Q,Z)}getRangeAt(B,$){return this._buffer.getRangeAt(B,$-B)}_changeDecorationImpl(B,$){const Q=this._decorations[B];if(!Q)return;if(Q.options.after){const le=this.getDecorationRange(B);this._onDidChangeDecorations.recordLineAffectedByInjectedText(le.endLineNumber)}if(Q.options.before){const le=this.getDecorationRange(B);this._onDidChangeDecorations.recordLineAffectedByInjectedText(le.startLineNumber)}const Z=this._validateRangeRelaxedNoAllocations($),te=this._buffer.getOffsetAt(Z.startLineNumber,Z.startColumn),re=this._buffer.getOffsetAt(Z.endLineNumber,Z.endColumn);this._decorationsTree.delete(Q),Q.reset(this.getVersionId(),te,re,Z),this._decorationsTree.insert(Q),this._onDidChangeDecorations.checkAffectedAndFire(Q.options),Q.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(Z.endLineNumber),Q.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(Z.startLineNumber)}_changeDecorationOptionsImpl(B,$){const Q=this._decorations[B];if(!Q)return;const Z=!!(Q.options.overviewRuler&&Q.options.overviewRuler.color),te=!!($.overviewRuler&&$.overviewRuler.color);if(this._onDidChangeDecorations.checkAffectedAndFire(Q.options),this._onDidChangeDecorations.checkAffectedAndFire($),Q.options.after||$.after){const me=this._decorationsTree.getNodeRange(this,Q);this._onDidChangeDecorations.recordLineAffectedByInjectedText(me.endLineNumber)}if(Q.options.before||$.before){const me=this._decorationsTree.getNodeRange(this,Q);this._onDidChangeDecorations.recordLineAffectedByInjectedText(me.startLineNumber)}const re=Z!==te,le=j($)!==Y(Q);re||le?(this._decorationsTree.delete(Q),Q.setOptions($),this._decorationsTree.insert(Q)):Q.setOptions($)}_deltaDecorationsImpl(B,$,Q,Z=!1){const te=this.getVersionId(),re=$.length;let le=0;const me=Q.length;let Ce=0;this._onDidChangeDecorations.beginDeferredEmit();try{const ye=new Array(me);for(;lethis._setLanguage(B.languageId,$)),this._setLanguage(B.languageId,$))}_setLanguage(B,$){this.tokenization.setLanguageId(B,$),this._languageService.requestRichLanguageFeatures(B)}getLanguageIdAtPosition(B,$){return this.tokenization.getLanguageIdAtPosition(B,$)}getWordAtPosition(B){return this._tokenizationTextModelPart.getWordAtPosition(B)}getWordUntilPosition(B){return this._tokenizationTextModelPart.getWordUntilPosition(B)}normalizePosition(B,$){return B}getLineIndentColumn(B){return z(this.getLineContent(B))+1}};e.TextModel=H,e.TextModel=H=A=ke([ce(4,M.IUndoRedoService),ce(5,s.ILanguageService),ce(6,g.ILanguageConfigurationService),ce(7,T.IInstantiationService)],H);function z(X){let B=0;for(const $ of X)if($===" "||$===" ")B++;else break;return B}function U(X){return!!(X.options.overviewRuler&&X.options.overviewRuler.color)}function j(X){return!!X.after||!!X.before}function Y(X){return!!X.options.after||!!X.options.before}class G{constructor(){this._decorationsTree0=new f.IntervalTree,this._decorationsTree1=new f.IntervalTree,this._injectedTextDecorationsTree=new f.IntervalTree}ensureAllNodesHaveRanges(B){this.getAll(B,0,!1,!1,!1)}_ensureNodesHaveRanges(B,$){for(const Q of $)Q.range===null&&(Q.range=B.getRangeAt(Q.cachedAbsoluteStart,Q.cachedAbsoluteEnd));return $}getAllInInterval(B,$,Q,Z,te,re){const le=B.getVersionId(),me=this._intervalSearch($,Q,Z,te,le,re);return this._ensureNodesHaveRanges(B,me)}_intervalSearch(B,$,Q,Z,te,re){const le=this._decorationsTree0.intervalSearch(B,$,Q,Z,te,re),me=this._decorationsTree1.intervalSearch(B,$,Q,Z,te,re),Ce=this._injectedTextDecorationsTree.intervalSearch(B,$,Q,Z,te,re);return le.concat(me).concat(Ce)}getInjectedTextInInterval(B,$,Q,Z){const te=B.getVersionId(),re=this._injectedTextDecorationsTree.intervalSearch($,Q,Z,!1,te,!1);return this._ensureNodesHaveRanges(B,re).filter(le=>le.options.showIfCollapsed||!le.range.isEmpty())}getAllInjectedText(B,$){const Q=B.getVersionId(),Z=this._injectedTextDecorationsTree.search($,!1,Q,!1);return this._ensureNodesHaveRanges(B,Z).filter(te=>te.options.showIfCollapsed||!te.range.isEmpty())}getAll(B,$,Q,Z,te){const re=B.getVersionId(),le=this._search($,Q,Z,re,te);return this._ensureNodesHaveRanges(B,le)}_search(B,$,Q,Z,te){if(Q)return this._decorationsTree1.search(B,$,Z,te);{const re=this._decorationsTree0.search(B,$,Z,te),le=this._decorationsTree1.search(B,$,Z,te),me=this._injectedTextDecorationsTree.search(B,$,Z,te);return re.concat(le).concat(me)}}collectNodesFromOwner(B){const $=this._decorationsTree0.collectNodesFromOwner(B),Q=this._decorationsTree1.collectNodesFromOwner(B),Z=this._injectedTextDecorationsTree.collectNodesFromOwner(B);return $.concat(Q).concat(Z)}collectNodesPostOrder(){const B=this._decorationsTree0.collectNodesPostOrder(),$=this._decorationsTree1.collectNodesPostOrder(),Q=this._injectedTextDecorationsTree.collectNodesPostOrder();return B.concat($).concat(Q)}insert(B){Y(B)?this._injectedTextDecorationsTree.insert(B):U(B)?this._decorationsTree1.insert(B):this._decorationsTree0.insert(B)}delete(B){Y(B)?this._injectedTextDecorationsTree.delete(B):U(B)?this._decorationsTree1.delete(B):this._decorationsTree0.delete(B)}getNodeRange(B,$){const Q=B.getVersionId();return $.cachedVersionId!==Q&&this._resolveNode($,Q),$.range===null&&($.range=B.getRangeAt($.cachedAbsoluteStart,$.cachedAbsoluteEnd)),$.range}_resolveNode(B,$){Y(B)?this._injectedTextDecorationsTree.resolveNode(B,$):U(B)?this._decorationsTree1.resolveNode(B,$):this._decorationsTree0.resolveNode(B,$)}acceptReplace(B,$,Q,Z){this._decorationsTree0.acceptReplace(B,$,Q,Z),this._decorationsTree1.acceptReplace(B,$,Q,Z),this._injectedTextDecorationsTree.acceptReplace(B,$,Q,Z)}}function K(X){return X.replace(/[^a-z0-9\-_]/gi," ")}class R{constructor(B){this.color=B.color||"",this.darkColor=B.darkColor||""}}class J extends R{constructor(B){super(B),this._resolvedColor=null,this.position=typeof B.position=="number"?B.position:c.OverviewRulerLane.Center}getColor(B){return this._resolvedColor||(B.type!=="light"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,B):this._resolvedColor=this._resolveColor(this.color,B)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=null}_resolveColor(B,$){if(typeof B=="string")return B;const Q=B?$.getColor(B.id):null;return Q?Q.toString():""}}e.ModelDecorationOverviewRulerOptions=J;class ie{constructor(B){this.position=B?.position??c.GlyphMarginLane.Center,this.persistLane=B?.persistLane}}e.ModelDecorationGlyphMarginOptions=ie;class ue extends R{constructor(B){super(B),this.position=B.position,this.sectionHeaderStyle=B.sectionHeaderStyle??null,this.sectionHeaderText=B.sectionHeaderText??null}getColor(B){return this._resolvedColor||(B.type!=="light"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,B):this._resolvedColor=this._resolveColor(this.color,B)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=void 0}_resolveColor(B,$){return typeof B=="string"?k.Color.fromHex(B):$.getColor(B.id)}}e.ModelDecorationMinimapOptions=ue;class he{static from(B){return B instanceof he?B:new he(B)}constructor(B){this.content=B.content||"",this.inlineClassName=B.inlineClassName||null,this.inlineClassNameAffectsLetterSpacing=B.inlineClassNameAffectsLetterSpacing||!1,this.attachedData=B.attachedData||null,this.cursorStops=B.cursorStops||null}}e.ModelDecorationInjectedTextOptions=he;class pe{static register(B){return new pe(B)}static createDynamic(B){return new pe(B)}constructor(B){this.description=B.description,this.blockClassName=B.blockClassName?K(B.blockClassName):null,this.blockDoesNotCollapse=B.blockDoesNotCollapse??null,this.blockIsAfterEnd=B.blockIsAfterEnd??null,this.blockPadding=B.blockPadding??null,this.stickiness=B.stickiness||0,this.zIndex=B.zIndex||0,this.className=B.className?K(B.className):null,this.shouldFillLineOnLineBreak=B.shouldFillLineOnLineBreak??null,this.hoverMessage=B.hoverMessage||null,this.glyphMarginHoverMessage=B.glyphMarginHoverMessage||null,this.lineNumberHoverMessage=B.lineNumberHoverMessage||null,this.isWholeLine=B.isWholeLine||!1,this.showIfCollapsed=B.showIfCollapsed||!1,this.collapseOnReplaceEdit=B.collapseOnReplaceEdit||!1,this.overviewRuler=B.overviewRuler?new J(B.overviewRuler):null,this.minimap=B.minimap?new ue(B.minimap):null,this.glyphMargin=B.glyphMarginClassName?new ie(B.glyphMargin):null,this.glyphMarginClassName=B.glyphMarginClassName?K(B.glyphMarginClassName):null,this.linesDecorationsClassName=B.linesDecorationsClassName?K(B.linesDecorationsClassName):null,this.lineNumberClassName=B.lineNumberClassName?K(B.lineNumberClassName):null,this.linesDecorationsTooltip=B.linesDecorationsTooltip?m.htmlAttributeEncodeValue(B.linesDecorationsTooltip):null,this.firstLineDecorationClassName=B.firstLineDecorationClassName?K(B.firstLineDecorationClassName):null,this.marginClassName=B.marginClassName?K(B.marginClassName):null,this.inlineClassName=B.inlineClassName?K(B.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=B.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=B.beforeContentClassName?K(B.beforeContentClassName):null,this.afterContentClassName=B.afterContentClassName?K(B.afterContentClassName):null,this.after=B.after?he.from(B.after):null,this.before=B.before?he.from(B.before):null,this.hideInCommentTokens=B.hideInCommentTokens??!1,this.hideInStringTokens=B.hideInStringTokens??!1}}e.ModelDecorationOptions=pe,pe.EMPTY=pe.register({description:"empty"});const ae=[pe.register({description:"tracked-range-always-grows-when-typing-at-edges",stickiness:0}),pe.register({description:"tracked-range-never-grows-when-typing-at-edges",stickiness:1}),pe.register({description:"tracked-range-grows-only-when-typing-before",stickiness:2}),pe.register({description:"tracked-range-grows-only-when-typing-after",stickiness:3})];function ee(X){return X instanceof pe?X:pe.createDynamic(X)}class de extends y.Disposable{constructor(B){super(),this.handleBeforeFire=B,this._actual=this._register(new E.Emitter),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._deferredCnt=0,this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._affectsLineNumber=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){this._deferredCnt--,this._deferredCnt===0&&(this._shouldFireDeferred&&this.doFire(),this._affectedInjectedTextLines?.clear(),this._affectedInjectedTextLines=null)}recordLineAffectedByInjectedText(B){this._affectedInjectedTextLines||(this._affectedInjectedTextLines=new Set),this._affectedInjectedTextLines.add(B)}checkAffectedAndFire(B){this._affectsMinimap||=!!B.minimap?.position,this._affectsOverviewRuler||=!!B.overviewRuler?.color,this._affectsGlyphMargin||=!!B.glyphMarginClassName,this._affectsLineNumber||=!!B.lineNumberClassName,this.tryFire()}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._affectsGlyphMargin=!0,this.tryFire()}tryFire(){this._deferredCnt===0?this.doFire():this._shouldFireDeferred=!0}doFire(){this.handleBeforeFire(this._affectedInjectedTextLines);const B={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler,affectsGlyphMargin:this._affectsGlyphMargin,affectsLineNumber:this._affectsLineNumber};this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._actual.fire(B)}}class ge extends y.Disposable{constructor(){super(),this._fastEmitter=this._register(new E.Emitter),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new E.Emitter),this.slowEvent=this._slowEmitter.event,this._deferredCnt=0,this._deferredEvent=null}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(B=null){if(this._deferredCnt--,this._deferredCnt===0&&this._deferredEvent!==null){this._deferredEvent.rawContentChangedEvent.resultingSelection=B;const $=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire($),this._slowEmitter.fire($)}}fire(B){if(this._deferredCnt>0){this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(B):this._deferredEvent=B;return}this._fastEmitter.fire(B),this._slowEmitter.fire(B)}}}),define(ne[139],se([1,0,26,30,35,3,32,71]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.diffDeleteDecorationEmpty=e.diffWholeLineDeleteDecoration=e.diffDeleteDecoration=e.diffAddDecorationEmpty=e.diffWholeLineAddDecoration=e.diffAddDecoration=e.diffLineDeleteDecorationBackground=e.diffLineAddDecorationBackground=e.diffLineDeleteDecorationBackgroundWithIndicator=e.diffLineAddDecorationBackgroundWithIndicator=e.diffRemoveIcon=e.diffInsertIcon=e.diffEditorUnchangedRegionShadow=e.diffMoveBorderActive=e.diffMoveBorder=void 0,e.diffMoveBorder=(0,y.registerColor)("diffEditor.move.border","#8b8b8b9c",(0,E.localize)(124,"The border color for text that got moved in the diff editor.")),e.diffMoveBorderActive=(0,y.registerColor)("diffEditor.moveActive.border","#FFA500",(0,E.localize)(125,"The active border color for text that got moved in the diff editor.")),e.diffEditorUnchangedRegionShadow=(0,y.registerColor)("diffEditor.unchangedRegionShadow",{dark:"#000000",light:"#737373BF",hcDark:"#000000",hcLight:"#737373BF"},(0,E.localize)(126,"The color of the shadow around unchanged region widgets.")),e.diffInsertIcon=(0,m.registerIcon)("diff-insert",d.Codicon.add,(0,E.localize)(127,"Line decoration for inserts in the diff editor.")),e.diffRemoveIcon=(0,m.registerIcon)("diff-remove",d.Codicon.remove,(0,E.localize)(128,"Line decoration for removals in the diff editor.")),e.diffLineAddDecorationBackgroundWithIndicator=I.ModelDecorationOptions.register({className:"line-insert",description:"line-insert",isWholeLine:!0,linesDecorationsClassName:"insert-sign "+k.ThemeIcon.asClassName(e.diffInsertIcon),marginClassName:"gutter-insert"}),e.diffLineDeleteDecorationBackgroundWithIndicator=I.ModelDecorationOptions.register({className:"line-delete",description:"line-delete",isWholeLine:!0,linesDecorationsClassName:"delete-sign "+k.ThemeIcon.asClassName(e.diffRemoveIcon),marginClassName:"gutter-delete"}),e.diffLineAddDecorationBackground=I.ModelDecorationOptions.register({className:"line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),e.diffLineDeleteDecorationBackground=I.ModelDecorationOptions.register({className:"line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),e.diffAddDecoration=I.ModelDecorationOptions.register({className:"char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),e.diffWholeLineAddDecoration=I.ModelDecorationOptions.register({className:"char-insert",description:"char-insert",isWholeLine:!0}),e.diffAddDecorationEmpty=I.ModelDecorationOptions.register({className:"char-insert diff-range-empty",description:"char-insert diff-range-empty"}),e.diffDeleteDecoration=I.ModelDecorationOptions.register({className:"char-delete",description:"char-delete",shouldFillLineOnLineBreak:!0}),e.diffWholeLineDeleteDecoration=I.ModelDecorationOptions.register({className:"char-delete",description:"char-delete",isWholeLine:!0}),e.diffDeleteDecorationEmpty=I.ModelDecorationOptions.register({className:"char-delete diff-range-empty",description:"char-delete diff-range-empty"})}),define(ne[285],se([1,0,5,13,14,26,2,21,30,19,74,139,407,652,667,88,55,9,95,117,58,4]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorViewZones=void 0,e.allowsTrueInlineDiffRendering=v;let C=class extends y.Disposable{constructor(L,D,T,M,A,P,N,O,F,x){super(),this._targetWindow=L,this._editors=D,this._diffModel=T,this._options=M,this._diffEditorWidget=A,this._canIgnoreViewZoneUpdateEvent=P,this._origViewZonesToIgnore=N,this._modViewZonesToIgnore=O,this._clipboardService=F,this._contextMenuService=x,this._originalTopPadding=(0,m.observableValue)(this,0),this._originalScrollOffset=(0,m.observableValue)(this,0),this._originalScrollOffsetAnimated=(0,s.animatedObservable)(this._targetWindow,this._originalScrollOffset,this._store),this._modifiedTopPadding=(0,m.observableValue)(this,0),this._modifiedScrollOffset=(0,m.observableValue)(this,0),this._modifiedScrollOffsetAnimated=(0,s.animatedObservable)(this._targetWindow,this._modifiedScrollOffset,this._store);const W=(0,m.observableValue)("invalidateAlignmentsState",0),V=this._register(new I.RunOnceScheduler(()=>{W.set(W.get()+1,void 0)},0));this._register(this._editors.original.onDidChangeViewZones(G=>{this._canIgnoreViewZoneUpdateEvent()||V.schedule()})),this._register(this._editors.modified.onDidChangeViewZones(G=>{this._canIgnoreViewZoneUpdateEvent()||V.schedule()})),this._register(this._editors.original.onDidChangeConfiguration(G=>{(G.hasChanged(147)||G.hasChanged(67))&&V.schedule()})),this._register(this._editors.modified.onDidChangeConfiguration(G=>{(G.hasChanged(147)||G.hasChanged(67))&&V.schedule()}));const q=this._diffModel.map(G=>G?(0,m.observableFromEvent)(this,G.model.original.onDidChangeTokens,()=>G.model.original.tokenization.backgroundTokenizationState===2):void 0).map((G,K)=>G?.read(K)),H=(0,m.derived)(G=>{const K=this._diffModel.read(G),R=K?.diff.read(G);if(!K||!R)return null;W.read(G);const ie=this._options.renderSideBySide.read(G);return f(this._editors.original,this._editors.modified,R.mappings,this._origViewZonesToIgnore,this._modViewZonesToIgnore,ie)}),z=(0,m.derived)(G=>{const K=this._diffModel.read(G)?.movedTextToCompare.read(G);if(!K)return null;W.read(G);const R=K.changes.map(J=>new o.DiffMapping(J));return f(this._editors.original,this._editors.modified,R,this._origViewZonesToIgnore,this._modViewZonesToIgnore,!0)});function U(){const G=document.createElement("div");return G.className="diagonal-fill",G}const j=this._register(new y.DisposableStore);this.viewZones=(0,m.derivedWithStore)(this,(G,K)=>{j.clear();const R=H.read(G)||[],J=[],ie=[],ue=this._modifiedTopPadding.read(G);ue>0&&ie.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:ue,showInHiddenAreas:!0,suppressMouseDown:!0});const he=this._originalTopPadding.read(G);he>0&&J.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:he,showInHiddenAreas:!0,suppressMouseDown:!0});const pe=this._options.renderSideBySide.read(G),ae=pe?void 0:this._editors.modified._getViewModel()?.createLineBreaksComputer();if(ae){const Z=this._editors.original.getModel();for(const te of R)if(te.diff)for(let re=te.originalRange.startLineNumber;reZ.getLineCount())return{orig:J,mod:ie};ae?.addRequest(Z.getLineContent(re),null,null)}}const ee=ae?.finalize()??[];let de=0;const ge=this._editors.modified.getOption(67),X=this._diffModel.read(G)?.movedTextToCompare.read(G),B=this._editors.original.getModel()?.mightContainNonBasicASCII()??!1,$=this._editors.original.getModel()?.mightContainRTL()??!1,Q=i.RenderOptions.fromEditor(this._editors.modified);for(const Z of R)if(Z.diff&&!pe&&(!this._options.useTrueInlineDiffRendering.read(G)||!v(Z.diff))){if(!Z.originalRange.isEmpty){q.read(G);const re=document.createElement("div");re.classList.add("view-lines","line-delete","monaco-mouse-cursor-text");const le=this._editors.original.getModel();if(Z.originalRange.endLineNumberExclusive-1>le.getLineCount())return{orig:J,mod:ie};const me=new i.LineSource(Z.originalRange.mapToLineArray(Me=>le.tokenization.getLineTokens(Me)),Z.originalRange.mapToLineArray(Me=>ee[de++]),B,$),Ce=[];for(const Me of Z.diff.innerChanges||[])Ce.push(new l.InlineDecoration(Me.originalRange.delta(-(Z.diff.original.startLineNumber-1)),n.diffDeleteDecoration.className,0));const ye=(0,i.renderLines)(me,Q,Ce,re),Le=document.createElement("div");if(Le.className="inline-deleted-margin-view-zone",(0,p.applyFontInfo)(Le,Q.fontInfo),this._options.renderIndicators.read(G))for(let Me=0;Me(0,b.assertIsDefined)(Ee),Le,this._editors.modified,Z.diff,this._diffEditorWidget,ye.viewLineCounts,this._editors.original.getModel(),this._contextMenuService,this._clipboardService));for(let Me=0;Me1&&J.push({afterLineNumber:Z.originalRange.startLineNumber+Me,domNode:U(),heightInPx:(Ae-1)*ge,showInHiddenAreas:!0,suppressMouseDown:!0})}ie.push({afterLineNumber:Z.modifiedRange.startLineNumber-1,domNode:re,heightInPx:ye.heightInLines*ge,minWidthInPx:ye.minWidthInPx,marginDomNode:Le,setZoneId(Me){Ee=Me},showInHiddenAreas:!0,suppressMouseDown:!0})}const te=document.createElement("div");te.className="gutter-delete",J.push({afterLineNumber:Z.originalRange.endLineNumberExclusive-1,domNode:U(),heightInPx:Z.modifiedHeightInPx,marginDomNode:te,showInHiddenAreas:!0,suppressMouseDown:!0})}else{const te=Z.modifiedHeightInPx-Z.originalHeightInPx;if(te>0){if(X?.lineRangeMapping.original.delta(-1).deltaLength(2).contains(Z.originalRange.endLineNumberExclusive-1))continue;J.push({afterLineNumber:Z.originalRange.endLineNumberExclusive-1,domNode:U(),heightInPx:te,showInHiddenAreas:!0,suppressMouseDown:!0})}else{let re=function(){const me=document.createElement("div");return me.className="arrow-revert-change "+_.ThemeIcon.asClassName(E.Codicon.arrowRight),K.add((0,d.addDisposableListener)(me,"mousedown",Ce=>Ce.stopPropagation())),K.add((0,d.addDisposableListener)(me,"click",Ce=>{Ce.stopPropagation(),A.revert(Z.diff)})),(0,d.$)("div",{},me)};if(X?.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(Z.modifiedRange.endLineNumberExclusive-1))continue;let le;Z.diff&&Z.diff.modified.isEmpty&&this._options.shouldRenderOldRevertArrows.read(G)&&(le=re()),ie.push({afterLineNumber:Z.modifiedRange.endLineNumberExclusive-1,domNode:U(),heightInPx:-te,marginDomNode:le,showInHiddenAreas:!0,suppressMouseDown:!0})}}for(const Z of z.read(G)??[]){if(!X?.lineRangeMapping.original.intersect(Z.originalRange)||!X?.lineRangeMapping.modified.intersect(Z.modifiedRange))continue;const te=Z.modifiedHeightInPx-Z.originalHeightInPx;te>0?J.push({afterLineNumber:Z.originalRange.endLineNumberExclusive-1,domNode:U(),heightInPx:te,showInHiddenAreas:!0,suppressMouseDown:!0}):ie.push({afterLineNumber:Z.modifiedRange.endLineNumberExclusive-1,domNode:U(),heightInPx:-te,showInHiddenAreas:!0,suppressMouseDown:!0})}return{orig:J,mod:ie}});let Y=!1;this._register(this._editors.original.onDidScrollChange(G=>{G.scrollLeftChanged&&!Y&&(Y=!0,this._editors.modified.setScrollLeft(G.scrollLeft),Y=!1)})),this._register(this._editors.modified.onDidScrollChange(G=>{G.scrollLeftChanged&&!Y&&(Y=!0,this._editors.original.setScrollLeft(G.scrollLeft),Y=!1)})),this._originalScrollTop=(0,m.observableFromEvent)(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=(0,m.observableFromEvent)(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._register((0,m.autorun)(G=>{const K=this._originalScrollTop.read(G)-(this._originalScrollOffsetAnimated.get()-this._modifiedScrollOffsetAnimated.read(G))-(this._originalTopPadding.get()-this._modifiedTopPadding.read(G));K!==this._editors.modified.getScrollTop()&&this._editors.modified.setScrollTop(K,1)})),this._register((0,m.autorun)(G=>{const K=this._modifiedScrollTop.read(G)-(this._modifiedScrollOffsetAnimated.get()-this._originalScrollOffsetAnimated.read(G))-(this._modifiedTopPadding.get()-this._originalTopPadding.read(G));K!==this._editors.original.getScrollTop()&&this._editors.original.setScrollTop(K,1)})),this._register((0,m.autorun)(G=>{const K=this._diffModel.read(G)?.movedTextToCompare.read(G);let R=0;if(K){const J=this._editors.original.getTopForLineNumber(K.lineRangeMapping.original.startLineNumber,!0)-this._originalTopPadding.get();R=this._editors.modified.getTopForLineNumber(K.lineRangeMapping.modified.startLineNumber,!0)-this._modifiedTopPadding.get()-J}R>0?(this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(R,void 0)):R<0?(this._modifiedTopPadding.set(-R,void 0),this._originalTopPadding.set(0,void 0)):setTimeout(()=>{this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(0,void 0)},400),this._editors.modified.hasTextFocus()?this._originalScrollOffset.set(this._modifiedScrollOffset.get()-R,void 0,!0):this._modifiedScrollOffset.set(this._originalScrollOffset.get()+R,void 0,!0)}))}};e.DiffEditorViewZones=C,e.DiffEditorViewZones=C=ke([ce(8,a.IClipboardService),ce(9,r.IContextMenuService)],C);function f(S,L,D,T,M,A){const P=new k.ArrayQueue(h(S,T)),N=new k.ArrayQueue(h(L,M)),O=S.getOption(67),F=L.getOption(67),x=[];let W=0,V=0;function q(H,z){for(;;){let U=P.peek(),j=N.peek();if(U&&U.lineNumber>=H&&(U=void 0),j&&j.lineNumber>=z&&(j=void 0),!U&&!j)break;const Y=U?U.lineNumber-W:Number.MAX_VALUE,G=j?j.lineNumber-V:Number.MAX_VALUE;YG?(N.dequeue(),U={lineNumber:j.lineNumber-V+W,heightInPx:0}):(P.dequeue(),N.dequeue()),x.push({originalRange:g.LineRange.ofLength(U.lineNumber,1),modifiedRange:g.LineRange.ofLength(j.lineNumber,1),originalHeightInPx:O+U.heightInPx,modifiedHeightInPx:F+j.heightInPx,diff:void 0})}}for(const H of D){let G=function(K,R,J=!1){if(Kae.lineNumberae+ee.heightInPx,0)??0,pe=N.takeWhile(ae=>ae.lineNumberae+ee.heightInPx,0)??0;x.push({originalRange:ie,modifiedRange:ue,originalHeightInPx:ie.length*O+he,modifiedHeightInPx:ue.length*F+pe,diff:H.lineRangeMapping}),Y=K,j=R};const z=H.lineRangeMapping;q(z.original.startLineNumber,z.modified.startLineNumber);let U=!0,j=z.modified.startLineNumber,Y=z.original.startLineNumber;if(A)for(const K of z.innerChanges||[]){K.originalRange.startColumn>1&&K.modifiedRange.startColumn>1&&G(K.originalRange.startLineNumber,K.modifiedRange.startLineNumber);const R=S.getModel(),J=K.originalRange.endLineNumber<=R.getLineCount()?R.getLineMaxColumn(K.originalRange.endLineNumber):Number.MAX_SAFE_INTEGER;K.originalRange.endColumn1&&T.push({lineNumber:O,heightInPx:P*(F-1)})}for(const O of S.getWhitespaces()){if(L.has(O.id))continue;const F=O.afterLineNumber===0?0:A.convertViewPositionToModelPosition(new c.Position(O.afterLineNumber,1)).lineNumber;D.push({lineNumber:F,heightInPx:O.height})}return(0,s.joinCombine)(D,T,O=>O.lineNumber,(O,F)=>({lineNumber:O.lineNumber,heightInPx:O.heightInPx+F.heightInPx}))}function v(S){return S.innerChanges?S.innerChanges.every(L=>w(L.modifiedRange)&&w(L.originalRange)||L.originalRange.equalsRange(new u.Range(1,1,1,1))):!1}function w(S){return S.startLineNumber===S.endLineNumber}}),define(ne[806],se([1,0,2,21,285,364,139,88]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorDecorations=void 0;class _ extends d.Disposable{constructor(p,n,o,t){super(),this._editors=p,this._diffModel=n,this._options=o,this._decorations=(0,k.derived)(this,i=>{const s=this._diffModel.read(i),g=s?.diff.read(i);if(!g)return null;const c=this._diffModel.read(i).movedTextToCompare.read(i),l=this._options.renderIndicators.read(i),a=this._options.showEmptyDecorations.read(i),r=[],u=[];if(!c)for(const f of g.mappings)if(f.lineRangeMapping.original.isEmpty||r.push({range:f.lineRangeMapping.original.toInclusiveRange(),options:l?y.diffLineDeleteDecorationBackgroundWithIndicator:y.diffLineDeleteDecorationBackground}),f.lineRangeMapping.modified.isEmpty||u.push({range:f.lineRangeMapping.modified.toInclusiveRange(),options:l?y.diffLineAddDecorationBackgroundWithIndicator:y.diffLineAddDecorationBackground}),f.lineRangeMapping.modified.isEmpty||f.lineRangeMapping.original.isEmpty)f.lineRangeMapping.original.isEmpty||r.push({range:f.lineRangeMapping.original.toInclusiveRange(),options:y.diffWholeLineDeleteDecoration}),f.lineRangeMapping.modified.isEmpty||u.push({range:f.lineRangeMapping.modified.toInclusiveRange(),options:y.diffWholeLineAddDecoration});else{const h=this._options.useTrueInlineDiffRendering.read(i)&&(0,I.allowsTrueInlineDiffRendering)(f.lineRangeMapping);for(const v of f.lineRangeMapping.innerChanges||[])if(f.lineRangeMapping.original.contains(v.originalRange.startLineNumber)&&r.push({range:v.originalRange,options:v.originalRange.isEmpty()&&a?y.diffDeleteDecorationEmpty:y.diffDeleteDecoration}),f.lineRangeMapping.modified.contains(v.modifiedRange.startLineNumber)&&u.push({range:v.modifiedRange,options:v.modifiedRange.isEmpty()&&a&&!h?y.diffAddDecorationEmpty:y.diffAddDecoration}),h){const w=s.model.original.getValueInRange(v.originalRange);u.push({range:v.modifiedRange,options:{description:"deleted-text",before:{content:w,inlineClassName:"inline-deleted-text"},zIndex:1e5,showIfCollapsed:!0}})}}if(c)for(const f of c.changes){const h=f.original.toInclusiveRange();h&&r.push({range:h,options:l?y.diffLineDeleteDecorationBackgroundWithIndicator:y.diffLineDeleteDecorationBackground});const v=f.modified.toInclusiveRange();v&&u.push({range:v,options:l?y.diffLineAddDecorationBackgroundWithIndicator:y.diffLineAddDecorationBackground});for(const w of f.innerChanges||[])r.push({range:w.originalRange,options:y.diffDeleteDecoration}),u.push({range:w.modifiedRange,options:y.diffAddDecoration})}const C=this._diffModel.read(i).activeMovedText.read(i);for(const f of g.movedTexts)r.push({range:f.lineRangeMapping.original.toInclusiveRange(),options:{description:"moved",blockClassName:"movedOriginal"+(f===C?" currentMove":""),blockPadding:[E.MovedBlocksLinesFeature.movedCodeBlockPadding,0,E.MovedBlocksLinesFeature.movedCodeBlockPadding,E.MovedBlocksLinesFeature.movedCodeBlockPadding]}}),u.push({range:f.lineRangeMapping.modified.toInclusiveRange(),options:{description:"moved",blockClassName:"movedModified"+(f===C?" currentMove":""),blockPadding:[4,0,4,4]}});return{originalDecorations:r,modifiedDecorations:u}}),this._register((0,m.applyObservableDecorations)(this._editors.original,this._decorations.map(i=>i?.originalDecorations||[]))),this._register((0,m.applyObservableDecorations)(this._editors.modified,this._decorations.map(i=>i?.modifiedDecorations||[])))}}e.DiffEditorDecorations=_}),define(ne[807],se([1,0,21,189,285,308,37,61]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorOptions=void 0;let _=class{get editorOptions(){return this._options}constructor(i,s){this._accessibilityService=s,this._diffEditorWidth=(0,d.observableValue)(this,0),this._screenReaderMode=(0,d.observableFromEvent)(this,this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this.couldShowInlineViewBecauseOfSize=(0,d.derived)(this,c=>this._options.read(c).renderSideBySide&&this._diffEditorWidth.read(c)<=this._options.read(c).renderSideBySideInlineBreakpoint),this.renderOverviewRuler=(0,d.derived)(this,c=>this._options.read(c).renderOverviewRuler),this.renderSideBySide=(0,d.derived)(this,c=>this.compactMode.read(c)&&this.shouldRenderInlineViewInSmartMode.read(c)?!1:this._options.read(c).renderSideBySide&&!(this._options.read(c).useInlineViewWhenSpaceIsLimited&&this.couldShowInlineViewBecauseOfSize.read(c)&&!this._screenReaderMode.read(c))),this.readOnly=(0,d.derived)(this,c=>this._options.read(c).readOnly),this.shouldRenderOldRevertArrows=(0,d.derived)(this,c=>!(!this._options.read(c).renderMarginRevertIcon||!this.renderSideBySide.read(c)||this.readOnly.read(c)||this.shouldRenderGutterMenu.read(c))),this.shouldRenderGutterMenu=(0,d.derived)(this,c=>this._options.read(c).renderGutterMenu),this.renderIndicators=(0,d.derived)(this,c=>this._options.read(c).renderIndicators),this.enableSplitViewResizing=(0,d.derived)(this,c=>this._options.read(c).enableSplitViewResizing),this.splitViewDefaultRatio=(0,d.derived)(this,c=>this._options.read(c).splitViewDefaultRatio),this.ignoreTrimWhitespace=(0,d.derived)(this,c=>this._options.read(c).ignoreTrimWhitespace),this.maxComputationTimeMs=(0,d.derived)(this,c=>this._options.read(c).maxComputationTime),this.showMoves=(0,d.derived)(this,c=>this._options.read(c).experimental.showMoves&&this.renderSideBySide.read(c)),this.isInEmbeddedEditor=(0,d.derived)(this,c=>this._options.read(c).isInEmbeddedEditor),this.diffWordWrap=(0,d.derived)(this,c=>this._options.read(c).diffWordWrap),this.originalEditable=(0,d.derived)(this,c=>this._options.read(c).originalEditable),this.diffCodeLens=(0,d.derived)(this,c=>this._options.read(c).diffCodeLens),this.accessibilityVerbose=(0,d.derived)(this,c=>this._options.read(c).accessibilityVerbose),this.diffAlgorithm=(0,d.derived)(this,c=>this._options.read(c).diffAlgorithm),this.showEmptyDecorations=(0,d.derived)(this,c=>this._options.read(c).experimental.showEmptyDecorations),this.onlyShowAccessibleDiffViewer=(0,d.derived)(this,c=>this._options.read(c).onlyShowAccessibleDiffViewer),this.compactMode=(0,d.derived)(this,c=>this._options.read(c).compactMode),this.trueInlineDiffRenderingEnabled=(0,d.derived)(this,c=>this._options.read(c).experimental.useTrueInlineView),this.useTrueInlineDiffRendering=(0,d.derived)(this,c=>!this.renderSideBySide.read(c)&&this.trueInlineDiffRenderingEnabled.read(c)),this.hideUnchangedRegions=(0,d.derived)(this,c=>this._options.read(c).hideUnchangedRegions.enabled),this.hideUnchangedRegionsRevealLineCount=(0,d.derived)(this,c=>this._options.read(c).hideUnchangedRegions.revealLineCount),this.hideUnchangedRegionsContextLineCount=(0,d.derived)(this,c=>this._options.read(c).hideUnchangedRegions.contextLineCount),this.hideUnchangedRegionsMinimumLineCount=(0,d.derived)(this,c=>this._options.read(c).hideUnchangedRegions.minimumLineCount),this._model=(0,d.observableValue)(this,void 0),this.shouldRenderInlineViewInSmartMode=this._model.map(this,c=>(0,k.derivedConstOnceDefined)(this,l=>{const a=c?.diff.read(l);return a?b(a,this.trueInlineDiffRenderingEnabled.read(l)):void 0})).flatten().map(this,c=>!!c),this.inlineViewHideOriginalLineNumbers=this.compactMode;const g={...i,...o(i,E.diffEditorDefaultOptions)};this._options=(0,d.observableValue)(this,g)}updateOptions(i){const s=o(i,this._options.get()),g={...this._options.get(),...i,...s};this._options.set(g,void 0,{changedOptions:i})}setWidth(i){this._diffEditorWidth.set(i,void 0)}setModel(i){this._model.set(i,void 0)}};e.DiffEditorOptions=_,e.DiffEditorOptions=_=ke([ce(1,m.IAccessibilityService)],_);function b(t,i){return t.mappings.every(s=>p(s.lineRangeMapping)||n(s.lineRangeMapping)||i&&(0,I.allowsTrueInlineDiffRendering)(s.lineRangeMapping))}function p(t){return t.original.length===0}function n(t){return t.modified.length===0}function o(t,i){return{enableSplitViewResizing:(0,y.boolean)(t.enableSplitViewResizing,i.enableSplitViewResizing),splitViewDefaultRatio:(0,y.clampedFloat)(t.splitViewDefaultRatio,.5,.1,.9),renderSideBySide:(0,y.boolean)(t.renderSideBySide,i.renderSideBySide),renderMarginRevertIcon:(0,y.boolean)(t.renderMarginRevertIcon,i.renderMarginRevertIcon),maxComputationTime:(0,y.clampedInt)(t.maxComputationTime,i.maxComputationTime,0,1073741824),maxFileSize:(0,y.clampedInt)(t.maxFileSize,i.maxFileSize,0,1073741824),ignoreTrimWhitespace:(0,y.boolean)(t.ignoreTrimWhitespace,i.ignoreTrimWhitespace),renderIndicators:(0,y.boolean)(t.renderIndicators,i.renderIndicators),originalEditable:(0,y.boolean)(t.originalEditable,i.originalEditable),diffCodeLens:(0,y.boolean)(t.diffCodeLens,i.diffCodeLens),renderOverviewRuler:(0,y.boolean)(t.renderOverviewRuler,i.renderOverviewRuler),diffWordWrap:(0,y.stringSet)(t.diffWordWrap,i.diffWordWrap,["off","on","inherit"]),diffAlgorithm:(0,y.stringSet)(t.diffAlgorithm,i.diffAlgorithm,["legacy","advanced"],{smart:"legacy",experimental:"advanced"}),accessibilityVerbose:(0,y.boolean)(t.accessibilityVerbose,i.accessibilityVerbose),experimental:{showMoves:(0,y.boolean)(t.experimental?.showMoves,i.experimental.showMoves),showEmptyDecorations:(0,y.boolean)(t.experimental?.showEmptyDecorations,i.experimental.showEmptyDecorations),useTrueInlineView:(0,y.boolean)(t.experimental?.useTrueInlineView,i.experimental.useTrueInlineView)},hideUnchangedRegions:{enabled:(0,y.boolean)(t.hideUnchangedRegions?.enabled??t.experimental?.collapseUnchangedRegions,i.hideUnchangedRegions.enabled),contextLineCount:(0,y.clampedInt)(t.hideUnchangedRegions?.contextLineCount,i.hideUnchangedRegions.contextLineCount,0,1073741824),minimumLineCount:(0,y.clampedInt)(t.hideUnchangedRegions?.minimumLineCount,i.hideUnchangedRegions.minimumLineCount,0,1073741824),revealLineCount:(0,y.clampedInt)(t.hideUnchangedRegions?.revealLineCount,i.hideUnchangedRegions.revealLineCount,0,1073741824)},isInEmbeddedEditor:(0,y.boolean)(t.isInEmbeddedEditor,i.isInEmbeddedEditor),onlyShowAccessibleDiffViewer:(0,y.boolean)(t.onlyShowAccessibleDiffViewer,i.onlyShowAccessibleDiffViewer),renderSideBySideInlineBreakpoint:(0,y.clampedInt)(t.renderSideBySideInlineBreakpoint,i.renderSideBySideInlineBreakpoint,0,1073741824),useInlineViewWhenSpaceIsLimited:(0,y.boolean)(t.useInlineViewWhenSpaceIsLimited,i.useInlineViewWhenSpaceIsLimited),renderGutterMenu:(0,y.boolean)(t.renderGutterMenu,i.renderGutterMenu),compactMode:(0,y.boolean)(t.compactMode,i.compactMode)}}}),define(ne[808],se([1,0,6,2,16,35,197,70,211,28,284,129,370,42,60,7]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";var g;Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultModelSHA1Computer=e.ModelService=void 0;function c(f){return f.toString()}class l{constructor(h,v,w){this.model=h,this._modelEventListeners=new k.DisposableStore,this.model=h,this._modelEventListeners.add(h.onWillDispose(()=>v(h))),this._modelEventListeners.add(h.onDidChangeLanguage(S=>w(h,S)))}dispose(){this._modelEventListeners.dispose()}}const a=I.isLinux||I.isMacintosh?1:2;class r{constructor(h,v,w,S,L,D,T,M){this.uri=h,this.initialUndoRedoSnapshot=v,this.time=w,this.sharesUndoRedoStack=S,this.heapSize=L,this.sha1=D,this.versionId=T,this.alternativeVersionId=M}}let u=class extends k.Disposable{static{g=this}static{this.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20*1024*1024}constructor(h,v,w,S){super(),this._configurationService=h,this._resourcePropertiesService=v,this._undoRedoService=w,this._instantiationService=S,this._onModelAdded=this._register(new d.Emitter),this.onModelAdded=this._onModelAdded.event,this._onModelRemoved=this._register(new d.Emitter),this.onModelRemoved=this._onModelRemoved.event,this._onModelModeChanged=this._register(new d.Emitter),this.onModelLanguageChanged=this._onModelModeChanged.event,this._modelCreationOptionsByLanguageAndResource=Object.create(null),this._models={},this._disposedModels=new Map,this._disposedModelsHeapSize=0,this._register(this._configurationService.onDidChangeConfiguration(L=>this._updateModelOptions(L))),this._updateModelOptions(void 0)}static _readModelOptions(h,v){let w=y.EDITOR_MODEL_DEFAULTS.tabSize;if(h.editor&&typeof h.editor.tabSize<"u"){const O=parseInt(h.editor.tabSize,10);isNaN(O)||(w=O),w<1&&(w=1)}let S="tabSize";if(h.editor&&typeof h.editor.indentSize<"u"&&h.editor.indentSize!=="tabSize"){const O=parseInt(h.editor.indentSize,10);isNaN(O)||(S=Math.max(O,1))}let L=y.EDITOR_MODEL_DEFAULTS.insertSpaces;h.editor&&typeof h.editor.insertSpaces<"u"&&(L=h.editor.insertSpaces==="false"?!1:!!h.editor.insertSpaces);let D=a;const T=h.eol;T===`\r +`?D=2:T===` +`&&(D=1);let M=y.EDITOR_MODEL_DEFAULTS.trimAutoWhitespace;h.editor&&typeof h.editor.trimAutoWhitespace<"u"&&(M=h.editor.trimAutoWhitespace==="false"?!1:!!h.editor.trimAutoWhitespace);let A=y.EDITOR_MODEL_DEFAULTS.detectIndentation;h.editor&&typeof h.editor.detectIndentation<"u"&&(A=h.editor.detectIndentation==="false"?!1:!!h.editor.detectIndentation);let P=y.EDITOR_MODEL_DEFAULTS.largeFileOptimizations;h.editor&&typeof h.editor.largeFileOptimizations<"u"&&(P=h.editor.largeFileOptimizations==="false"?!1:!!h.editor.largeFileOptimizations);let N=y.EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions;return h.editor?.bracketPairColorization&&typeof h.editor.bracketPairColorization=="object"&&(N={enabled:!!h.editor.bracketPairColorization.enabled,independentColorPoolPerBracketType:!!h.editor.bracketPairColorization.independentColorPoolPerBracketType}),{isForSimpleWidget:v,tabSize:w,indentSize:S,insertSpaces:L,detectIndentation:A,defaultEOL:D,trimAutoWhitespace:M,largeFileOptimizations:P,bracketPairColorizationOptions:N}}_getEOL(h,v){if(h)return this._resourcePropertiesService.getEOL(h,v);const w=this._configurationService.getValue("files.eol",{overrideIdentifier:v});return w&&typeof w=="string"&&w!=="auto"?w:I.OS===3||I.OS===2?` +`:`\r +`}_shouldRestoreUndoStack(){const h=this._configurationService.getValue("files.restoreUndoStack");return typeof h=="boolean"?h:!0}getCreationOptions(h,v,w){const S=typeof h=="string"?h:h.languageId;let L=this._modelCreationOptionsByLanguageAndResource[S+v];if(!L){const D=this._configurationService.getValue("editor",{overrideIdentifier:S,resource:v}),T=this._getEOL(v,S);L=g._readModelOptions({editor:D,eol:T},w),this._modelCreationOptionsByLanguageAndResource[S+v]=L}return L}_updateModelOptions(h){const v=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const w=Object.keys(this._models);for(let S=0,L=w.length;Sh){const v=[];for(this._disposedModels.forEach(w=>{w.sharesUndoRedoStack||v.push(w)}),v.sort((w,S)=>w.time-S.time);v.length>0&&this._disposedModelsHeapSize>h;){const w=v.shift();this._removeDisposedModel(w.uri),w.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(w.initialUndoRedoSnapshot)}}}_createModelData(h,v,w,S){const L=this.getCreationOptions(v,w,S),D=this._instantiationService.createInstance(E.TextModel,h,v,L,w);if(w&&this._disposedModels.has(c(w))){const A=this._removeDisposedModel(w),P=this._undoRedoService.getElements(w),N=this._getSHA1Computer(),O=N.canComputeSHA1(D)?N.computeSHA1(D)===A.sha1:!1;if(O||A.sharesUndoRedoStack){for(const F of P.past)(0,o.isEditStackElement)(F)&&F.matchesResource(w)&&F.setModel(D);for(const F of P.future)(0,o.isEditStackElement)(F)&&F.matchesResource(w)&&F.setModel(D);this._undoRedoService.setElementsValidFlag(w,!0,F=>(0,o.isEditStackElement)(F)&&F.matchesResource(w)),O&&(D._overwriteVersionId(A.versionId),D._overwriteAlternativeVersionId(A.alternativeVersionId),D._overwriteInitialUndoRedoSnapshot(A.initialUndoRedoSnapshot))}else A.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(A.initialUndoRedoSnapshot)}const T=c(D.uri);if(this._models[T])throw new Error("ModelService: Cannot add model because it already exists!");const M=new l(D,A=>this._onWillDispose(A),(A,P)=>this._onDidChangeLanguage(A,P));return this._models[T]=M,M}createModel(h,v,w,S=!1){let L;return v?L=this._createModelData(h,v,w,S):L=this._createModelData(h,m.PLAINTEXT_LANGUAGE_ID,w,S),this._onModelAdded.fire(L.model),L.model}getModels(){const h=[],v=Object.keys(this._models);for(let w=0,S=v.length;w0||A.future.length>0){for(const P of A.past)(0,o.isEditStackElement)(P)&&P.matchesResource(h.uri)&&(L=!0,D+=P.heapSize(h.uri),P.setModel(h.uri));for(const P of A.future)(0,o.isEditStackElement)(P)&&P.matchesResource(h.uri)&&(L=!0,D+=P.heapSize(h.uri),P.setModel(h.uri))}}const T=g.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK,M=this._getSHA1Computer();if(L)if(!S&&(D>T||!M.canComputeSHA1(h))){const A=w.model.getInitialUndoRedoSnapshot();A!==null&&this._undoRedoService.restoreSnapshot(A)}else this._ensureDisposedModelsHeapSize(T-D),this._undoRedoService.setElementsValidFlag(h.uri,!1,A=>(0,o.isEditStackElement)(A)&&A.matchesResource(h.uri)),this._insertDisposedModel(new r(h.uri,w.model.getInitialUndoRedoSnapshot(),Date.now(),S,D,M.computeSHA1(h),h.getVersionId(),h.getAlternativeVersionId()));else if(!S){const A=w.model.getInitialUndoRedoSnapshot();A!==null&&this._undoRedoService.restoreSnapshot(A)}delete this._models[v],w.dispose(),delete this._modelCreationOptionsByLanguageAndResource[h.getLanguageId()+h.uri],this._onModelRemoved.fire(h)}_onDidChangeLanguage(h,v){const w=v.oldLanguage,S=h.getLanguageId(),L=this.getCreationOptions(w,h.uri,h.isForSimpleWidget),D=this.getCreationOptions(S,h.uri,h.isForSimpleWidget);g._setModelOptionsForModel(h,D,L),this._onModelModeChanged.fire({model:h,oldLanguageId:w})}_getSHA1Computer(){return new C}};e.ModelService=u,e.ModelService=u=g=ke([ce(0,b.IConfigurationService),ce(1,_.ITextResourcePropertiesService),ce(2,p.IUndoRedoService),ce(3,s.IInstantiationService)],u);class C{static{this.MAX_MODEL_SIZE=10*1024*1024}canComputeSHA1(h){return h.getValueLength()<=C.MAX_MODEL_SIZE}computeSHA1(h){const v=new n.StringSHA1,w=h.createSnapshot();let S;for(;S=w.read();)v.update(S);return v.digest()}}e.DefaultModelSHA1Computer=C}),define(ne[809],se([1,0,13,9,4,239,35,132,243,602,322,95]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewModelLinesFromModelAsIs=e.ViewModelLinesFromProjectedModel=void 0;class o{constructor(r,u,C,f,h,v,w,S,L,D){this._editorId=r,this.model=u,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=C,this._monospaceLineBreaksComputerFactory=f,this.fontInfo=h,this.tabSize=v,this.wrappingStrategy=w,this.wrappingColumn=S,this.wrappingIndent=L,this.wordBreak=D,this._constructLines(!0,null)}dispose(){this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[])}createCoordinatesConverter(){return new g(this)}_constructLines(r,u){this.modelLineProjections=[],r&&(this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[]));const C=this.model.getLinesContent(),f=this.model.getInjectedTextDecorations(this._editorId),h=C.length,v=this.createLineBreaksComputer(),w=new d.ArrayQueue(m.LineInjectedText.fromDecorations(f));for(let N=0;NF.lineNumber===N+1);v.addRequest(C[N],O,u?u[N]:null)}const S=v.finalize(),L=[],D=this.hiddenAreasDecorationIds.map(N=>this.model.getDecorationRange(N)).sort(I.Range.compareRangesUsingStarts);let T=1,M=0,A=-1,P=A+1=T&&O<=M,x=(0,b.createModelLineProjection)(S[N],!F);L[N]=x.getViewLineCount(),this.modelLineProjections[N]=x}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new p.ConstantTimePrefixSumComputer(L)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map(r=>this.model.getDecorationRange(r))}setHiddenAreas(r){const u=r.map(M=>this.model.validateRange(M)),C=t(u),f=this.hiddenAreasDecorationIds.map(M=>this.model.getDecorationRange(M)).sort(I.Range.compareRangesUsingStarts);if(C.length===f.length){let M=!1;for(let A=0;A({range:M,options:y.ModelDecorationOptions.EMPTY}));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,h);const v=C;let w=1,S=0,L=-1,D=L+1=w&&A<=S?this.modelLineProjections[M].isVisible()&&(this.modelLineProjections[M]=this.modelLineProjections[M].setVisible(!1),P=!0):(T=!0,this.modelLineProjections[M].isVisible()||(this.modelLineProjections[M]=this.modelLineProjections[M].setVisible(!0),P=!0)),P){const N=this.modelLineProjections[M].getViewLineCount();this.projectedModelLineLineCounts.setValue(M,N)}}return T||this.setHiddenAreas([]),!0}modelPositionIsVisible(r,u){return r<1||r>this.modelLineProjections.length?!1:this.modelLineProjections[r-1].isVisible()}getModelLineViewLineCount(r){return r<1||r>this.modelLineProjections.length?1:this.modelLineProjections[r-1].getViewLineCount()}setTabSize(r){return this.tabSize===r?!1:(this.tabSize=r,this._constructLines(!1,null),!0)}setWrappingSettings(r,u,C,f,h){const v=this.fontInfo.equals(r),w=this.wrappingStrategy===u,S=this.wrappingColumn===C,L=this.wrappingIndent===f,D=this.wordBreak===h;if(v&&w&&S&&L&&D)return!1;const T=v&&w&&!S&&L&&D;this.fontInfo=r,this.wrappingStrategy=u,this.wrappingColumn=C,this.wrappingIndent=f,this.wordBreak=h;let M=null;if(T){M=[];for(let A=0,P=this.modelLineProjections.length;A2&&!this.modelLineProjections[u-2].isVisible(),v=u===1?1:this.projectedModelLineLineCounts.getPrefixSum(u-1)+1;let w=0;const S=[],L=[];for(let D=0,T=f.length;DS?(D=this.projectedModelLineLineCounts.getPrefixSum(u-1)+1,T=D+S-1,P=T+1,N=P+(h-S)-1,L=!0):hu?u:r|0}getActiveIndentGuide(r,u,C){r=this._toValidViewLineNumber(r),u=this._toValidViewLineNumber(u),C=this._toValidViewLineNumber(C);const f=this.convertViewPositionToModelPosition(r,this.getViewLineMinColumn(r)),h=this.convertViewPositionToModelPosition(u,this.getViewLineMinColumn(u)),v=this.convertViewPositionToModelPosition(C,this.getViewLineMinColumn(C)),w=this.model.guides.getActiveIndentGuide(f.lineNumber,h.lineNumber,v.lineNumber),S=this.convertModelPositionToViewPosition(w.startLineNumber,1),L=this.convertModelPositionToViewPosition(w.endLineNumber,this.model.getLineMaxColumn(w.endLineNumber));return{startLineNumber:S.lineNumber,endLineNumber:L.lineNumber,indent:w.indent}}getViewLineInfo(r){r=this._toValidViewLineNumber(r);const u=this.projectedModelLineLineCounts.getIndexOf(r-1),C=u.index,f=u.remainder;return new i(C+1,f)}getMinColumnOfViewLine(r){return this.modelLineProjections[r.modelLineNumber-1].getViewLineMinColumn(this.model,r.modelLineNumber,r.modelLineWrappedLineIdx)}getMaxColumnOfViewLine(r){return this.modelLineProjections[r.modelLineNumber-1].getViewLineMaxColumn(this.model,r.modelLineNumber,r.modelLineWrappedLineIdx)}getModelStartPositionOfViewLine(r){const u=this.modelLineProjections[r.modelLineNumber-1],C=u.getViewLineMinColumn(this.model,r.modelLineNumber,r.modelLineWrappedLineIdx),f=u.getModelColumnOfViewPosition(r.modelLineWrappedLineIdx,C);return new k.Position(r.modelLineNumber,f)}getModelEndPositionOfViewLine(r){const u=this.modelLineProjections[r.modelLineNumber-1],C=u.getViewLineMaxColumn(this.model,r.modelLineNumber,r.modelLineWrappedLineIdx),f=u.getModelColumnOfViewPosition(r.modelLineWrappedLineIdx,C);return new k.Position(r.modelLineNumber,f)}getViewLineInfosGroupedByModelRanges(r,u){const C=this.getViewLineInfo(r),f=this.getViewLineInfo(u),h=new Array;let v=this.getModelStartPositionOfViewLine(C),w=new Array;for(let S=C.modelLineNumber;S<=f.modelLineNumber;S++){const L=this.modelLineProjections[S-1];if(L.isVisible()){const D=S===C.modelLineNumber?C.modelLineWrappedLineIdx:0,T=S===f.modelLineNumber?f.modelLineWrappedLineIdx+1:L.getViewLineCount();for(let M=D;M{if(A.forWrappedLinesAfterColumn!==-1&&this.modelLineProjections[D.modelLineNumber-1].getViewPositionOfModelPosition(0,A.forWrappedLinesAfterColumn).lineNumber>=D.modelLineWrappedLineIdx||A.forWrappedLinesBeforeOrAtColumn!==-1&&this.modelLineProjections[D.modelLineNumber-1].getViewPositionOfModelPosition(0,A.forWrappedLinesBeforeOrAtColumn).lineNumberD.modelLineWrappedLineIdx)return}const N=this.convertModelPositionToViewPosition(D.modelLineNumber,A.horizontalLine.endColumn),O=this.modelLineProjections[D.modelLineNumber-1].getViewPositionOfModelPosition(0,A.horizontalLine.endColumn);return O.lineNumber===D.modelLineWrappedLineIdx?new E.IndentGuide(A.visibleColumn,P,A.className,new E.IndentGuideHorizontalLine(A.horizontalLine.top,N.column),-1,-1):O.lineNumber!!A))}}return v}getViewLinesIndentGuides(r,u){r=this._toValidViewLineNumber(r),u=this._toValidViewLineNumber(u);const C=this.convertViewPositionToModelPosition(r,this.getViewLineMinColumn(r)),f=this.convertViewPositionToModelPosition(u,this.getViewLineMaxColumn(u));let h=[];const v=[],w=[],S=C.lineNumber-1,L=f.lineNumber-1;let D=null;for(let P=S;P<=L;P++){const N=this.modelLineProjections[P];if(N.isVisible()){const O=N.getViewLineNumberOfModelPosition(0,P===S?C.column:1),F=N.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(P+1)),x=F-O+1;let W=0;x>1&&N.getViewLineMinColumn(this.model,P+1,F)===1&&(W=O===0?1:2),v.push(x),w.push(W),D===null&&(D=new k.Position(P+1,0))}else D!==null&&(h=h.concat(this.model.guides.getLinesIndentGuides(D.lineNumber,P)),D=null)}D!==null&&(h=h.concat(this.model.guides.getLinesIndentGuides(D.lineNumber,f.lineNumber)),D=null);const T=u-r+1,M=new Array(T);let A=0;for(let P=0,N=h.length;Pu&&(P=!0,A=u-h+1),T.getViewLinesData(this.model,L+1,M,A,h-r,C,S),h+=A,P)break}return S}validateViewPosition(r,u,C){r=this._toValidViewLineNumber(r);const f=this.projectedModelLineLineCounts.getIndexOf(r-1),h=f.index,v=f.remainder,w=this.modelLineProjections[h],S=w.getViewLineMinColumn(this.model,h+1,v),L=w.getViewLineMaxColumn(this.model,h+1,v);uL&&(u=L);const D=w.getModelColumnOfViewPosition(v,u);return this.model.validatePosition(new k.Position(h+1,D)).equals(C)?new k.Position(r,u):this.convertModelPositionToViewPosition(C.lineNumber,C.column)}validateViewRange(r,u){const C=this.validateViewPosition(r.startLineNumber,r.startColumn,u.getStartPosition()),f=this.validateViewPosition(r.endLineNumber,r.endColumn,u.getEndPosition());return new I.Range(C.lineNumber,C.column,f.lineNumber,f.column)}convertViewPositionToModelPosition(r,u){const C=this.getViewLineInfo(r),f=this.modelLineProjections[C.modelLineNumber-1].getModelColumnOfViewPosition(C.modelLineWrappedLineIdx,u);return this.model.validatePosition(new k.Position(C.modelLineNumber,f))}convertViewRangeToModelRange(r){const u=this.convertViewPositionToModelPosition(r.startLineNumber,r.startColumn),C=this.convertViewPositionToModelPosition(r.endLineNumber,r.endColumn);return new I.Range(u.lineNumber,u.column,C.lineNumber,C.column)}convertModelPositionToViewPosition(r,u,C=2,f=!1,h=!1){const v=this.model.validatePosition(new k.Position(r,u)),w=v.lineNumber,S=v.column;let L=w-1,D=!1;if(h)for(;L0&&!this.modelLineProjections[L].isVisible();)L--,D=!0;if(L===0&&!this.modelLineProjections[L].isVisible())return new k.Position(f?0:1,1);const T=1+this.projectedModelLineLineCounts.getPrefixSum(L);let M;return D?h?M=this.modelLineProjections[L].getViewPositionOfModelPosition(T,1,C):M=this.modelLineProjections[L].getViewPositionOfModelPosition(T,this.model.getLineMaxColumn(L+1),C):M=this.modelLineProjections[w-1].getViewPositionOfModelPosition(T,S,C),M}convertModelRangeToViewRange(r,u=0){if(r.isEmpty()){const C=this.convertModelPositionToViewPosition(r.startLineNumber,r.startColumn,u);return I.Range.fromPositions(C)}else{const C=this.convertModelPositionToViewPosition(r.startLineNumber,r.startColumn,1),f=this.convertModelPositionToViewPosition(r.endLineNumber,r.endColumn,0);return new I.Range(C.lineNumber,C.column,f.lineNumber,f.column)}}getViewLineNumberOfModelPosition(r,u){let C=r-1;if(this.modelLineProjections[C].isVisible()){const h=1+this.projectedModelLineLineCounts.getPrefixSum(C);return this.modelLineProjections[C].getViewLineNumberOfModelPosition(h,u)}for(;C>0&&!this.modelLineProjections[C].isVisible();)C--;if(C===0&&!this.modelLineProjections[C].isVisible())return 1;const f=1+this.projectedModelLineLineCounts.getPrefixSum(C);return this.modelLineProjections[C].getViewLineNumberOfModelPosition(f,this.model.getLineMaxColumn(C+1))}getDecorationsInRange(r,u,C,f,h){const v=this.convertViewPositionToModelPosition(r.startLineNumber,r.startColumn),w=this.convertViewPositionToModelPosition(r.endLineNumber,r.endColumn);if(w.lineNumber-v.lineNumber<=r.endLineNumber-r.startLineNumber)return this.model.getDecorationsInRange(new I.Range(v.lineNumber,1,w.lineNumber,w.column),u,C,f,h);let S=[];const L=v.lineNumber-1,D=w.lineNumber-1;let T=null;for(let N=L;N<=D;N++)if(this.modelLineProjections[N].isVisible())T===null&&(T=new k.Position(N+1,N===L?v.column:1));else if(T!==null){const F=this.model.getLineMaxColumn(N);S=S.concat(this.model.getDecorationsInRange(new I.Range(T.lineNumber,T.column,N,F),u,C,f)),T=null}T!==null&&(S=S.concat(this.model.getDecorationsInRange(new I.Range(T.lineNumber,T.column,w.lineNumber,w.column),u,C,f)),T=null),S.sort((N,O)=>{const F=I.Range.compareRangesUsingStarts(N.range,O.range);return F===0?N.idO.id?1:0:F});const M=[];let A=0,P=null;for(const N of S){const O=N.id;P!==O&&(P=O,M[A++]=N)}return M}getInjectedTextAt(r){const u=this.getViewLineInfo(r.lineNumber);return this.modelLineProjections[u.modelLineNumber-1].getInjectedTextAt(u.modelLineWrappedLineIdx,r.column)}normalizePosition(r,u){const C=this.getViewLineInfo(r.lineNumber);return this.modelLineProjections[C.modelLineNumber-1].normalizePosition(C.modelLineWrappedLineIdx,r,u)}getLineIndentColumn(r){const u=this.getViewLineInfo(r);return u.modelLineWrappedLineIdx===0?this.model.getLineIndentColumn(u.modelLineNumber):0}}e.ViewModelLinesFromProjectedModel=o;function t(a){if(a.length===0)return[];const r=a.slice();r.sort(I.Range.compareRangesUsingStarts);const u=[];let C=r[0].startLineNumber,f=r[0].endLineNumber;for(let h=1,v=r.length;hf+1?(u.push(new I.Range(C,1,f,1)),C=w.startLineNumber,f=w.endLineNumber):w.endLineNumber>f&&(f=w.endLineNumber)}return u.push(new I.Range(C,1,f,1)),u}class i{constructor(r,u){this.modelLineNumber=r,this.modelLineWrappedLineIdx=u}}class s{constructor(r,u){this.modelRange=r,this.viewLines=u}}class g{constructor(r){this._lines=r}convertViewPositionToModelPosition(r){return this._lines.convertViewPositionToModelPosition(r.lineNumber,r.column)}convertViewRangeToModelRange(r){return this._lines.convertViewRangeToModelRange(r)}validateViewPosition(r,u){return this._lines.validateViewPosition(r.lineNumber,r.column,u)}validateViewRange(r,u){return this._lines.validateViewRange(r,u)}convertModelPositionToViewPosition(r,u,C,f){return this._lines.convertModelPositionToViewPosition(r.lineNumber,r.column,u,C,f)}convertModelRangeToViewRange(r,u){return this._lines.convertModelRangeToViewRange(r,u)}modelPositionIsVisible(r){return this._lines.modelPositionIsVisible(r.lineNumber,r.column)}getModelLineViewLineCount(r){return this._lines.getModelLineViewLineCount(r)}getViewLineNumberOfModelPosition(r,u){return this._lines.getViewLineNumberOfModelPosition(r,u)}}class c{constructor(r){this.model=r}dispose(){}createCoordinatesConverter(){return new l(this)}getHiddenAreas(){return[]}setHiddenAreas(r){return!1}setTabSize(r){return!1}setWrappingSettings(r,u,C,f){return!1}createLineBreaksComputer(){const r=[];return{addRequest:(u,C,f)=>{r.push(null)},finalize:()=>r}}onModelFlushed(){}onModelLinesDeleted(r,u,C){return new _.ViewLinesDeletedEvent(u,C)}onModelLinesInserted(r,u,C,f){return new _.ViewLinesInsertedEvent(u,C)}onModelLineChanged(r,u,C){return[!1,new _.ViewLinesChangedEvent(u,1),null,null]}acceptVersionId(r){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(r,u,C){return{startLineNumber:r,endLineNumber:r,indent:0}}getViewLinesBracketGuides(r,u,C){return new Array(u-r+1).fill([])}getViewLinesIndentGuides(r,u){const C=u-r+1,f=new Array(C);for(let h=0;hu)}getModelLineViewLineCount(r){return 1}getViewLineNumberOfModelPosition(r,u){return r}}}),define(ne[810],se([1,0,13,14,33,2,16,11,37,706,76,9,4,132,27,70,369,243,606,374,95,375,244,809,601]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ViewModel=void 0;const v=!0;class w extends E.Disposable{constructor(N,O,F,x,W,V,q,H,z,U){if(super(),this.languageConfigurationService=q,this._themeService=H,this._attachedView=z,this._transactionalTarget=U,this.hiddenAreasModel=new D,this.previousHiddenAreas=[],this._editorId=N,this._configuration=O,this.model=F,this._eventDispatcher=new C.ViewModelEventDispatcher,this.onEvent=this._eventDispatcher.onEvent,this.cursorConfig=new p.CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._updateConfigurationViewLineCount=this._register(new k.RunOnceScheduler(()=>this._updateConfigurationViewLineCountNow(),0)),this._hasFocus=!1,this._viewportStart=S.create(this.model),this.glyphLanes=new h.GlyphMarginLanesModel(0),v&&this.model.isTooLargeForTokenization())this._lines=new f.ViewModelLinesFromModelAsIs(this.model);else{const j=this._configuration.options,Y=j.get(50),G=j.get(140),K=j.get(147),R=j.get(139),J=j.get(130);this._lines=new f.ViewModelLinesFromProjectedModel(this._editorId,this.model,x,W,Y,this.model.getOptions().tabSize,G,K.wrappingColumn,R,J)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new b.CursorsController(F,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new l.ViewLayout(this._configuration,this.getLineCount(),V)),this._register(this.viewLayout.onDidScroll(j=>{j.scrollTopChanged&&this._handleVisibleLinesChanged(),j.scrollTopChanged&&this._viewportStart.invalidate(),this._eventDispatcher.emitSingleViewEvent(new c.ViewScrollChangedEvent(j)),this._eventDispatcher.emitOutgoingEvent(new C.ScrollChangedEvent(j.oldScrollWidth,j.oldScrollLeft,j.oldScrollHeight,j.oldScrollTop,j.scrollWidth,j.scrollLeft,j.scrollHeight,j.scrollTop))})),this._register(this.viewLayout.onDidContentSizeChange(j=>{this._eventDispatcher.emitOutgoingEvent(j)})),this._decorations=new u.ViewModelDecorations(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast(j=>{try{const Y=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(Y,j)}finally{this._eventDispatcher.endEmitViewEvents()}})),this._register(a.MinimapTokensColorTracker.getInstance().onDidChange(()=>{this._eventDispatcher.emitSingleViewEvent(new c.ViewTokensColorsChangedEvent)})),this._register(this._themeService.onDidColorThemeChange(j=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new c.ViewThemeChangedEvent(j))})),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this._viewportStart.dispose(),this._eventDispatcher.dispose()}createLineBreaksComputer(){return this._lines.createLineBreaksComputer()}addViewEventHandler(N){this._eventDispatcher.addViewEventHandler(N)}removeViewEventHandler(N){this._eventDispatcher.removeViewEventHandler(N)}_updateConfigurationViewLineCountNow(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}getModelVisibleRanges(){const N=this.viewLayout.getLinesViewportData(),O=new o.Range(N.startLineNumber,this.getLineMinColumn(N.startLineNumber),N.endLineNumber,this.getLineMaxColumn(N.endLineNumber));return this._toModelVisibleRanges(O)}visibleLinesStabilized(){const N=this.getModelVisibleRanges();this._attachedView.setVisibleLines(N,!0)}_handleVisibleLinesChanged(){const N=this.getModelVisibleRanges();this._attachedView.setVisibleLines(N,!1)}setHasFocus(N){this._hasFocus=N,this._cursor.setHasFocus(N),this._eventDispatcher.emitSingleViewEvent(new c.ViewFocusChangedEvent(N)),this._eventDispatcher.emitOutgoingEvent(new C.FocusChangedEvent(!N,N))}onCompositionStart(){this._eventDispatcher.emitSingleViewEvent(new c.ViewCompositionStartEvent)}onCompositionEnd(){this._eventDispatcher.emitSingleViewEvent(new c.ViewCompositionEndEvent)}_captureStableViewport(){if(this._viewportStart.isValid&&this.viewLayout.getCurrentScrollTop()>0){const N=new n.Position(this._viewportStart.viewLineNumber,this.getLineMinColumn(this._viewportStart.viewLineNumber)),O=this.coordinatesConverter.convertViewPositionToModelPosition(N);return new A(O,this._viewportStart.startLineDelta)}return new A(null,0)}_onConfigurationChanged(N,O){const F=this._captureStableViewport(),x=this._configuration.options,W=x.get(50),V=x.get(140),q=x.get(147),H=x.get(139),z=x.get(130);this._lines.setWrappingSettings(W,V,q.wrappingColumn,H,z)&&(N.emitViewEvent(new c.ViewFlushedEvent),N.emitViewEvent(new c.ViewLineMappingChangedEvent),N.emitViewEvent(new c.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(N),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this._updateConfigurationViewLineCount.schedule()),O.hasChanged(92)&&(this._decorations.reset(),N.emitViewEvent(new c.ViewDecorationsChangedEvent(null))),O.hasChanged(99)&&(this._decorations.reset(),N.emitViewEvent(new c.ViewDecorationsChangedEvent(null))),N.emitViewEvent(new c.ViewConfigurationChangedEvent(O)),this.viewLayout.onConfigurationChanged(O),F.recoverViewportStart(this.coordinatesConverter,this.viewLayout),p.CursorConfiguration.shouldRecreate(O)&&(this.cursorConfig=new p.CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeContentOrInjectedText(N=>{try{const F=this._eventDispatcher.beginEmitViewEvents();let x=!1,W=!1;const V=N instanceof t.InternalModelContentChangeEvent?N.rawContentChangedEvent.changes:N.changes,q=N instanceof t.InternalModelContentChangeEvent?N.rawContentChangedEvent.versionId:null,H=this._lines.createLineBreaksComputer();for(const j of V)switch(j.changeType){case 4:{for(let Y=0;Y!R.ownerId||R.ownerId===this._editorId)),H.addRequest(G,K,null)}break}case 2:{let Y=null;j.injectedText&&(Y=j.injectedText.filter(G=>!G.ownerId||G.ownerId===this._editorId)),H.addRequest(j.detail,Y,null);break}}const z=H.finalize(),U=new d.ArrayQueue(z);for(const j of V)switch(j.changeType){case 1:{this._lines.onModelFlushed(),F.emitViewEvent(new c.ViewFlushedEvent),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount()),x=!0;break}case 3:{const Y=this._lines.onModelLinesDeleted(q,j.fromLineNumber,j.toLineNumber);Y!==null&&(F.emitViewEvent(Y),this.viewLayout.onLinesDeleted(Y.fromLineNumber,Y.toLineNumber)),x=!0;break}case 4:{const Y=U.takeCount(j.detail.length),G=this._lines.onModelLinesInserted(q,j.fromLineNumber,j.toLineNumber,Y);G!==null&&(F.emitViewEvent(G),this.viewLayout.onLinesInserted(G.fromLineNumber,G.toLineNumber)),x=!0;break}case 2:{const Y=U.dequeue(),[G,K,R,J]=this._lines.onModelLineChanged(q,j.lineNumber,Y);W=G,K&&F.emitViewEvent(K),R&&(F.emitViewEvent(R),this.viewLayout.onLinesInserted(R.fromLineNumber,R.toLineNumber)),J&&(F.emitViewEvent(J),this.viewLayout.onLinesDeleted(J.fromLineNumber,J.toLineNumber));break}case 5:break}q!==null&&this._lines.acceptVersionId(q),this.viewLayout.onHeightMaybeChanged(),!x&&W&&(F.emitViewEvent(new c.ViewLineMappingChangedEvent),F.emitViewEvent(new c.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(F),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}const O=this._viewportStart.isValid;if(this._viewportStart.invalidate(),this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&O){const F=this.model._getTrackedRange(this._viewportStart.modelTrackedRange);if(F){const x=this.coordinatesConverter.convertModelPositionToViewPosition(F.getStartPosition()),W=this.viewLayout.getVerticalOffsetForLineNumber(x.lineNumber);this.viewLayout.setScrollPosition({scrollTop:W+this._viewportStart.startLineDelta},1)}}try{const F=this._eventDispatcher.beginEmitViewEvents();N instanceof t.InternalModelContentChangeEvent&&F.emitOutgoingEvent(new C.ModelContentChangedEvent(N.contentChangedEvent)),this._cursor.onModelContentChanged(F,N)}finally{this._eventDispatcher.endEmitViewEvents()}this._handleVisibleLinesChanged()})),this._register(this.model.onDidChangeTokens(N=>{const O=[];for(let F=0,x=N.ranges.length;F{this._eventDispatcher.emitSingleViewEvent(new c.ViewLanguageConfigurationEvent),this.cursorConfig=new p.CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new C.ModelLanguageConfigurationChangedEvent(N))})),this._register(this.model.onDidChangeLanguage(N=>{this.cursorConfig=new p.CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new C.ModelLanguageChangedEvent(N))})),this._register(this.model.onDidChangeOptions(N=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{const O=this._eventDispatcher.beginEmitViewEvents();O.emitViewEvent(new c.ViewFlushedEvent),O.emitViewEvent(new c.ViewLineMappingChangedEvent),O.emitViewEvent(new c.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(O),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new p.CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new C.ModelOptionsChangedEvent(N))})),this._register(this.model.onDidChangeDecorations(N=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new c.ViewDecorationsChangedEvent(N)),this._eventDispatcher.emitOutgoingEvent(new C.ModelDecorationsChangedEvent(N))}))}setHiddenAreas(N,O){this.hiddenAreasModel.setHiddenAreas(O,N);const F=this.hiddenAreasModel.getMergedRanges();if(F===this.previousHiddenAreas)return;this.previousHiddenAreas=F;const x=this._captureStableViewport();let W=!1;try{const V=this._eventDispatcher.beginEmitViewEvents();W=this._lines.setHiddenAreas(F),W&&(V.emitViewEvent(new c.ViewFlushedEvent),V.emitViewEvent(new c.ViewLineMappingChangedEvent),V.emitViewEvent(new c.ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(V),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged());const q=x.viewportStartModelPosition?.lineNumber;q&&F.some(z=>z.startLineNumber<=q&&q<=z.endLineNumber)||x.recoverViewportStart(this.coordinatesConverter,this.viewLayout)}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),W&&this._eventDispatcher.emitOutgoingEvent(new C.HiddenAreasChangedEvent)}getVisibleRangesPlusViewportAboveBelow(){const N=this._configuration.options.get(146),O=this._configuration.options.get(67),F=Math.max(20,Math.round(N.height/O)),x=this.viewLayout.getLinesViewportData(),W=Math.max(1,x.completelyVisibleStartLineNumber-F),V=Math.min(this.getLineCount(),x.completelyVisibleEndLineNumber+F);return this._toModelVisibleRanges(new o.Range(W,this.getLineMinColumn(W),V,this.getLineMaxColumn(V)))}getVisibleRanges(){const N=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(N)}getHiddenAreas(){return this._lines.getHiddenAreas()}_toModelVisibleRanges(N){const O=this.coordinatesConverter.convertViewRangeToModelRange(N),F=this._lines.getHiddenAreas();if(F.length===0)return[O];const x=[];let W=0,V=O.startLineNumber,q=O.startColumn;const H=O.endLineNumber,z=O.endColumn;for(let U=0,j=F.length;UH||(V"u")return this._reduceRestoreStateCompatibility(N);const O=this.model.validatePosition(N.firstPosition),F=this.coordinatesConverter.convertModelPositionToViewPosition(O),x=this.viewLayout.getVerticalOffsetForLineNumber(F.lineNumber)-N.firstPositionDeltaTop;return{scrollLeft:N.scrollLeft,scrollTop:x}}_reduceRestoreStateCompatibility(N){return{scrollLeft:N.scrollLeft,scrollTop:N.scrollTopWithoutViewZones}}getTabSize(){return this.model.getOptions().tabSize}getLineCount(){return this._lines.getViewLineCount()}setViewport(N,O,F){this._viewportStart.update(this,N)}getActiveIndentGuide(N,O,F){return this._lines.getActiveIndentGuide(N,O,F)}getLinesIndentGuides(N,O){return this._lines.getViewLinesIndentGuides(N,O)}getBracketGuidesInRangeByLine(N,O,F,x){return this._lines.getViewLinesBracketGuides(N,O,F,x)}getLineContent(N){return this._lines.getViewLineContent(N)}getLineLength(N){return this._lines.getViewLineLength(N)}getLineMinColumn(N){return this._lines.getViewLineMinColumn(N)}getLineMaxColumn(N){return this._lines.getViewLineMaxColumn(N)}getLineFirstNonWhitespaceColumn(N){const O=m.firstNonWhitespaceIndex(this.getLineContent(N));return O===-1?0:O+1}getLineLastNonWhitespaceColumn(N){const O=m.lastNonWhitespaceIndex(this.getLineContent(N));return O===-1?0:O+2}getMinimapDecorationsInRange(N){return this._decorations.getMinimapDecorationsInRange(N)}getDecorationsInViewport(N){return this._decorations.getDecorationsViewportData(N).decorations}getInjectedTextAt(N){return this._lines.getInjectedTextAt(N)}getViewportViewLineRenderingData(N,O){const x=this._decorations.getDecorationsViewportData(N).inlineDecorations[O-N.startLineNumber];return this._getViewLineRenderingData(O,x)}getViewLineRenderingData(N){const O=this._decorations.getInlineDecorationsOnLine(N);return this._getViewLineRenderingData(N,O)}_getViewLineRenderingData(N,O){const F=this.model.mightContainRTL(),x=this.model.mightContainNonBasicASCII(),W=this.getTabSize(),V=this._lines.getViewLineData(N);return V.inlineDecorations&&(O=[...O,...V.inlineDecorations.map(q=>q.toInlineDecoration(N))]),new r.ViewLineRenderingData(V.minColumn,V.maxColumn,V.content,V.continuesWithWrappedLine,F,x,V.tokens,O,W,V.startVisibleColumn)}getViewLineData(N){return this._lines.getViewLineData(N)}getMinimapLinesRenderingData(N,O,F){const x=this._lines.getViewLinesData(N,O,F);return new r.MinimapLinesRenderingData(this.getTabSize(),x)}getAllOverviewRulerDecorations(N){const O=this.model.getOverviewRulerDecorations(this._editorId,(0,_.filterValidationDecorations)(this._configuration.options)),F=new L;for(const x of O){const W=x.options,V=W.overviewRuler;if(!V)continue;const q=V.position;if(q===0)continue;const H=V.getColor(N.value),z=this.coordinatesConverter.getViewLineNumberOfModelPosition(x.range.startLineNumber,x.range.startColumn),U=this.coordinatesConverter.getViewLineNumberOfModelPosition(x.range.endLineNumber,x.range.endColumn);F.accept(H,W.zIndex,z,U,q)}return F.asArray}_invalidateDecorationsColorCache(){const N=this.model.getOverviewRulerDecorations();for(const O of N)O.options.overviewRuler?.invalidateCachedColor(),O.options.minimap?.invalidateCachedColor()}getValueInRange(N,O){const F=this.coordinatesConverter.convertViewRangeToModelRange(N);return this.model.getValueInRange(F,O)}getValueLengthInRange(N,O){const F=this.coordinatesConverter.convertViewRangeToModelRange(N);return this.model.getValueLengthInRange(F,O)}modifyPosition(N,O){const F=this.coordinatesConverter.convertViewPositionToModelPosition(N),x=this.model.modifyPosition(F,O);return this.coordinatesConverter.convertModelPositionToViewPosition(x)}deduceModelPositionRelativeToViewPosition(N,O,F){const x=this.coordinatesConverter.convertViewPositionToModelPosition(N);this.model.getEOL().length===2&&(O<0?O-=F:O+=F);const V=this.model.getOffsetAt(x)+O;return this.model.getPositionAt(V)}getPlainTextToCopy(N,O,F){const x=F?`\r +`:this.model.getEOL();N=N.slice(0),N.sort(o.Range.compareRangesUsingStarts);let W=!1,V=!1;for(const H of N)H.isEmpty()?W=!0:V=!0;if(!V){if(!O)return"";const H=N.map(U=>U.startLineNumber);let z="";for(let U=0;U0&&H[U-1]===H[U]||(z+=this.model.getLineContent(H[U])+x);return z}if(W&&O){const H=[];let z=0;for(const U of N){const j=U.startLineNumber;U.isEmpty()?j!==z&&H.push(this.model.getLineContent(j)):H.push(this.model.getValueInRange(U,F?2:0)),z=j}return H.length===1?H[0]:H}const q=[];for(const H of N)H.isEmpty()||q.push(this.model.getValueInRange(H,F?2:0));return q.length===1?q[0]:q}getRichTextToCopy(N,O){const F=this.model.getLanguageId();if(F===s.PLAINTEXT_LANGUAGE_ID||N.length!==1)return null;let x=N[0];if(x.isEmpty()){if(!O)return null;const U=x.startLineNumber;x=new o.Range(U,this.model.getLineMinColumn(U),U,this.model.getLineMaxColumn(U))}const W=this._configuration.options.get(50),V=this._getColorMap(),H=/[:;\\\/<>]/.test(W.fontFamily)||W.fontFamily===_.EDITOR_FONT_DEFAULTS.fontFamily;let z;return H?z=_.EDITOR_FONT_DEFAULTS.fontFamily:(z=W.fontFamily,z=z.replace(/"/g,"'"),/[,']/.test(z)||/[+ ]/.test(z)&&(z=`'${z}'`),z=`${z}, ${_.EDITOR_FONT_DEFAULTS.fontFamily}`),{mode:F,html:`
    `+this._getHTMLToCopy(x,V)+"
    "}}_getHTMLToCopy(N,O){const F=N.startLineNumber,x=N.startColumn,W=N.endLineNumber,V=N.endColumn,q=this.getTabSize();let H="";for(let z=F;z<=W;z++){const U=this.model.tokenization.getLineTokens(z),j=U.getLineContent(),Y=z===F?x-1:0,G=z===W?V-1:j.length;j===""?H+="
    ":H+=(0,g.tokenizeLineToHTML)(j,U.inflate(),O,Y,G,q,y.isWindows)}return H}_getColorMap(){const N=i.TokenizationRegistry.getColorMap(),O=["#000000"];if(N)for(let F=1,x=N.length;Fthis._cursor.setStates(x,N,O,F))}getCursorColumnSelectData(){return this._cursor.getCursorColumnSelectData()}getCursorAutoClosedCharacters(){return this._cursor.getAutoClosedCharacters()}setCursorColumnSelectData(N){this._cursor.setCursorColumnSelectData(N)}getPrevEditOperationType(){return this._cursor.getPrevEditOperationType()}setPrevEditOperationType(N){this._cursor.setPrevEditOperationType(N)}getSelection(){return this._cursor.getSelection()}getSelections(){return this._cursor.getSelections()}getPosition(){return this._cursor.getPrimaryCursorState().modelState.position}setSelections(N,O,F=0){this._withViewEventsCollector(x=>this._cursor.setSelections(x,N,O,F))}saveCursorState(){return this._cursor.saveState()}restoreCursorState(N){this._withViewEventsCollector(O=>this._cursor.restoreState(O,N))}_executeCursorEdit(N){if(this._cursor.context.cursorConfig.readOnly){this._eventDispatcher.emitOutgoingEvent(new C.ReadOnlyEditAttemptEvent);return}this._withViewEventsCollector(N)}executeEdits(N,O,F){this._executeCursorEdit(x=>this._cursor.executeEdits(x,N,O,F))}startComposition(){this._executeCursorEdit(N=>this._cursor.startComposition(N))}endComposition(N){this._executeCursorEdit(O=>this._cursor.endComposition(O,N))}type(N,O){this._executeCursorEdit(F=>this._cursor.type(F,N,O))}compositionType(N,O,F,x,W){this._executeCursorEdit(V=>this._cursor.compositionType(V,N,O,F,x,W))}paste(N,O,F,x){this._executeCursorEdit(W=>this._cursor.paste(W,N,O,F,x))}cut(N){this._executeCursorEdit(O=>this._cursor.cut(O,N))}executeCommand(N,O){this._executeCursorEdit(F=>this._cursor.executeCommand(F,N,O))}executeCommands(N,O){this._executeCursorEdit(F=>this._cursor.executeCommands(F,N,O))}revealAllCursors(N,O,F=!1){this._withViewEventsCollector(x=>this._cursor.revealAll(x,N,F,0,O,0))}revealPrimaryCursor(N,O,F=!1){this._withViewEventsCollector(x=>this._cursor.revealPrimary(x,N,F,0,O,0))}revealTopMostCursor(N){const O=this._cursor.getTopMostViewPosition(),F=new o.Range(O.lineNumber,O.column,O.lineNumber,O.column);this._withViewEventsCollector(x=>x.emitViewEvent(new c.ViewRevealRangeRequestEvent(N,!1,F,null,0,!0,0)))}revealBottomMostCursor(N){const O=this._cursor.getBottomMostViewPosition(),F=new o.Range(O.lineNumber,O.column,O.lineNumber,O.column);this._withViewEventsCollector(x=>x.emitViewEvent(new c.ViewRevealRangeRequestEvent(N,!1,F,null,0,!0,0)))}revealRange(N,O,F,x,W){this._withViewEventsCollector(V=>V.emitViewEvent(new c.ViewRevealRangeRequestEvent(N,!1,F,null,x,O,W)))}changeWhitespace(N){this.viewLayout.changeWhitespace(N)&&(this._eventDispatcher.emitSingleViewEvent(new c.ViewZonesChangedEvent),this._eventDispatcher.emitOutgoingEvent(new C.ViewZonesChangedEvent))}_withViewEventsCollector(N){return this._transactionalTarget.batchChanges(()=>{try{const O=this._eventDispatcher.beginEmitViewEvents();return N(O)}finally{this._eventDispatcher.endEmitViewEvents()}})}batchEvents(N){this._withViewEventsCollector(()=>{N()})}normalizePosition(N,O){return this._lines.normalizePosition(N,O)}getLineIndentColumn(N){return this._lines.getLineIndentColumn(N)}}e.ViewModel=w;class S{static create(N){const O=N._setTrackedRange(null,new o.Range(1,1,1,1),1);return new S(N,1,!1,O,0)}get viewLineNumber(){return this._viewLineNumber}get isValid(){return this._isValid}get modelTrackedRange(){return this._modelTrackedRange}get startLineDelta(){return this._startLineDelta}constructor(N,O,F,x,W){this._model=N,this._viewLineNumber=O,this._isValid=F,this._modelTrackedRange=x,this._startLineDelta=W}dispose(){this._model._setTrackedRange(this._modelTrackedRange,null,1)}update(N,O){const F=N.coordinatesConverter.convertViewPositionToModelPosition(new n.Position(O,N.getLineMinColumn(O))),x=N.model._setTrackedRange(this._modelTrackedRange,new o.Range(F.lineNumber,F.column,F.lineNumber,F.column),1),W=N.viewLayout.getVerticalOffsetForLineNumber(O),V=N.viewLayout.getCurrentScrollTop();this._viewLineNumber=O,this._isValid=!0,this._modelTrackedRange=x,this._startLineDelta=V-W}invalidate(){this._isValid=!1}}class L{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(N,O,F,x,W){const V=this._asMap[N];if(V){const q=V.data,H=q[q.length-3],z=q[q.length-1];if(H===W&&z+1>=F){x>z&&(q[q.length-1]=x);return}q.push(W,F,x)}else{const q=new r.OverviewRulerDecorationsGroup(N,O,[W,F,x]);this._asMap[N]=q,this.asArray.push(q)}}}class D{constructor(){this.hiddenAreas=new Map,this.shouldRecompute=!1,this.ranges=[]}setHiddenAreas(N,O){const F=this.hiddenAreas.get(N);F&&M(F,O)||(this.hiddenAreas.set(N,O),this.shouldRecompute=!0)}getMergedRanges(){if(!this.shouldRecompute)return this.ranges;this.shouldRecompute=!1;const N=Array.from(this.hiddenAreas.values()).reduce((O,F)=>T(O,F),[]);return M(this.ranges,N)?this.ranges:(this.ranges=N,this.ranges)}}function T(P,N){const O=[];let F=0,x=0;for(;F{this._onDidChangeConfiguration.fire(Ne);const Ke=this._configuration.options;if(Ne.hasChanged(146)){const ze=Ke.get(146);this._onDidLayoutChange.fire(ze)}})),this._contextKeyService=this._register(re.createScoped(this._domElement)),this._notificationService=me,this._codeEditorService=Z,this._commandService=te,this._themeService=le,this._register(new K(this,this._contextKeyService)),this._register(new R(this,this._contextKeyService,Le)),this._instantiationService=this._register(Q.createChild(new F.ServiceCollection([N.IContextKeyService,this._contextKeyService]))),this._modelData=null,this._focusTracker=new J(X,this._overflowWidgetsDomNode),this._register(this._focusTracker.onChange(()=>{this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())})),this._contentWidgets={},this._overlayWidgets={},this._glyphMarginWidgets={};let Me;Array.isArray($.contributions)?Me=$.contributions:Me=p.EditorExtensionsRegistry.getEditorContributions(),this._contributions.initialize(this,Me,this._instantiationService);for(const Ne of p.EditorExtensionsRegistry.getEditorActions()){if(this._actions.has(Ne.id)){(0,k.onUnexpectedError)(new Error(`Cannot have two actions with the same id ${Ne.id}`));continue}const Ke=new f.InternalEditorAction(Ne.id,Ne.label,Ne.alias,Ne.metadata,Ne.precondition??void 0,ze=>this._instantiationService.invokeFunction(Ge=>Promise.resolve(Ne.runEditorCommand(Ge,this,ze))),this._contextKeyService);this._actions.set(Ke.id,Ke)}const Ae=()=>!this._configuration.options.get(92)&&this._configuration.options.get(36).enabled;this._register(new d.DragAndDropObserver(this._domElement,{onDragOver:Ne=>{if(!Ae())return;const Ke=this.getTargetAtClientPoint(Ne.clientX,Ne.clientY);Ke?.position&&this.showDropIndicatorAt(Ke.position)},onDrop:async Ne=>{if(!Ae()||(this.removeDropIndicator(),!Ne.dataTransfer))return;const Ke=this.getTargetAtClientPoint(Ne.clientX,Ne.clientY);Ke?.position&&this._onDropIntoEditor.fire({position:Ke.position,event:Ne})},onDragLeave:()=>{this.removeDropIndicator()},onDragEnd:()=>{this.removeDropIndicator()}})),this._codeEditorService.addCodeEditor(this)}writeScreenReaderContent(X){this._modelData?.view.writeScreenReaderContent(X)}_createConfiguration(X,B,$,Q){return new _.EditorConfiguration(X,B,$,this._domElement,Q)}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return h.EditorType.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose(),this._actions.clear(),this._contentWidgets={},this._overlayWidgets={},this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),super.dispose()}invokeWithinContext(X){return this._instantiationService.invokeFunction(X)}updateOptions(X){this._configuration.updateOptions(X||{})}getOptions(){return this._configuration.options}getOption(X){return this._configuration.options.get(X)}getRawOptions(){return this._configuration.getRawOptions()}getOverflowWidgetsDomNode(){return this._overflowWidgetsDomNode}getConfiguredWordAtPosition(X){return this._modelData?C.WordOperations.getWordAtPosition(this._modelData.model,this._configuration.options.get(132),this._configuration.options.get(131),X):null}getValue(X=null){if(!this._modelData)return"";const B=!!(X&&X.preserveBOM);let $=0;return X&&X.lineEnding&&X.lineEnding===` +`?$=1:X&&X.lineEnding&&X.lineEnding===`\r +`&&($=2),this._modelData.model.getValue($,B)}setValue(X){try{if(this._beginUpdate(),!this._modelData)return;this._modelData.model.setValue(X)}finally{this._endUpdate()}}getModel(){return this._modelData?this._modelData.model:null}setModel(X=null){try{this._beginUpdate();const B=X;if(this._modelData===null&&B===null||this._modelData&&this._modelData.model===B)return;const $={oldModelUrl:this._modelData?.model.uri||null,newModelUrl:B?.uri||null};this._onWillChangeModel.fire($);const Q=this.hasTextFocus(),Z=this._detachModel();this._attachModel(B),Q&&this.hasModel()&&this.focus(),this._removeDecorationTypes(),this._onDidChangeModel.fire($),this._postDetachModelCleanup(Z),this._contributionsDisposable=this._contributions.onAfterModelAttached()}finally{this._endUpdate()}}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(const X in this._decorationTypeSubtypes){const B=this._decorationTypeSubtypes[X];for(const $ in B)this._removeDecorationType(X+"-"+$)}this._decorationTypeSubtypes={}}}getVisibleRanges(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]}getVisibleRangesPlusViewportAboveBelow(){return this._modelData?this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow():[]}getWhitespaces(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]}static _getVerticalOffsetAfterPosition(X,B,$,Q){const Z=X.model.validatePosition({lineNumber:B,column:$}),te=X.viewModel.coordinatesConverter.convertModelPositionToViewPosition(Z);return X.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(te.lineNumber,Q)}getTopForLineNumber(X,B=!1){return this._modelData?H._getVerticalOffsetForPosition(this._modelData,X,1,B):-1}getTopForPosition(X,B){return this._modelData?H._getVerticalOffsetForPosition(this._modelData,X,B,!1):-1}static _getVerticalOffsetForPosition(X,B,$,Q=!1){const Z=X.model.validatePosition({lineNumber:B,column:$}),te=X.viewModel.coordinatesConverter.convertModelPositionToViewPosition(Z);return X.viewModel.viewLayout.getVerticalOffsetForLineNumber(te.lineNumber,Q)}getBottomForLineNumber(X,B=!1){if(!this._modelData)return-1;const $=this._modelData.model.getLineMaxColumn(X);return H._getVerticalOffsetAfterPosition(this._modelData,X,$,B)}setHiddenAreas(X,B){this._modelData?.viewModel.setHiddenAreas(X.map($=>r.Range.lift($)),B)}getVisibleColumnFromPosition(X){if(!this._modelData)return X.column;const B=this._modelData.model.validatePosition(X),$=this._modelData.model.getOptions().tabSize;return c.CursorColumns.visibleColumnFromColumn(this._modelData.model.getLineContent(B.lineNumber),B.column,$)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(X,B="api"){if(this._modelData){if(!a.Position.isIPosition(X))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(B,[{selectionStartLineNumber:X.lineNumber,selectionStartColumn:X.column,positionLineNumber:X.lineNumber,positionColumn:X.column}])}}_sendRevealRange(X,B,$,Q){if(!this._modelData)return;if(!r.Range.isIRange(X))throw new Error("Invalid arguments");const Z=this._modelData.model.validateRange(X),te=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(Z);this._modelData.viewModel.revealRange("api",$,te,B,Q)}revealLine(X,B=0){this._revealLine(X,0,B)}revealLineInCenter(X,B=0){this._revealLine(X,1,B)}revealLineInCenterIfOutsideViewport(X,B=0){this._revealLine(X,2,B)}revealLineNearTop(X,B=0){this._revealLine(X,5,B)}_revealLine(X,B,$){if(typeof X!="number")throw new Error("Invalid arguments");this._sendRevealRange(new r.Range(X,1,X,1),B,!1,$)}revealPosition(X,B=0){this._revealPosition(X,0,!0,B)}revealPositionInCenter(X,B=0){this._revealPosition(X,1,!0,B)}revealPositionInCenterIfOutsideViewport(X,B=0){this._revealPosition(X,2,!0,B)}revealPositionNearTop(X,B=0){this._revealPosition(X,5,!0,B)}_revealPosition(X,B,$,Q){if(!a.Position.isIPosition(X))throw new Error("Invalid arguments");this._sendRevealRange(new r.Range(X.lineNumber,X.column,X.lineNumber,X.column),B,$,Q)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(X,B="api"){const $=u.Selection.isISelection(X),Q=r.Range.isIRange(X);if(!$&&!Q)throw new Error("Invalid arguments");if($)this._setSelectionImpl(X,B);else if(Q){const Z={selectionStartLineNumber:X.startLineNumber,selectionStartColumn:X.startColumn,positionLineNumber:X.endLineNumber,positionColumn:X.endColumn};this._setSelectionImpl(Z,B)}}_setSelectionImpl(X,B){if(!this._modelData)return;const $=new u.Selection(X.selectionStartLineNumber,X.selectionStartColumn,X.positionLineNumber,X.positionColumn);this._modelData.viewModel.setSelections(B,[$])}revealLines(X,B,$=0){this._revealLines(X,B,0,$)}revealLinesInCenter(X,B,$=0){this._revealLines(X,B,1,$)}revealLinesInCenterIfOutsideViewport(X,B,$=0){this._revealLines(X,B,2,$)}revealLinesNearTop(X,B,$=0){this._revealLines(X,B,5,$)}_revealLines(X,B,$,Q){if(typeof X!="number"||typeof B!="number")throw new Error("Invalid arguments");this._sendRevealRange(new r.Range(X,1,B,1),$,!1,Q)}revealRange(X,B=0,$=!1,Q=!0){this._revealRange(X,$?1:0,Q,B)}revealRangeInCenter(X,B=0){this._revealRange(X,1,!0,B)}revealRangeInCenterIfOutsideViewport(X,B=0){this._revealRange(X,2,!0,B)}revealRangeNearTop(X,B=0){this._revealRange(X,5,!0,B)}revealRangeNearTopIfOutsideViewport(X,B=0){this._revealRange(X,6,!0,B)}revealRangeAtTop(X,B=0){this._revealRange(X,3,!0,B)}_revealRange(X,B,$,Q){if(!r.Range.isIRange(X))throw new Error("Invalid arguments");this._sendRevealRange(r.Range.lift(X),B,$,Q)}setSelections(X,B="api",$=0){if(this._modelData){if(!X||X.length===0)throw new Error("Invalid arguments");for(let Q=0,Z=X.length;Q0&&this._modelData.viewModel.restoreCursorState($):this._modelData.viewModel.restoreCursorState([$]),this._contributions.restoreViewState(B.contributionsState||{});const Q=this._modelData.viewModel.reduceRestoreState(B.viewState);this._modelData.view.restoreState(Q)}}handleInitialized(){this._getViewModel()?.visibleLinesStabilized()}getContribution(X){return this._contributions.get(X)}getActions(){return Array.from(this._actions.values())}getSupportedActions(){let X=this.getActions();return X=X.filter(B=>B.isSupported()),X}getAction(X){return this._actions.get(X)||null}trigger(X,B,$){$=$||{};try{switch(this._beginUpdate(),B){case"compositionStart":this._startComposition();return;case"compositionEnd":this._endComposition(X);return;case"type":{const Z=$;this._type(X,Z.text||"");return}case"replacePreviousChar":{const Z=$;this._compositionType(X,Z.text||"",Z.replaceCharCnt||0,0,0);return}case"compositionType":{const Z=$;this._compositionType(X,Z.text||"",Z.replacePrevCharCnt||0,Z.replaceNextCharCnt||0,Z.positionDelta||0);return}case"paste":{const Z=$;this._paste(X,Z.text||"",Z.pasteOnNewLine||!1,Z.multicursorText||null,Z.mode||null,Z.clipboardEvent);return}case"cut":this._cut(X);return}const Q=this.getAction(B);if(Q){Promise.resolve(Q.run($)).then(void 0,k.onUnexpectedError);return}if(!this._modelData||this._triggerEditorCommand(X,B,$))return;this._triggerCommand(B,$)}finally{this._endUpdate()}}_triggerCommand(X,B){this._commandService.executeCommand(X,B)}_startComposition(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(X){this._modelData&&(this._modelData.viewModel.endComposition(X),this._onDidCompositionEnd.fire())}_type(X,B){!this._modelData||B.length===0||(X==="keyboard"&&this._onWillType.fire(B),this._modelData.viewModel.type(B,X),X==="keyboard"&&this._onDidType.fire(B))}_compositionType(X,B,$,Q,Z){this._modelData&&this._modelData.viewModel.compositionType(B,$,Q,Z,X)}_paste(X,B,$,Q,Z,te){if(!this._modelData)return;const re=this._modelData.viewModel,le=re.getSelection().getStartPosition();re.paste(B,$,Q,X);const me=re.getSelection().getStartPosition();X==="keyboard"&&this._onDidPaste.fire({clipboardEvent:te,range:new r.Range(le.lineNumber,le.column,me.lineNumber,me.column),languageId:Z})}_cut(X){this._modelData&&this._modelData.viewModel.cut(X)}_triggerEditorCommand(X,B,$){const Q=p.EditorExtensionsRegistry.getEditorCommand(B);return Q?($=$||{},$.source=X,this._instantiationService.invokeFunction(Z=>{Promise.resolve(Q.runEditorCommand(Z,this,$)).then(void 0,k.onUnexpectedError)}),!0):!1}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!this._modelData||this._configuration.options.get(92)?!1:(this._modelData.model.pushStackElement(),!0)}popUndoStop(){return!this._modelData||this._configuration.options.get(92)?!1:(this._modelData.model.popStackElement(),!0)}executeEdits(X,B,$){if(!this._modelData||this._configuration.options.get(92))return!1;let Q;return $?Array.isArray($)?Q=()=>$:Q=$:Q=()=>null,this._modelData.viewModel.executeEdits(X,B,Q),!0}executeCommand(X,B){this._modelData&&this._modelData.viewModel.executeCommand(B,X)}executeCommands(X,B){this._modelData&&this._modelData.viewModel.executeCommands(B,X)}createDecorationsCollection(X){return new ie(this,X)}changeDecorations(X){return this._modelData?this._modelData.model.changeDecorations(X,this._id):null}getLineDecorations(X){return this._modelData?this._modelData.model.getLineDecorations(X,this._id,(0,g.filterValidationDecorations)(this._configuration.options)):null}getDecorationsInRange(X){return this._modelData?this._modelData.model.getDecorationsInRange(X,this._id,(0,g.filterValidationDecorations)(this._configuration.options)):null}deltaDecorations(X,B){return this._modelData?X.length===0&&B.length===0?X:this._modelData.model.deltaDecorations(X,B,this._id):[]}removeDecorations(X){!this._modelData||X.length===0||this._modelData.model.changeDecorations(B=>{B.deltaDecorations(X,[])})}removeDecorationsByType(X){const B=this._decorationTypeKeysToIds[X];B&&this.changeDecorations($=>$.deltaDecorations(B,[])),this._decorationTypeKeysToIds.hasOwnProperty(X)&&delete this._decorationTypeKeysToIds[X],this._decorationTypeSubtypes.hasOwnProperty(X)&&delete this._decorationTypeSubtypes[X]}getLayoutInfo(){return this._configuration.options.get(146)}createOverviewRuler(X){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.createOverviewRuler(X)}getContainerDomNode(){return this._domElement}getDomNode(){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.domNode.domNode}delegateVerticalScrollbarPointerDown(X){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateVerticalScrollbarPointerDown(X)}delegateScrollFromMouseWheelEvent(X){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateScrollFromMouseWheelEvent(X)}layout(X,B=!1){this._configuration.observeContainer(X),B||this.render()}focus(){!this._modelData||!this._modelData.hasRealView||this._modelData.view.focus()}hasTextFocus(){return!this._modelData||!this._modelData.hasRealView?!1:this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(X){const B={widget:X,position:X.getPosition()};this._contentWidgets.hasOwnProperty(X.getId())&&console.warn("Overwriting a content widget with the same id:"+X.getId()),this._contentWidgets[X.getId()]=B,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(B)}layoutContentWidget(X){const B=X.getId();if(this._contentWidgets.hasOwnProperty(B)){const $=this._contentWidgets[B];$.position=X.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget($)}}removeContentWidget(X){const B=X.getId();if(this._contentWidgets.hasOwnProperty(B)){const $=this._contentWidgets[B];delete this._contentWidgets[B],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget($)}}addOverlayWidget(X){const B={widget:X,position:X.getPosition()};this._overlayWidgets.hasOwnProperty(X.getId())&&console.warn("Overwriting an overlay widget with the same id."),this._overlayWidgets[X.getId()]=B,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(B)}layoutOverlayWidget(X){const B=X.getId();if(this._overlayWidgets.hasOwnProperty(B)){const $=this._overlayWidgets[B];$.position=X.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget($)}}removeOverlayWidget(X){const B=X.getId();if(this._overlayWidgets.hasOwnProperty(B)){const $=this._overlayWidgets[B];delete this._overlayWidgets[B],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget($)}}addGlyphMarginWidget(X){const B={widget:X,position:X.getPosition()};this._glyphMarginWidgets.hasOwnProperty(X.getId())&&console.warn("Overwriting a glyph margin widget with the same id."),this._glyphMarginWidgets[X.getId()]=B,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addGlyphMarginWidget(B)}layoutGlyphMarginWidget(X){const B=X.getId();if(this._glyphMarginWidgets.hasOwnProperty(B)){const $=this._glyphMarginWidgets[B];$.position=X.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutGlyphMarginWidget($)}}removeGlyphMarginWidget(X){const B=X.getId();if(this._glyphMarginWidgets.hasOwnProperty(B)){const $=this._glyphMarginWidgets[B];delete this._glyphMarginWidgets[B],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeGlyphMarginWidget($)}}changeViewZones(X){!this._modelData||!this._modelData.hasRealView||this._modelData.view.change(X)}getTargetAtClientPoint(X,B){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.getTargetAtClientPoint(X,B)}getScrolledVisiblePosition(X){if(!this._modelData||!this._modelData.hasRealView)return null;const B=this._modelData.model.validatePosition(X),$=this._configuration.options,Q=$.get(146),Z=H._getVerticalOffsetForPosition(this._modelData,B.lineNumber,B.column)-this.getScrollTop(),te=this._modelData.view.getOffsetForColumn(B.lineNumber,B.column)+Q.glyphMarginWidth+Q.lineNumbersWidth+Q.decorationsWidth-this.getScrollLeft();return{top:Z,left:te,height:$.get(67)}}getOffsetForColumn(X,B){return!this._modelData||!this._modelData.hasRealView?-1:this._modelData.view.getOffsetForColumn(X,B)}render(X=!1){!this._modelData||!this._modelData.hasRealView||this._modelData.viewModel.batchEvents(()=>{this._modelData.view.render(!0,X)})}setAriaOptions(X){!this._modelData||!this._modelData.hasRealView||this._modelData.view.setAriaOptions(X)}applyFontInfo(X){(0,m.applyFontInfo)(X,this._configuration.options.get(50))}setBanner(X,B){this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._bannerDomNode.remove(),this._bannerDomNode=X,this._configuration.setReservedHeight(X?B:0),this._bannerDomNode&&this._domElement.prepend(this._bannerDomNode)}_attachModel(X){if(!X){this._modelData=null;return}const B=[];this._domElement.setAttribute("data-mode-id",X.getLanguageId()),this._configuration.setIsDominatedByLongLines(X.isDominatedByLongLines()),this._configuration.setModelLineCount(X.getLineCount());const $=X.onBeforeAttached(),Q=new T.ViewModel(this._id,this._configuration,X,t.DOMLineBreaksComputerFactory.create(d.getWindow(this._domElement)),D.MonospaceLineBreaksComputerFactory.create(this._configuration.options),re=>d.scheduleAtNextAnimationFrame(d.getWindow(this._domElement),re),this.languageConfigurationService,this._themeService,$,{batchChanges:re=>{try{return this._beginUpdate(),re()}finally{this._endUpdate()}}});B.push(X.onWillDispose(()=>this.setModel(null))),B.push(Q.onEvent(re=>{switch(re.kind){case 0:this._onDidContentSizeChange.fire(re);break;case 1:this._editorTextFocus.setValue(re.hasFocus);break;case 2:this._onDidScrollChange.fire(re);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidChangeHiddenAreas.fire();break;case 5:this._onDidAttemptReadOnlyEdit.fire();break;case 6:{if(re.reachedMaxCursorCount){const ye=this.getOption(80),Le=M.localize(70,"The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.",ye);this._notificationService.prompt(x.Severity.Warning,Le,[{label:"Find and Replace",run:()=>{this._commandService.executeCommand("editor.action.startFindReplaceAction")}},{label:M.localize(71,"Increase Multi Cursor Limit"),run:()=>{this._commandService.executeCommand("workbench.action.openSettings2",{query:"editor.multiCursorLimit"})}}])}const le=[];for(let ye=0,Le=re.selections.length;ye{this._paste("keyboard",Z,te,re,le)},type:Z=>{this._type("keyboard",Z)},compositionType:(Z,te,re,le)=>{this._compositionType("keyboard",Z,te,re,le)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:B={paste:(Z,te,re,le)=>{const me={text:Z,pasteOnNewLine:te,multicursorText:re,mode:le};this._commandService.executeCommand("paste",me)},type:Z=>{const te={text:Z};this._commandService.executeCommand("type",te)},compositionType:(Z,te,re,le)=>{if(re||le){const me={text:Z,replacePrevCharCnt:te,replaceNextCharCnt:re,positionDelta:le};this._commandService.executeCommand("compositionType",me)}else{const me={text:Z,replaceCharCnt:te};this._commandService.executeCommand("replacePreviousChar",me)}},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})},endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};const $=new i.ViewUserInputEvents(X.coordinatesConverter);return $.onKeyDown=Z=>this._onKeyDown.fire(Z),$.onKeyUp=Z=>this._onKeyUp.fire(Z),$.onContextMenu=Z=>this._onContextMenu.fire(Z),$.onMouseMove=Z=>this._onMouseMove.fire(Z),$.onMouseLeave=Z=>this._onMouseLeave.fire(Z),$.onMouseDown=Z=>this._onMouseDown.fire(Z),$.onMouseUp=Z=>this._onMouseUp.fire(Z),$.onMouseDrag=Z=>this._onMouseDrag.fire(Z),$.onMouseDrop=Z=>this._onMouseDrop.fire(Z),$.onMouseDropCanceled=Z=>this._onMouseDropCanceled.fire(Z),$.onMouseWheel=Z=>this._onMouseWheel.fire(Z),[new o.View(B,this._configuration,this._themeService.getColorTheme(),X,$,this._overflowWidgetsDomNode,this._instantiationService),!0]}_postDetachModelCleanup(X){X?.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){if(this._contributionsDisposable?.dispose(),this._contributionsDisposable=void 0,!this._modelData)return null;const X=this._modelData.model,B=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute("data-mode-id"),B&&this._domElement.contains(B)&&B.remove(),this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._bannerDomNode.remove(),X}_removeDecorationType(X){this._codeEditorService.removeDecorationType(X)}hasModel(){return this._modelData!==null}showDropIndicatorAt(X){const B=[{range:new r.Range(X.lineNumber,X.column,X.lineNumber,X.column),options:H.dropIntoEditorDecorationOptions}];this._dropIntoEditorDecorations.set(B),this.revealPosition(X,1)}removeDropIndicator(){this._dropIntoEditorDecorations.clear()}setContextValue(X,B){this._contextKeyService.createKey(X,B)}_beginUpdate(){this._updateCounter++,this._updateCounter===1&&this._onBeginUpdate.fire()}_endUpdate(){this._updateCounter--,this._updateCounter===0&&this._onEndUpdate.fire()}};e.CodeEditorWidget=z,e.CodeEditorWidget=z=H=ke([ce(3,O.IInstantiationService),ce(4,n.ICodeEditorService),ce(5,P.ICommandService),ce(6,N.IContextKeyService),ce(7,V.IThemeService),ce(8,x.INotificationService),ce(9,A.IAccessibilityService),ce(10,w.ILanguageConfigurationService),ce(11,L.ILanguageFeaturesService)],z);let U=0;class j{constructor(X,B,$,Q,Z,te){this.model=X,this.viewModel=B,this.view=$,this.hasRealView=Q,this.listenersToRemove=Z,this.attachedView=te}dispose(){(0,E.dispose)(this.listenersToRemove),this.model.onBeforeDetached(this.attachedView),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}}class Y extends E.Disposable{constructor(X){super(),this._emitterOptions=X,this._onDidChangeToTrue=this._register(new I.Emitter(this._emitterOptions)),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new I.Emitter(this._emitterOptions)),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(X){const B=X?2:1;this._value!==B&&(this._value=B,this._value===2?this._onDidChangeToTrue.fire():this._value===1&&this._onDidChangeToFalse.fire())}}e.BooleanEventEmitter=Y;class G extends I.Emitter{constructor(X,B){super({deliveryQueue:B}),this._contributions=X}fire(X){this._contributions.onBeforeInteractionEvent(),super.fire(X)}}class K extends E.Disposable{constructor(X,B){super(),this._editor=X,B.createKey("editorId",X.getId()),this._editorSimpleInput=v.EditorContextKeys.editorSimpleInput.bindTo(B),this._editorFocus=v.EditorContextKeys.focus.bindTo(B),this._textInputFocus=v.EditorContextKeys.textInputFocus.bindTo(B),this._editorTextFocus=v.EditorContextKeys.editorTextFocus.bindTo(B),this._tabMovesFocus=v.EditorContextKeys.tabMovesFocus.bindTo(B),this._editorReadonly=v.EditorContextKeys.readOnly.bindTo(B),this._inDiffEditor=v.EditorContextKeys.inDiffEditor.bindTo(B),this._editorColumnSelection=v.EditorContextKeys.columnSelection.bindTo(B),this._hasMultipleSelections=v.EditorContextKeys.hasMultipleSelections.bindTo(B),this._hasNonEmptySelection=v.EditorContextKeys.hasNonEmptySelection.bindTo(B),this._canUndo=v.EditorContextKeys.canUndo.bindTo(B),this._canRedo=v.EditorContextKeys.canRedo.bindTo(B),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromConfig())),this._register(this._editor.onDidChangeCursorSelection(()=>this._updateFromSelection())),this._register(this._editor.onDidFocusEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidFocusEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidChangeModel(()=>this._updateFromModel())),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromModel())),this._register(b.TabFocus.onDidChangeTabFocus($=>this._tabMovesFocus.set($))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){const X=this._editor.getOptions();this._tabMovesFocus.set(b.TabFocus.getTabFocusMode()),this._editorReadonly.set(X.get(92)),this._inDiffEditor.set(X.get(61)),this._editorColumnSelection.set(X.get(22))}_updateFromSelection(){const X=this._editor.getSelections();X?(this._hasMultipleSelections.set(X.length>1),this._hasNonEmptySelection.set(X.some(B=>!B.isEmpty()))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){const X=this._editor.getModel();this._canUndo.set(!!(X&&X.canUndo())),this._canRedo.set(!!(X&&X.canRedo()))}}class R extends E.Disposable{constructor(X,B,$){super(),this._editor=X,this._contextKeyService=B,this._languageFeaturesService=$,this._langId=v.EditorContextKeys.languageId.bindTo(B),this._hasCompletionItemProvider=v.EditorContextKeys.hasCompletionItemProvider.bindTo(B),this._hasCodeActionsProvider=v.EditorContextKeys.hasCodeActionsProvider.bindTo(B),this._hasCodeLensProvider=v.EditorContextKeys.hasCodeLensProvider.bindTo(B),this._hasDefinitionProvider=v.EditorContextKeys.hasDefinitionProvider.bindTo(B),this._hasDeclarationProvider=v.EditorContextKeys.hasDeclarationProvider.bindTo(B),this._hasImplementationProvider=v.EditorContextKeys.hasImplementationProvider.bindTo(B),this._hasTypeDefinitionProvider=v.EditorContextKeys.hasTypeDefinitionProvider.bindTo(B),this._hasHoverProvider=v.EditorContextKeys.hasHoverProvider.bindTo(B),this._hasDocumentHighlightProvider=v.EditorContextKeys.hasDocumentHighlightProvider.bindTo(B),this._hasDocumentSymbolProvider=v.EditorContextKeys.hasDocumentSymbolProvider.bindTo(B),this._hasReferenceProvider=v.EditorContextKeys.hasReferenceProvider.bindTo(B),this._hasRenameProvider=v.EditorContextKeys.hasRenameProvider.bindTo(B),this._hasSignatureHelpProvider=v.EditorContextKeys.hasSignatureHelpProvider.bindTo(B),this._hasInlayHintsProvider=v.EditorContextKeys.hasInlayHintsProvider.bindTo(B),this._hasDocumentFormattingProvider=v.EditorContextKeys.hasDocumentFormattingProvider.bindTo(B),this._hasDocumentSelectionFormattingProvider=v.EditorContextKeys.hasDocumentSelectionFormattingProvider.bindTo(B),this._hasMultipleDocumentFormattingProvider=v.EditorContextKeys.hasMultipleDocumentFormattingProvider.bindTo(B),this._hasMultipleDocumentSelectionFormattingProvider=v.EditorContextKeys.hasMultipleDocumentSelectionFormattingProvider.bindTo(B),this._isInEmbeddedEditor=v.EditorContextKeys.isInEmbeddedEditor.bindTo(B);const Q=()=>this._update();this._register(X.onDidChangeModel(Q)),this._register(X.onDidChangeModelLanguage(Q)),this._register($.completionProvider.onDidChange(Q)),this._register($.codeActionProvider.onDidChange(Q)),this._register($.codeLensProvider.onDidChange(Q)),this._register($.definitionProvider.onDidChange(Q)),this._register($.declarationProvider.onDidChange(Q)),this._register($.implementationProvider.onDidChange(Q)),this._register($.typeDefinitionProvider.onDidChange(Q)),this._register($.hoverProvider.onDidChange(Q)),this._register($.documentHighlightProvider.onDidChange(Q)),this._register($.documentSymbolProvider.onDidChange(Q)),this._register($.referenceProvider.onDidChange(Q)),this._register($.renameProvider.onDidChange(Q)),this._register($.documentFormattingEditProvider.onDidChange(Q)),this._register($.documentRangeFormattingEditProvider.onDidChange(Q)),this._register($.signatureHelpProvider.onDidChange(Q)),this._register($.inlayHintsProvider.onDidChange(Q)),Q()}dispose(){super.dispose()}reset(){this._contextKeyService.bufferChangeEvents(()=>{this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasDeclarationProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInEmbeddedEditor.reset()})}_update(){const X=this._editor.getModel();if(!X){this.reset();return}this._contextKeyService.bufferChangeEvents(()=>{this._langId.set(X.getLanguageId()),this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(X)),this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(X)),this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(X)),this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(X)),this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(X)),this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(X)),this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(X)),this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(X)),this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(X)),this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(X)),this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(X)),this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(X)),this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(X)),this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(X)),this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(X)||this._languageFeaturesService.documentRangeFormattingEditProvider.has(X)),this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(X)),this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(X).length+this._languageFeaturesService.documentRangeFormattingEditProvider.all(X).length>1),this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(X).length>1),this._isInEmbeddedEditor.set(X.uri.scheme===y.Schemas.walkThroughSnippet||X.uri.scheme===y.Schemas.vscodeChatCodeBlock)})}}e.EditorModeContext=R;class J extends E.Disposable{constructor(X,B){super(),this._onChange=this._register(new I.Emitter),this.onChange=this._onChange.event,this._hadFocus=void 0,this._hasDomElementFocus=!1,this._domFocusTracker=this._register(d.trackFocus(X)),this._overflowWidgetsDomNodeHasFocus=!1,this._register(this._domFocusTracker.onDidFocus(()=>{this._hasDomElementFocus=!0,this._update()})),this._register(this._domFocusTracker.onDidBlur(()=>{this._hasDomElementFocus=!1,this._update()})),B&&(this._overflowWidgetsDomNode=this._register(d.trackFocus(B)),this._register(this._overflowWidgetsDomNode.onDidFocus(()=>{this._overflowWidgetsDomNodeHasFocus=!0,this._update()})),this._register(this._overflowWidgetsDomNode.onDidBlur(()=>{this._overflowWidgetsDomNodeHasFocus=!1,this._update()})))}_update(){const X=this._hasDomElementFocus||this._overflowWidgetsDomNodeHasFocus;this._hadFocus!==X&&(this._hadFocus=X,this._onChange.fire(void 0))}hasFocus(){return this._hadFocus??!1}}class ie{get length(){return this._decorationIds.length}constructor(X,B){this._editor=X,this._decorationIds=[],this._isChangingDecorations=!1,Array.isArray(B)&&B.length>0&&this.set(B)}onDidChange(X,B,$){return this._editor.onDidChangeModelDecorations(Q=>{this._isChangingDecorations||X.call(B,Q)},$)}getRange(X){return!this._editor.hasModel()||X>=this._decorationIds.length?null:this._editor.getModel().getDecorationRange(this._decorationIds[X])}getRanges(){if(!this._editor.hasModel())return[];const X=this._editor.getModel(),B=[];for(const $ of this._decorationIds){const Q=X.getDecorationRange($);Q&&B.push(Q)}return B}has(X){return this._decorationIds.includes(X.id)}clear(){this._decorationIds.length!==0&&this.set([])}set(X){try{this._isChangingDecorations=!0,this._editor.changeDecorations(B=>{this._decorationIds=B.deltaDecorations(this._decorationIds,X)})}finally{this._isChangingDecorations=!1}return this._decorationIds}append(X){let B=[];try{this._isChangingDecorations=!0,this._editor.changeDecorations($=>{B=$.deltaDecorations([],X),this._decorationIds=this._decorationIds.concat(B)})}finally{this._isChangingDecorations=!1}return B}}const ue=encodeURIComponent("");function pe(ge){return ue+encodeURIComponent(ge.toString())+he}const ae=encodeURIComponent('');function de(ge){return ae+encodeURIComponent(ge.toString())+ee}(0,V.registerThemingParticipant)((ge,X)=>{const B=ge.getColor(W.editorErrorForeground);B&&X.addRule(`.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${pe(B)}") repeat-x bottom left; }`);const $=ge.getColor(W.editorWarningForeground);$&&X.addRule(`.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${pe($)}") repeat-x bottom left; }`);const Q=ge.getColor(W.editorInfoForeground);Q&&X.addRule(`.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${pe(Q)}") repeat-x bottom left; }`);const Z=ge.getColor(W.editorHintForeground);Z&&X.addRule(`.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${de(Z)}") no-repeat bottom left; }`);const te=ge.getColor(l.editorUnnecessaryCodeOpacity);te&&X.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${te.rgba.a}; }`)})}),define(ne[125],se([1,0,60,34,219,36,17,61,24,12,7,50,25]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.EmbeddedCodeEditorWidget=void 0;let t=class extends I.CodeEditorWidget{constructor(s,g,c,l,a,r,u,C,f,h,v,w,S){super(s,{...l.getRawOptions(),overflowWidgetsDomNode:l.getOverflowWidgetsDomNode()},c,a,r,u,C,f,h,v,w,S),this._parentEditor=l,this._overwriteOptions=g,super.updateOptions(this._overwriteOptions),this._register(l.onDidChangeConfiguration(L=>this._onParentConfigurationChanged(L)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(s){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(s){d.mixin(this._overwriteOptions,s,!0),super.updateOptions(this._overwriteOptions)}};e.EmbeddedCodeEditorWidget=t,e.EmbeddedCodeEditorWidget=t=ke([ce(4,p.IInstantiationService),ce(5,k.ICodeEditorService),ce(6,_.ICommandService),ce(7,b.IContextKeyService),ce(8,o.IThemeService),ce(9,n.INotificationService),ce(10,m.IAccessibilityService),ce(11,E.ILanguageConfigurationService),ce(12,y.ILanguageFeaturesService)],t)}),define(ne[286],se([1,0,5,67,8,6,2,21,65,15,34,143,219,762,806,363,285,799,383,364,415,653,88,171,397,9,4,198,20,137,12,7,154,96,775,552,807,407,500]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M,A,P,N,O,F,x){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorWidget=void 0;let W=class extends O.DelegatingEditor{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(H,z,U,j,Y,G,K,R){super(),this._domElement=H,this._parentContextKeyService=j,this._parentInstantiationService=Y,this._accessibilitySignalService=K,this._editorProgressService=R,this.elements=(0,d.h)("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[(0,d.h)("div.editor.original@original",{style:{position:"absolute",height:"100%"}}),(0,d.h)("div.editor.modified@modified",{style:{position:"absolute",height:"100%"}}),(0,d.h)("div.accessibleDiffViewer@accessibleDiffViewer",{style:{position:"absolute",height:"100%"}})]),this._diffModelSrc=this._register((0,m.disposableObservableValue)(this,void 0)),this._diffModel=(0,m.derived)(this,$=>this._diffModelSrc.read($)?.object),this.onDidChangeModel=E.Event.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new A.ServiceCollection([T.IContextKeyService,this._contextKeyService]))),this._boundarySashes=(0,m.observableValue)(this,void 0),this._accessibleDiffViewerShouldBeVisible=(0,m.observableValue)(this,!1),this._accessibleDiffViewerVisible=(0,m.derived)(this,$=>this._options.onlyShowAccessibleDiffViewer.read($)?!0:this._accessibleDiffViewerShouldBeVisible.read($)),this._movedBlocksLinesPart=(0,m.observableValue)(this,void 0),this._layoutInfo=(0,m.derived)(this,$=>{const Q=this._rootSizeObserver.width.read($),Z=this._rootSizeObserver.height.read($);this._rootSizeObserver.automaticLayout?this.elements.root.style.height="100%":this.elements.root.style.height=Z+"px";const te=this._sash.read($),re=this._gutter.read($),le=re?.width.read($)??0,me=this._overviewRulerPart.read($)?.width??0;let Ce,ye,Le,Ee,Me;if(!!te){const Ne=te.sashLeft.read($),Ke=this._movedBlocksLinesPart.read($)?.width.read($)??0;Ce=0,ye=Ne-le-Ke,Me=Ne-le,Le=Ne,Ee=Q-Le-me}else{Me=0;const Ne=this._options.inlineViewHideOriginalLineNumbers.read($);Ce=le,Ne?ye=0:ye=Math.max(5,this._editors.originalObs.layoutInfoDecorationsLeft.read($)),Le=le+ye,Ee=Q-Le-me}return this.elements.original.style.left=Ce+"px",this.elements.original.style.width=ye+"px",this._editors.original.layout({width:ye,height:Z},!0),re?.layout(Me),this.elements.modified.style.left=Le+"px",this.elements.modified.style.width=Ee+"px",this._editors.modified.layout({width:Ee,height:Z},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}}),this._diffValue=this._diffModel.map(($,Q)=>$?.diff.read(Q)),this.onDidUpdateDiff=E.Event.fromObservableLight(this._diffValue),G.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register((0,y.toDisposable)(()=>this.elements.root.remove())),this._rootSizeObserver=this._register(new C.ObservableElementSizeObserver(this.elements.root,z.dimension)),this._rootSizeObserver.setAutomaticLayout(z.automaticLayout??!1),this._options=this._instantiationService.createInstance(F.DiffEditorOptions,z),this._register((0,m.autorun)($=>{this._options.setWidth(this._rootSizeObserver.width.read($))})),this._contextKeyService.createKey(L.EditorContextKeys.isEmbeddedDiffEditor.key,!1),this._register((0,h.bindContextKey)(L.EditorContextKeys.isEmbeddedDiffEditor,this._contextKeyService,$=>this._options.isInEmbeddedEditor.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.comparingMovedCode,this._contextKeyService,$=>!!this._diffModel.read($)?.movedTextToCompare.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,$=>this._options.couldShowInlineViewBecauseOfSize.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorInlineMode,this._contextKeyService,$=>!this._options.renderSideBySide.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.hasChanges,this._contextKeyService,$=>(this._diffModel.read($)?.diff.read($)?.mappings.length??0)>0)),this._editors=this._register(this._instantiationService.createInstance(N.DiffEditorEditors,this.elements.original,this.elements.modified,this._options,U,($,Q,Z,te)=>this._createInnerEditor($,Q,Z,te))),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorOriginalWritable,this._contextKeyService,$=>this._options.originalEditable.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorModifiedWritable,this._contextKeyService,$=>!this._options.readOnly.read($))),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorOriginalUri,this._contextKeyService,$=>this._diffModel.read($)?.model.original.uri.toString()??"")),this._register((0,h.bindContextKey)(L.EditorContextKeys.diffEditorModifiedUri,this._contextKeyService,$=>this._diffModel.read($)?.model.modified.uri.toString()??"")),this._overviewRulerPart=(0,_.derivedDisposable)(this,$=>this._options.renderOverviewRuler.read($)?this._instantiationService.createInstance((0,f.readHotReloadableExport)(r.OverviewRulerFeature,$),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map(Q=>Q.modifiedEditor)):void 0).recomputeInitiallyAndOnChange(this._store);const J={height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map(($,Q)=>$-(this._overviewRulerPart.read(Q)?.width??0))};this._sashLayout=new s.SashLayout(this._options,J),this._sash=(0,_.derivedDisposable)(this,$=>{const Q=this._options.renderSideBySide.read($);return this.elements.root.classList.toggle("side-by-side",Q),Q?new s.DiffEditorSash(this.elements.root,J,this._options.enableSplitViewResizing,this._boundarySashes,this._sashLayout.sashLeft,()=>this._sashLayout.resetSash()):void 0}).recomputeInitiallyAndOnChange(this._store);const ie=(0,_.derivedDisposable)(this,$=>this._instantiationService.createInstance((0,f.readHotReloadableExport)(l.HideUnchangedRegionsFeature,$),this._editors,this._diffModel,this._options)).recomputeInitiallyAndOnChange(this._store);(0,_.derivedDisposable)(this,$=>this._instantiationService.createInstance((0,f.readHotReloadableExport)(i.DiffEditorDecorations,$),this._editors,this._diffModel,this._options,this)).recomputeInitiallyAndOnChange(this._store);const ue=new Set,he=new Set;let pe=!1;const ae=(0,_.derivedDisposable)(this,$=>this._instantiationService.createInstance((0,f.readHotReloadableExport)(g.DiffEditorViewZones,$),(0,d.getWindow)(this._domElement),this._editors,this._diffModel,this._options,this,()=>pe||ie.get().isUpdatingHiddenAreas,ue,he)).recomputeInitiallyAndOnChange(this._store),ee=(0,m.derived)(this,$=>{const Q=ae.read($).viewZones.read($).orig,Z=ie.read($).viewZones.read($).origViewZones;return Q.concat(Z)}),de=(0,m.derived)(this,$=>{const Q=ae.read($).viewZones.read($).mod,Z=ie.read($).viewZones.read($).modViewZones;return Q.concat(Z)});this._register((0,C.applyViewZones)(this._editors.original,ee,$=>{pe=$},ue));let ge;this._register((0,C.applyViewZones)(this._editors.modified,de,$=>{pe=$,pe?ge=n.StableEditorScrollState.capture(this._editors.modified):(ge?.restore(this._editors.modified),ge=void 0)},he)),this._accessibleDiffViewer=(0,_.derivedDisposable)(this,$=>this._instantiationService.createInstance((0,f.readHotReloadableExport)(t.AccessibleDiffViewer,$),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,(Q,Z)=>this._accessibleDiffViewerShouldBeVisible.set(Q,Z),this._options.onlyShowAccessibleDiffViewer.map(Q=>!Q),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map((Q,Z)=>Q?.diff.read(Z)?.mappings.map(te=>te.lineRangeMapping)),new t.AccessibleDiffViewerModelFromEditors(this._editors))).recomputeInitiallyAndOnChange(this._store);const X=this._accessibleDiffViewerVisible.map($=>$?"hidden":"visible");this._register((0,C.applyStyle)(this.elements.modified,{visibility:X})),this._register((0,C.applyStyle)(this.elements.original,{visibility:X})),this._createDiffEditorContributions(),G.addDiffEditor(this),this._gutter=(0,_.derivedDisposable)(this,$=>this._options.shouldRenderGutterMenu.read($)?this._instantiationService.createInstance((0,f.readHotReloadableExport)(c.DiffEditorGutter,$),this.elements.root,this._diffModel,this._editors,this._options,this._sashLayout,this._boundarySashes):void 0),this._register((0,m.recomputeInitiallyAndOnChange)(this._layoutInfo)),(0,_.derivedDisposable)(this,$=>new((0,f.readHotReloadableExport)(a.MovedBlocksLinesFeature,$))(this.elements.root,this._diffModel,this._layoutInfo.map(Q=>Q.originalEditor),this._layoutInfo.map(Q=>Q.modifiedEditor),this._editors)).recomputeInitiallyAndOnChange(this._store,$=>{this._movedBlocksLinesPart.set($,void 0)}),this._register(E.Event.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,$=>this._handleCursorPositionChange($,!0))),this._register(E.Event.runAndSubscribe(this._editors.original.onDidChangeCursorPosition,$=>this._handleCursorPositionChange($,!1)));const B=this._diffModel.map(this,($,Q)=>{if($)return $.diff.read(Q)===void 0&&!$.isDiffUpToDate.read(Q)});this._register((0,m.autorunWithStore)(($,Q)=>{if(B.read($)===!0){const Z=this._editorProgressService.show(!0,1e3);Q.add((0,y.toDisposable)(()=>Z.done()))}})),this._register((0,m.autorunWithStore)(($,Q)=>{Q.add(new((0,f.readHotReloadableExport)(u.RevertButtonsFeature,$))(this._editors,this._diffModel,this._options,this))})),this._register((0,m.autorunWithStore)(($,Q)=>{const Z=this._diffModel.read($);if(Z)for(const te of[Z.model.original,Z.model.modified])Q.add(te.onWillDispose(re=>{(0,I.onUnexpectedError)(new I.BugIndicatingError("TextModel got disposed before DiffEditorWidget model got reset")),this.setModel(null)}))})),this._register((0,m.autorun)($=>{this._options.setModel(this._diffModel.read($))}))}_createInnerEditor(H,z,U,j){return H.createInstance(o.CodeEditorWidget,z,U,j)}_createDiffEditorContributions(){const H=b.EditorExtensionsRegistry.getDiffEditorContributions();for(const z of H)try{this._register(this._instantiationService.createInstance(z.ctor,this))}catch(U){(0,I.onUnexpectedError)(U)}}get _targetEditor(){return this._editors.modified}getEditorType(){return S.EditorType.IDiffEditor}layout(H){this._rootSizeObserver.observe(H)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){const H=this._editors.original.saveViewState(),z=this._editors.modified.saveViewState();return{original:H,modified:z,modelState:this._diffModel.get()?.serializeState()}}restoreViewState(H){if(H&&H.original&&H.modified){const z=H;this._editors.original.restoreViewState(z.original),this._editors.modified.restoreViewState(z.modified),z.modelState&&this._diffModel.get()?.restoreSerializedState(z.modelState)}}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(H){return this._instantiationService.createInstance(x.DiffEditorViewModel,H,this._options)}getModel(){return this._diffModel.get()?.model??null}setModel(H){const z=H?"model"in H?C.RefCounted.create(H).createNewRef(this):C.RefCounted.create(this.createViewModel(H),this):null;this.setDiffModel(z)}setDiffModel(H,z){const U=this._diffModel.get();!H&&U&&this._accessibleDiffViewer.get().close(),this._diffModel.get()!==H?.object&&(0,m.subtransaction)(z,j=>{const Y=H?.object;m.observableFromEvent.batchEventsGlobally(j,()=>{this._editors.original.setModel(Y?Y.model.original:null),this._editors.modified.setModel(Y?Y.model.modified:null)});const G=this._diffModelSrc.get()?.createNewRef(this);this._diffModelSrc.set(H?.createNewRef(this),j),setTimeout(()=>{G?.dispose()},0)})}updateOptions(H){this._options.updateOptions(H)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){const H=this._diffModel.get()?.diff.get();return H?V(H):null}revert(H){const z=this._diffModel.get();!z||!z.isDiffUpToDate.get()||this._editors.modified.executeEdits("diffEditor",[{range:H.modified.toExclusiveRange(),text:z.model.original.getValueInRange(H.original.toExclusiveRange())}])}revertRangeMappings(H){const z=this._diffModel.get();if(!z||!z.isDiffUpToDate.get())return;const U=H.map(j=>({range:j.modifiedRange,text:z.model.original.getValueInRange(j.originalRange)}));this._editors.modified.executeEdits("diffEditor",U)}_goTo(H){this._editors.modified.setPosition(new v.Position(H.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(H.lineRangeMapping.modified.toExclusiveRange())}goToDiff(H){const z=this._diffModel.get()?.diff.get()?.mappings;if(!z||z.length===0)return;const U=this._editors.modified.getPosition().lineNumber;let j;H==="next"?j=z.find(Y=>Y.lineRangeMapping.modified.startLineNumber>U)??z[0]:j=(0,k.findLast)(z,Y=>Y.lineRangeMapping.modified.startLineNumber{const z=H.diff.get()?.mappings;!z||z.length===0||this._goTo(z[0])})}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){const H=this._diffModel.get();H&&await H.waitForDiff()}mapToOtherSide(){const H=this._editors.modified.hasWidgetFocus(),z=H?this._editors.modified:this._editors.original,U=H?this._editors.original:this._editors.modified;let j;const Y=z.getSelection();if(Y){const G=this._diffModel.get()?.diff.get()?.mappings.map(K=>H?K.lineRangeMapping.flip():K.lineRangeMapping);if(G){const K=(0,C.translatePosition)(Y.getStartPosition(),G),R=(0,C.translatePosition)(Y.getEndPosition(),G);j=w.Range.plusRange(K,R)}}return{destination:U,destinationSelection:j}}switchSide(){const{destination:H,destinationSelection:z}=this.mapToOtherSide();H.focus(),z&&H.setSelection(z)}exitCompareMove(){const H=this._diffModel.get();H&&H.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){const H=this._diffModel.get()?.unchangedRegions.get();H&&(0,m.transaction)(z=>{for(const U of H)U.collapseAll(z)})}showAllUnchangedRegions(){const H=this._diffModel.get()?.unchangedRegions.get();H&&(0,m.transaction)(z=>{for(const U of H)U.showAll(z)})}_handleCursorPositionChange(H,z){if(H?.reason===3){const U=this._diffModel.get()?.diff.get()?.mappings.find(j=>z?j.lineRangeMapping.modified.contains(H.position.lineNumber):j.lineRangeMapping.original.contains(H.position.lineNumber));U?.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(D.AccessibilitySignal.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):U?.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(D.AccessibilitySignal.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):U&&this._accessibilitySignalService.playSignal(D.AccessibilitySignal.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}}};e.DiffEditorWidget=W,e.DiffEditorWidget=W=ke([ce(3,T.IContextKeyService),ce(4,M.IInstantiationService),ce(5,p.ICodeEditorService),ce(6,D.IAccessibilitySignalService),ce(7,P.IEditorProgressService)],W);function V(q){return q.mappings.map(H=>{const z=H.lineRangeMapping;let U,j,Y,G,K=z.innerChanges;return z.original.isEmpty?(U=z.original.startLineNumber-1,j=0,K=void 0):(U=z.original.startLineNumber,j=z.original.endLineNumberExclusive-1),z.modified.isEmpty?(Y=z.modified.startLineNumber-1,G=0,K=void 0):(Y=z.modified.startLineNumber,G=z.modified.endLineNumberExclusive-1),{originalStartLineNumber:U,originalEndLineNumber:j,modifiedStartLineNumber:Y,modifiedEndLineNumber:G,charChanges:K?.map(R=>({originalStartLineNumber:R.originalRange.startLineNumber,originalStartColumn:R.originalRange.startColumn,originalEndLineNumber:R.originalRange.endLineNumber,originalEndColumn:R.originalRange.endColumn,modifiedStartLineNumber:R.modifiedRange.startLineNumber,modifiedStartColumn:R.modifiedRange.startColumn,modifiedEndLineNumber:R.modifiedRange.endLineNumber,modifiedEndColumn:R.modifiedRange.endColumn}))}})}}),define(ne[811],se([1,0,5,26,15,34,286,20,3,29,28,12,139]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AccessibleDiffViewerPrev=e.AccessibleDiffViewerNext=e.RevertHunkOrSelection=e.ShowAllUnchangedRegions=e.CollapseAllUnchangedRegions=e.ExitCompareMove=e.SwitchSide=e.ToggleUseInlineViewWhenSpaceIsLimited=e.ToggleShowMovedCodeBlocks=e.ToggleCollapseUnchangedRegions=void 0,e.findDiffEditor=h,e.findFocusedDiffEditor=v;class o extends b.Action2{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:(0,_.localize2)(72,"Toggle Collapse Unchanged Regions"),icon:k.Codicon.map,toggled:n.ContextKeyExpr.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:n.ContextKeyExpr.has("isInDiffEditor"),menu:{when:n.ContextKeyExpr.has("isInDiffEditor"),id:b.MenuId.EditorTitle,order:22,group:"navigation"}})}run(L,...D){const T=L.get(p.IConfigurationService),M=!T.getValue("diffEditor.hideUnchangedRegions.enabled");T.updateValue("diffEditor.hideUnchangedRegions.enabled",M)}}e.ToggleCollapseUnchangedRegions=o;class t extends b.Action2{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:(0,_.localize2)(73,"Toggle Show Moved Code Blocks"),precondition:n.ContextKeyExpr.has("isInDiffEditor")})}run(L,...D){const T=L.get(p.IConfigurationService),M=!T.getValue("diffEditor.experimental.showMoves");T.updateValue("diffEditor.experimental.showMoves",M)}}e.ToggleShowMovedCodeBlocks=t;class i extends b.Action2{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:(0,_.localize2)(74,"Toggle Use Inline View When Space Is Limited"),precondition:n.ContextKeyExpr.has("isInDiffEditor")})}run(L,...D){const T=L.get(p.IConfigurationService),M=!T.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");T.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",M)}}e.ToggleUseInlineViewWhenSpaceIsLimited=i;const s=(0,_.localize2)(75,"Diff Editor");class g extends I.EditorAction2{constructor(){super({id:"diffEditor.switchSide",title:(0,_.localize2)(76,"Switch Side"),icon:k.Codicon.arrowSwap,precondition:n.ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:s})}runEditorCommand(L,D,T){const M=v(L);if(M instanceof y.DiffEditorWidget){if(T&&T.dryRun)return{destinationSelection:M.mapToOtherSide().destinationSelection};M.switchSide()}}}e.SwitchSide=g;class c extends I.EditorAction2{constructor(){super({id:"diffEditor.exitCompareMove",title:(0,_.localize2)(77,"Exit Compare Move"),icon:k.Codicon.close,precondition:m.EditorContextKeys.comparingMovedCode,f1:!1,category:s,keybinding:{weight:1e4,primary:9}})}runEditorCommand(L,D,...T){const M=v(L);M instanceof y.DiffEditorWidget&&M.exitCompareMove()}}e.ExitCompareMove=c;class l extends I.EditorAction2{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:(0,_.localize2)(78,"Collapse All Unchanged Regions"),icon:k.Codicon.fold,precondition:n.ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:s})}runEditorCommand(L,D,...T){const M=v(L);M instanceof y.DiffEditorWidget&&M.collapseAllUnchangedRegions()}}e.CollapseAllUnchangedRegions=l;class a extends I.EditorAction2{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:(0,_.localize2)(79,"Show All Unchanged Regions"),icon:k.Codicon.unfold,precondition:n.ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:s})}runEditorCommand(L,D,...T){const M=v(L);M instanceof y.DiffEditorWidget&&M.showAllUnchangedRegions()}}e.ShowAllUnchangedRegions=a;class r extends b.Action2{constructor(){super({id:"diffEditor.revert",title:(0,_.localize2)(80,"Revert"),f1:!1,category:s})}run(L,D){const T=h(L,D.originalUri,D.modifiedUri);T instanceof y.DiffEditorWidget&&T.revertRangeMappings(D.mapping.innerChanges??[])}}e.RevertHunkOrSelection=r;const u=(0,_.localize2)(81,"Accessible Diff Viewer");class C extends b.Action2{static{this.id="editor.action.accessibleDiffViewer.next"}constructor(){super({id:C.id,title:(0,_.localize2)(82,"Go to Next Difference"),category:u,precondition:n.ContextKeyExpr.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(L){v(L)?.accessibleDiffViewerNext()}}e.AccessibleDiffViewerNext=C;class f extends b.Action2{static{this.id="editor.action.accessibleDiffViewer.prev"}constructor(){super({id:f.id,title:(0,_.localize2)(83,"Go to Previous Difference"),category:u,precondition:n.ContextKeyExpr.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(L){v(L)?.accessibleDiffViewerPrev()}}e.AccessibleDiffViewerPrev=f;function h(S,L,D){return S.get(E.ICodeEditorService).listDiffEditors().find(A=>{const P=A.getModifiedEditor(),N=A.getOriginalEditor();return P&&P.getModel()?.uri.toString()===D.toString()&&N&&N.getModel()?.uri.toString()===L.toString()})||null}function v(S){const D=S.get(E.ICodeEditorService).listDiffEditors(),T=(0,d.getActiveElement)();if(T)for(const M of D){const A=M.getContainerDomNode();if(w(A,T))return M}return null}function w(S,L){let D=L;for(;D;){if(D===S)return!0;D=D.parentElement}return!1}}),define(ne[812],se([1,0,26,811,20,3,29,24,12,139]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,y.registerAction2)(k.ToggleCollapseUnchangedRegions),(0,y.registerAction2)(k.ToggleShowMovedCodeBlocks),(0,y.registerAction2)(k.ToggleUseInlineViewWhenSpaceIsLimited),y.MenuRegistry.appendMenuItem(y.MenuId.EditorTitle,{command:{id:new k.ToggleUseInlineViewWhenSpaceIsLimited().desc.id,title:(0,E.localize)(106,"Use Inline View When Space Is Limited"),toggled:_.ContextKeyExpr.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:_.ContextKeyExpr.has("isInDiffEditor")},order:11,group:"1_diff",when:_.ContextKeyExpr.and(I.EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached,_.ContextKeyExpr.has("isInDiffEditor"))}),y.MenuRegistry.appendMenuItem(y.MenuId.EditorTitle,{command:{id:new k.ToggleShowMovedCodeBlocks().desc.id,title:(0,E.localize)(107,"Show Moved Code Blocks"),icon:d.Codicon.move,toggled:_.ContextKeyEqualsExpr.create("config.diffEditor.experimental.showMoves",!0),precondition:_.ContextKeyExpr.has("isInDiffEditor")},order:10,group:"1_diff",when:_.ContextKeyExpr.has("isInDiffEditor")}),(0,y.registerAction2)(k.RevertHunkOrSelection);for(const b of[{icon:d.Codicon.arrowRight,key:I.EditorContextKeys.diffEditorInlineMode.toNegated()},{icon:d.Codicon.discard,key:I.EditorContextKeys.diffEditorInlineMode}])y.MenuRegistry.appendMenuItem(y.MenuId.DiffEditorHunkToolbar,{command:{id:new k.RevertHunkOrSelection().desc.id,title:(0,E.localize)(108,"Revert Block"),icon:b.icon},when:_.ContextKeyExpr.and(I.EditorContextKeys.diffEditorModifiedWritable,b.key),order:5,group:"primary"}),y.MenuRegistry.appendMenuItem(y.MenuId.DiffEditorSelectionToolbar,{command:{id:new k.RevertHunkOrSelection().desc.id,title:(0,E.localize)(109,"Revert Selection"),icon:b.icon},when:_.ContextKeyExpr.and(I.EditorContextKeys.diffEditorModifiedWritable,b.key),order:5,group:"primary"});(0,y.registerAction2)(k.SwitchSide),(0,y.registerAction2)(k.ExitCompareMove),(0,y.registerAction2)(k.CollapseAllUnchangedRegions),(0,y.registerAction2)(k.ShowAllUnchangedRegions),y.MenuRegistry.appendMenuItem(y.MenuId.EditorTitle,{command:{id:k.AccessibleDiffViewerNext.id,title:(0,E.localize)(110,"Open Accessible Diff Viewer"),precondition:_.ContextKeyExpr.has("isInDiffEditor")},order:10,group:"2_diff",when:_.ContextKeyExpr.and(I.EditorContextKeys.accessibleDiffViewerVisible.negate(),_.ContextKeyExpr.has("isInDiffEditor"))}),m.CommandsRegistry.registerCommandAlias("editor.action.diffReview.next",k.AccessibleDiffViewerNext.id),(0,y.registerAction2)(k.AccessibleDiffViewerNext),m.CommandsRegistry.registerCommandAlias("editor.action.diffReview.prev",k.AccessibleDiffViewerPrev.id),(0,y.registerAction2)(k.AccessibleDiffViewerPrev)}),define(ne[420],se([1,0,5,258,26,2,21,92,112,286,124,218,29,7,365,12,154]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DiffEditorItemTemplate=e.TemplateData=void 0;class c{constructor(r,u){this.viewModel=r,this.deltaScrollVertical=u}getId(){return this.viewModel}}e.TemplateData=c;let l=class extends E.Disposable{constructor(r,u,C,f,h){super(),this._container=r,this._overflowWidgetsDomNode=u,this._workbenchUIElementFactory=C,this._instantiationService=f,this._viewModel=(0,m.observableValue)(this,void 0),this._collapsed=(0,y.derived)(this,S=>this._viewModel.read(S)?.collapsed.read(S)),this._editorContentHeight=(0,m.observableValue)(this,500),this.contentHeight=(0,y.derived)(this,S=>(this._collapsed.read(S)?0:this._editorContentHeight.read(S))+this._outerEditorHeight),this._modifiedContentWidth=(0,m.observableValue)(this,0),this._modifiedWidth=(0,m.observableValue)(this,0),this._originalContentWidth=(0,m.observableValue)(this,0),this._originalWidth=(0,m.observableValue)(this,0),this.maxScroll=(0,y.derived)(this,S=>{const L=this._modifiedContentWidth.read(S)-this._modifiedWidth.read(S),D=this._originalContentWidth.read(S)-this._originalWidth.read(S);return L>D?{maxScroll:L,width:this._modifiedWidth.read(S)}:{maxScroll:D,width:this._originalWidth.read(S)}}),this._elements=(0,d.h)("div.multiDiffEntry",[(0,d.h)("div.header@header",[(0,d.h)("div.header-content",[(0,d.h)("div.collapse-button@collapseButton"),(0,d.h)("div.file-path",[(0,d.h)("div.title.modified.show-file-icons@primaryPath",[]),(0,d.h)("div.status.deleted@status",["R"]),(0,d.h)("div.title.original.show-file-icons@secondaryPath",[])]),(0,d.h)("div.actions@actions")])]),(0,d.h)("div.editorParent",[(0,d.h)("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(b.DiffEditorWidget,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode},{})),this.isModifedFocused=(0,_.observableCodeEditor)(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=(0,_.observableCodeEditor)(this.editor.getOriginalEditor()).isFocused,this.isFocused=(0,y.derived)(this,S=>this.isModifedFocused.read(S)||this.isOriginalFocused.read(S)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=this._register(new E.DisposableStore),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const v=new k.Button(this._elements.collapseButton,{});this._register((0,y.autorun)(S=>{v.element.className="",v.icon=this._collapsed.read(S)?I.Codicon.chevronRight:I.Codicon.chevronDown})),this._register(v.onDidClick(()=>{this._viewModel.get()?.collapsed.set(!this._collapsed.get(),void 0)})),this._register((0,y.autorun)(S=>{this._elements.editor.style.display=this._collapsed.read(S)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(S=>{const L=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(L,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(S=>{const L=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(L,void 0)})),this._register(this.editor.onDidContentSizeChange(S=>{(0,m.globalTransaction)(L=>{this._editorContentHeight.set(S.contentHeight,L),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),L),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),L)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(S=>{if(this._isSettingScrollTop||!S.scrollTopChanged||!this._data)return;const L=S.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(L)})),this._register((0,y.autorun)(S=>{const L=this._viewModel.read(S)?.isActive.read(S);this._elements.root.classList.toggle("active",L)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._contextKeyService=this._register(h.createScoped(this._elements.actions));const w=this._register(this._instantiationService.createChild(new g.ServiceCollection([s.IContextKeyService,this._contextKeyService])));this._register(w.createInstance(n.MenuWorkbenchToolBar,this._elements.actions,o.MenuId.MultiDiffEditorFileToolbar,{actionRunner:this._register(new i.ActionRunnerWithContext(()=>this._viewModel.get()?.modifiedUri)),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:S=>S.startsWith("navigation")},actionViewItemProvider:(S,L)=>(0,p.createActionViewItem)(w,S,L)}))}setScrollLeft(r){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(r):this.editor.getOriginalEditor().setScrollLeft(r)}setData(r){this._data=r;function u(f){return{...f,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(!r){(0,m.globalTransaction)(f=>{this._viewModel.set(void 0,f),this.editor.setDiffModel(null,f),this._dataStore.clear()});return}const C=r.viewModel.documentDiffItem;if((0,m.globalTransaction)(f=>{this._resourceLabel?.setUri(r.viewModel.modifiedUri??r.viewModel.originalUri,{strikethrough:r.viewModel.modifiedUri===void 0});let h=!1,v=!1,w=!1,S="";r.viewModel.modifiedUri&&r.viewModel.originalUri&&r.viewModel.modifiedUri.path!==r.viewModel.originalUri.path?(S="R",h=!0):r.viewModel.modifiedUri?r.viewModel.originalUri||(S="A",w=!0):(S="D",v=!0),this._elements.status.classList.toggle("renamed",h),this._elements.status.classList.toggle("deleted",v),this._elements.status.classList.toggle("added",w),this._elements.status.innerText=S,this._resourceLabel2?.setUri(h?r.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(r.viewModel,f),this.editor.setDiffModel(r.viewModel.diffEditorViewModelRef,f),this.editor.updateOptions(u(C.options??{}))}),C.onOptionsDidChange&&this._dataStore.add(C.onOptionsDidChange(()=>{this.editor.updateOptions(u(C.options??{}))})),r.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,f=>{f||this.setData(void 0)}),r.viewModel.documentDiffItem.contextKeys)for(const[f,h]of Object.entries(r.viewModel.documentDiffItem.contextKeys))this._contextKeyService.createKey(f,h)}render(r,u,C,f){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${r.start}px`,this._elements.root.style.height=`${r.length}px`,this._elements.root.style.width=`${u}px`,this._elements.root.style.position="absolute";const h=r.length-this._headerHeight,v=Math.max(0,Math.min(f.start-r.start,h));this._elements.header.style.transform=`translateY(${v}px)`,(0,m.globalTransaction)(w=>{this.editor.layout({width:u-2*8-2*1,height:r.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=C,this.editor.getOriginalEditor().setScrollTop(C)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",v>0||C>0),this._elements.header.classList.toggle("collapsed",v===h)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};e.DiffEditorItemTemplate=l,e.DiffEditorItemTemplate=l=ke([ce(3,t.IInstantiationService),ce(4,s.IContextKeyService)],l)}),define(ne[813],se([1,0,5,86,13,67,8,2,21,92,163,88,68,23,20,12,7,154,420,553,3,502]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MultiDiffEditorWidgetImpl=void 0;let u=class extends m.Disposable{constructor(h,v,w,S,L,D){super(),this._element=h,this._dimension=v,this._viewModel=w,this._workbenchUIElementFactory=S,this._parentContextKeyService=L,this._parentInstantiationService=D,this._scrollableElements=(0,d.h)("div.scrollContent",[(0,d.h)("div@content",{style:{overflow:"hidden"}}),(0,d.h)("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new p.Scrollable({forceIntegerValues:!1,scheduleAtNextAnimationFrame:M=>(0,d.scheduleAtNextAnimationFrame)((0,d.getWindow)(this._element),M),smoothScrollDuration:100})),this._scrollableElement=this._register(new k.SmoothScrollableElement(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=(0,d.h)("div.monaco-component.multiDiffEditor",{},[(0,d.h)("div",{},[this._scrollableElement.getDomNode()]),(0,d.h)("div.placeholder@placeholder",{},[(0,d.h)("div",[(0,r.localize)(132,"No Changed Files")])])]),this._sizeObserver=this._register(new n.ObservableElementSizeObserver(this._element,void 0)),this._objectPool=this._register(new a.ObjectPool(M=>{const A=this._instantiationService.createInstance(l.DiffEditorItemTemplate,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return A.setData(M),A})),this.scrollTop=(0,_.observableFromEvent)(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=(0,_.observableFromEvent)(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=(0,_.derivedWithStore)(this,(M,A)=>{const P=this._viewModel.read(M);if(!P)return{items:[],getItem:x=>{throw new y.BugIndicatingError}};const N=P.items.read(M),O=new Map;return{items:N.map(x=>{const W=A.add(new C(x,this._objectPool,this.scrollLeft,q=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+q})})),V=this._lastDocStates?.[W.getKey()];return V&&(0,b.transaction)(q=>{W.setViewState(V,q)}),O.set(x,W),W}),getItem:x=>O.get(x)}}),this._viewItems=this._viewItemsInfo.map(this,M=>M.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(M,A)=>M.reduce((P,N)=>P+N.contentHeight.read(A)+this._spaceBetweenPx,0)),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new c.ServiceCollection([s.IContextKeyService,this._contextKeyService]))),this._lastDocStates={},this._contextKeyService.createKey(i.EditorContextKeys.inMultiDiffEditor.key,!0),this._register((0,_.autorunWithStore)((M,A)=>{const P=this._viewModel.read(M);if(P&&P.contextKeys)for(const[N,O]of Object.entries(P.contextKeys)){const F=this._contextKeyService.createKey(N,void 0);F.set(O),A.add((0,m.toDisposable)(()=>F.reset()))}}));const T=this._parentContextKeyService.createKey(i.EditorContextKeys.multiDiffEditorAllCollapsed.key,!1);this._register((0,_.autorun)(M=>{const A=this._viewModel.read(M);if(A){const P=A.items.read(M).every(N=>N.collapsed.read(M));T.set(P)}})),this._register((0,_.autorun)(M=>{const A=this._dimension.read(M);this._sizeObserver.observe(A)})),this._register((0,_.autorun)(M=>{const A=this._viewItems.read(M);this._elements.placeholder.classList.toggle("visible",A.length===0)})),this._scrollableElements.content.style.position="relative",this._register((0,_.autorun)(M=>{const A=this._sizeObserver.height.read(M);this._scrollableElements.root.style.height=`${A}px`;const P=this._totalHeight.read(M);this._scrollableElements.content.style.height=`${P}px`;const N=this._sizeObserver.width.read(M);let O=N;const F=this._viewItems.read(M),x=(0,E.findFirstMax)(F,(0,I.compareBy)(W=>W.maxScroll.read(M).maxScroll,I.numberComparator));if(x){const W=x.maxScroll.read(M);O=N+W.maxScroll}this._scrollableElement.setScrollDimensions({width:N,height:A,scrollHeight:P,scrollWidth:O})})),h.replaceChildren(this._elements.root),this._register((0,m.toDisposable)(()=>{h.replaceChildren()})),this._register(this._register((0,_.autorun)(M=>{(0,b.globalTransaction)(A=>{this.render(M)})})))}render(h){const v=this.scrollTop.read(h);let w=0,S=0,L=0;const D=this._sizeObserver.height.read(h),T=o.OffsetRange.ofStartAndLength(v,D),M=this._sizeObserver.width.read(h);for(const A of this._viewItems.read(h)){const P=A.contentHeight.read(h),N=Math.min(P,D),O=o.OffsetRange.ofStartAndLength(S,N),F=o.OffsetRange.ofStartAndLength(L,P);if(F.isBefore(T))w-=P-N,A.hide();else if(F.isAfter(T))A.hide();else{const x=Math.max(0,Math.min(T.start-F.start,P-N));w-=x;const W=o.OffsetRange.ofStartAndLength(v+w,D);A.render(O,x,M,W)}S+=N+this._spaceBetweenPx,L+=P+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(v+w)}px)`}};e.MultiDiffEditorWidgetImpl=u,e.MultiDiffEditorWidgetImpl=u=ke([ce(4,s.IContextKeyService),ce(5,g.IInstantiationService)],u);class C extends m.Disposable{constructor(h,v,w,S){super(),this.viewModel=h,this._objectPool=v,this._scrollLeft=w,this._deltaScrollVertical=S,this._templateRef=this._register((0,b.disposableObservableValue)(this,void 0)),this.contentHeight=(0,_.derived)(this,L=>this._templateRef.read(L)?.object.contentHeight?.read(L)??this.viewModel.lastTemplateData.read(L).contentHeight),this.maxScroll=(0,_.derived)(this,L=>this._templateRef.read(L)?.object.maxScroll.read(L)??{maxScroll:0,scrollWidth:0}),this.template=(0,_.derived)(this,L=>this._templateRef.read(L)?.object),this._isHidden=(0,_.observableValue)(this,!1),this._isFocused=(0,_.derived)(this,L=>this.template.read(L)?.isFocused.read(L)??!1),this.viewModel.setIsFocused(this._isFocused,void 0),this._register((0,_.autorun)(L=>{const D=this._scrollLeft.read(L);this._templateRef.read(L)?.object.setScrollLeft(D)})),this._register((0,_.autorun)(L=>{const D=this._templateRef.read(L);!D||!this._isHidden.read(L)||D.object.isFocused.read(L)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){return`VirtualViewItem(${this.viewModel.documentDiffItem.modified?.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(h,v){this.viewModel.collapsed.set(h.collapsed,v),this._updateTemplateData(v);const w=this.viewModel.lastTemplateData.get(),S=h.selections?.map(t.Selection.liftSelection);this.viewModel.lastTemplateData.set({...w,selections:S},v);const L=this._templateRef.get();L&&S&&L.object.editor.setSelections(S)}_updateTemplateData(h){const v=this._templateRef.get();v&&this.viewModel.lastTemplateData.set({contentHeight:v.object.contentHeight.get(),selections:v.object.editor.getSelections()??void 0},h)}_clear(){const h=this._templateRef.get();h&&(0,b.transaction)(v=>{this._updateTemplateData(v),h.object.hide(),this._templateRef.set(void 0,v)})}hide(){this._isHidden.set(!0,void 0)}render(h,v,w,S){this._isHidden.set(!1,void 0);let L=this._templateRef.get();if(!L){L=this._objectPool.getUnusedObj(new l.TemplateData(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(L,void 0);const D=this.viewModel.lastTemplateData.get().selections;D&&L.object.editor.setSelections(D)}L.object.render(h,w,v,S)}}}),define(ne[814],se([1,0,2,21,171,813,7,420,756]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MultiDiffEditorWidget=void 0;let _=class extends d.Disposable{constructor(p,n,o){super(),this._element=p,this._workbenchUIElementFactory=n,this._instantiationService=o,this._dimension=(0,k.observableValue)(this,void 0),this._viewModel=(0,k.observableValue)(this,void 0),this._widgetImpl=(0,k.derivedWithStore)(this,(t,i)=>((0,I.readHotReloadableExport)(m.DiffEditorItemTemplate,t),i.add(this._instantiationService.createInstance((0,I.readHotReloadableExport)(E.MultiDiffEditorWidgetImpl,t),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory)))),this._register((0,k.recomputeInitiallyAndOnChange)(this._widgetImpl))}};e.MultiDiffEditorWidget=_,e.MultiDiffEditorWidget=_=ke([ce(2,y.IInstantiationService)],_)}),define(ne[815],se([1,0,14,2,15,9,4,23,20,40,35,3,29,32,25,504]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.BracketMatchingController=void 0;const s=(0,t.registerColor)("editorOverviewRuler.bracketMatchForeground","#A0A0A0",n.localize(716,"Overview ruler marker color for matching brackets."));class g extends I.EditorAction{constructor(){super({id:"editor.action.jumpToBracket",label:n.localize(717,"Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.editorTextFocus,primary:3165,weight:100}})}run(C,f){r.get(f)?.jumpToBracket()}}class c extends I.EditorAction{constructor(){super({id:"editor.action.selectToBracket",label:n.localize(718,"Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:n.localize2(721,"Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(C,f,h){let v=!0;h&&h.selectBrackets===!1&&(v=!1),r.get(f)?.selectToBracket(v)}}class l extends I.EditorAction{constructor(){super({id:"editor.action.removeBrackets",label:n.localize(719,"Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.editorTextFocus,primary:2561,weight:100}})}run(C,f){r.get(f)?.removeBrackets(this.id)}}class a{constructor(C,f,h){this.position=C,this.brackets=f,this.options=h}}class r extends k.Disposable{static{this.ID="editor.contrib.bracketMatchingController"}static get(C){return C.getContribution(r.ID)}constructor(C){super(),this._editor=C,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new d.RunOnceScheduler(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(C.onDidChangeCursorPosition(f=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(C.onDidChangeModelContent(f=>{this._updateBracketsSoon.schedule()})),this._register(C.onDidChangeModel(f=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(C.onDidChangeModelLanguageConfiguration(f=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(C.onDidChangeConfiguration(f=>{f.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(C.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(C.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const C=this._editor.getModel(),f=this._editor.getSelections().map(h=>{const v=h.getStartPosition(),w=C.bracketPairs.matchBracket(v);let S=null;if(w)w[0].containsPosition(v)&&!w[1].containsPosition(v)?S=w[1].getStartPosition():w[1].containsPosition(v)&&(S=w[0].getStartPosition());else{const L=C.bracketPairs.findEnclosingBrackets(v);if(L)S=L[1].getStartPosition();else{const D=C.bracketPairs.findNextBracket(v);D&&D.range&&(S=D.range.getStartPosition())}}return S?new m.Selection(S.lineNumber,S.column,S.lineNumber,S.column):new m.Selection(v.lineNumber,v.column,v.lineNumber,v.column)});this._editor.setSelections(f),this._editor.revealRange(f[0])}selectToBracket(C){if(!this._editor.hasModel())return;const f=this._editor.getModel(),h=[];this._editor.getSelections().forEach(v=>{const w=v.getStartPosition();let S=f.bracketPairs.matchBracket(w);if(!S&&(S=f.bracketPairs.findEnclosingBrackets(w),!S)){const T=f.bracketPairs.findNextBracket(w);T&&T.range&&(S=f.bracketPairs.matchBracket(T.range.getStartPosition()))}let L=null,D=null;if(S){S.sort(y.Range.compareRangesUsingStarts);const[T,M]=S;if(L=C?T.getStartPosition():T.getEndPosition(),D=C?M.getEndPosition():M.getStartPosition(),M.containsPosition(w)){const A=L;L=D,D=A}}L&&D&&h.push(new m.Selection(L.lineNumber,L.column,D.lineNumber,D.column))}),h.length>0&&(this._editor.setSelections(h),this._editor.revealRange(h[0]))}removeBrackets(C){if(!this._editor.hasModel())return;const f=this._editor.getModel();this._editor.getSelections().forEach(h=>{const v=h.getPosition();let w=f.bracketPairs.matchBracket(v);w||(w=f.bracketPairs.findEnclosingBrackets(v)),w&&(this._editor.pushUndoStop(),this._editor.executeEdits(C,[{range:w[0],text:""},{range:w[1],text:""}]),this._editor.pushUndoStop())})}static{this._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=p.ModelDecorationOptions.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:(0,i.themeColorFromId)(s),position:b.OverviewRulerLane.Center}})}static{this._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=p.ModelDecorationOptions.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const C=[];let f=0;for(const h of this._lastBracketsData){const v=h.brackets;v&&(C[f++]={range:v[0],options:h.options},C[f++]={range:v[1],options:h.options})}this._decorations.set(C)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const C=this._editor.getSelections();if(C.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const f=this._editor.getModel(),h=f.getVersionId();let v=[];this._lastVersionId===h&&(v=this._lastBracketsData);const w=[];let S=0;for(let A=0,P=C.length;A1&&w.sort(E.Position.compare);const L=[];let D=0,T=0;const M=v.length;for(let A=0,P=w.length;A{const L=this._editor.getModel();(this.state.type!==1||!L||this.state.editorPosition.lineNumber>=L.getLineCount())&&this.hide(),(this.gutterState.type!==1||!L||this.gutterState.editorPosition.lineNumber>=L.getLineCount())&&this.gutterHide()})),this._register(d.addStandardDisposableGenericMouseDownListener(this._domNode,S=>{if(this.state.type!==1)return;this._editor.focus(),S.preventDefault();const{top:L,height:D}=d.getDomNodePagePosition(this._domNode),T=this._editor.getOption(67);let M=Math.floor(T/3);this.state.widgetPosition.position!==null&&this.state.widgetPosition.position.lineNumber{(S.buttons&1)===1&&this.hide()})),this._register(E.Event.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{this._preferredKbLabel=this._keybindingService.lookupKeybinding(n.autoFixCommandId)?.getLabel()??void 0,this._quickFixKbLabel=this._keybindingService.lookupKeybinding(n.quickFixCommandId)?.getLabel()??void 0,this._updateLightBulbTitleAndIcon()})),this._register(this._editor.onMouseDown(async S=>{if(!S.target.element||!this.lightbulbClasses.some(A=>S.target.element&&S.target.element.classList.contains(A))||this.gutterState.type!==1)return;this._editor.focus();const{top:L,height:D}=d.getDomNodePagePosition(S.target.element),T=this._editor.getOption(67);let M=Math.floor(T/3);this.gutterState.widgetPosition.position!==null&&this.gutterState.widgetPosition.position.lineNumber22,W=Y=>Y>2&&this._editor.getTopForLineNumber(Y)===this._editor.getTopForLineNumber(Y-1),V=this._editor.getLineDecorations(M);let q=!1;if(V)for(const Y of V){const G=Y.options.glyphMarginClassName;if(G&&!this.lightbulbClasses.some(K=>G.includes(K))){q=!0;break}}let H=M,z=1;if(!x){const Y=G=>{const K=T.getLineContent(G);return/^\s*$|^\s+/.test(K)||K.length<=z};if(M>1&&!W(M-1)){const G=T.getLineCount(),K=M===G,R=M>1&&Y(M-1),J=!K&&Y(M+1),ie=Y(M),ue=!J&&!R;if(!J&&!R&&!q)return this.gutterState=new C.Showing(v,w,S,{position:{lineNumber:H,column:z},preference:g._posPref}),this.renderGutterLightbub(),this.hide();R||K||R&&!ie?H-=1:(J||ue&&ie)&&(H+=1)}else if(M===1&&(M===T.getLineCount()||!Y(M+1)&&!Y(M)))if(this.gutterState=new C.Showing(v,w,S,{position:{lineNumber:H,column:z},preference:g._posPref}),q)this.gutterHide();else return this.renderGutterLightbub(),this.hide();else if(M{this._gutterDecorationID=w.addDecoration(new s.Range(v,0,v,0),this.gutterDecoration)})}_removeGutterDecoration(v){this._editor.changeDecorations(w=>{w.removeDecoration(v),this._gutterDecorationID=void 0})}_updateGutterDecoration(v,w){this._editor.changeDecorations(S=>{S.changeDecoration(v,new s.Range(w,0,w,0)),S.changeDecorationOptions(v,this.gutterDecoration)})}_updateLightbulbTitle(v,w){this.state.type===1&&(w?this.title=o.localize(790,"Run: {0}",this.state.actions.validActions[0].action.title):v&&this._preferredKbLabel?this.title=o.localize(791,"Show Code Actions. Preferred Quick Fix Available ({0})",this._preferredKbLabel):!v&&this._quickFixKbLabel?this.title=o.localize(792,"Show Code Actions ({0})",this._quickFixKbLabel):v||(this.title=o.localize(793,"Show Code Actions")))}set title(v){this._domNode.title=v}};e.LightBulbWidget=f,e.LightBulbWidget=f=g=ke([ce(1,t.IKeybindingService)],f)}),define(ne[287],se([1,0,5,46,8,98,2,9,35,17,157,733,757,421,184,3,760,24,28,12,7,108,96,32,97,25,134,408,91,63]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D){"use strict";var T;Object.defineProperty(e,"__esModule",{value:!0}),e.CodeActionController=void 0;const M="quickfix-edit-highlight";let A=class extends y.Disposable{static{T=this}static{this.ID="editor.contrib.codeActionController"}static get(N){return N.getContribution(T.ID)}constructor(N,O,F,x,W,V,q,H,z,U,j){super(),this._commandService=q,this._configurationService=H,this._actionWidgetService=z,this._instantiationService=U,this._telemetryService=j,this._activeCodeActions=this._register(new y.MutableDisposable),this._showDisabled=!1,this._disposed=!1,this._editor=N,this._model=this._register(new S.CodeActionModel(this._editor,W.codeActionProvider,O,F,V,H,this._telemetryService)),this._register(this._model.onDidChangeState(Y=>this.update(Y))),this._lightBulbWidget=new E.Lazy(()=>{const Y=this._editor.getContribution(t.LightBulbWidget.ID);return Y&&this._register(Y.onClick(G=>this.showCodeActionsFromLightbulb(G.actions,G))),Y}),this._resolver=x.createInstance(n.CodeActionKeybindingResolver),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(N,O){if(N.allAIFixes&&N.validActions.length===1){const F=N.validActions[0],x=F.action.command;x&&x.id==="inlineChat.start"&&x.arguments&&x.arguments.length>=1&&(x.arguments[0]={...x.arguments[0],autoSend:!1}),await this._applyCodeAction(F,!1,!1,p.ApplyCodeActionReason.FromAILightbulb);return}await this.showCodeActionList(N,O,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(N,O,F){return this.showCodeActionList(O,F,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(N,O,F,x){if(!this._editor.hasModel())return;i.MessageController.get(this._editor)?.closeMessage();const W=this._editor.getPosition();this._trigger({type:1,triggerAction:O,filter:F,autoApply:x,context:{notAvailableMessage:N,position:W}})}_trigger(N){return this._model.trigger(N)}async _applyCodeAction(N,O,F,x){try{await this._instantiationService.invokeFunction(p.applyCodeAction,N,x,{preview:F,editor:this._editor})}finally{O&&this._trigger({type:2,triggerAction:w.CodeActionTriggerSource.QuickFix,filter:{}})}}hideLightBulbWidget(){this._lightBulbWidget.rawValue?.hide(),this._lightBulbWidget.rawValue?.gutterHide()}async update(N){if(N.type!==1){this.hideLightBulbWidget();return}let O;try{O=await N.actions}catch(x){(0,I.onUnexpectedError)(x);return}if(!(this._disposed||this._editor.getSelection()?.startLineNumber!==N.position.lineNumber))if(this._lightBulbWidget.value?.update(O,N.trigger,N.position),N.trigger.type===1){if(N.trigger.filter?.include){const W=this.tryGetValidActionToApply(N.trigger,O);if(W){try{this.hideLightBulbWidget(),await this._applyCodeAction(W,!1,!1,p.ApplyCodeActionReason.FromCodeActions)}finally{O.dispose()}return}if(N.trigger.context){const V=this.getInvalidActionThatWouldHaveBeenApplied(N.trigger,O);if(V&&V.action.disabled){i.MessageController.get(this._editor)?.showMessage(V.action.disabled,N.trigger.context.position),O.dispose();return}}}const x=!!N.trigger.filter?.include;if(N.trigger.context&&(!O.allActions.length||!x&&!O.validActions.length)){i.MessageController.get(this._editor)?.showMessage(N.trigger.context.notAvailableMessage,N.trigger.context.position),this._activeCodeActions.value=O,O.dispose();return}this._activeCodeActions.value=O,this.showCodeActionList(O,this.toCoords(N.position),{includeDisabledActions:x,fromLightbulb:!1})}else this._actionWidgetService.isVisible?O.dispose():this._activeCodeActions.value=O}getInvalidActionThatWouldHaveBeenApplied(N,O){if(O.allActions.length&&(N.autoApply==="first"&&O.validActions.length===0||N.autoApply==="ifSingle"&&O.allActions.length===1))return O.allActions.find(({action:F})=>F.disabled)}tryGetValidActionToApply(N,O){if(O.validActions.length&&(N.autoApply==="first"&&O.validActions.length>0||N.autoApply==="ifSingle"&&O.validActions.length===1))return O.validActions[0]}static{this.DECORATION=_.ModelDecorationOptions.register({description:"quickfix-highlight",className:M})}async showCodeActionList(N,O,F){const x=this._editor.createDecorationsCollection(),W=this._editor.getDomNode();if(!W)return;const V=F.includeDisabledActions&&(this._showDisabled||N.validActions.length===0)?N.allActions:N.validActions;if(!V.length)return;const q=m.Position.isIPosition(O)?this.toCoords(O):O,H={onSelect:async(z,U)=>{this._applyCodeAction(z,!0,!!U,F.fromLightbulb?p.ApplyCodeActionReason.FromAILightbulb:p.ApplyCodeActionReason.FromCodeActions),this._actionWidgetService.hide(!1),x.clear()},onHide:z=>{this._editor?.focus(),x.clear()},onHover:async(z,U)=>{if(U.isCancellationRequested)return;let j=!1;const Y=z.action.kind;if(Y){const G=new L.HierarchicalKind(Y);j=[w.CodeActionKind.RefactorExtract,w.CodeActionKind.RefactorInline,w.CodeActionKind.RefactorRewrite,w.CodeActionKind.RefactorMove,w.CodeActionKind.Source].some(R=>R.contains(G))}return{canPreview:j||!!z.action.edit?.edits.length}},onFocus:z=>{if(z&&z.action){const U=z.action.ranges,j=z.action.diagnostics;if(x.clear(),U&&U.length>0){const Y=j&&j?.length>1?j.map(G=>({range:G,options:T.DECORATION})):U.map(G=>({range:G,options:T.DECORATION}));x.set(Y)}else if(j&&j.length>0){const Y=j.map(K=>({range:K,options:T.DECORATION}));x.set(Y);const G=j[0];if(G.startLineNumber&&G.startColumn){const K=this._editor.getModel()?.getWordAtPosition({lineNumber:G.startLineNumber,column:G.startColumn})?.word;k.status((0,s.localize)(774,"Context: {0} at line {1} and column {2}.",K,G.startLineNumber,G.startColumn))}}}else x.clear()}};this._actionWidgetService.show("codeActionWidget",!0,(0,o.toMenuItems)(V,this._shouldShowHeaders(),this._resolver.getResolver()),H,q,W,this._getActionBarActions(N,O,F))}toCoords(N){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(N,1),this._editor.render();const O=this._editor.getScrolledVisiblePosition(N),F=(0,d.getDomNodePagePosition)(this._editor.getDomNode()),x=F.left+O.left,W=F.top+O.top+O.height;return{x,y:W}}_shouldShowHeaders(){const N=this._editor?.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:N?.uri})}_getActionBarActions(N,O,F){if(F.fromLightbulb)return[];const x=N.documentation.map(W=>({id:W.id,label:W.title,tooltip:W.tooltip??"",class:void 0,enabled:!0,run:()=>this._commandService.executeCommand(W.id,...W.arguments??[])}));return F.includeDisabledActions&&N.validActions.length>0&&N.allActions.length!==N.validActions.length&&x.push(this._showDisabled?{id:"hideMoreActions",label:(0,s.localize)(775,"Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(N,O,F))}:{id:"showMoreActions",label:(0,s.localize)(776,"Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(N,O,F))}),x}};e.CodeActionController=A,e.CodeActionController=A=T=ke([ce(1,u.IMarkerService),ce(2,a.IContextKeyService),ce(3,r.IInstantiationService),ce(4,b.ILanguageFeaturesService),ce(5,C.IEditorProgressService),ce(6,c.ICommandService),ce(7,l.IConfigurationService),ce(8,g.IActionWidgetService),ce(9,r.IInstantiationService),ce(10,D.ITelemetryService)],A),(0,v.registerThemingParticipant)((P,N)=>{((x,W)=>{W&&N.addRule(`.monaco-editor ${x} { background-color: ${W}; }`)})(".quickfix-edit-highlight",P.getColor(f.editorFindMatchHighlight));const F=P.getColor(f.editorFindMatchHighlightBorder);F&&N.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${(0,h.isHighContrast)(P.type)?"dotted":"solid"} ${F}; box-sizing: border-box; }`)})}),define(ne[816],se([1,0,91,11,15,20,157,3,12,134,287,408]),function(oe,e,d,k,I,E,y,m,_,b,p,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.AutoFixAction=e.FixAllAction=e.OrganizeImportsAction=e.SourceAction=e.RefactorAction=e.CodeActionCommand=e.QuickFixAction=void 0;function o(C){return _.ContextKeyExpr.regex(n.SUPPORTED_CODE_ACTIONS.keys()[0],new RegExp("(\\s|^)"+(0,k.escapeRegExpCharacters)(C.value)+"\\b"))}const t={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:m.localize(743,"Kind of the code action to run.")},apply:{type:"string",description:m.localize(744,"Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[m.localize(745,"Always apply the first returned code action."),m.localize(746,"Apply the first returned code action if it is the only one."),m.localize(747,"Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:m.localize(748,"Controls if only preferred code actions should be returned.")}}};function i(C,f,h,v,w=b.CodeActionTriggerSource.Default){C.hasModel()&&p.CodeActionController.get(C)?.manualTriggerAtCurrentPosition(f,w,h,v)}class s extends I.EditorAction{constructor(){super({id:y.quickFixCommandId,label:m.localize(749,"Quick Fix..."),alias:"Quick Fix...",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,E.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:2137,weight:100}})}run(f,h){return i(h,m.localize(750,"No code actions available"),void 0,void 0,b.CodeActionTriggerSource.QuickFix)}}e.QuickFixAction=s;class g extends I.EditorCommand{constructor(){super({id:y.codeActionCommandId,precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,E.EditorContextKeys.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:t}]}})}runEditorCommand(f,h,v){const w=b.CodeActionCommandArgs.fromUser(v,{kind:d.HierarchicalKind.Empty,apply:"ifSingle"});return i(h,typeof v?.kind=="string"?w.preferred?m.localize(751,"No preferred code actions for '{0}' available",v.kind):m.localize(752,"No code actions for '{0}' available",v.kind):w.preferred?m.localize(753,"No preferred code actions available"):m.localize(754,"No code actions available"),{include:w.kind,includeSourceActions:!0,onlyIncludePreferredActions:w.preferred},w.apply)}}e.CodeActionCommand=g;class c extends I.EditorAction{constructor(){super({id:y.refactorCommandId,label:m.localize(755,"Refactor..."),alias:"Refactor...",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,E.EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:_.ContextKeyExpr.and(E.EditorContextKeys.writable,o(b.CodeActionKind.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:t}]}})}run(f,h,v){const w=b.CodeActionCommandArgs.fromUser(v,{kind:b.CodeActionKind.Refactor,apply:"never"});return i(h,typeof v?.kind=="string"?w.preferred?m.localize(756,"No preferred refactorings for '{0}' available",v.kind):m.localize(757,"No refactorings for '{0}' available",v.kind):w.preferred?m.localize(758,"No preferred refactorings available"):m.localize(759,"No refactorings available"),{include:b.CodeActionKind.Refactor.contains(w.kind)?w.kind:d.HierarchicalKind.None,onlyIncludePreferredActions:w.preferred},w.apply,b.CodeActionTriggerSource.Refactor)}}e.RefactorAction=c;class l extends I.EditorAction{constructor(){super({id:y.sourceActionCommandId,label:m.localize(760,"Source Action..."),alias:"Source Action...",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,E.EditorContextKeys.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:_.ContextKeyExpr.and(E.EditorContextKeys.writable,o(b.CodeActionKind.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:t}]}})}run(f,h,v){const w=b.CodeActionCommandArgs.fromUser(v,{kind:b.CodeActionKind.Source,apply:"never"});return i(h,typeof v?.kind=="string"?w.preferred?m.localize(761,"No preferred source actions for '{0}' available",v.kind):m.localize(762,"No source actions for '{0}' available",v.kind):w.preferred?m.localize(763,"No preferred source actions available"):m.localize(764,"No source actions available"),{include:b.CodeActionKind.Source.contains(w.kind)?w.kind:d.HierarchicalKind.None,includeSourceActions:!0,onlyIncludePreferredActions:w.preferred},w.apply,b.CodeActionTriggerSource.SourceAction)}}e.SourceAction=l;class a extends I.EditorAction{constructor(){super({id:y.organizeImportsCommandId,label:m.localize(765,"Organize Imports"),alias:"Organize Imports",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,o(b.CodeActionKind.SourceOrganizeImports)),kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:1581,weight:100}})}run(f,h){return i(h,m.localize(766,"No organize imports action available"),{include:b.CodeActionKind.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",b.CodeActionTriggerSource.OrganizeImports)}}e.OrganizeImportsAction=a;class r extends I.EditorAction{constructor(){super({id:y.fixAllCommandId,label:m.localize(767,"Fix All"),alias:"Fix All",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,o(b.CodeActionKind.SourceFixAll))})}run(f,h){return i(h,m.localize(768,"No fix all action available"),{include:b.CodeActionKind.SourceFixAll,includeSourceActions:!0},"ifSingle",b.CodeActionTriggerSource.FixAll)}}e.FixAllAction=r;class u extends I.EditorAction{constructor(){super({id:y.autoFixCommandId,label:m.localize(769,"Auto Fix..."),alias:"Auto Fix...",precondition:_.ContextKeyExpr.and(E.EditorContextKeys.writable,o(b.CodeActionKind.QuickFix)),kbOpts:{kbExpr:E.EditorContextKeys.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(f,h){return i(h,m.localize(770,"No auto fixes available"),{include:b.CodeActionKind.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",b.CodeActionTriggerSource.AutoFix)}}e.AutoFixAction=u}),define(ne[817],se([1,0,15,274,816,287,421,3,109,38]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorContribution)(E.CodeActionController.ID,E.CodeActionController,3),(0,d.registerEditorContribution)(y.LightBulbWidget.ID,y.LightBulbWidget,4),(0,d.registerEditorAction)(I.QuickFixAction),(0,d.registerEditorAction)(I.RefactorAction),(0,d.registerEditorAction)(I.SourceAction),(0,d.registerEditorAction)(I.OrganizeImportsAction),(0,d.registerEditorAction)(I.AutoFixAction),(0,d.registerEditorAction)(I.FixAllAction),(0,d.registerEditorCommand)(new I.CodeActionCommand),b.Registry.as(_.Extensions.Configuration).registerConfiguration({...k.editorConfigurationBaseNode,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:5,description:m.localize(771,"Enable/disable showing group headers in the Code Action menu."),default:!0}}}),b.Registry.as(_.Extensions.Configuration).registerConfiguration({...k.editorConfigurationBaseNode,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:5,description:m.localize(772,"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}}),b.Registry.as(_.Extensions.Configuration).registerConfiguration({...k.editorConfigurationBaseNode,properties:{"editor.codeActions.triggerOnFocusChange":{type:"boolean",scope:5,markdownDescription:m.localize(773,"Enable triggering {0} when {1} is set to {2}. Code Actions must be set to {3} to be triggered for window and focus changes.","`#editor.codeActionsOnSave#`","`#files.autoSave#`","`afterDelay`","`always`"),default:!1}}})}),define(ne[818],se([1,0,5,114,4,35,506]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CodeLensWidget=e.CodeLensHelper=void 0;class y{constructor(o,t,i){this.afterColumn=1073741824,this.afterLineNumber=o,this.heightInPx=t,this._onHeight=i,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(o){this._lastHeight===void 0?this._lastHeight=o:this._lastHeight!==o&&(this._lastHeight=o,this._onHeight())}isVisible(){return this._lastHeight!==0&&this.domNode.hasAttribute("monaco-visible-view-zone")}}class m{static{this._idPool=0}constructor(o,t){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=o,this._id=`codelens.widget-${m._idPool++}`,this.updatePosition(t),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(o,t){this._commands.clear();const i=[];let s=!1;for(let g=0;g{r.symbol.command&&a.push(r.symbol),i.addDecoration({range:r.symbol.range,options:b},C=>this._decorationIds[u]=C),l?l=I.Range.plusRange(l,r.symbol.range):l=I.Range.lift(r.symbol.range)}),this._viewZone=new y(l.startLineNumber-1,g,c),this._viewZoneId=s.addZone(this._viewZone),a.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(a,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new m(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(o,t){this._decorationIds.forEach(o.removeDecoration,o),this._decorationIds=[],t?.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some((o,t)=>{const i=this._editor.getModel().getDecorationRange(o),s=this._data[t].symbol;return!!(i&&I.Range.isEmpty(s.range)===i.isEmpty())})}updateCodeLensSymbols(o,t){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=o,this._data.forEach((i,s)=>{t.addDecoration({range:i.symbol.range,options:b},g=>this._decorationIds[s]=g)})}updateHeight(o,t){this._viewZone.heightInPx=o,t.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(o){if(!this._viewZone.isVisible())return null;for(let t=0;tthis._resolveCodeLensesInViewport(),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeConfiguration(w=>{(w.hasChanged(50)||w.hasChanged(19)||w.hasChanged(18))&&this._updateLensStyle(),w.hasChanged(17)&&this._onModelChange()})),this._disposables.add(u.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),this._currentCodeLensModel?.dispose()}_getLayoutInfo(){const r=Math.max(1.3,this._editor.getOption(67)/this._editor.getOption(52));let u=this._editor.getOption(19);return(!u||u<5)&&(u=this._editor.getOption(52)*.9|0),{fontSize:u,codeLensHeight:u*r|0}}_updateLensStyle(){const{codeLensHeight:r,fontSize:u}=this._getLayoutInfo(),C=this._editor.getOption(18),f=this._editor.getOption(50),{style:h}=this._editor.getContainerDomNode();h.setProperty("--vscode-editorCodeLens-lineHeight",`${r}px`),h.setProperty("--vscode-editorCodeLens-fontSize",`${u}px`),h.setProperty("--vscode-editorCodeLens-fontFeatureSettings",f.fontFeatureSettings),C&&(h.setProperty("--vscode-editorCodeLens-fontFamily",C),h.setProperty("--vscode-editorCodeLens-fontFamilyDefault",m.EDITOR_FONT_DEFAULTS.fontFamily)),this._editor.changeViewZones(v=>{for(const w of this._lenses)w.updateHeight(r,v)})}_localDispose(){this._getCodeLensModelPromise?.cancel(),this._getCodeLensModelPromise=void 0,this._resolveCodeLensesPromise?.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),this._currentCodeLensModel?.dispose()}_onModelChange(){this._localDispose();const r=this._editor.getModel();if(!r||!this._editor.getOption(17)||r.isTooLargeForTokenization())return;const u=this._codeLensCache.get(r);if(u&&this._renderCodeLensSymbols(u),!this._languageFeaturesService.codeLensProvider.has(r)){u&&(0,d.disposableTimeout)(()=>{const f=this._codeLensCache.get(r);u===f&&(this._codeLensCache.delete(r),this._onModelChange())},30*1e3,this._localToDispose);return}for(const f of this._languageFeaturesService.codeLensProvider.all(r))if(typeof f.onDidChange=="function"){const h=f.onDidChange(()=>C.schedule());this._localToDispose.add(h)}const C=new d.RunOnceScheduler(()=>{const f=Date.now();this._getCodeLensModelPromise?.cancel(),this._getCodeLensModelPromise=(0,d.createCancelablePromise)(h=>(0,b.getCodeLensModel)(this._languageFeaturesService.codeLensProvider,r,h)),this._getCodeLensModelPromise.then(h=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=h,this._codeLensCache.put(r,h);const v=this._provideCodeLensDebounce.update(r,Date.now()-f);C.delay=v,this._renderCodeLensSymbols(h),this._resolveCodeLensesInViewportSoon()},k.onUnexpectedError)},this._provideCodeLensDebounce.get(r));this._localToDispose.add(C),this._localToDispose.add((0,I.toDisposable)(()=>this._resolveCodeLensesScheduler.cancel())),this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._editor.changeDecorations(f=>{this._editor.changeViewZones(h=>{const v=[];let w=-1;this._lenses.forEach(L=>{!L.isValid()||w===L.getLineNumber()?v.push(L):(L.update(h),w=L.getLineNumber())});const S=new n.CodeLensHelper;v.forEach(L=>{L.dispose(S,h),this._lenses.splice(this._lenses.indexOf(L),1)}),S.commit(f)})}),C.schedule(),this._resolveCodeLensesScheduler.cancel(),this._resolveCodeLensesPromise?.cancel(),this._resolveCodeLensesPromise=void 0})),this._localToDispose.add(this._editor.onDidFocusEditorText(()=>{C.schedule()})),this._localToDispose.add(this._editor.onDidBlurEditorText(()=>{C.cancel()})),this._localToDispose.add(this._editor.onDidScrollChange(f=>{f.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add((0,I.toDisposable)(()=>{if(this._editor.getModel()){const f=E.StableEditorScrollState.capture(this._editor);this._editor.changeDecorations(h=>{this._editor.changeViewZones(v=>{this._disposeAllLenses(h,v)})}),f.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseDown(f=>{if(f.target.type!==9)return;let h=f.target.element;if(h?.tagName==="SPAN"&&(h=h.parentElement),h?.tagName==="A")for(const v of this._lenses){const w=v.getCommand(h);if(w){this._commandService.executeCommand(w.id,...w.arguments||[]).catch(S=>this._notificationService.error(S));break}}})),C.schedule()}_disposeAllLenses(r,u){const C=new n.CodeLensHelper;for(const f of this._lenses)f.dispose(C,u);r&&C.commit(r),this._lenses.length=0}_renderCodeLensSymbols(r){if(!this._editor.hasModel())return;const u=this._editor.getModel().getLineCount(),C=[];let f;for(const w of r.lenses){const S=w.symbol.range.startLineNumber;S<1||S>u||(f&&f[f.length-1].symbol.range.startLineNumber===S?f.push(w):(f=[w],C.push(f)))}if(!C.length&&!this._lenses.length)return;const h=E.StableEditorScrollState.capture(this._editor),v=this._getLayoutInfo();this._editor.changeDecorations(w=>{this._editor.changeViewZones(S=>{const L=new n.CodeLensHelper;let D=0,T=0;for(;Tthis._resolveCodeLensesInViewportSoon())),D++,T++)}for(;Dthis._resolveCodeLensesInViewportSoon())),T++;L.commit(w)})}),h.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){this._resolveCodeLensesPromise?.cancel(),this._resolveCodeLensesPromise=void 0;const r=this._editor.getModel();if(!r)return;const u=[],C=[];if(this._lenses.forEach(v=>{const w=v.computeIfNecessary(r);w&&(u.push(w),C.push(v))}),u.length===0)return;const f=Date.now(),h=(0,d.createCancelablePromise)(v=>{const w=u.map((S,L)=>{const D=new Array(S.length),T=S.map((M,A)=>!M.symbol.command&&typeof M.provider.resolveCodeLens=="function"?Promise.resolve(M.provider.resolveCodeLens(r,M.symbol,v)).then(P=>{D[A]=P},k.onUnexpectedExternalError):(D[A]=M.symbol,Promise.resolve(void 0)));return Promise.all(T).then(()=>{!v.isCancellationRequested&&!C[L].isDisposed()&&C[L].updateCommands(D)})});return Promise.all(w)});this._resolveCodeLensesPromise=h,this._resolveCodeLensesPromise.then(()=>{const v=this._resolveCodeLensesDebounce.update(r,Date.now()-f);this._resolveCodeLensesScheduler.delay=v,this._currentCodeLensModel&&this._codeLensCache.put(r,this._currentCodeLensModel),this._oldCodeLensModels.clear(),h===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)},v=>{(0,k.onUnexpectedError)(v),h===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)})}async getModel(){return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,this._currentCodeLensModel?.isDisposed?void 0:this._currentCodeLensModel}};e.CodeLensContribution=l,e.CodeLensContribution=l=ke([ce(1,c.ILanguageFeaturesService),ce(2,g.ILanguageFeatureDebounceService),ce(3,t.ICommandService),ce(4,i.INotificationService),ce(5,p.ICodeLensCache)],l),(0,y.registerEditorContribution)(l.ID,l,1),(0,y.registerEditorAction)(class extends y.EditorAction{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:_.EditorContextKeys.hasCodeLensProvider,label:(0,o.localize)(794,"Show CodeLens Commands For Current Line"),alias:"Show CodeLens Commands For Current Line"})}async run(r,u){if(!u.hasModel())return;const C=r.get(s.IQuickInputService),f=r.get(t.ICommandService),h=r.get(i.INotificationService),v=u.getSelection().positionLineNumber,w=u.getContribution(l.ID);if(!w)return;const S=await w.getModel();if(!S)return;const L=[];for(const M of S.lenses)M.symbol.command&&M.symbol.range.startLineNumber===v&&L.push({label:M.symbol.command.title,command:M.symbol.command});if(L.length===0)return;const D=await C.pick(L,{canPickMany:!1,placeHolder:(0,o.localize)(795,"Select a command")});if(!D)return;let T=D.command;if(S.isDisposed){const A=(await w.getModel())?.lenses.find(P=>P.symbol.range.startLineNumber===v&&P.symbol.command?.title===T.title);if(!A||!A.symbol.command)return;T=A.symbol.command}try{await f.executeCommand(T.id,...T.arguments||[])}catch(M){h.error(M)}}})}),define(ne[422],se([1,0,14,33,8,6,2,54,11,185,15,4,35,79,17,388,28]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";var c;Object.defineProperty(e,"__esModule",{value:!0}),e.DecoratorLimitReporter=e.ColorDetector=e.ColorDecorationInjectedTextMarker=void 0,e.ColorDecorationInjectedTextMarker=Object.create({});let l=class extends y.Disposable{static{c=this}static{this.ID="editor.contrib.colorDetector"}static{this.RECOMPUTE_TIME=1e3}constructor(u,C,f,h){super(),this._editor=u,this._configurationService=C,this._languageFeaturesService=f,this._localToDispose=this._register(new y.DisposableStore),this._decorationsIds=[],this._colorDatas=new Map,this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=new b.DynamicCssRules(this._editor),this._decoratorLimitReporter=new a,this._colorDecorationClassRefs=this._register(new y.DisposableStore),this._debounceInformation=h.for(f.colorProvider,"Document Colors",{min:c.RECOMPUTE_TIME}),this._register(u.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(u.onDidChangeModelLanguage(()=>this.updateColors())),this._register(f.colorProvider.onDidChange(()=>this.updateColors())),this._register(u.onDidChangeConfiguration(v=>{const w=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(148);const S=w!==this._isColorDecoratorsEnabled||v.hasChanged(21),L=v.hasChanged(148);(S||L)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(148),this.updateColors()}isEnabled(){const u=this._editor.getModel();if(!u)return!1;const C=u.getLanguageId(),f=this._configurationService.getValue(C);if(f&&typeof f=="object"){const h=f.colorDecorators;if(h&&h.enable!==void 0&&!h.enable)return h.enable}return this._editor.getOption(20)}static get(u){return u.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;const u=this._editor.getModel();!u||!this._languageFeaturesService.colorProvider.has(u)||(this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._timeoutTimer||(this._timeoutTimer=new d.TimeoutTimer,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(u)))})),this.beginCompute())}async beginCompute(){this._computePromise=(0,d.createCancelablePromise)(async u=>{const C=this._editor.getModel();if(!C)return[];const f=new m.StopWatch(!1),h=await(0,s.getColors)(this._languageFeaturesService.colorProvider,C,u,this._isDefaultColorDecoratorsEnabled);return this._debounceInformation.update(C,f.elapsed()),h});try{const u=await this._computePromise;this.updateDecorations(u),this.updateColorDecorators(u),this._computePromise=null}catch(u){(0,I.onUnexpectedError)(u)}}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(u){const C=u.map(f=>({range:{startLineNumber:f.colorInfo.range.startLineNumber,startColumn:f.colorInfo.range.startColumn,endLineNumber:f.colorInfo.range.endLineNumber,endColumn:f.colorInfo.range.endColumn},options:o.ModelDecorationOptions.EMPTY}));this._editor.changeDecorations(f=>{this._decorationsIds=f.deltaDecorations(this._decorationsIds,C),this._colorDatas=new Map,this._decorationsIds.forEach((h,v)=>this._colorDatas.set(h,u[v]))})}updateColorDecorators(u){this._colorDecorationClassRefs.clear();const C=[],f=this._editor.getOption(21);for(let v=0;vthis._colorDatas.has(h.id));return f.length===0?null:this._colorDatas.get(f[0].id)}isColorDecoration(u){return this._colorDecoratorIds.has(u)}};e.ColorDetector=l,e.ColorDetector=l=c=ke([ce(1,g.IConfigurationService),ce(2,i.ILanguageFeaturesService),ce(3,t.ILanguageFeatureDebounceService)],l);class a{constructor(){this._onDidChange=new E.Emitter,this._computed=0,this._limited=!1}update(u,C){(u!==this._computed||C!==this._limited)&&(this._computed=u,this._limited=C,this._onDidChange.fire())}}e.DecoratorLimitReporter=a,(0,p.registerEditorContribution)(l.ID,l,1)}),define(ne[288],se([1,0,14,18,33,2,4,388,422,608,763,84,25,5]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneColorPickerParticipant=e.StandaloneColorPickerHover=e.ColorHoverParticipant=e.ColorHover=void 0;class i{constructor(f,h,v,w){this.owner=f,this.range=h,this.model=v,this.provider=w,this.forceShowAtRange=!0}isValidForHoverAnchor(f){return f.type===1&&this.range.startColumn<=f.range.startColumn&&this.range.endColumn>=f.range.endColumn}}e.ColorHover=i;let s=class{constructor(f,h){this._editor=f,this._themeService=h,this.hoverOrdinal=2}computeSync(f,h){return[]}computeAsync(f,h,v){return d.AsyncIterableObject.fromPromise(this._computeAsync(f,h,v))}async _computeAsync(f,h,v){if(!this._editor.hasModel())return[];const w=_.ColorDetector.get(this._editor);if(!w)return[];for(const S of h){if(!w.isColorDecoration(S))continue;const L=w.getColorData(S.range.getStartPosition());if(L)return[await l(this,this._editor.getModel(),L.colorInfo,L.provider)]}return[]}renderHoverParts(f,h){const v=a(this,this._editor,this._themeService,h,f);if(!v)return new n.RenderedHoverParts([]);this._colorPicker=v.colorPicker;const w={hoverPart:v.hoverPart,hoverElement:this._colorPicker.domNode,dispose(){v.disposables.dispose()}};return new n.RenderedHoverParts([w])}handleResize(){this._colorPicker?.layout()}isColorPickerVisible(){return!!this._colorPicker}};e.ColorHoverParticipant=s,e.ColorHoverParticipant=s=ke([ce(1,o.IThemeService)],s);class g{constructor(f,h,v,w){this.owner=f,this.range=h,this.model=v,this.provider=w}}e.StandaloneColorPickerHover=g;let c=class{constructor(f,h){this._editor=f,this._themeService=h,this._color=null}async createColorHover(f,h,v){if(!this._editor.hasModel()||!_.ColorDetector.get(this._editor))return null;const S=await(0,m.getColors)(v,this._editor.getModel(),k.CancellationToken.None);let L=null,D=null;for(const P of S){const N=P.colorInfo;y.Range.containsRange(N.range,f.range)&&(L=N,D=P.provider)}const T=L??f,M=D??h,A=!!L;return{colorHover:await l(this,this._editor.getModel(),T,M),foundInEditor:A}}async updateEditorModel(f){if(!this._editor.hasModel())return;const h=f.model;let v=new y.Range(f.range.startLineNumber,f.range.startColumn,f.range.endLineNumber,f.range.endColumn);this._color&&(await u(this._editor.getModel(),h,this._color,v,f),v=r(this._editor,v,h))}renderHoverParts(f,h){return a(this,this._editor,this._themeService,h,f)}set color(f){this._color=f}get color(){return this._color}};e.StandaloneColorPickerParticipant=c,e.StandaloneColorPickerParticipant=c=ke([ce(1,o.IThemeService)],c);async function l(C,f,h,v){const w=f.getValueInRange(h.range),{red:S,green:L,blue:D,alpha:T}=h.color,M=new I.RGBA(Math.round(S*255),Math.round(L*255),Math.round(D*255),T),A=new I.Color(M),P=await(0,m.getColorPresentations)(f,h,v,k.CancellationToken.None),N=new b.ColorPickerModel(A,[],0);return N.colorPresentations=P||[],N.guessColorPresentation(A,w),C instanceof s?new i(C,y.Range.lift(h.range),N,v):new g(C,y.Range.lift(h.range),N,v)}function a(C,f,h,v,w){if(v.length===0||!f.hasModel())return;if(w.setMinimumDimensions){const N=f.getOption(67)+8;w.setMinimumDimensions(new t.Dimension(302,N))}const S=new E.DisposableStore,L=v[0],D=f.getModel(),T=L.model,M=S.add(new p.ColorPickerWidget(w.fragment,T,f.getOption(144),h,C instanceof c));let A=!1,P=new y.Range(L.range.startLineNumber,L.range.startColumn,L.range.endLineNumber,L.range.endColumn);if(C instanceof c){const N=L.model.color;C.color=N,u(D,T,N,P,L),S.add(T.onColorFlushed(O=>{C.color=O}))}else S.add(T.onColorFlushed(async N=>{await u(D,T,N,P,L),A=!0,P=r(f,P,T)}));return S.add(T.onDidChangeColor(N=>{u(D,T,N,P,L)})),S.add(f.onDidChangeModelContent(N=>{A?A=!1:(w.hide(),f.focus())})),{hoverPart:L,colorPicker:M,disposables:S}}function r(C,f,h){const v=[],w=h.presentation.textEdit??{range:f,text:h.presentation.label,forceMoveMarkers:!1};v.push(w),h.presentation.additionalTextEdits&&v.push(...h.presentation.additionalTextEdits);const S=y.Range.lift(w.range),L=C.getModel()._setTrackedRange(null,S,3);return C.executeEdits("colorpicker",v),C.pushUndoStop(),C.getModel()._getTrackedRange(L)??S}async function u(C,f,h,v,w){const S=await(0,m.getColorPresentations)(C,{range:v,color:{red:h.rgba.r/255,green:h.rgba.g/255,blue:h.rgba.b/255,alpha:h.rgba.a}},w.provider,k.CancellationToken.None);f.colorPresentations=S||[]}}),define(ne[820],se([1,0,2,288,7,391,31,6,17,15,20,12,385,5,100,227]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";var s,g;Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneColorPickerWidget=e.StandaloneColorPickerController=void 0;let c=class extends d.Disposable{static{s=this}static{this.ID="editor.contrib.standaloneColorPickerController"}constructor(f,h,v){super(),this._editor=f,this._instantiationService=v,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=p.EditorContextKeys.standaloneColorPickerVisible.bindTo(h),this._standaloneColorPickerFocused=p.EditorContextKeys.standaloneColorPickerFocused.bindTo(h)}showOrFocus(){this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||this._standaloneColorPickerWidget?.focus():this._standaloneColorPickerWidget=this._instantiationService.createInstance(r,this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused))}hide(){this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerWidget?.hide(),this._editor.focus()}insertColor(){this._standaloneColorPickerWidget?.updateEditor(),this.hide()}static get(f){return f.getContribution(s.ID)}};e.StandaloneColorPickerController=c,e.StandaloneColorPickerController=c=s=ke([ce(1,n.IContextKeyService),ce(2,I.IInstantiationService)],c),(0,b.registerEditorContribution)(c.ID,c,1);const l=8,a=22;let r=class extends d.Disposable{static{g=this}static{this.ID="editor.contrib.standaloneColorPickerWidget"}constructor(f,h,v,w,S,L,D){super(),this._editor=f,this._standaloneColorPickerVisible=h,this._standaloneColorPickerFocused=v,this._keybindingService=S,this._languageFeaturesService=L,this._editorWorkerService=D,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement("div"),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new m.Emitter),this.onResult=this._onResult.event,this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=w.createInstance(k.StandaloneColorPickerParticipant,this._editor),this._position=this._editor._getViewModel()?.getPrimaryCursorState().modelState.position;const T=this._editor.getSelection(),M=T?{startLineNumber:T.startLineNumber,startColumn:T.startColumn,endLineNumber:T.endLineNumber,endColumn:T.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},A=this._register(t.trackFocus(this._body));this._register(A.onDidBlur(P=>{this.hide()})),this._register(A.onDidFocus(P=>{this.focus()})),this._register(this._editor.onDidChangeCursorPosition(()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()})),this._register(this._editor.onMouseMove(P=>{const N=P.target.element?.classList;N&&N.contains("colorpicker-color-decoration")&&this.hide()})),this._register(this.onResult(P=>{this._render(P.value,P.foundInEditor)})),this._start(M),this._body.style.zIndex="50",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return g.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;const f=this._editor.getOption(60).above;return{position:this._position,secondaryPosition:this._position,preference:f?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}async _start(f){const h=await this._computeAsync(f);h&&this._onResult.fire(new u(h.result,h.foundInEditor))}async _computeAsync(f){if(!this._editor.hasModel())return null;const h={range:f,color:{red:0,green:0,blue:0,alpha:1}},v=await this._standaloneColorPickerParticipant.createColorHover(h,new o.DefaultDocumentColorProvider(this._editorWorkerService),this._languageFeaturesService.colorProvider);return v?{result:v.colorHover,foundInEditor:v.foundInEditor}:null}_render(f,h){const v=document.createDocumentFragment(),w=this._register(new E.EditorHoverStatusBar(this._keybindingService)),S={fragment:v,statusBar:w,onContentsChanged:()=>{},hide:()=>this.hide()};this._colorHover=f;const L=this._standaloneColorPickerParticipant.renderHoverParts(S,[f]);if(!L)return;this._register(L.disposables);const D=L.colorPicker;this._body.classList.add("standalone-colorpicker-body"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+"px",this._body.style.maxWidth=Math.max(this._editor.getLayoutInfo().width*.66,500)+"px",this._body.tabIndex=0,this._body.appendChild(v),D.layout();const T=D.body,M=T.saturationBox.domNode.clientWidth,A=T.domNode.clientWidth-M-a-l,P=D.body.enterButton;P?.onClicked(()=>{this.updateEditor(),this.hide()});const N=D.header,O=N.pickedColorNode;O.style.width=M+l+"px";const F=N.originalColorNode;F.style.width=A+"px",D.header.closeButton?.onClicked(()=>{this.hide()}),h&&(P&&(P.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(f.range)),this._editor.layoutContentWidget(this)}};e.StandaloneColorPickerWidget=r,e.StandaloneColorPickerWidget=r=g=ke([ce(3,I.IInstantiationService),ce(4,y.IKeybindingService),ce(5,_.ILanguageFeaturesService),ce(6,i.IEditorWorkerService)],r);class u{constructor(f,h){this.value=f,this.foundInEditor=h}}}),define(ne[821],se([1,0,15,3,820,20,29,227]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ShowOrFocusStandaloneColorPicker=void 0;class m extends d.EditorAction2{constructor(){super({id:"editor.action.showOrFocusStandaloneColorPicker",title:{...(0,k.localize2)(801,"Show or Focus Standalone Color Picker"),mnemonicTitle:(0,k.localize)(798,"&&Show or Focus Standalone Color Picker")},precondition:void 0,menu:[{id:y.MenuId.CommandPalette}],metadata:{description:(0,k.localize2)(802,"Show or focus a standalone color picker which uses the default color provider. It displays hex/rgb/hsl colors.")}})}runEditorCommand(n,o){I.StandaloneColorPickerController.get(o)?.showOrFocus()}}e.ShowOrFocusStandaloneColorPicker=m;class _ extends d.EditorAction{constructor(){super({id:"editor.action.hideColorPicker",label:(0,k.localize)(799,"Hide the Color Picker"),alias:"Hide the Color Picker",precondition:E.EditorContextKeys.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100},metadata:{description:(0,k.localize2)(803,"Hide the standalone color picker.")}})}run(n,o){I.StandaloneColorPickerController.get(o)?.hide()}}class b extends d.EditorAction{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:(0,k.localize)(800,"Insert Color with Standalone Color Picker"),alias:"Insert Color with Standalone Color Picker",precondition:E.EditorContextKeys.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100},metadata:{description:(0,k.localize2)(804,"Insert hex/rgb/hsl colors with the focused standalone color picker.")}})}run(n,o){I.StandaloneColorPickerController.get(o)?.insertColor()}}(0,d.registerEditorAction)(_),(0,d.registerEditorAction)(b),(0,y.registerAction2)(m)}),define(ne[822],se([1,0,2,16,15,9,4,23,35,610,507]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DragAndDropController=void 0;function p(o){return k.isMacintosh?o.altKey:o.ctrlKey}class n extends d.Disposable{static{this.ID="editor.contrib.dragAndDrop"}static{this.TRIGGER_KEY_VALUE=k.isMacintosh?6:5}constructor(t){super(),this._editor=t,this._dndDecorationIds=this._editor.createDecorationsCollection(),this._register(this._editor.onMouseDown(i=>this._onEditorMouseDown(i))),this._register(this._editor.onMouseUp(i=>this._onEditorMouseUp(i))),this._register(this._editor.onMouseDrag(i=>this._onEditorMouseDrag(i))),this._register(this._editor.onMouseDrop(i=>this._onEditorMouseDrop(i))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown(i=>this.onEditorKeyDown(i))),this._register(this._editor.onKeyUp(i=>this.onEditorKeyUp(i))),this._register(this._editor.onDidBlurEditorWidget(()=>this.onEditorBlur())),this._register(this._editor.onDidBlurEditorText(()=>this.onEditorBlur())),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(t){!this._editor.getOption(35)||this._editor.getOption(22)||(p(t)&&(this._modifierPressed=!0),this._mouseDown&&p(t)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(t){!this._editor.getOption(35)||this._editor.getOption(22)||(p(t)&&(this._modifierPressed=!1),this._mouseDown&&t.keyCode===n.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}_onEditorMouseDown(t){this._mouseDown=!0}_onEditorMouseUp(t){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(t){const i=t.target;if(this._dragSelection===null){const g=(this._editor.getSelections()||[]).filter(c=>i.position&&c.containsPosition(i.position));if(g.length===1)this._dragSelection=g[0];else return}p(t.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),i.position&&(this._dragSelection.containsPosition(i.position)?this._removeDecoration():this.showAt(i.position))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(t){if(t.target&&(this._hitContent(t.target)||this._hitMargin(t.target))&&t.target.position){const i=new E.Position(t.target.position.lineNumber,t.target.position.column);if(this._dragSelection===null){let s=null;if(t.event.shiftKey){const g=this._editor.getSelection();if(g){const{selectionStartLineNumber:c,selectionStartColumn:l}=g;s=[new m.Selection(c,l,i.lineNumber,i.column)]}}else s=(this._editor.getSelections()||[]).map(g=>g.containsPosition(i)?new m.Selection(i.lineNumber,i.column,i.lineNumber,i.column):g);this._editor.setSelections(s||[],"mouse",3)}else(!this._dragSelection.containsPosition(i)||(p(t.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(i)||this._dragSelection.getStartPosition().equals(i)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(n.ID,new b.DragAndDropCommand(this._dragSelection,i,p(t.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}static{this._DECORATION_OPTIONS=_.ModelDecorationOptions.register({description:"dnd-target",className:"dnd-target"})}showAt(t){this._dndDecorationIds.set([{range:new y.Range(t.lineNumber,t.column,t.lineNumber,t.column),options:n._DECORATION_OPTIONS}]),this._editor.revealPosition(t,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(t){return t.type===6||t.type===7}_hitMargin(t){return t.type===2||t.type===3||t.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}e.DragAndDropController=n,(0,I.registerEditorContribution)(n.ID,n,2)}),define(ne[823],se([1,0,4,40,35,32,25]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FindDecorations=void 0;class m{constructor(b){this._editor=b,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const b=this._findScopeDecorationIds.map(p=>this._editor.getModel().getDecorationRange(p)).filter(p=>!!p);if(b.length)return b}return null}getStartPosition(){return this._startPosition}setStartPosition(b){this._startPosition=b,this.setCurrentFindMatch(null)}_getDecorationIndex(b){const p=this._decorations.indexOf(b);return p>=0?p+1:1}getDecorationRangeAt(b){const p=b{if(this._highlightedDecorationId!==null&&(o.changeDecorationOptions(this._highlightedDecorationId,m._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),p!==null&&(this._highlightedDecorationId=p,o.changeDecorationOptions(this._highlightedDecorationId,m._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(o.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),p!==null){let t=this._editor.getModel().getDecorationRange(p);if(t.startLineNumber!==t.endLineNumber&&t.endColumn===1){const i=t.endLineNumber-1,s=this._editor.getModel().getLineMaxColumn(i);t=new d.Range(t.startLineNumber,t.startColumn,i,s)}this._rangeHighlightDecorationId=o.addDecoration(t,m._RANGE_HIGHLIGHT_DECORATION)}}),n}set(b,p){this._editor.changeDecorations(n=>{let o=m._FIND_MATCH_DECORATION;const t=[];if(b.length>1e3){o=m._FIND_MATCH_NO_OVERVIEW_DECORATION;const s=this._editor.getModel().getLineCount(),c=this._editor.getLayoutInfo().height/s,l=Math.max(2,Math.ceil(3/c));let a=b[0].range.startLineNumber,r=b[0].range.endLineNumber;for(let u=1,C=b.length;u=f.startLineNumber?f.endLineNumber>r&&(r=f.endLineNumber):(t.push({range:new d.Range(a,1,r,1),options:m._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),a=f.startLineNumber,r=f.endLineNumber)}t.push({range:new d.Range(a,1,r,1),options:m._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const i=new Array(b.length);for(let s=0,g=b.length;sn.removeDecoration(s)),this._findScopeDecorationIds=[]),p?.length&&(this._findScopeDecorationIds=p.map(s=>n.addDecoration(s,m._FIND_SCOPE_DECORATION)))})}matchBeforePosition(b){if(this._decorations.length===0)return null;for(let p=this._decorations.length-1;p>=0;p--){const n=this._decorations[p],o=this._editor.getModel().getDecorationRange(n);if(!(!o||o.endLineNumber>b.lineNumber)){if(o.endLineNumberb.column))return o}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(b){if(this._decorations.length===0)return null;for(let p=0,n=this._decorations.length;pb.lineNumber)return t;if(!(t.startColumn{if(this._editor.hasModel())return this.research(!1)},100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(a=>{(a.reason===3||a.reason===5||a.reason===6)&&this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(a=>{this._ignoreModelContentChanged||(a.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(a=>this._onStateChanged(a))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,(0,I.dispose)(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(c){this._isDisposed||this._editor.hasModel()&&(c.searchString||c.isReplaceRevealed||c.isRegex||c.wholeWord||c.matchCase||c.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{c.searchScope?this.research(c.moveCursor,this._state.searchScope):this.research(c.moveCursor)},i)):c.searchScope?this.research(c.moveCursor,this._state.searchScope):this.research(c.moveCursor))}static _getSearchRange(c,l){return l||c.getFullModelRange()}research(c,l){let a=null;typeof l<"u"?l!==null&&(Array.isArray(l)?a=l:a=[l]):a=this._decorations.getFindScopes(),a!==null&&(a=a.map(f=>{if(f.startLineNumber!==f.endLineNumber){let h=f.endLineNumber;return f.endColumn===1&&(h=h-1),new m.Range(f.startLineNumber,1,h,this._editor.getModel().getLineMaxColumn(h))}return f}));const r=this._findMatches(a,!1,e.MATCHES_LIMIT);this._decorations.set(r,a);const u=this._editor.getSelection();let C=this._decorations.getCurrentMatchesPosition(u);if(C===0&&r.length>0){const f=(0,d.findFirstIdxMonotonousOrArrLen)(r.map(h=>h.range),h=>m.Range.compareRangesUsingStarts(h,u)>=0);C=f>0?f-1+1:C}this._state.changeMatchInfo(C,this._decorations.getCount(),void 0),c&&this._editor.getOption(41).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const c=this._decorations.getFindScope();return c&&this._editor.revealRangeInCenterIfOutsideViewport(c,0),!0}return!1}_setCurrentFindMatch(c){const l=this._decorations.setCurrentFindMatch(c);this._state.changeMatchInfo(l,this._decorations.getCount(),c),this._editor.setSelection(c),this._editor.revealRangeInCenterIfOutsideViewport(c,0)}_prevSearchPosition(c){const l=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:a,column:r}=c;const u=this._editor.getModel();return l||r===1?(a===1?a=u.getLineCount():a--,r=u.getLineMaxColumn(a)):r--,new y.Position(a,r)}_moveToPrevMatch(c,l=!1){if(!this._state.canNavigateBack()){const w=this._decorations.matchAfterPosition(c);w&&this._setCurrentFindMatch(w);return}if(this._decorations.getCount()=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:a,column:r}=c;const u=this._editor.getModel();return l||r===u.getLineMaxColumn(a)?(a===u.getLineCount()?a=1:a++,r=1):r++,new y.Position(a,r)}_moveToNextMatch(c){if(!this._state.canNavigateForward()){const a=this._decorations.matchBeforePosition(c);a&&this._setCurrentFindMatch(a);return}if(this._decorations.getCount()s._getSearchRange(this._editor.getModel(),u));return this._editor.getModel().findMatches(this._state.searchString,r,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null,l,a)}replaceAll(){if(!this._hasMatches())return;const c=this._decorations.getFindScopes();c===null&&this._state.matchesCount>=e.MATCHES_LIMIT?this._largeReplaceAll():this._regularReplaceAll(c),this.research(!1)}_largeReplaceAll(){const l=new b.SearchParams(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(132):null).parseSearchRequest();if(!l)return;let a=l.regex;if(!a.multiline){let S="mu";a.ignoreCase&&(S+="i"),a.global&&(S+="g"),a=new RegExp(a.source,S)}const r=this._editor.getModel(),u=r.getValue(1),C=r.getFullModelRange(),f=this._getReplacePattern();let h;const v=this._state.preserveCase;f.hasReplacementPatterns||v?h=u.replace(a,function(){return f.buildReplaceString(arguments,v)}):h=u.replace(a,f.buildReplaceString(null,v));const w=new E.ReplaceCommandThatPreservesSelection(C,h,this._editor.getSelection());this._executeEditorCommand("replaceAll",w)}_regularReplaceAll(c){const l=this._getReplacePattern(),a=this._findMatches(c,l.hasReplacementPatterns||this._state.preserveCase,1073741824),r=[];for(let C=0,f=a.length;CC.range),r);this._executeEditorCommand("replaceAll",u)}selectAllMatches(){if(!this._hasMatches())return;const c=this._decorations.getFindScopes();let a=this._findMatches(c,!1,1073741824).map(u=>new _.Selection(u.range.startLineNumber,u.range.startColumn,u.range.endLineNumber,u.range.endColumn));const r=this._editor.getSelection();for(let u=0,C=a.length;uthis._hide(),2e3)),this._isVisible=!1,this._editor=n,this._state=o,this._keybindingService=t,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const i={inputActiveOptionBorder:(0,m.asCssVariable)(m.inputActiveOptionBorder),inputActiveOptionForeground:(0,m.asCssVariable)(m.inputActiveOptionForeground),inputActiveOptionBackground:(0,m.asCssVariable)(m.inputActiveOptionBackground)},s=this._register((0,_.createInstantHoverDelegate)());this.caseSensitive=this._register(new k.CaseSensitiveToggle({appendTitle:this._keybindingLabelFor(y.FIND_IDS.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverDelegate:s,...i})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new k.WholeWordsToggle({appendTitle:this._keybindingLabelFor(y.FIND_IDS.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverDelegate:s,...i})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new k.RegexToggle({appendTitle:this._keybindingLabelFor(y.FIND_IDS.ToggleRegexCommand),isChecked:this._state.isRegex,hoverDelegate:s,...i})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange(()=>{this._state.change({isRegex:this.regex.checked},!1)})),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange(g=>{let c=!1;g.isRegex&&(this.regex.checked=this._state.isRegex,c=!0),g.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,c=!0),g.matchCase&&(this.caseSensitive.checked=this._state.matchCase,c=!0),!this._state.isRevealed&&c&&this._revealTemporarily()})),this._register(d.addDisposableListener(this._domNode,d.EventType.MOUSE_LEAVE,g=>this._onMouseLeave())),this._register(d.addDisposableListener(this._domNode,"mouseover",g=>this._onMouseOver()))}_keybindingLabelFor(n){const o=this._keybindingService.lookupKeybinding(n);return o?` (${o.getLabel()})`:""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return b.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}}e.FindOptionsWidget=b}),define(ne[825],se([1,0,6,2,4,220]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FindReplaceState=void 0;function y(_,b){return _===1?!0:_===2?!1:b}class m extends k.Disposable{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return y(this._isRegexOverride,this._isRegex)}get wholeWord(){return y(this._wholeWordOverride,this._wholeWord)}get matchCase(){return y(this._matchCaseOverride,this._matchCase)}get preserveCase(){return y(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super(),this._onFindReplaceStateChange=this._register(new d.Emitter),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(b,p,n){const o={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let t=!1;p===0&&(b=0),b>p&&(b=p),this._matchesPosition!==b&&(this._matchesPosition=b,o.matchesPosition=!0,t=!0),this._matchesCount!==p&&(this._matchesCount=p,o.matchesCount=!0,t=!0),typeof n<"u"&&(I.Range.equalsRange(this._currentMatch,n)||(this._currentMatch=n,o.currentMatch=!0,t=!0)),t&&this._onFindReplaceStateChange.fire(o)}change(b,p,n=!0){const o={moveCursor:p,updateHistory:n,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let t=!1;const i=this.isRegex,s=this.wholeWord,g=this.matchCase,c=this.preserveCase;typeof b.searchString<"u"&&this._searchString!==b.searchString&&(this._searchString=b.searchString,o.searchString=!0,t=!0),typeof b.replaceString<"u"&&this._replaceString!==b.replaceString&&(this._replaceString=b.replaceString,o.replaceString=!0,t=!0),typeof b.isRevealed<"u"&&this._isRevealed!==b.isRevealed&&(this._isRevealed=b.isRevealed,o.isRevealed=!0,t=!0),typeof b.isReplaceRevealed<"u"&&this._isReplaceRevealed!==b.isReplaceRevealed&&(this._isReplaceRevealed=b.isReplaceRevealed,o.isReplaceRevealed=!0,t=!0),typeof b.isRegex<"u"&&(this._isRegex=b.isRegex),typeof b.wholeWord<"u"&&(this._wholeWord=b.wholeWord),typeof b.matchCase<"u"&&(this._matchCase=b.matchCase),typeof b.preserveCase<"u"&&(this._preserveCase=b.preserveCase),typeof b.searchScope<"u"&&(b.searchScope?.every(l=>this._searchScope?.some(a=>!I.Range.equalsRange(a,l)))||(this._searchScope=b.searchScope,o.searchScope=!0,t=!0)),typeof b.loop<"u"&&this._loop!==b.loop&&(this._loop=b.loop,o.loop=!0,t=!0),typeof b.isSearching<"u"&&this._isSearching!==b.isSearching&&(this._isSearching=b.isSearching,o.isSearching=!0,t=!0),typeof b.filters<"u"&&(this._filters?this._filters.update(b.filters):this._filters=b.filters,o.filters=!0,t=!0),this._isRegexOverride=typeof b.isRegexOverride<"u"?b.isRegexOverride:0,this._wholeWordOverride=typeof b.wholeWordOverride<"u"?b.wholeWordOverride:0,this._matchCaseOverride=typeof b.matchCaseOverride<"u"?b.matchCaseOverride:0,this._preserveCaseOverride=typeof b.preserveCaseOverride<"u"?b.preserveCaseOverride:0,i!==this.isRegex&&(t=!0,o.isRegex=!0),s!==this.wholeWord&&(t=!0,o.wholeWord=!0),g!==this.matchCase&&(t=!0,o.matchCase=!0),c!==this.preserveCase&&(t=!0,o.preserveCase=!0),t&&this._onFindReplaceStateChange.fire(o)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition=E.MATCHES_LIMIT}}e.FindReplaceState=m}),define(ne[826],se([1,0,5,46,175,173,85,14,26,8,2,16,11,4,220,3,404,675,32,71,25,30,97,19,110,44,510]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SimpleButton=e.FindWidget=e.FindWidgetViewZone=e.NLS_NO_RESULTS=e.NLS_MATCHES_LOCATION=e.findNextMatchIcon=e.findPreviousMatchIcon=e.findReplaceAllIcon=e.findReplaceIcon=e.findSelectionIcon=void 0;const w=(0,a.registerIcon)("find-collapsed",_.Codicon.chevronRight,s.localize(864,"Icon to indicate that the editor find widget is collapsed.")),S=(0,a.registerIcon)("find-expanded",_.Codicon.chevronDown,s.localize(865,"Icon to indicate that the editor find widget is expanded."));e.findSelectionIcon=(0,a.registerIcon)("find-selection",_.Codicon.selection,s.localize(866,"Icon for 'Find in Selection' in the editor find widget.")),e.findReplaceIcon=(0,a.registerIcon)("find-replace",_.Codicon.replace,s.localize(867,"Icon for 'Replace' in the editor find widget.")),e.findReplaceAllIcon=(0,a.registerIcon)("find-replace-all",_.Codicon.replaceAll,s.localize(868,"Icon for 'Replace All' in the editor find widget.")),e.findPreviousMatchIcon=(0,a.registerIcon)("find-previous-match",_.Codicon.arrowUp,s.localize(869,"Icon for 'Find Previous' in the editor find widget.")),e.findNextMatchIcon=(0,a.registerIcon)("find-next-match",_.Codicon.arrowDown,s.localize(870,"Icon for 'Find Next' in the editor find widget."));const L=s.localize(871,"Find / Replace"),D=s.localize(872,"Find"),T=s.localize(873,"Find"),M=s.localize(874,"Previous Match"),A=s.localize(875,"Next Match"),P=s.localize(876,"Find in Selection"),N=s.localize(877,"Close"),O=s.localize(878,"Replace"),F=s.localize(879,"Replace"),x=s.localize(880,"Replace"),W=s.localize(881,"Replace All"),V=s.localize(882,"Toggle Replace"),q=s.localize(883,"Only the first {0} results are highlighted, but all find operations work on the entire text.",i.MATCHES_LIMIT);e.NLS_MATCHES_LOCATION=s.localize(884,"{0} of {1}"),e.NLS_NO_RESULTS=s.localize(885,"No results");const H=419,U=275-54;let j=69;const Y=33,G="ctrlEnterReplaceAll.windows.donotask",K=n.isMacintosh?256:2048;class R{constructor(ae){this.afterLineNumber=ae,this.heightInPx=Y,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}e.FindWidgetViewZone=R;function J(pe,ae,ee){const de=!!ae.match(/\n/);if(ee&&de&&ee.selectionStart>0){pe.stopPropagation();return}}function ie(pe,ae,ee){const de=!!ae.match(/\n/);if(ee&&de&&ee.selectionEndthis._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(re=>this._onStateChanged(re))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(re=>{if(re.hasChanged(92)&&(this._codeEditor.getOption(92)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),re.hasChanged(146)&&this._tryUpdateWidgetWidth(),re.hasChanged(2)&&this.updateAccessibilitySupport(),re.hasChanged(41)){const le=this._codeEditor.getOption(41).loop;this._state.change({loop:le},!1);const me=this._codeEditor.getOption(41).addExtraSpaceOnTop;me&&!this._viewZone&&(this._viewZone=new R(0),this._showViewZone()),!me&&this._viewZone&&this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){const re=await this._controller.getGlobalBufferTerm();re&&re!==this._state.searchString&&(this._state.change({searchString:re},!1),this._findInput.select())}})),this._findInputFocused=i.CONTEXT_FIND_INPUT_FOCUSED.bindTo(B),this._findFocusTracker=this._register(d.trackFocus(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus(()=>{this._findInputFocused.set(!0),this._updateSearchScope()})),this._register(this._findFocusTracker.onDidBlur(()=>{this._findInputFocused.set(!1)})),this._replaceInputFocused=i.CONTEXT_REPLACE_INPUT_FOCUSED.bindTo(B),this._replaceFocusTracker=this._register(d.trackFocus(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus(()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()})),this._register(this._replaceFocusTracker.onDidBlur(()=>{this._replaceInputFocused.set(!1)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(41).addExtraSpaceOnTop&&(this._viewZone=new R(0)),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(re=>{if(re.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return ue.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(ae){if(ae.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(ae.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),ae.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),ae.isReplaceRevealed&&(this._state.isReplaceRevealed?!this._codeEditor.getOption(92)&&!this._isReplaceVisible&&(this._isReplaceVisible=!0,this._replaceInput.width=d.getTotalWidth(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(ae.isRevealed||ae.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),ae.isRegex&&this._findInput.setRegex(this._state.isRegex),ae.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),ae.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),ae.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),ae.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),ae.searchString||ae.matchesCount||ae.matchesPosition){const ee=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",ee),this._updateMatchesCount(),this._updateButtons()}(ae.searchString||ae.currentMatch)&&this._layoutViewZone(),ae.updateHistory&&this._delayedUpdateHistory(),ae.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,b.onUnexpectedError)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){this._matchesCount.style.minWidth=j+"px",this._state.matchesCount>=i.MATCHES_LIMIT?this._matchesCount.title=q:this._matchesCount.title="",this._matchesCount.firstChild?.remove();let ae;if(this._state.matchesCount>0){let ee=String(this._state.matchesCount);this._state.matchesCount>=i.MATCHES_LIMIT&&(ee+="+");let de=String(this._state.matchesPosition);de==="0"&&(de="?"),ae=o.format(e.NLS_MATCHES_LOCATION,de,ee)}else ae=e.NLS_NO_RESULTS;this._matchesCount.appendChild(document.createTextNode(ae)),(0,k.alert)(this._getAriaLabel(ae,this._state.currentMatch,this._state.searchString)),j=Math.max(j,this._matchesCount.clientWidth)}_getAriaLabel(ae,ee,de){if(ae===e.NLS_NO_RESULTS)return de===""?s.localize(886,"{0} found",ae):s.localize(887,"{0} found for '{1}'",ae,de);if(ee){const ge=s.localize(888,"{0} found for '{1}', at {2}",ae,de,ee.startLineNumber+":"+ee.startColumn),X=this._codeEditor.getModel();return X&&ee.startLineNumber<=X.getLineCount()&&ee.startLineNumber>=1?`${X.getLineContent(ee.startLineNumber)}, ${ge}`:ge}return s.localize(889,"{0} found for '{1}'",ae,de)}_updateToggleSelectionFindButton(){const ae=this._codeEditor.getSelection(),ee=ae?ae.startLineNumber!==ae.endLineNumber||ae.startColumn!==ae.endColumn:!1,de=this._toggleSelectionFind.checked;this._isVisible&&(de||ee)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);const ae=this._state.searchString.length>0,ee=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&ae&&ee&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&ae&&ee&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&ae),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&ae),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);const de=!this._codeEditor.getOption(92);this._toggleReplaceBtn.setEnabled(this._isVisible&&de)}_reveal(){if(this._revealTimeouts.forEach(ae=>{clearTimeout(ae)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const ae=this._codeEditor.getSelection();switch(this._codeEditor.getOption(41).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{const de=!!ae&&ae.startLineNumber!==ae.endLineNumber;this._toggleSelectionFind.checked=de;break}default:break}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false")},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let ee=!0;if(this._codeEditor.getOption(41).seedSearchStringFromSelection&&ae){const de=this._codeEditor.getDomNode();if(de){const ge=d.getDomNodePagePosition(de),X=this._codeEditor.getScrolledVisiblePosition(ae.getStartPosition()),B=ge.left+(X?X.left:0),$=X?X.top:0;if(this._viewZone&&$ae.startLineNumber&&(ee=!1);const Q=d.getTopLeftOffset(this._domNode).left;B>Q&&(ee=!1);const Z=this._codeEditor.getScrolledVisiblePosition(ae.getEndPosition());ge.left+(Z?Z.left:0)>Q&&(ee=!1)}}}this._showViewZone(ee)}}_hide(ae){this._revealTimeouts.forEach(ee=>{clearTimeout(ee)}),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),ae&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(ae){if(!this._codeEditor.getOption(41).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;const de=this._viewZone;this._viewZoneId!==void 0||!de||this._codeEditor.changeViewZones(ge=>{de.heightInPx=this._getHeight(),this._viewZoneId=ge.addZone(de),this._codeEditor.setScrollTop(ae||this._codeEditor.getScrollTop()+de.heightInPx)})}_showViewZone(ae=!0){if(!this._isVisible||!this._codeEditor.getOption(41).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new R(0));const de=this._viewZone;this._codeEditor.changeViewZones(ge=>{if(this._viewZoneId!==void 0){const X=this._getHeight();if(X===de.heightInPx)return;const B=X-de.heightInPx;de.heightInPx=X,ge.layoutZone(this._viewZoneId),ae&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+B);return}else{let X=this._getHeight();if(X-=this._codeEditor.getOption(84).top,X<=0)return;de.heightInPx=X,this._viewZoneId=ge.addZone(de),ae&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+X)}})}_removeViewZone(){this._codeEditor.changeViewZones(ae=>{this._viewZoneId!==void 0&&(ae.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))})}_tryUpdateWidgetWidth(){if(!this._isVisible||!this._domNode.isConnected)return;const ae=this._codeEditor.getLayoutInfo();if(ae.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const de=ae.width,ge=ae.minimap.minimapWidth;let X=!1,B=!1,$=!1;if(this._resized&&d.getTotalWidth(this._domNode)>H){this._domNode.style.maxWidth=`${de-28-ge-15}px`,this._replaceInput.width=d.getTotalWidth(this._findInput.domNode);return}if(H+28+ge>=de&&(B=!0),H+28+ge-j>=de&&($=!0),H+28+ge-j>=de+50&&(X=!0),this._domNode.classList.toggle("collapsed-find-widget",X),this._domNode.classList.toggle("narrow-find-widget",$),this._domNode.classList.toggle("reduced-find-widget",B),!$&&!X&&(this._domNode.style.maxWidth=`${de-28-ge-15}px`),this._findInput.layout({collapsedFindWidget:X,narrowFindWidget:$,reducedFindWidget:B}),this._resized){const Q=this._findInput.inputBox.element.clientWidth;Q>0&&(this._replaceInput.width=Q)}else this._isReplaceVisible&&(this._replaceInput.width=d.getTotalWidth(this._findInput.domNode))}_getHeight(){let ae=0;return ae+=4,ae+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(ae+=4,ae+=this._replaceInput.inputBox.height+2),ae+=4,ae}_tryUpdateHeight(){const ae=this._getHeight();return this._cachedHeight!==null&&this._cachedHeight===ae?!1:(this._cachedHeight=ae,this._domNode.style.height=`${ae}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){const ae=this._codeEditor.getSelections();ae.map(ee=>{ee.endColumn===1&&ee.endLineNumber>ee.startLineNumber&&(ee=ee.setEndPosition(ee.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(ee.endLineNumber-1)));const de=this._state.currentMatch;return ee.startLineNumber!==ee.endLineNumber&&!t.Range.equalsRange(ee,de)?ee:null}).filter(ee=>!!ee),ae.length&&this._state.change({searchScope:ae},!0)}}_onFindInputMouseDown(ae){ae.middleButton&&ae.stopPropagation()}_onFindInputKeyDown(ae){if(ae.equals(K|3))if(this._keybindingService.dispatchEvent(ae,ae.target)){ae.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(` +`),ae.preventDefault();return}if(ae.equals(2)){this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),ae.preventDefault();return}if(ae.equals(2066)){this._codeEditor.focus(),ae.preventDefault();return}if(ae.equals(16))return J(ae,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(ae.equals(18))return ie(ae,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(ae){if(ae.equals(K|3))if(this._keybindingService.dispatchEvent(ae,ae.target)){ae.preventDefault();return}else{n.isWindows&&n.isNative&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(s.localize(890,"Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.")),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(G,!0,0,0)),this._replaceInput.inputBox.insertAtCursor(` +`),ae.preventDefault();return}if(ae.equals(2)){this._findInput.focusOnCaseSensitive(),ae.preventDefault();return}if(ae.equals(1026)){this._findInput.focus(),ae.preventDefault();return}if(ae.equals(2066)){this._codeEditor.focus(),ae.preventDefault();return}if(ae.equals(16))return J(ae,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(ae.equals(18))return ie(ae,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(ae){return 0}_keybindingLabelFor(ae){const ee=this._keybindingService.lookupKeybinding(ae);return ee?` (${ee.getLabel()})`:""}_buildDomNode(){this._findInput=this._register(new g.ContextScopedFindInput(null,this._contextViewProvider,{width:U,label:D,placeholder:T,appendCaseSensitiveLabel:this._keybindingLabelFor(i.FIND_IDS.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(i.FIND_IDS.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(i.FIND_IDS.ToggleRegexCommand),validation:te=>{if(te.length===0||!this._findInput.getRegex())return null;try{return new RegExp(te,"gu"),null}catch(re){return{content:re.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>(0,c.showHistoryKeybindingHint)(this._keybindingService),inputBoxStyles:h.defaultInputBoxStyles,toggleStyles:h.defaultToggleStyles},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown(te=>this._onFindInputKeyDown(te))),this._register(this._findInput.inputBox.onDidChange(()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown(te=>{te.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),te.preventDefault())})),this._register(this._findInput.onRegexKeyDown(te=>{te.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),te.preventDefault())})),this._register(this._findInput.inputBox.onDidHeightChange(te=>{this._tryUpdateHeight()&&this._showViewZone()})),n.isLinux&&this._register(this._findInput.onMouseDown(te=>this._onFindInputMouseDown(te))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount();const de=this._register((0,v.createInstantHoverDelegate)());this._prevBtn=this._register(new he({label:M+this._keybindingLabelFor(i.FIND_IDS.PreviousMatchFindAction),icon:e.findPreviousMatchIcon,hoverDelegate:de,onTrigger:()=>{(0,f.assertIsDefined)(this._codeEditor.getAction(i.FIND_IDS.PreviousMatchFindAction)).run().then(void 0,b.onUnexpectedError)}},this._hoverService)),this._nextBtn=this._register(new he({label:A+this._keybindingLabelFor(i.FIND_IDS.NextMatchFindAction),icon:e.findNextMatchIcon,hoverDelegate:de,onTrigger:()=>{(0,f.assertIsDefined)(this._codeEditor.getAction(i.FIND_IDS.NextMatchFindAction)).run().then(void 0,b.onUnexpectedError)}},this._hoverService));const ge=document.createElement("div");ge.className="find-part",ge.appendChild(this._findInput.domNode);const X=document.createElement("div");X.className="find-actions",ge.appendChild(X),X.appendChild(this._matchesCount),X.appendChild(this._prevBtn.domNode),X.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new I.Toggle({icon:e.findSelectionIcon,title:P+this._keybindingLabelFor(i.FIND_IDS.ToggleSearchScopeCommand),isChecked:!1,hoverDelegate:de,inputActiveOptionBackground:(0,l.asCssVariable)(l.inputActiveOptionBackground),inputActiveOptionBorder:(0,l.asCssVariable)(l.inputActiveOptionBorder),inputActiveOptionForeground:(0,l.asCssVariable)(l.inputActiveOptionForeground)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let te=this._codeEditor.getSelections();te=te.map(re=>(re.endColumn===1&&re.endLineNumber>re.startLineNumber&&(re=re.setEndPosition(re.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(re.endLineNumber-1))),re.isEmpty()?null:re)).filter(re=>!!re),te.length&&this._state.change({searchScope:te},!0)}}else this._state.change({searchScope:null},!0)})),X.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new he({label:N+this._keybindingLabelFor(i.FIND_IDS.CloseFindWidgetCommand),icon:a.widgetClose,hoverDelegate:de,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:te=>{te.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),te.preventDefault())}},this._hoverService)),this._replaceInput=this._register(new g.ContextScopedReplaceInput(null,void 0,{label:O,placeholder:F,appendPreserveCaseLabel:this._keybindingLabelFor(i.FIND_IDS.TogglePreserveCaseCommand),history:[],flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>(0,c.showHistoryKeybindingHint)(this._keybindingService),inputBoxStyles:h.defaultInputBoxStyles,toggleStyles:h.defaultToggleStyles},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown(te=>this._onReplaceInputKeyDown(te))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange(te=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown(te=>{te.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),te.preventDefault())}));const B=this._register((0,v.createInstantHoverDelegate)());this._replaceBtn=this._register(new he({label:x+this._keybindingLabelFor(i.FIND_IDS.ReplaceOneAction),icon:e.findReplaceIcon,hoverDelegate:B,onTrigger:()=>{this._controller.replace()},onKeyDown:te=>{te.equals(1026)&&(this._closeBtn.focus(),te.preventDefault())}},this._hoverService)),this._replaceAllBtn=this._register(new he({label:W+this._keybindingLabelFor(i.FIND_IDS.ReplaceAllAction),icon:e.findReplaceAllIcon,hoverDelegate:B,onTrigger:()=>{this._controller.replaceAll()}},this._hoverService));const $=document.createElement("div");$.className="replace-part",$.appendChild(this._replaceInput.domNode);const Q=document.createElement("div");Q.className="replace-actions",$.appendChild(Q),Q.appendChild(this._replaceBtn.domNode),Q.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new he({label:V,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=d.getTotalWidth(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._showViewZone()}},this._hoverService)),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.ariaLabel=L,this._domNode.role="dialog",this._domNode.style.width=`${H}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(ge),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild($),this._resizeSash=this._register(new E.Sash(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let Z=H;this._register(this._resizeSash.onDidStart(()=>{Z=d.getTotalWidth(this._domNode)})),this._register(this._resizeSash.onDidChange(te=>{this._resized=!0;const re=Z+te.startX-te.currentX;if(rele||(this._domNode.style.width=`${re}px`,this._isReplaceVisible&&(this._replaceInput.width=d.getTotalWidth(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{const te=d.getTotalWidth(this._domNode);if(te{this._opts.onTrigger(),ge.preventDefault()}),this.onkeydown(this._domNode,ge=>{if(ge.equals(10)||ge.equals(3)){this._opts.onTrigger(),ge.preventDefault();return}this._opts.onKeyDown?.(ge)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(ae){this._domNode.classList.toggle("disabled",!ae),this._domNode.setAttribute("aria-disabled",String(!ae)),this._domNode.tabIndex=ae?0:-1}setExpanded(ae){this._domNode.setAttribute("aria-expanded",String(!!ae)),ae?(this._domNode.classList.remove(...u.ThemeIcon.asClassNameArray(w)),this._domNode.classList.add(...u.ThemeIcon.asClassNameArray(S))):(this._domNode.classList.remove(...u.ThemeIcon.asClassNameArray(S)),this._domNode.classList.add(...u.ThemeIcon.asClassNameArray(w)))}}e.SimpleButton=he,(0,r.registerThemingParticipant)((pe,ae)=>{const ee=pe.getColor(l.editorFindMatchHighlightBorder);ee&&ae.addRule(`.monaco-editor .findMatch { border: 1px ${(0,C.isHighContrast)(pe.type)?"dotted":"solid"} ${ee}; box-sizing: border-box; }`);const de=pe.getColor(l.editorFindRangeHighlightBorder);de&&ae.addRule(`.monaco-editor .findScope { border: 1px ${(0,C.isHighContrast)(pe.type)?"dashed":"solid"} ${de}; }`);const ge=pe.getColor(l.contrastBorder);ge&&ae.addRule(`.monaco-editor .find-widget { border: 1px solid ${ge}; }`);const X=pe.getColor(l.editorFindMatchForeground);X&&ae.addRule(`.monaco-editor .findMatchInline { color: ${X}; }`);const B=pe.getColor(l.editorFindMatchHighlightForeground);B&&ae.addRule(`.monaco-editor .currentFindMatchInline { color: ${B}; }`)})}),define(ne[423],se([1,0,14,2,11,15,80,20,40,220,824,825,826,3,29,117,12,58,31,50,66,101,25,118]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f){"use strict";var h;Object.defineProperty(e,"__esModule",{value:!0}),e.StartFindReplaceAction=e.PreviousSelectionMatchFindAction=e.NextSelectionMatchFindAction=e.SelectionMatchFindAction=e.MoveToMatchFindAction=e.PreviousMatchFindAction=e.NextMatchFindAction=e.MatchFindAction=e.StartFindWithSelectionAction=e.StartFindWithArgsAction=e.StartFindAction=e.FindController=e.CommonFindController=void 0,e.getSelectionSearchString=w;const v=524288;function w(q,H="single",z=!1){if(!q.hasModel())return null;const U=q.getSelection();if(H==="single"&&U.startLineNumber===U.endLineNumber||H==="multiple"){if(U.isEmpty()){const j=q.getConfiguredWordAtPosition(U.getStartPosition());if(j&&z===!1)return j.word}else if(q.getModel().getValueLengthInRange(U)this._onStateChanged(K))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{const K=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),K&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(41).loop})}))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(H){this.saveQueryState(H),H.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),H.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(H){H.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1),H.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1),H.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1),H.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!b.CONTEXT_FIND_INPUT_FOCUSED.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let H=this._editor.getSelections();H=H.map(z=>(z.endColumn===1&&z.endLineNumber>z.startLineNumber&&(z=z.setEndPosition(z.endLineNumber-1,this._editor.getModel().getLineMaxColumn(z.endLineNumber-1))),z.isEmpty()?null:z)).filter(z=>!!z),H.length&&this._state.change({searchScope:H},!0)}}setSearchString(H){this._state.isRegex&&(H=I.escapeRegExpCharacters(H)),this._state.change({searchString:H},!1)}highlightFindOptions(H=!1){}async _start(H,z){if(this.disposeModel(),!this._editor.hasModel())return;const U={...z,isRevealed:!0};if(H.seedSearchStringFromSelection==="single"){const j=w(this._editor,H.seedSearchStringFromSelection,H.seedSearchStringFromNonEmptySelection);j&&(this._state.isRegex?U.searchString=I.escapeRegExpCharacters(j):U.searchString=j)}else if(H.seedSearchStringFromSelection==="multiple"&&!H.updateSearchScope){const j=w(this._editor,H.seedSearchStringFromSelection);j&&(U.searchString=j)}if(!U.searchString&&H.seedSearchStringFromGlobalClipboard){const j=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;j&&(U.searchString=j)}if(H.forceRevealReplace||U.isReplaceRevealed?U.isReplaceRevealed=!0:this._findWidgetVisible.get()||(U.isReplaceRevealed=!1),H.updateSearchScope){const j=this._editor.getSelections();j.some(Y=>!Y.isEmpty())&&(U.searchScope=j)}U.loop=H.loop,this._state.change(U,!1),this._model||(this._model=new b.FindModelBoundToEditorModel(this._editor,this._state))}start(H,z){return this._start(H,z)}moveToNextMatch(){return this._model?(this._model.moveToNextMatch(),!0):!1}moveToPrevMatch(){return this._model?(this._model.moveToPrevMatch(),!0):!1}goToMatch(H){return this._model?(this._model.moveToMatch(H),!0):!1}replace(){return this._model?(this._model.replace(),!0):!1}replaceAll(){return this._model?this._editor.getModel()?.isTooLargeForHeapOperation()?(this._notificationService.warn(t.localize(848,"The file is too large to perform a replace all operation.")),!1):(this._model.replaceAll(),!0):!1}selectAllMatches(){return this._model?(this._model.selectAllMatches(),this._editor.focus(),!0):!1}async getGlobalBufferTerm(){return this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}setGlobalBufferTerm(H){this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(H)}};e.CommonFindController=S,e.CommonFindController=S=h=ke([ce(1,g.IContextKeyService),ce(2,u.IStorageService),ce(3,s.IClipboardService),ce(4,a.INotificationService),ce(5,f.IHoverService)],S);let L=class extends S{constructor(H,z,U,j,Y,G,K,R,J){super(H,U,K,R,G,J),this._contextViewService=z,this._keybindingService=j,this._themeService=Y,this._widget=null,this._findOptionsWidget=null}async _start(H,z){this._widget||this._createFindWidget();const U=this._editor.getSelection();let j=!1;switch(this._editor.getOption(41).autoFindInSelection){case"always":j=!0;break;case"never":j=!1;break;case"multiline":{j=!!U&&U.startLineNumber!==U.endLineNumber;break}default:break}H.updateSearchScope=H.updateSearchScope||j,await super._start(H,z),this._widget&&(H.shouldFocus===2?this._widget.focusReplaceInput():H.shouldFocus===1&&this._widget.focusFindInput())}highlightFindOptions(H=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!H?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new o.FindWidget(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService,this._hoverService)),this._findOptionsWidget=this._register(new p.FindOptionsWidget(this._editor,this._state,this._keybindingService))}};e.FindController=L,e.FindController=L=ke([ce(1,c.IContextViewService),ce(2,g.IContextKeyService),ce(3,l.IKeybindingService),ce(4,C.IThemeService),ce(5,a.INotificationService),ce(6,u.IStorageService),ce(7,s.IClipboardService),ce(8,f.IHoverService)],L),e.StartFindAction=(0,E.registerMultiEditorAction)(new E.MultiEditorAction({id:b.FIND_IDS.StartFindAction,label:t.localize(849,"Find"),alias:"Find",precondition:g.ContextKeyExpr.or(m.EditorContextKeys.focus,g.ContextKeyExpr.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:i.MenuId.MenubarEditMenu,group:"3_find",title:t.localize(850,"&&Find"),order:1}})),e.StartFindAction.addImplementation(0,(q,H,z)=>{const U=S.get(H);return U?U.start({forceRevealReplace:!1,seedSearchStringFromSelection:H.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:H.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:H.getOption(41).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:H.getOption(41).loop}):!1});const D={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},isRegex:{type:"boolean"},matchWholeWord:{type:"boolean"},isCaseSensitive:{type:"boolean"},preserveCase:{type:"boolean"},findInSelection:{type:"boolean"}}}}]};class T extends E.EditorAction{constructor(){super({id:b.FIND_IDS.StartFindWithArgs,label:t.localize(851,"Find With Arguments"),alias:"Find With Arguments",precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:D})}async run(H,z,U){const j=S.get(z);if(j){const Y=U?{searchString:U.searchString,replaceString:U.replaceString,isReplaceRevealed:U.replaceString!==void 0,isRegex:U.isRegex,wholeWord:U.matchWholeWord,matchCase:U.isCaseSensitive,preserveCase:U.preserveCase}:{};await j.start({forceRevealReplace:!1,seedSearchStringFromSelection:j.getState().searchString.length===0&&z.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:z.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:U?.findInSelection||!1,loop:z.getOption(41).loop},Y),j.setGlobalBufferTerm(j.getState().searchString)}}}e.StartFindWithArgsAction=T;class M extends E.EditorAction{constructor(){super({id:b.FIND_IDS.StartFindWithSelection,label:t.localize(852,"Find With Selection"),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(H,z){const U=S.get(z);U&&(await U.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:z.getOption(41).loop}),U.setGlobalBufferTerm(U.getState().searchString))}}e.StartFindWithSelectionAction=M;class A extends E.EditorAction{async run(H,z){const U=S.get(z);U&&!this._run(U)&&(await U.start({forceRevealReplace:!1,seedSearchStringFromSelection:U.getState().searchString.length===0&&z.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:z.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:z.getOption(41).loop}),this._run(U))}}e.MatchFindAction=A;class P extends A{constructor(){super({id:b.FIND_IDS.NextMatchFindAction,label:t.localize(853,"Find Next"),alias:"Find Next",precondition:void 0,kbOpts:[{kbExpr:m.EditorContextKeys.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:g.ContextKeyExpr.and(m.EditorContextKeys.focus,b.CONTEXT_FIND_INPUT_FOCUSED),primary:3,weight:100}]})}_run(H){return H.moveToNextMatch()?(H.editor.pushUndoStop(),!0):!1}}e.NextMatchFindAction=P;class N extends A{constructor(){super({id:b.FIND_IDS.PreviousMatchFindAction,label:t.localize(854,"Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:[{kbExpr:m.EditorContextKeys.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:g.ContextKeyExpr.and(m.EditorContextKeys.focus,b.CONTEXT_FIND_INPUT_FOCUSED),primary:1027,weight:100}]})}_run(H){return H.moveToPrevMatch()}}e.PreviousMatchFindAction=N;class O extends E.EditorAction{constructor(){super({id:b.FIND_IDS.GoToMatchFindAction,label:t.localize(855,"Go to Match..."),alias:"Go to Match...",precondition:b.CONTEXT_FIND_WIDGET_VISIBLE}),this._highlightDecorations=[]}run(H,z,U){const j=S.get(z);if(!j)return;const Y=j.getState().matchesCount;if(Y<1){H.get(a.INotificationService).notify({severity:a.Severity.Warning,message:t.localize(856,"No matches. Try searching for something else.")});return}const G=H.get(r.IQuickInputService),K=new k.DisposableStore,R=K.add(G.createInputBox());R.placeholder=t.localize(857,"Type a number to go to a specific match (between 1 and {0})",Y);const J=ue=>{const he=parseInt(ue);if(isNaN(he))return;const pe=j.getState().matchesCount;if(he>0&&he<=pe)return he-1;if(he<0&&he>=-pe)return pe+he},ie=ue=>{const he=J(ue);if(typeof he=="number"){R.validationMessage=void 0,j.goToMatch(he);const pe=j.getState().currentMatch;pe&&this.addDecorations(z,pe)}else R.validationMessage=t.localize(858,"Please type a number between 1 and {0}",j.getState().matchesCount),this.clearDecorations(z)};K.add(R.onDidChangeValue(ue=>{ie(ue)})),K.add(R.onDidAccept(()=>{const ue=J(R.value);typeof ue=="number"?(j.goToMatch(ue),R.hide()):R.validationMessage=t.localize(859,"Please type a number between 1 and {0}",j.getState().matchesCount)})),K.add(R.onDidHide(()=>{this.clearDecorations(z),K.dispose()})),R.show()}clearDecorations(H){H.changeDecorations(z=>{this._highlightDecorations=z.deltaDecorations(this._highlightDecorations,[])})}addDecorations(H,z){H.changeDecorations(U=>{this._highlightDecorations=U.deltaDecorations(this._highlightDecorations,[{range:z,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:z,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:(0,C.themeColorFromId)(y.overviewRulerRangeHighlight),position:_.OverviewRulerLane.Full}}}])})}}e.MoveToMatchFindAction=O;class F extends E.EditorAction{async run(H,z){const U=S.get(z);if(!U)return;const j=w(z,"single",!1);j&&U.setSearchString(j),this._run(U)||(await U.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:z.getOption(41).loop}),this._run(U))}}e.SelectionMatchFindAction=F;class x extends F{constructor(){super({id:b.FIND_IDS.NextSelectionMatchFindAction,label:t.localize(860,"Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:m.EditorContextKeys.focus,primary:2109,weight:100}})}_run(H){return H.moveToNextMatch()}}e.NextSelectionMatchFindAction=x;class W extends F{constructor(){super({id:b.FIND_IDS.PreviousSelectionMatchFindAction,label:t.localize(861,"Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:m.EditorContextKeys.focus,primary:3133,weight:100}})}_run(H){return H.moveToPrevMatch()}}e.PreviousSelectionMatchFindAction=W,e.StartFindReplaceAction=(0,E.registerMultiEditorAction)(new E.MultiEditorAction({id:b.FIND_IDS.StartFindReplaceAction,label:t.localize(862,"Replace"),alias:"Replace",precondition:g.ContextKeyExpr.or(m.EditorContextKeys.focus,g.ContextKeyExpr.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:i.MenuId.MenubarEditMenu,group:"3_find",title:t.localize(863,"&&Replace"),order:2}})),e.StartFindReplaceAction.addImplementation(0,(q,H,z)=>{if(!H.hasModel()||H.getOption(92))return!1;const U=S.get(H);if(!U)return!1;const j=H.getSelection(),Y=U.isFindInputFocused(),G=!j.isEmpty()&&j.startLineNumber===j.endLineNumber&&H.getOption(41).seedSearchStringFromSelection!=="never"&&!Y,K=Y||G?2:1;return U.start({forceRevealReplace:!0,seedSearchStringFromSelection:G?"single":"none",seedSearchStringFromNonEmptySelection:H.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:H.getOption(41).seedSearchStringFromSelection!=="never",shouldFocus:K,shouldAnimate:!0,updateSearchScope:!1,loop:H.getOption(41).loop})}),(0,E.registerEditorContribution)(S.ID,L,0),(0,E.registerEditorAction)(T),(0,E.registerEditorAction)(M),(0,E.registerEditorAction)(P),(0,E.registerEditorAction)(N),(0,E.registerEditorAction)(O),(0,E.registerEditorAction)(x),(0,E.registerEditorAction)(W);const V=E.EditorCommand.bindToContribution(S.get);(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.CloseFindWidgetCommand,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.closeFindWidget(),kbOpts:{weight:105,kbExpr:g.ContextKeyExpr.and(m.EditorContextKeys.focus,g.ContextKeyExpr.not("isComposing")),primary:9,secondary:[1033]}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ToggleCaseSensitiveCommand,precondition:void 0,handler:q=>q.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:b.ToggleCaseSensitiveKeybinding.primary,mac:b.ToggleCaseSensitiveKeybinding.mac,win:b.ToggleCaseSensitiveKeybinding.win,linux:b.ToggleCaseSensitiveKeybinding.linux}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ToggleWholeWordCommand,precondition:void 0,handler:q=>q.toggleWholeWords(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:b.ToggleWholeWordKeybinding.primary,mac:b.ToggleWholeWordKeybinding.mac,win:b.ToggleWholeWordKeybinding.win,linux:b.ToggleWholeWordKeybinding.linux}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ToggleRegexCommand,precondition:void 0,handler:q=>q.toggleRegex(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:b.ToggleRegexKeybinding.primary,mac:b.ToggleRegexKeybinding.mac,win:b.ToggleRegexKeybinding.win,linux:b.ToggleRegexKeybinding.linux}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ToggleSearchScopeCommand,precondition:void 0,handler:q=>q.toggleSearchScope(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:b.ToggleSearchScopeKeybinding.primary,mac:b.ToggleSearchScopeKeybinding.mac,win:b.ToggleSearchScopeKeybinding.win,linux:b.ToggleSearchScopeKeybinding.linux}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.TogglePreserveCaseCommand,precondition:void 0,handler:q=>q.togglePreserveCase(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:b.TogglePreserveCaseKeybinding.primary,mac:b.TogglePreserveCaseKeybinding.mac,win:b.TogglePreserveCaseKeybinding.win,linux:b.TogglePreserveCaseKeybinding.linux}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ReplaceOneAction,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.replace(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:3094}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ReplaceOneAction,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.replace(),kbOpts:{weight:105,kbExpr:g.ContextKeyExpr.and(m.EditorContextKeys.focus,b.CONTEXT_REPLACE_INPUT_FOCUSED),primary:3}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ReplaceAllAction,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.replaceAll(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:2563}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.ReplaceAllAction,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.replaceAll(),kbOpts:{weight:105,kbExpr:g.ContextKeyExpr.and(m.EditorContextKeys.focus,b.CONTEXT_REPLACE_INPUT_FOCUSED),primary:void 0,mac:{primary:2051}}})),(0,E.registerEditorCommand)(new V({id:b.FIND_IDS.SelectAllMatchesAction,precondition:b.CONTEXT_FIND_WIDGET_VISIBLE,handler:q=>q.selectAllMatches(),kbOpts:{weight:105,kbExpr:m.EditorContextKeys.focus,primary:515}}))}),define(ne[424],se([1,0,26,35,3,32,71,25,30]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.FoldingDecorationProvider=e.foldingManualExpandedIcon=e.foldingManualCollapsedIcon=e.foldingCollapsedIcon=e.foldingExpandedIcon=void 0;const b=(0,E.registerColor)("editor.foldBackground",{light:(0,E.transparent)(E.editorSelectionBackground,.3),dark:(0,E.transparent)(E.editorSelectionBackground,.3),hcDark:null,hcLight:null},(0,I.localize)(910,"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);(0,E.registerColor)("editor.foldPlaceholderForeground",{light:"#808080",dark:"#808080",hcDark:null,hcLight:null},(0,I.localize)(911,"Color of the collapsed text after the first line of a folded range.")),(0,E.registerColor)("editorGutter.foldingControlForeground",E.iconForeground,(0,I.localize)(912,"Color of the folding control in the editor gutter.")),e.foldingExpandedIcon=(0,y.registerIcon)("folding-expanded",d.Codicon.chevronDown,(0,I.localize)(913,"Icon for expanded ranges in the editor glyph margin.")),e.foldingCollapsedIcon=(0,y.registerIcon)("folding-collapsed",d.Codicon.chevronRight,(0,I.localize)(914,"Icon for collapsed ranges in the editor glyph margin.")),e.foldingManualCollapsedIcon=(0,y.registerIcon)("folding-manual-collapsed",e.foldingCollapsedIcon,(0,I.localize)(915,"Icon for manually collapsed ranges in the editor glyph margin.")),e.foldingManualExpandedIcon=(0,y.registerIcon)("folding-manual-expanded",e.foldingExpandedIcon,(0,I.localize)(916,"Icon for manually expanded ranges in the editor glyph margin."));const p={color:(0,m.themeColorFromId)(b),position:1},n=(0,I.localize)(917,"Click to expand the range."),o=(0,I.localize)(918,"Click to collapse the range.");class t{static{this.COLLAPSED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingCollapsedIcon)})}static{this.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:p,isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingCollapsedIcon)})}static{this.MANUALLY_COLLAPSED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingManualCollapsedIcon)})}static{this.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:p,isWholeLine:!0,linesDecorationsTooltip:n,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingManualCollapsedIcon)})}static{this.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=k.ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:n})}static{this.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=k.ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:p,isWholeLine:!0,linesDecorationsTooltip:n})}static{this.EXPANDED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+_.ThemeIcon.asClassName(e.foldingExpandedIcon),linesDecorationsTooltip:o})}static{this.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingExpandedIcon),linesDecorationsTooltip:o})}static{this.MANUALLY_EXPANDED_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+_.ThemeIcon.asClassName(e.foldingManualExpandedIcon),linesDecorationsTooltip:o})}static{this.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=k.ModelDecorationOptions.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:_.ThemeIcon.asClassName(e.foldingManualExpandedIcon),linesDecorationsTooltip:o})}static{this.NO_CONTROLS_EXPANDED_RANGE_DECORATION=k.ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0})}static{this.HIDDEN_RANGE_DECORATION=k.ModelDecorationOptions.register({description:"folding-hidden-range-decoration",stickiness:1})}constructor(s){this.editor=s,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(s,g,c){return g?t.HIDDEN_RANGE_DECORATION:this.showFoldingControls==="never"?s?this.showFoldingHighlights?t.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:t.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:t.NO_CONTROLS_EXPANDED_RANGE_DECORATION:s?c?this.showFoldingHighlights?t.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:t.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?t.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:t.COLLAPSED_VISUAL_DECORATION:this.showFoldingControls==="mouseover"?c?t.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:t.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:c?t.MANUALLY_EXPANDED_VISUAL_DECORATION:t.EXPANDED_VISUAL_DECORATION}changeDecorations(s){return this.editor.changeDecorations(s)}removeDecorations(s){this.editor.removeDecorations(s)}}e.FoldingDecorationProvider=t}),define(ne[289],se([1,0,14,18,8,72,2,11,19,143,15,20,27,36,334,613,335,3,12,424,203,336,50,79,54,17,6,24,22,51,28,511]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T){"use strict";var M;Object.defineProperty(e,"__esModule",{value:!0}),e.RangesLimitReporter=e.FoldingController=void 0,e.toSelectedLines=F;const A=new l.RawContextKey("foldingEnabled",!1);let P=class extends y.Disposable{static{M=this}static{this.ID="editor.contrib.folding"}static get(X){return X.getContribution(M.ID)}static getFoldingRangeProviders(X,B){const $=X.foldingRangeProvider.ordered(B);return M._foldingRangeSelector?.($,B)??$}constructor(X,B,$,Q,Z,te){super(),this.contextKeyService=B,this.languageConfigurationService=$,this.languageFeaturesService=te,this.localToDispose=this._register(new y.DisposableStore),this.editor=X,this._foldingLimitReporter=new N(X);const re=this.editor.getOptions();this._isEnabled=re.get(43),this._useFoldingProviders=re.get(44)!=="indentation",this._unfoldOnClickAfterEndOfLine=re.get(48),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=re.get(46),this.updateDebounceInfo=Z.for(te.foldingRangeProvider,"Folding",{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new a.FoldingDecorationProvider(X),this.foldingDecorationProvider.showFoldingControls=re.get(111),this.foldingDecorationProvider.showFoldingHighlights=re.get(45),this.foldingEnabled=A.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration(le=>{if(le.hasChanged(43)&&(this._isEnabled=this.editor.getOptions().get(43),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),le.hasChanged(47)&&this.onModelChanged(),le.hasChanged(111)||le.hasChanged(45)){const me=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=me.get(111),this.foldingDecorationProvider.showFoldingHighlights=me.get(45),this.triggerFoldingModelChanged()}le.hasChanged(44)&&(this._useFoldingProviders=this.editor.getOptions().get(44)!=="indentation",this.onFoldingStrategyChanged()),le.hasChanged(48)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(48)),le.hasChanged(46)&&(this._foldingImportsByDefault=this.editor.getOptions().get(46))})),this.onModelChanged()}saveViewState(){const X=this.editor.getModel();if(!X||!this._isEnabled||X.isTooLargeForTokenization())return{};if(this.foldingModel){const B=this.foldingModel.getMemento(),$=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:B,lineCount:X.getLineCount(),provider:$,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(X){const B=this.editor.getModel();if(!(!B||!this._isEnabled||B.isTooLargeForTokenization()||!this.hiddenRangeModel)&&X&&(this._currentModelHasFoldedImports=!!X.foldedImports,X.collapsedRegions&&X.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(X.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const X=this.editor.getModel();!this._isEnabled||!X||X.isTooLargeForTokenization()||(this._currentModelHasFoldedImports=!1,this.foldingModel=new i.FoldingModel(X,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new s.HiddenRangeModel(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange(B=>this.onHiddenRangesChanges(B))),this.updateScheduler=new d.Delayer(this.updateDebounceInfo.get(X)),this.cursorChangedScheduler=new d.RunOnceScheduler(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent(B=>this.onDidChangeModelContent(B))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown(B=>this.onEditorMouseDown(B))),this.localToDispose.add(this.editor.onMouseUp(B=>this.onEditorMouseUp(B))),this.localToDispose.add({dispose:()=>{this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.updateScheduler?.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,this.rangeProvider?.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){this.rangeProvider?.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(X){if(this.rangeProvider)return this.rangeProvider;const B=new g.IndentRangeProvider(X,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=B,this._useFoldingProviders&&this.foldingModel){const $=M.getFoldingRangeProviders(this.languageFeaturesService,X);$.length>0&&(this.rangeProvider=new u.SyntaxRangeProvider(X,$,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,B))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(X){this.hiddenRangeModel?.notifyChangeModelContent(X),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger(()=>{const X=this.foldingModel;if(!X)return null;const B=new h.StopWatch,$=this.getRangeProvider(X.textModel),Q=this.foldingRegionPromise=(0,d.createCancelablePromise)(Z=>$.compute(Z));return Q.then(Z=>{if(Z&&Q===this.foldingRegionPromise){let te;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const me=Z.setCollapsedAllOfType(o.FoldingRangeKind.Imports.value,!0);me&&(te=b.StableEditorScrollState.capture(this.editor),this._currentModelHasFoldedImports=me)}const re=this.editor.getSelections();X.update(Z,F(re)),te?.restore(this.editor);const le=this.updateDebounceInfo.update(X.textModel,B.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=le)}return X})}).then(void 0,X=>((0,I.onUnexpectedError)(X),null)))}onHiddenRangesChanges(X){if(this.hiddenRangeModel&&X.length&&!this._restoringViewState){const B=this.editor.getSelections();B&&this.hiddenRangeModel.adjustSelections(B)&&this.editor.setSelections(B)}this.editor.setHiddenAreas(X,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const X=this.getFoldingModel();X&&X.then(B=>{if(B){const $=this.editor.getSelections();if($&&$.length>0){const Q=[];for(const Z of $){const te=Z.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(te)&&Q.push(...B.getAllRegionsAtLine(te,re=>re.isCollapsed&&te>re.startLineNumber))}Q.length&&(B.toggleCollapseState(Q),this.reveal($[0].getPosition()))}}}).then(void 0,I.onUnexpectedError)}onEditorMouseDown(X){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!X.target||!X.target.range||!X.event.leftButton&&!X.event.middleButton)return;const B=X.target.range;let $=!1;switch(X.target.type){case 4:{const Q=X.target.detail,Z=X.target.element.offsetLeft;if(Q.offsetX-Z<4)return;$=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!X.target.detail.isAfterLines)break;return}case 6:{if(this.hiddenRangeModel.hasRanges()){const Q=this.editor.getModel();if(Q&&B.startColumn===Q.getLineMaxColumn(B.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:B.startLineNumber,iconClicked:$}}onEditorMouseUp(X){const B=this.foldingModel;if(!B||!this.mouseDownInfo||!X.target)return;const $=this.mouseDownInfo.lineNumber,Q=this.mouseDownInfo.iconClicked,Z=X.target.range;if(!Z||Z.startLineNumber!==$)return;if(Q){if(X.target.type!==4)return}else{const re=this.editor.getModel();if(!re||Z.startColumn!==re.getLineMaxColumn($))return}const te=B.getRegionAtLine($);if(te&&te.startLineNumber===$){const re=te.isCollapsed;if(Q||re){const le=X.event.altKey;let me=[];if(le){const Ce=Le=>!Le.containedBy(te)&&!te.containedBy(Le),ye=B.getRegionsInside(null,Ce);for(const Le of ye)Le.isCollapsed&&me.push(Le);me.length===0&&(me=ye)}else{const Ce=X.event.middleButton||X.event.shiftKey;if(Ce)for(const ye of B.getRegionsInside(te))ye.isCollapsed===re&&me.push(ye);(re||!Ce||me.length===0)&&me.push(te)}B.toggleCollapseState(me),this.reveal({lineNumber:$,column:1})}}}reveal(X){this.editor.revealPositionInCenterIfOutsideViewport(X,0)}};e.FoldingController=P,e.FoldingController=P=M=ke([ce(1,l.IContextKeyService),ce(2,t.ILanguageConfigurationService),ce(3,C.INotificationService),ce(4,f.ILanguageFeatureDebounceService),ce(5,v.ILanguageFeaturesService)],P);class N{constructor(X){this.editor=X,this._onDidChange=new w.Emitter,this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(47)}update(X,B){(X!==this._computed||B!==this._limited)&&(this._computed=X,this._limited=B,this._onDidChange.fire())}}e.RangesLimitReporter=N;class O extends p.EditorAction{runEditorCommand(X,B,$){const Q=X.get(t.ILanguageConfigurationService),Z=P.get(B);if(!Z)return;const te=Z.getFoldingModel();if(te)return this.reportTelemetry(X,B),te.then(re=>{if(re){this.invoke(Z,re,B,$,Q);const le=B.getSelection();le&&Z.reveal(le.getStartPosition())}})}getSelectedLines(X){const B=X.getSelections();return B?B.map($=>$.startLineNumber):[]}getLineNumbers(X,B){return X&&X.selectionLines?X.selectionLines.map($=>$+1):this.getSelectedLines(B)}run(X,B){}}function F(ge){return!ge||ge.length===0?{startsInside:()=>!1}:{startsInside(X,B){for(const $ of ge){const Q=$.startLineNumber;if(Q>=X&&Q<=B)return!0}return!1}}}function x(ge){if(!_.isUndefined(ge)){if(!_.isObject(ge))return!1;const X=ge;if(!_.isUndefined(X.levels)&&!_.isNumber(X.levels)||!_.isUndefined(X.direction)&&!_.isString(X.direction)||!_.isUndefined(X.selectionLines)&&(!Array.isArray(X.selectionLines)||!X.selectionLines.every(_.isNumber)))return!1}return!0}class W extends O{constructor(){super({id:"editor.unfold",label:c.localize(891,"Unfold"),alias:"Unfold",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:`Property-value pairs that can be passed through this argument: + * 'levels': Number of levels to unfold. If not set, defaults to 1. + * 'direction': If 'up', unfold given number of levels up otherwise unfolds down. + * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used. + `,constraint:x,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(X,B,$,Q){const Z=Q&&Q.levels||1,te=this.getLineNumbers(Q,$);Q&&Q.direction==="up"?(0,i.setCollapseStateLevelsUp)(B,!1,Z,te):(0,i.setCollapseStateLevelsDown)(B,!1,Z,te)}}class V extends O{constructor(){super({id:"editor.unfoldRecursively",label:c.localize(892,"Unfold Recursively"),alias:"Unfold Recursively",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2142),weight:100}})}invoke(X,B,$,Q){(0,i.setCollapseStateLevelsDown)(B,!1,Number.MAX_VALUE,this.getSelectedLines($))}}class q extends O{constructor(){super({id:"editor.fold",label:c.localize(893,"Fold"),alias:"Fold",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:`Property-value pairs that can be passed through this argument: + * 'levels': Number of levels to fold. + * 'direction': If 'up', folds given number of levels up otherwise folds down. + * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used. + If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead. + `,constraint:x,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(X,B,$,Q){const Z=this.getLineNumbers(Q,$),te=Q&&Q.levels,re=Q&&Q.direction;typeof te!="number"&&typeof re!="string"?(0,i.setCollapseStateUp)(B,!0,Z):re==="up"?(0,i.setCollapseStateLevelsUp)(B,!0,te||1,Z):(0,i.setCollapseStateLevelsDown)(B,!0,te||1,Z)}}class H extends O{constructor(){super({id:"editor.toggleFold",label:c.localize(894,"Toggle Fold"),alias:"Toggle Fold",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2090),weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);(0,i.toggleCollapseState)(B,1,Q)}}class z extends O{constructor(){super({id:"editor.foldRecursively",label:c.localize(895,"Fold Recursively"),alias:"Fold Recursively",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2140),weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);(0,i.setCollapseStateLevelsDown)(B,!0,Number.MAX_VALUE,Q)}}class U extends O{constructor(){super({id:"editor.toggleFoldRecursively",label:c.localize(896,"Toggle Fold Recursively"),alias:"Toggle Fold Recursively",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,3114),weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);(0,i.toggleCollapseState)(B,Number.MAX_VALUE,Q)}}class j extends O{constructor(){super({id:"editor.foldAllBlockComments",label:c.localize(897,"Fold All Block Comments"),alias:"Fold All Block Comments",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2138),weight:100}})}invoke(X,B,$,Q,Z){if(B.regions.hasTypes())(0,i.setCollapseStateForType)(B,o.FoldingRangeKind.Comment.value,!0);else{const te=$.getModel();if(!te)return;const re=Z.getLanguageConfiguration(te.getLanguageId()).comments;if(re&&re.blockCommentStartToken){const le=new RegExp("^\\s*"+(0,m.escapeRegExpCharacters)(re.blockCommentStartToken));(0,i.setCollapseStateForMatchingLines)(B,le,!0)}}}}class Y extends O{constructor(){super({id:"editor.foldAllMarkerRegions",label:c.localize(898,"Fold All Regions"),alias:"Fold All Regions",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2077),weight:100}})}invoke(X,B,$,Q,Z){if(B.regions.hasTypes())(0,i.setCollapseStateForType)(B,o.FoldingRangeKind.Region.value,!0);else{const te=$.getModel();if(!te)return;const re=Z.getLanguageConfiguration(te.getLanguageId()).foldingRules;if(re&&re.markers&&re.markers.start){const le=new RegExp(re.markers.start);(0,i.setCollapseStateForMatchingLines)(B,le,!0)}}}}class G extends O{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:c.localize(899,"Unfold All Regions"),alias:"Unfold All Regions",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2078),weight:100}})}invoke(X,B,$,Q,Z){if(B.regions.hasTypes())(0,i.setCollapseStateForType)(B,o.FoldingRangeKind.Region.value,!1);else{const te=$.getModel();if(!te)return;const re=Z.getLanguageConfiguration(te.getLanguageId()).foldingRules;if(re&&re.markers&&re.markers.start){const le=new RegExp(re.markers.start);(0,i.setCollapseStateForMatchingLines)(B,le,!1)}}}}class K extends O{constructor(){super({id:"editor.foldAllExcept",label:c.localize(900,"Fold All Except Selected"),alias:"Fold All Except Selected",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2136),weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);(0,i.setCollapseStateForRest)(B,!0,Q)}}class R extends O{constructor(){super({id:"editor.unfoldAllExcept",label:c.localize(901,"Unfold All Except Selected"),alias:"Unfold All Except Selected",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2134),weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);(0,i.setCollapseStateForRest)(B,!1,Q)}}class J extends O{constructor(){super({id:"editor.foldAll",label:c.localize(902,"Fold All"),alias:"Fold All",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2069),weight:100}})}invoke(X,B,$){(0,i.setCollapseStateLevelsDown)(B,!0)}}class ie extends O{constructor(){super({id:"editor.unfoldAll",label:c.localize(903,"Unfold All"),alias:"Unfold All",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2088),weight:100}})}invoke(X,B,$){(0,i.setCollapseStateLevelsDown)(B,!1)}}class ue extends O{static{this.ID_PREFIX="editor.foldLevel"}static{this.ID=X=>ue.ID_PREFIX+X}getFoldingLevel(){return parseInt(this.id.substr(ue.ID_PREFIX.length))}invoke(X,B,$){(0,i.setCollapseStateAtLevel)(B,this.getFoldingLevel(),!0,this.getSelectedLines($))}}class he extends O{constructor(){super({id:"editor.gotoParentFold",label:c.localize(904,"Go to Parent Fold"),alias:"Go to Parent Fold",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);if(Q.length>0){const Z=(0,i.getParentFoldLine)(Q[0],B);Z!==null&&$.setSelection({startLineNumber:Z,startColumn:1,endLineNumber:Z,endColumn:1})}}}class pe extends O{constructor(){super({id:"editor.gotoPreviousFold",label:c.localize(905,"Go to Previous Folding Range"),alias:"Go to Previous Folding Range",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);if(Q.length>0){const Z=(0,i.getPreviousFoldLine)(Q[0],B);Z!==null&&$.setSelection({startLineNumber:Z,startColumn:1,endLineNumber:Z,endColumn:1})}}}class ae extends O{constructor(){super({id:"editor.gotoNextFold",label:c.localize(906,"Go to Next Folding Range"),alias:"Go to Next Folding Range",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,weight:100}})}invoke(X,B,$){const Q=this.getSelectedLines($);if(Q.length>0){const Z=(0,i.getNextFoldLine)(Q[0],B);Z!==null&&$.setSelection({startLineNumber:Z,startColumn:1,endLineNumber:Z,endColumn:1})}}}class ee extends O{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:c.localize(907,"Create Folding Range from Selection"),alias:"Create Folding Range from Selection",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2135),weight:100}})}invoke(X,B,$){const Q=[],Z=$.getSelections();if(Z){for(const te of Z){let re=te.endLineNumber;te.endColumn===1&&--re,re>te.startLineNumber&&(Q.push({startLineNumber:te.startLineNumber,endLineNumber:re,type:void 0,isCollapsed:!0,source:1}),$.setSelection({startLineNumber:te.startLineNumber,startColumn:1,endLineNumber:te.startLineNumber,endColumn:1}))}if(Q.length>0){Q.sort((re,le)=>re.startLineNumber-le.startLineNumber);const te=r.FoldingRegions.sanitizeAndMerge(B.regions,Q,$.getModel()?.getLineCount());B.updatePost(r.FoldingRegions.fromFoldRanges(te))}}}}class de extends O{constructor(){super({id:"editor.removeManualFoldingRanges",label:c.localize(908,"Remove Manual Folding Ranges"),alias:"Remove Manual Folding Ranges",precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2137),weight:100}})}invoke(X,B,$){const Q=$.getSelections();if(Q){const Z=[];for(const te of Q){const{startLineNumber:re,endLineNumber:le}=te;Z.push(le>=re?{startLineNumber:re,endLineNumber:le}:{endLineNumber:le,startLineNumber:re})}B.removeManualRanges(Z),X.triggerFoldingModelChanged()}}}(0,p.registerEditorContribution)(P.ID,P,0),(0,p.registerEditorAction)(W),(0,p.registerEditorAction)(V),(0,p.registerEditorAction)(q),(0,p.registerEditorAction)(z),(0,p.registerEditorAction)(U),(0,p.registerEditorAction)(J),(0,p.registerEditorAction)(ie),(0,p.registerEditorAction)(j),(0,p.registerEditorAction)(Y),(0,p.registerEditorAction)(G),(0,p.registerEditorAction)(K),(0,p.registerEditorAction)(R),(0,p.registerEditorAction)(H),(0,p.registerEditorAction)(he),(0,p.registerEditorAction)(pe),(0,p.registerEditorAction)(ae),(0,p.registerEditorAction)(ee),(0,p.registerEditorAction)(de);for(let ge=1;ge<=7;ge++)(0,p.registerInstantiatedEditorAction)(new ue({id:ue.ID(ge),label:c.localize(909,"Fold Level {0}",ge),alias:`Fold Level ${ge}`,precondition:A,kbOpts:{kbExpr:n.EditorContextKeys.editorTextFocus,primary:(0,E.KeyChord)(2089,2048|21+ge),weight:100}}));S.CommandsRegistry.registerCommand("_executeFoldingRangeProvider",async function(ge,...X){const[B]=X;if(!(B instanceof L.URI))throw(0,I.illegalArgument)();const $=ge.get(v.ILanguageFeaturesService),Q=ge.get(D.IModelService).getModel(B);if(!Q)throw(0,I.illegalArgument)();const Z=ge.get(T.IConfigurationService);if(!Z.getValue("editor.folding",{resource:B}))return[];const te=ge.get(t.ILanguageConfigurationService),re=Z.getValue("editor.foldingStrategy",{resource:B}),le={get limit(){return Z.getValue("editor.foldingMaximumRegions",{resource:B})},update:(Ee,Me)=>{}},me=new g.IndentRangeProvider(Q,te,le);let Ce=me;if(re!=="indentation"){const Ee=P.getFoldingRangeProviders($,Q);Ee.length&&(Ce=new u.SyntaxRangeProvider(Q,Ee,()=>{},le,me))}const ye=await Ce.compute(k.CancellationToken.None),Le=[];try{if(ye)for(let Ee=0;Eethis.editorWorkerService.navigateValueSet(h,C,a)),this.currentRequest.then(v=>{if(!v||!v.range||!v.value||!f.validate(this.editor))return;const w=y.Range.lift(v.range);let S=v.range;const L=v.value.length-(C.endColumn-C.startColumn);S={startLineNumber:S.startLineNumber,startColumn:S.startColumn,endLineNumber:S.endLineNumber,endColumn:S.startColumn+v.value.length},L>1&&(C=new m.Selection(C.startLineNumber,C.startColumn,C.endLineNumber,C.endColumn+L-1));const D=new o.InPlaceReplaceCommand(w,C,v.value);this.editor.pushUndoStop(),this.editor.executeCommand(l,D),this.editor.pushUndoStop(),this.decorations.set([{range:S,options:t.DECORATION}]),this.decorationRemover?.cancel(),this.decorationRemover=(0,d.timeout)(350),this.decorationRemover.then(()=>this.decorations.clear()).catch(k.onUnexpectedError)}).catch(k.onUnexpectedError)):Promise.resolve(void 0)}};i=t=ke([ce(1,p.IEditorWorkerService)],i);class s extends E.EditorAction{constructor(){super({id:"editor.action.inPlaceReplace.up",label:n.localize(1103,"Replace with Previous Value"),alias:"Replace with Previous Value",precondition:_.EditorContextKeys.writable,kbOpts:{kbExpr:_.EditorContextKeys.editorTextFocus,primary:3159,weight:100}})}run(l,a){const r=i.get(a);return r?r.run(this.id,!1):Promise.resolve(void 0)}}class g extends E.EditorAction{constructor(){super({id:"editor.action.inPlaceReplace.down",label:n.localize(1104,"Replace with Next Value"),alias:"Replace with Next Value",precondition:_.EditorContextKeys.writable,kbOpts:{kbExpr:_.EditorContextKeys.editorTextFocus,primary:3161,weight:100}})}run(l,a){const r=i.get(a);return r?r.run(this.id,!0):Promise.resolve(void 0)}}(0,E.registerEditorContribution)(i.ID,i,4),(0,E.registerEditorAction)(s),(0,E.registerEditorAction)(g)}),define(ne[828],se([1,0,2,21,9,4,43,40,150,205,139,518]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.GhostTextWidget=e.INLINE_EDIT_DESCRIPTION=void 0,e.INLINE_EDIT_DESCRIPTION="inline-edit";let n=class extends d.Disposable{constructor(t,i,s){super(),this.editor=t,this.model=i,this.languageService=s,this.isDisposed=(0,k.observableValue)(this,!1),this.currentTextModel=(0,k.observableFromEvent)(this,this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=(0,k.derived)(this,g=>{if(this.isDisposed.read(g))return;const c=this.currentTextModel.read(g);if(c!==this.model.targetTextModel.read(g))return;const l=this.model.ghostText.read(g);if(!l)return;let a=this.model.range?.read(g);a&&a.startLineNumber===a.endLineNumber&&a.startColumn===a.endColumn&&(a=void 0);const r=(a?a.startLineNumber===a.endLineNumber:!0)&&l.parts.length===1&&l.parts[0].lines.length===1,u=l.parts.length===1&&l.parts[0].lines.every(T=>T.length===0),C=[],f=[];function h(T,M){if(f.length>0){const A=f[f.length-1];M&&A.decorations.push(new _.LineDecoration(A.content.length+1,A.content.length+1+T[0].length,M,0)),A.content+=T[0],T=T.slice(1)}for(const A of T)f.push({content:A,decorations:M?[new _.LineDecoration(1,A.length+1,M,0)]:[]})}const v=c.getLineContent(l.lineNumber);let w,S=0;if(!u&&(r||!a)){for(const T of l.parts){let M=T.lines;a&&!r&&(h(M,e.INLINE_EDIT_DESCRIPTION),M=[]),w===void 0?(C.push({column:T.column,text:M[0],preview:T.preview}),M=M.slice(1)):h([v.substring(S,T.column-1)],void 0),M.length>0&&(h(M,e.INLINE_EDIT_DESCRIPTION),w===void 0&&T.column<=v.length&&(w=T.column)),S=T.column-1}w!==void 0&&h([v.substring(S)],void 0)}const L=w!==void 0?new b.ColumnRange(w,v.length+1):void 0,D=r||!a?l.lineNumber:a.endLineNumber-1;return{inlineTexts:C,additionalLines:f,hiddenRange:L,lineNumber:D,additionalReservedLineCount:this.model.minReservedLineCount.read(g),targetTextModel:c,range:a,isSingleLine:r,isPureRemove:u}}),this.decorations=(0,k.derived)(this,g=>{const c=this.uiState.read(g);if(!c)return[];const l=[];if(c.hiddenRange&&l.push({range:c.hiddenRange.toRange(c.lineNumber),options:{inlineClassName:"inline-edit-hidden",description:"inline-edit-hidden"}}),c.range){const a=[];if(c.isSingleLine)a.push(c.range);else if(!c.isPureRemove){const r=c.range.endLineNumber-c.range.startLineNumber;for(let u=0;u{this.isDisposed.set(!0,void 0)})),this._register((0,b.applyObservableDecorations)(this.editor,this.decorations))}};e.GhostTextWidget=n,e.GhostTextWidget=n=ke([ce(2,y.ILanguageService)],n)}),define(ne[829],se([1,0,5,18,2,21,65,22,112,125,215,139,9,4,70,35,51,7,520]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";var l,a;Object.defineProperty(e,"__esModule",{value:!0}),e.InlineEditSideBySideWidget=void 0;function*r(h,v,w=1){v===void 0&&([v,h]=[h,0]);for(let S=h;SS.replace(new RegExp("^"+v),"")),shift:w}}let C=class extends I.Disposable{static{l=this}static{this._modelId=0}static _createUniqueUri(){return m.URI.from({scheme:"inline-edit-widget",path:new Date().toString()+String(l._modelId++)})}constructor(v,w,S,L,D){super(),this._editor=v,this._model=w,this._instantiationService=S,this._diffProviderFactoryService=L,this._modelService=D,this._position=(0,E.derived)(this,T=>{const M=this._model.read(T);if(!M||M.text.length===0||M.range.startLineNumber===M.range.endLineNumber&&!(M.range.startColumn===M.range.endColumn&&M.range.startColumn===1))return null;const A=this._editor.getModel();if(!A)return null;const P=Array.from(r(M.range.startLineNumber,M.range.endLineNumber+1)),N=P.map(V=>A.getLineLastNonWhitespaceColumn(V)),O=Math.max(...N),F=P[N.indexOf(O)],x=new o.Position(F,O);return{top:M.range.startLineNumber,left:x}}),this._text=(0,E.derived)(this,T=>{const M=this._model.read(T);if(!M)return{text:"",shift:0};const A=u(M.text.split(` +`));return{text:A.text.join(` +`),shift:A.shift}}),this._originalModel=(0,y.derivedDisposable)(()=>this._modelService.createModel("",null,l._createUniqueUri())).keepObserved(this._store),this._modifiedModel=(0,y.derivedDisposable)(()=>this._modelService.createModel("",null,l._createUniqueUri())).keepObserved(this._store),this._diff=(0,E.derived)(this,T=>this._diffPromise.read(T)?.promiseResult.read(T)?.data),this._diffPromise=(0,E.derived)(this,T=>{const M=this._model.read(T);if(!M)return;const A=this._editor.getModel();if(!A)return;const P=u(A.getValueInRange(M.range).split(` +`)).text.join(` +`),N=u(M.text.split(` +`)).text.join(` +`);this._originalModel.get().setValue(P),this._modifiedModel.get().setValue(N);const O=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:"advanced"});return E.ObservablePromise.fromFn(async()=>{const F=await O.computeDiff(this._originalModel.get(),this._modifiedModel.get(),{computeMoves:!1,ignoreTrimWhitespace:!1,maxComputationTimeMs:1e3},k.CancellationToken.None);if(!F.identical)return F.changes})}),this._register((0,E.autorunWithStore)((T,M)=>{if(!this._model.read(T)||this._position.get()===null)return;const P=M.add(this._instantiationService.createInstance(f,this._editor,this._position,this._text.map(N=>N.text),this._text.map(N=>N.shift),this._diff));v.addOverlayWidget(P),M.add((0,I.toDisposable)(()=>v.removeOverlayWidget(P)))}))}};e.InlineEditSideBySideWidget=C,e.InlineEditSideBySideWidget=C=l=ke([ce(2,c.IInstantiationService),ce(3,p.IDiffProviderFactoryService),ce(4,g.IModelService)],C);let f=class extends I.Disposable{static{a=this}static{this.id=0}constructor(v,w,S,L,D,T){super(),this._editor=v,this._position=w,this._text=S,this._shift=L,this._diff=D,this._instantiationService=T,this.id=`InlineEditSideBySideContentWidget${a.id++}`,this.allowEditorOverflow=!1,this._nodes=(0,d.$)("div.inlineEditSideBySide",void 0),this._scrollChanged=(0,E.observableSignalFromEvent)("editor.onDidScrollChange",this._editor.onDidScrollChange),this._previewEditor=this._register(this._instantiationService.createInstance(b.EmbeddedCodeEditorWidget,this._nodes,{glyphMargin:!1,lineNumbers:"off",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0,scrollbar:{vertical:"hidden",horizontal:"hidden",alwaysConsumeMouseWheel:!1,handleMouseWheel:!1},readOnly:!0,wordWrap:"off",wordWrapOverride1:"off",wordWrapOverride2:"off",wrappingIndent:"none",wrappingStrategy:void 0},{contributions:[],isSimpleWidget:!0},this._editor)),this._previewEditorObs=(0,_.observableCodeEditor)(this._previewEditor),this._editorObs=(0,_.observableCodeEditor)(this._editor),this._previewTextModel=this._register(this._instantiationService.createInstance(s.TextModel,"",this._editor.getModel()?.getLanguageId()??i.PLAINTEXT_LANGUAGE_ID,s.TextModel.DEFAULT_CREATION_OPTIONS,null)),this._setText=(0,E.derived)(M=>{const A=this._text.read(M);A&&this._previewTextModel.setValue(A)}).recomputeInitiallyAndOnChange(this._store),this._decorations=(0,E.derived)(this,M=>{this._setText.read(M);const A=this._position.read(M);if(!A)return{org:[],mod:[]};const P=this._diff.read(M);if(!P)return{org:[],mod:[]};const N=[],O=[];if(P.length===1&&P[0].innerChanges[0].modifiedRange.equalsRange(this._previewTextModel.getFullModelRange()))return{org:[],mod:[]};const F=this._shift.get(),x=W=>new t.Range(W.startLineNumber+A.top-1,W.startColumn+F,W.endLineNumber+A.top-1,W.endColumn+F);for(const W of P)if(W.original.isEmpty||N.push({range:x(W.original.toInclusiveRange()),options:n.diffLineDeleteDecorationBackgroundWithIndicator}),W.modified.isEmpty||O.push({range:W.modified.toInclusiveRange(),options:n.diffLineAddDecorationBackgroundWithIndicator}),W.modified.isEmpty||W.original.isEmpty)W.original.isEmpty||N.push({range:x(W.original.toInclusiveRange()),options:n.diffWholeLineDeleteDecoration}),W.modified.isEmpty||O.push({range:W.modified.toInclusiveRange(),options:n.diffWholeLineAddDecoration});else for(const V of W.innerChanges||[])W.original.contains(V.originalRange.startLineNumber)&&N.push({range:x(V.originalRange),options:V.originalRange.isEmpty()?n.diffDeleteDecorationEmpty:n.diffDeleteDecoration}),W.modified.contains(V.modifiedRange.startLineNumber)&&O.push({range:V.modifiedRange,options:V.modifiedRange.isEmpty()?n.diffAddDecorationEmpty:n.diffAddDecoration});return{org:N,mod:O}}),this._originalDecorations=(0,E.derived)(this,M=>this._decorations.read(M).org),this._modifiedDecorations=(0,E.derived)(this,M=>this._decorations.read(M).mod),this._previewEditor.setModel(this._previewTextModel),this._register(this._editorObs.setDecorations(this._originalDecorations)),this._register(this._previewEditorObs.setDecorations(this._modifiedDecorations)),this._register((0,E.autorun)(M=>{const A=this._previewEditorObs.contentWidth.read(M),P=this._text.read(M).split(` +`).length-1,N=this._editor.getOption(67)*P;A<=0||this._previewEditor.layout({height:N,width:A})})),this._register((0,E.autorun)(M=>{this._position.read(M),this._editor.layoutOverlayWidget(this)})),this._register((0,E.autorun)(M=>{this._scrollChanged.read(M),this._position.read(M)&&this._editor.layoutOverlayWidget(this)}))}getId(){return this.id}getDomNode(){return this._nodes}getPosition(){const v=this._position.get();if(!v)return null;const w=this._editor.getLayoutInfo(),S=this._editor.getScrolledVisiblePosition(new o.Position(v.top,1));if(!S)return null;const L=S.top-1,D=this._editor.getOffsetForColumn(v.left.lineNumber,v.left.column);return{preference:{left:w.contentLeft+D+10,top:L}}}};f=a=ke([ce(5,c.IInstantiationService)],f)}),define(ne[425],se([1,0,2,21,75,9,4,828,12,7,27,17,18,204,24,800,5,28,8,65,829,215,51]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C){"use strict";var f;Object.defineProperty(e,"__esModule",{value:!0}),e.InlineEditController=void 0;let h=class extends d.Disposable{static{f=this}static{this.ID="editor.contrib.inlineEditController"}static{this.inlineEditVisibleKey="inlineEditVisible"}static{this.inlineEditVisibleContext=new _.RawContextKey(this.inlineEditVisibleKey,!1)}static{this.cursorAtInlineEditKey="cursorAtInlineEdit"}static{this.cursorAtInlineEditContext=new _.RawContextKey(this.cursorAtInlineEditKey,!1)}static get(S){return S.getContribution(f.ID)}constructor(S,L,D,T,M,A,P,N){super(),this.editor=S,this.instantiationService=L,this.contextKeyService=D,this.languageFeaturesService=T,this._commandService=M,this._configurationService=A,this._diffProviderFactoryService=P,this._modelService=N,this._isVisibleContext=f.inlineEditVisibleContext.bindTo(this.contextKeyService),this._isCursorAtInlineEditContext=f.cursorAtInlineEditContext.bindTo(this.contextKeyService),this._currentEdit=(0,k.observableValue)(this,void 0),this._currentWidget=(0,a.derivedDisposable)(this._currentEdit,q=>{const H=this._currentEdit.read(q);if(!H)return;const z=H.range.endLineNumber,U=H.range.endColumn,j=H.text.endsWith(` +`)&&!(H.range.startLineNumber===H.range.endLineNumber&&H.range.startColumn===H.range.endColumn)?H.text.slice(0,-1):H.text,Y=new t.GhostText(z,[new t.GhostTextPart(U,j,!1)]),G=H.range.startLineNumber===H.range.endLineNumber&&Y.parts.length===1&&Y.parts[0].lines.length===1,K=H.text==="";return!G&&!K?void 0:this.instantiationService.createInstance(m.GhostTextWidget,this.editor,{ghostText:(0,k.constObservable)(Y),minReservedLineCount:(0,k.constObservable)(0),targetTextModel:(0,k.constObservable)(this.editor.getModel()??void 0),range:(0,k.constObservable)(H.range)})}),this._isAccepting=(0,k.observableValue)(this,!1),this._enabled=(0,k.observableFromEvent)(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).enabled),this._fontFamily=(0,k.observableFromEvent)(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).fontFamily);const O=(0,k.observableSignalFromEvent)("InlineEditController.modelContentChangedSignal",S.onDidChangeModelContent);this._register((0,k.autorun)(q=>{this._enabled.read(q)&&(O.read(q),!this._isAccepting.read(q)&&this.getInlineEdit(S,!0))}));const F=(0,k.observableFromEvent)(this,S.onDidChangeCursorPosition,()=>S.getPosition());this._register((0,k.autorun)(q=>{if(!this._enabled.read(q))return;const H=F.read(q);H&&this.checkCursorPosition(H)})),this._register((0,k.autorun)(q=>{const H=this._currentEdit.read(q);if(this._isCursorAtInlineEditContext.set(!1),!H){this._isVisibleContext.set(!1);return}this._isVisibleContext.set(!0);const z=S.getPosition();z&&this.checkCursorPosition(z)}));const x=(0,k.observableSignalFromEvent)("InlineEditController.editorBlurSignal",S.onDidBlurEditorWidget);this._register((0,k.autorun)(async q=>{this._enabled.read(q)&&(x.read(q),!(this._configurationService.getValue("editor.experimentalInlineEdit.keepOnBlur")||S.getOption(63).keepOnBlur)&&(this._currentRequestCts?.dispose(!0),this._currentRequestCts=void 0,await this.clear(!1)))}));const W=(0,k.observableSignalFromEvent)("InlineEditController.editorFocusSignal",S.onDidFocusEditorText);this._register((0,k.autorun)(q=>{this._enabled.read(q)&&(W.read(q),this.getInlineEdit(S,!0))}));const V=this._register((0,g.createStyleSheet2)());this._register((0,k.autorun)(q=>{const H=this._fontFamily.read(q);V.setStyle(H===""||H==="default"?"":` +.monaco-editor .inline-edit-decoration, +.monaco-editor .inline-edit-decoration-preview, +.monaco-editor .inline-edit { + font-family: ${H}; +}`)})),this._register(new s.InlineEditHintsWidget(this.editor,this._currentWidget,this.instantiationService)),this._register(new r.InlineEditSideBySideWidget(this.editor,this._currentEdit,this.instantiationService,this._diffProviderFactoryService,this._modelService))}checkCursorPosition(S){if(!this._currentEdit){this._isCursorAtInlineEditContext.set(!1);return}const L=this._currentEdit.get();if(!L){this._isCursorAtInlineEditContext.set(!1);return}this._isCursorAtInlineEditContext.set(y.Range.containsPosition(L.range,S))}validateInlineEdit(S,L){if(L.text.includes(` +`)&&L.range.startLineNumber!==L.range.endLineNumber&&L.range.startColumn!==L.range.endColumn){if(L.range.startColumn!==1)return!1;const T=L.range.endLineNumber,M=L.range.endColumn,A=S.getModel()?.getLineLength(T)??0;if(M!==A+1)return!1}return!0}async fetchInlineEdit(S,L){this._currentRequestCts&&this._currentRequestCts.dispose(!0);const D=S.getModel();if(!D)return;const T=D.getVersionId(),M=this.languageFeaturesService.inlineEditProvider.all(D);if(M.length===0)return;const A=M[0];this._currentRequestCts=new o.CancellationTokenSource;const P=this._currentRequestCts.token,N=L?p.InlineEditTriggerKind.Automatic:p.InlineEditTriggerKind.Invoke;if(L&&await v(50,P),P.isCancellationRequested||D.isDisposed()||D.getVersionId()!==T)return;const F=await A.provideInlineEdit(D,{triggerKind:N},P);if(F&&!(P.isCancellationRequested||D.isDisposed()||D.getVersionId()!==T)&&this.validateInlineEdit(S,F))return F}async getInlineEdit(S,L){this._isCursorAtInlineEditContext.set(!1),await this.clear();const D=await this.fetchInlineEdit(S,L);D&&this._currentEdit.set(D,void 0)}async trigger(){await this.getInlineEdit(this.editor,!1)}async jumpBack(){this._jumpBackPosition&&(this.editor.setPosition(this._jumpBackPosition),this.editor.revealPositionInCenterIfOutsideViewport(this._jumpBackPosition))}async accept(){this._isAccepting.set(!0,void 0);const S=this._currentEdit.get();if(!S)return;let L=S.text;S.text.startsWith(` +`)&&(L=S.text.substring(1)),this.editor.pushUndoStop(),this.editor.executeEdits("acceptCurrent",[I.EditOperation.replace(y.Range.lift(S.range),L)]),S.accepted&&await this._commandService.executeCommand(S.accepted.id,...S.accepted.arguments||[]).then(void 0,l.onUnexpectedExternalError),this.freeEdit(S),(0,k.transaction)(D=>{this._currentEdit.set(void 0,D),this._isAccepting.set(!1,D)})}jumpToCurrent(){this._jumpBackPosition=this.editor.getSelection()?.getStartPosition();const S=this._currentEdit.get();if(!S)return;const L=E.Position.lift({lineNumber:S.range.startLineNumber,column:S.range.startColumn});this.editor.setPosition(L),this.editor.revealPositionInCenterIfOutsideViewport(L)}async clear(S=!0){const L=this._currentEdit.get();L&&L?.rejected&&S&&await this._commandService.executeCommand(L.rejected.id,...L.rejected.arguments||[]).then(void 0,l.onUnexpectedExternalError),L&&this.freeEdit(L),this._currentEdit.set(void 0,void 0)}freeEdit(S){const L=this.editor.getModel();if(!L)return;const D=this.languageFeaturesService.inlineEditProvider.all(L);D.length!==0&&D[0].freeInlineEdit(S)}};e.InlineEditController=h,e.InlineEditController=h=f=ke([ce(1,b.IInstantiationService),ce(2,_.IContextKeyService),ce(3,n.ILanguageFeaturesService),ce(4,i.ICommandService),ce(5,c.IConfigurationService),ce(6,u.IDiffProviderFactoryService),ce(7,C.IModelService)],h);function v(w,S){return new Promise(L=>{let D;const T=setTimeout(()=>{D&&D.dispose(),L()},w);S&&(D=S.onCancellationRequested(()=>{clearTimeout(T),D&&D.dispose(),L()}))})}}),define(ne[830],se([1,0,15,20,618,425,29,12]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RejectInlineEdit=e.JumpBackInlineEdit=e.JumpToInlineEdit=e.TriggerInlineEdit=e.AcceptInlineEdit=void 0;class _ extends d.EditorAction{constructor(){super({id:I.inlineEditAcceptId,label:"Accept Inline Edit",alias:"Accept Inline Edit",precondition:m.ContextKeyExpr.and(k.EditorContextKeys.writable,E.InlineEditController.inlineEditVisibleContext),kbOpts:[{weight:101,primary:2,kbExpr:m.ContextKeyExpr.and(k.EditorContextKeys.writable,E.InlineEditController.inlineEditVisibleContext,E.InlineEditController.cursorAtInlineEditContext)}],menuOpts:[{menuId:y.MenuId.InlineEditToolbar,title:"Accept",group:"primary",order:1}]})}async run(i,s){await E.InlineEditController.get(s)?.accept()}}e.AcceptInlineEdit=_;class b extends d.EditorAction{constructor(){const i=m.ContextKeyExpr.and(k.EditorContextKeys.writable,m.ContextKeyExpr.not(E.InlineEditController.inlineEditVisibleKey));super({id:"editor.action.inlineEdit.trigger",label:"Trigger Inline Edit",alias:"Trigger Inline Edit",precondition:i,kbOpts:{weight:101,primary:2646,kbExpr:i}})}async run(i,s){E.InlineEditController.get(s)?.trigger()}}e.TriggerInlineEdit=b;class p extends d.EditorAction{constructor(){const i=m.ContextKeyExpr.and(k.EditorContextKeys.writable,E.InlineEditController.inlineEditVisibleContext,m.ContextKeyExpr.not(E.InlineEditController.cursorAtInlineEditKey));super({id:I.inlineEditJumpToId,label:"Jump to Inline Edit",alias:"Jump to Inline Edit",precondition:i,kbOpts:{weight:101,primary:2646,kbExpr:i},menuOpts:[{menuId:y.MenuId.InlineEditToolbar,title:"Jump To Edit",group:"primary",order:3,when:i}]})}async run(i,s){E.InlineEditController.get(s)?.jumpToCurrent()}}e.JumpToInlineEdit=p;class n extends d.EditorAction{constructor(){const i=m.ContextKeyExpr.and(k.EditorContextKeys.writable,E.InlineEditController.cursorAtInlineEditContext);super({id:I.inlineEditJumpBackId,label:"Jump Back from Inline Edit",alias:"Jump Back from Inline Edit",precondition:i,kbOpts:{weight:110,primary:2646,kbExpr:i},menuOpts:[{menuId:y.MenuId.InlineEditToolbar,title:"Jump Back",group:"primary",order:3,when:i}]})}async run(i,s){E.InlineEditController.get(s)?.jumpBack()}}e.JumpBackInlineEdit=n;class o extends d.EditorAction{constructor(){const i=m.ContextKeyExpr.and(k.EditorContextKeys.writable,E.InlineEditController.inlineEditVisibleContext);super({id:I.inlineEditRejectId,label:"Reject Inline Edit",alias:"Reject Inline Edit",precondition:i,kbOpts:{weight:100,primary:9,kbExpr:i},menuOpts:[{menuId:y.MenuId.InlineEditToolbar,title:"Reject",group:"secondary",order:2}]})}async run(i,s){await E.InlineEditController.get(s)?.clear()}}e.RejectInlineEdit=o}),define(ne[831],se([1,0,15,830,425]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorAction)(k.AcceptInlineEdit),(0,d.registerEditorAction)(k.RejectInlineEdit),(0,d.registerEditorAction)(k.JumpToInlineEdit),(0,d.registerEditorAction)(k.JumpBackInlineEdit),(0,d.registerEditorAction)(k.TriggerInlineEdit),(0,d.registerEditorContribution)(I.InlineEditController.ID,I.InlineEditController,3)}),define(ne[290],se([1,0,5,14,26,2,11,30,4,35,7,522]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineProgressManager=void 0;const n=b.ModelDecorationOptions.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:y.noBreakWhitespace,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}});class o extends E.Disposable{static{this.baseId="editor.widget.inlineProgressWidget"}constructor(s,g,c,l,a){super(),this.typeId=s,this.editor=g,this.range=c,this.delegate=a,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(l),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(s){this.domNode=d.$(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=s;const g=d.$("span.icon");this.domNode.append(g),g.classList.add(...m.ThemeIcon.asClassNameArray(I.Codicon.loading),"codicon-modifier-spin");const c=()=>{const l=this.editor.getOption(67);this.domNode.style.height=`${l}px`,this.domNode.style.width=`${Math.ceil(.8*l)}px`};c(),this._register(this.editor.onDidChangeConfiguration(l=>{(l.hasChanged(52)||l.hasChanged(67))&&c()})),this._register(d.addDisposableListener(this.domNode,d.EventType.CLICK,l=>{this.delegate.cancel()}))}getId(){return o.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}}let t=class extends E.Disposable{constructor(s,g,c){super(),this.id=s,this._editor=g,this._instantiationService=c,this._showDelay=500,this._showPromise=this._register(new E.MutableDisposable),this._currentWidget=this._register(new E.MutableDisposable),this._operationIdPool=0,this._currentDecorations=g.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(s,g,c,l,a){const r=this._operationIdPool++;this._currentOperation=r,this.clear(),this._showPromise.value=(0,k.disposableTimeout)(()=>{const u=_.Range.fromPositions(s);this._currentDecorations.set([{range:u,options:n}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(o,this.id,this._editor,u,g,l))},a??this._showDelay);try{return await c}finally{this._currentOperation===r&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};e.InlineProgressManager=t,e.InlineProgressManager=t=ke([ce(2,p.IInstantiationService)],t)}),define(ne[832],se([1,0,13,14,194,91,2,400,4,17,327,678,122,290,3,28,12,399,7,268,396]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r){"use strict";var u;Object.defineProperty(e,"__esModule",{value:!0}),e.DropIntoEditorController=e.dropWidgetVisibleCtx=e.changeDropTypeCommandId=e.defaultProviderConfig=void 0,e.defaultProviderConfig="editor.experimental.dropIntoEditor.defaultProvider",e.changeDropTypeCommandId="editor.changeDropType",e.dropWidgetVisibleCtx=new g.RawContextKey("dropWidgetVisible",!1,(0,i.localize)(842,"Whether the drop widget is showing"));let C=class extends y.Disposable{static{u=this}static{this.ID="editor.contrib.dropIntoEditorController"}static get(h){return h.getContribution(u.ID)}constructor(h,v,w,S,L){super(),this._configService=w,this._languageFeaturesService=S,this._treeViewsDragAndDropService=L,this.treeItemsTransfer=c.LocalSelectionTransfer.getInstance(),this._dropProgressManager=this._register(v.createInstance(t.InlineProgressManager,"dropIntoEditor",h)),this._postDropWidgetManager=this._register(v.createInstance(r.PostEditWidgetManager,"dropIntoEditor",h,e.dropWidgetVisibleCtx,{id:e.changeDropTypeCommandId,label:(0,i.localize)(843,"Show drop options...")})),this._register(h.onDropIntoEditor(D=>this.onDropIntoEditor(h,D.position,D.event)))}clearWidgets(){this._postDropWidgetManager.clear()}changeDropType(){this._postDropWidgetManager.tryShowSelector()}async onDropIntoEditor(h,v,w){if(!w.dataTransfer||!h.hasModel())return;this._currentOperation?.cancel(),h.focus(),h.setPosition(v);const S=(0,k.createCancelablePromise)(async L=>{const D=new y.DisposableStore,T=D.add(new o.EditorStateCancellationTokenSource(h,1,void 0,L));try{const M=await this.extractDataTransferData(w);if(M.size===0||T.token.isCancellationRequested)return;const A=h.getModel();if(!A)return;const P=this._languageFeaturesService.documentDropEditProvider.ordered(A).filter(O=>O.dropMimeTypes?O.dropMimeTypes.some(F=>M.matches(F)):!0),N=D.add(await this.getDropEdits(P,A,v,M,T));if(T.token.isCancellationRequested)return;if(N.edits.length){const O=this.getInitialActiveEditIndex(A,N.edits),F=h.getOption(36).showDropSelector==="afterDrop";await this._postDropWidgetManager.applyEditAndShowIfNeeded([_.Range.fromPositions(v)],{activeEditIndex:O,allEdits:N.edits},F,async x=>x,L)}}finally{D.dispose(),this._currentOperation===S&&(this._currentOperation=void 0)}});this._dropProgressManager.showWhile(v,(0,i.localize)(844,"Running drop handlers. Click to cancel"),S,{cancel:()=>S.cancel()}),this._currentOperation=S}async getDropEdits(h,v,w,S,L){const D=new y.DisposableStore,T=await(0,k.raceCancellation)(Promise.all(h.map(async A=>{try{const P=await A.provideDocumentDropEdits(v,w,S,L.token);return P&&D.add(P),P?.edits.map(N=>({...N,providerId:A.id}))}catch(P){console.error(P)}})),L.token),M=(0,d.coalesce)(T??[]).flat();return{edits:(0,a.sortEditsByYieldTo)(M),dispose:()=>D.dispose()}}getInitialActiveEditIndex(h,v){const w=this._configService.getValue(e.defaultProviderConfig,{resource:h.uri});for(const[S,L]of Object.entries(w)){const D=new E.HierarchicalKind(L),T=v.findIndex(M=>D.value===M.providerId&&M.handledMimeType&&(0,I.matchesMimeType)(S,[M.handledMimeType]));if(T>=0)return T}return 0}async extractDataTransferData(h){if(!h.dataTransfer)return new I.VSDataTransfer;const v=(0,m.toExternalVSDataTransfer)(h.dataTransfer);if(this.treeItemsTransfer.hasData(p.DraggedTreeItemsIdentifier.prototype)){const w=this.treeItemsTransfer.getData(p.DraggedTreeItemsIdentifier.prototype);if(Array.isArray(w))for(const S of w){const L=await this._treeViewsDragAndDropService.removeDragOperationTransfer(S.identifier);if(L)for(const[D,T]of L)v.replace(D,T)}}return v}};e.DropIntoEditorController=C,e.DropIntoEditorController=C=u=ke([ce(1,l.IInstantiationService),ce(2,s.IConfigurationService),ce(3,b.ILanguageFeaturesService),ce(4,n.ITreeViewsDnDService)],C)}),define(ne[833],se([1,0,13,14,18,33,8,6,2,11,22,15,34,9,4,20,35,36,3,12,17,32,79,54,523]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f){"use strict";var h;Object.defineProperty(e,"__esModule",{value:!0}),e.editorLinkedEditingBackground=e.LinkedEditingAction=e.LinkedEditingContribution=e.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE=void 0,e.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE=new a.RawContextKey("LinkedEditingInputVisible",!1);const v="linked-editing-decoration";let w=class extends _.Disposable{static{h=this}static{this.ID="editor.contrib.linkedEditing"}static{this.DECORATION=g.ModelDecorationOptions.register({description:"linked-editing",stickiness:0,className:v})}static get(M){return M.getContribution(h.ID)}constructor(M,A,P,N,O){super(),this.languageConfigurationService=N,this._syncRangesToken=0,this._localToDispose=this._register(new _.DisposableStore),this._editor=M,this._providers=P.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=e.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE.bindTo(A),this._debounceInformation=O.for(this._providers,"Linked Editing",{max:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new _.DisposableStore),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequestCts=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel(()=>this.reinitialize(!0))),this._register(this._editor.onDidChangeConfiguration(F=>{(F.hasChanged(70)||F.hasChanged(94))&&this.reinitialize(!1)})),this._register(this._providers.onDidChange(()=>this.reinitialize(!1))),this._register(this._editor.onDidChangeModelLanguage(()=>this.reinitialize(!0))),this.reinitialize(!0)}reinitialize(M){const A=this._editor.getModel(),P=A!==null&&(this._editor.getOption(70)||this._editor.getOption(94))&&this._providers.has(A);if(P===this._enabled&&!M||(this._enabled=P,this.clearRanges(),this._localToDispose.clear(),!P||A===null))return;this._localToDispose.add(m.Event.runAndSubscribe(A.onDidChangeLanguageConfiguration,()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(A.getLanguageId()).getWordDefinition()}));const N=new k.Delayer(this._debounceInformation.get(A)),O=()=>{this._rangeUpdateTriggerPromise=N.trigger(()=>this.updateRanges(),this._debounceDuration??this._debounceInformation.get(A))},F=new k.Delayer(0),x=W=>{this._rangeSyncTriggerPromise=F.trigger(()=>this._syncRanges(W))};this._localToDispose.add(this._editor.onDidChangeCursorPosition(()=>{O()})),this._localToDispose.add(this._editor.onDidChangeModelContent(W=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const V=this._currentDecorations.getRange(0);if(V&&W.changes.every(q=>V.intersectRanges(q.range))){x(this._syncRangesToken);return}}O()})),this._localToDispose.add({dispose:()=>{N.dispose(),F.dispose()}}),this.updateRanges()}_syncRanges(M){if(!this._editor.hasModel()||M!==this._syncRangesToken||this._currentDecorations.length===0)return;const A=this._editor.getModel(),P=this._currentDecorations.getRange(0);if(!P||P.startLineNumber!==P.endLineNumber)return this.clearRanges();const N=A.getValueInRange(P);if(this._currentWordPattern){const F=N.match(this._currentWordPattern);if((F?F[0].length:0)!==N.length)return this.clearRanges()}const O=[];for(let F=1,x=this._currentDecorations.length;F1){this.clearRanges();return}const P=this._editor.getModel(),N=P.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===N){if(A.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const F=this._currentDecorations.getRange(0);if(F&&F.containsPosition(A))return}}this.clearRanges(),this._currentRequestPosition=A,this._currentRequestModelVersion=N;const O=this._currentRequestCts=new I.CancellationTokenSource;try{const F=new f.StopWatch(!1),x=await D(this._providers,P,A,O.token);if(this._debounceInformation.update(P,F.elapsed()),O!==this._currentRequestCts||(this._currentRequestCts=null,N!==P.getVersionId()))return;let W=[];x?.ranges&&(W=x.ranges),this._currentWordPattern=x?.wordPattern||this._languageWordPattern;let V=!1;for(let H=0,z=W.length;H({range:H,options:h.DECORATION}));this._visibleContextKey.set(!0),this._currentDecorations.set(q),this._syncRangesToken++}catch(F){(0,y.isCancellationError)(F)||(0,y.onUnexpectedError)(F),(this._currentRequestCts===O||!this._currentRequestCts)&&this.clearRanges()}}};e.LinkedEditingContribution=w,e.LinkedEditingContribution=w=h=ke([ce(1,a.IContextKeyService),ce(2,r.ILanguageFeaturesService),ce(3,c.ILanguageConfigurationService),ce(4,C.ILanguageFeatureDebounceService)],w);class S extends n.EditorAction{constructor(){super({id:"editor.action.linkedEditing",label:l.localize(1136,"Start Linked Editing"),alias:"Start Linked Editing",precondition:a.ContextKeyExpr.and(s.EditorContextKeys.writable,s.EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,primary:3132,weight:100}})}runCommand(M,A){const P=M.get(o.ICodeEditorService),[N,O]=Array.isArray(A)&&A||[void 0,void 0];return p.URI.isUri(N)&&t.Position.isIPosition(O)?P.openCodeEditor({resource:N},P.getActiveCodeEditor()).then(F=>{F&&(F.setPosition(O),F.invokeWithinContext(x=>(this.reportTelemetry(x,F),this.run(x,F))))},y.onUnexpectedError):super.runCommand(M,A)}run(M,A){const P=w.get(A);return P?Promise.resolve(P.updateRanges(!0)):Promise.resolve()}}e.LinkedEditingAction=S;const L=n.EditorCommand.bindToContribution(w.get);(0,n.registerEditorCommand)(new L({id:"cancelLinkedEditingInput",precondition:e.CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE,handler:T=>T.clearRanges(),kbOpts:{kbExpr:s.EditorContextKeys.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));function D(T,M,A,P){const N=T.ordered(M);return(0,k.first)(N.map(O=>async()=>{try{return await O.provideLinkedEditingRanges(M,A,P)}catch(F){(0,y.onUnexpectedExternalError)(F);return}}),O=>!!O&&d.isNonEmptyArray(O?.ranges))}e.editorLinkedEditingBackground=(0,u.registerColor)("editor.linkedEditingBackground",{dark:E.Color.fromHex("#f00").transparent(.3),light:E.Color.fromHex("#f00").transparent(.3),hcDark:E.Color.fromHex("#f00").transparent(.3),hcLight:E.Color.white},l.localize(1137,"Background color when the editor auto renames on type.")),(0,n.registerModelAndPositionCommand)("_executeLinkedEditingProvider",(T,M,A)=>{const{linkedEditingRangeProvider:P}=T.get(r.ILanguageFeaturesService);return D(P,M,A,I.CancellationToken.None)}),(0,n.registerEditorContribution)(w.ID,w,1),(0,n.registerEditorAction)(S)}),define(ne[834],se([1,0,14,18,8,57,2,42,16,48,54,22,15,35,79,17,209,681,3,50,59,524]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r){"use strict";var u;Object.defineProperty(e,"__esModule",{value:!0}),e.LinkDetector=void 0;let C=class extends y.Disposable{static{u=this}static{this.ID="editor.linkDetector"}static get(L){return L.getContribution(u.ID)}constructor(L,D,T,M,A){super(),this.editor=L,this.openerService=D,this.notificationService=T,this.languageFeaturesService=M,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=A.for(this.providers,"Links",{min:1e3,max:4e3}),this.computeLinks=this._register(new d.RunOnceScheduler(()=>this.computeLinksNow(),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const P=this._register(new g.ClickLinkGesture(L));this._register(P.onMouseMoveOrRelevantKeyDown(([N,O])=>{this._onEditorMouseMove(N,O)})),this._register(P.onExecute(N=>{this.onEditorMouseUp(N)})),this._register(P.onCancel(N=>{this.cleanUpActiveLinkDecoration()})),this._register(L.onDidChangeConfiguration(N=>{N.hasChanged(71)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))})),this._register(L.onDidChangeModelContent(N=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(L.onDidChangeModel(N=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(L.onDidChangeModelLanguage(N=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange(N=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(71))return;const L=this.editor.getModel();if(!L.isTooLargeForSyncing()&&this.providers.has(L)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=(0,d.createCancelablePromise)(D=>(0,c.getLinks)(this.providers,L,D));try{const D=new p.StopWatch(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(L,D.elapsed()),L.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(D){(0,I.onUnexpectedError)(D)}finally{this.computePromise=null}}}updateDecorations(L){const D=this.editor.getOption(78)==="altKey",T=[],M=Object.keys(this.currentOccurrences);for(const P of M){const N=this.currentOccurrences[P];T.push(N.decorationId)}const A=[];if(L)for(const P of L)A.push(h.decoration(P,D));this.editor.changeDecorations(P=>{const N=P.deltaDecorations(T,A);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let O=0,F=N.length;O{M.activate(A,T),this.activeLinkDecorationId=M.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const L=this.editor.getOption(78)==="altKey";if(this.activeLinkDecorationId){const D=this.currentOccurrences[this.activeLinkDecorationId];D&&this.editor.changeDecorations(T=>{D.deactivate(T,L)}),this.activeLinkDecorationId=null}}onEditorMouseUp(L){if(!this.isEnabled(L))return;const D=this.getLinkOccurrence(L.target.position);D&&this.openLinkOccurrence(D,L.hasSideBySideModifier,!0)}openLinkOccurrence(L,D,T=!1){if(!this.openerService)return;const{link:M}=L;M.resolve(k.CancellationToken.None).then(A=>{if(typeof A=="string"&&this.editor.hasModel()){const P=this.editor.getModel().uri;if(P.scheme===m.Schemas.file&&A.startsWith(`${m.Schemas.file}:`)){const N=n.URI.parse(A);if(N.scheme===m.Schemas.file){const O=b.originalFSPath(N);let F=null;O.startsWith("/./")||O.startsWith("\\.\\")?F=`.${O.substr(1)}`:(O.startsWith("//./")||O.startsWith("\\\\.\\"))&&(F=`.${O.substr(2)}`),F&&(A=b.joinPath(P,F))}}}return this.openerService.open(A,{openToSide:D,fromUserGesture:T,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},A=>{const P=A instanceof Error?A.message:A;P==="invalid"?this.notificationService.warn(l.localize(1138,"Failed to open this link because it is not well-formed: {0}",M.url.toString())):P==="missing"?this.notificationService.warn(l.localize(1139,"Failed to open this link because its target is missing.")):(0,I.onUnexpectedError)(A)})}getLinkOccurrence(L){if(!this.editor.hasModel()||!L)return null;const D=this.editor.getModel().getDecorationsInRange({startLineNumber:L.lineNumber,startColumn:L.column,endLineNumber:L.lineNumber,endColumn:L.column},0,!0);for(const T of D){const M=this.currentOccurrences[T.id];if(M)return M}return null}isEnabled(L,D){return!!(L.target.type===6&&(L.hasTriggerModifier||D&&D.keyCodeIsTriggerKey))}stop(){this.computeLinks.cancel(),this.activeLinksList&&(this.activeLinksList?.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}};e.LinkDetector=C,e.LinkDetector=C=u=ke([ce(1,r.IOpenerService),ce(2,a.INotificationService),ce(3,s.ILanguageFeaturesService),ce(4,i.ILanguageFeatureDebounceService)],C);const f={general:t.ModelDecorationOptions.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:t.ModelDecorationOptions.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class h{static decoration(L,D){return{range:L.range,options:h._getOptions(L,D,!1)}}static _getOptions(L,D,T){const M={...T?f.active:f.general};return M.hoverMessage=v(L,D),M}constructor(L,D){this.link=L,this.decorationId=D}activate(L,D){L.changeDecorationOptions(this.decorationId,h._getOptions(this.link,D,!0))}deactivate(L,D){L.changeDecorationOptions(this.decorationId,h._getOptions(this.link,D,!1))}}function v(S,L){const D=S.url&&/^command:/i.test(S.url.toString()),T=S.tooltip?S.tooltip:D?l.localize(1140,"Execute command"):l.localize(1141,"Follow link"),M=L?_.isMacintosh?l.localize(1142,"cmd + click"):l.localize(1143,"ctrl + click"):_.isMacintosh?l.localize(1144,"option + click"):l.localize(1145,"alt + click");if(S.url){let A="";if(/^command:/i.test(S.url.toString())){const N=S.url.toString().match(/^command:([^?#]+)/);if(N){const O=N[1];A=l.localize(1146,"Execute command {0}",O)}}return new E.MarkdownString("",!0).appendLink(S.url.toString(!0).replace(/ /g,"%20"),T,A).appendMarkdown(` (${M})`)}else return new E.MarkdownString().appendText(`${T} (${M})`)}class w extends o.EditorAction{constructor(){super({id:"editor.action.openLink",label:l.localize(1147,"Open Link"),alias:"Open Link",precondition:void 0})}run(L,D){const T=C.get(D);if(!T||!D.hasModel())return;const M=D.getSelections();for(const A of M){const P=T.getLinkOccurrence(A.getEndPosition());P&&T.openLinkOccurrence(P,!1)}}}(0,o.registerEditorContribution)(C.ID,C,1),(0,o.registerEditorAction)(w)}),define(ne[835],se([1,0,14,2,15,36,35,100]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SectionHeaderDetector=void 0;let _=class extends k.Disposable{static{this.ID="editor.sectionHeaderDetector"}constructor(n,o,t){super(),this.editor=n,this.languageConfigurationService=o,this.editorWorkerService=t,this.decorations=this.editor.createDecorationsCollection(),this.options=this.createOptions(n.getOption(73)),this.computePromise=null,this.currentOccurrences={},this._register(n.onDidChangeModel(i=>{this.currentOccurrences={},this.options=this.createOptions(n.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(n.onDidChangeModelLanguage(i=>{this.currentOccurrences={},this.options=this.createOptions(n.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(o.onDidChange(i=>{const s=this.editor.getModel()?.getLanguageId();s&&i.affects(s)&&(this.currentOccurrences={},this.options=this.createOptions(n.getOption(73)),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(n.onDidChangeConfiguration(i=>{this.options&&!i.hasChanged(73)||(this.options=this.createOptions(n.getOption(73)),this.updateDecorations([]),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(this.editor.onDidChangeModelContent(i=>{this.computeSectionHeaders.schedule()})),this._register(n.onDidChangeModelTokens(i=>{this.computeSectionHeaders.isScheduled()||this.computeSectionHeaders.schedule(1e3)})),this.computeSectionHeaders=this._register(new d.RunOnceScheduler(()=>{this.findSectionHeaders()},250)),this.computeSectionHeaders.schedule(0)}createOptions(n){if(!n||!this.editor.hasModel())return;const o=this.editor.getModel().getLanguageId();if(!o)return;const t=this.languageConfigurationService.getLanguageConfiguration(o).comments,i=this.languageConfigurationService.getLanguageConfiguration(o).foldingRules;if(!(!t&&!i?.markers))return{foldingRules:i,findMarkSectionHeaders:n.showMarkSectionHeaders,findRegionSectionHeaders:n.showRegionSectionHeaders}}findSectionHeaders(){if(!this.editor.hasModel()||!this.options?.findMarkSectionHeaders&&!this.options?.findRegionSectionHeaders)return;const n=this.editor.getModel();if(n.isDisposed()||n.isTooLargeForSyncing())return;const o=n.getVersionId();this.editorWorkerService.findSectionHeaders(n.uri,this.options).then(t=>{n.isDisposed()||n.getVersionId()!==o||this.updateDecorations(t)})}updateDecorations(n){const o=this.editor.getModel();o&&(n=n.filter(s=>{if(!s.shouldBeInComments)return!0;const g=o.validateRange(s.range),c=o.tokenization.getLineTokens(g.startLineNumber),l=c.findTokenIndexAtOffset(g.startColumn-1),a=c.getStandardTokenType(l);return c.getLanguageId(l)===o.getLanguageId()&&a===1}));const t=Object.values(this.currentOccurrences).map(s=>s.decorationId),i=n.map(s=>b(s));this.editor.changeDecorations(s=>{const g=s.deltaDecorations(t,i);this.currentOccurrences={};for(let c=0,l=g.length;cf.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(f){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(const h of this._modelProviders){const{statusPromise:v,modelPromise:w}=h.computeStickyModel(f);this._modelPromise=w;const S=await v;if(this._modelPromise!==w)return null;switch(S){case s.CANCELED:return this._updateOperation.clear(),null;case s.VALID:return h.stickyModel}}return null}).catch(h=>((0,p.onUnexpectedError)(h),null))}};e.StickyModelProvider=g,e.StickyModelProvider=g=ke([ce(2,t.IInstantiationService),ce(3,k.ILanguageFeaturesService)],g);class c extends d.Disposable{constructor(f){super(),this._editor=f,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,s.INVALID}computeStickyModel(f){if(f.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};const h=(0,E.createCancelablePromise)(v=>this.createModelFromProvider(v));return{statusPromise:h.then(v=>this.isModelValid(v)?f.isCancellationRequested?s.CANCELED:(this._stickyModel=this.createStickyModel(f,v),s.VALID):this._invalid()).then(void 0,v=>((0,p.onUnexpectedError)(v),s.CANCELED)),modelPromise:h}}isModelValid(f){return!0}isProviderValid(){return!0}}let l=class extends c{constructor(f,h){super(f),this._languageFeaturesService=h}createModelFromProvider(f){return I.OutlineModel.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),f)}createStickyModel(f,h){const{stickyOutlineElement:v,providerID:w}=this._stickyModelFromOutlineModel(h,this._stickyModel?.outlineProviderId),S=this._editor.getModel();return new n.StickyModel(S.uri,S.getVersionId(),v,w)}isModelValid(f){return f&&f.children.size>0}_stickyModelFromOutlineModel(f,h){let v;if(o.Iterable.first(f.children.values())instanceof I.OutlineGroup){const D=o.Iterable.find(f.children.values(),T=>T.id===h);if(D)v=D.children;else{let T="",M=-1,A;for(const[P,N]of f.children.entries()){const O=this._findSumOfRangesOfGroup(N);O>M&&(A=N,M=O,T=N.id)}h=T,v=A.children}}else v=f.children;const w=[],S=Array.from(v.values()).sort((D,T)=>{const M=new n.StickyRange(D.symbol.range.startLineNumber,D.symbol.range.endLineNumber),A=new n.StickyRange(T.symbol.range.startLineNumber,T.symbol.range.endLineNumber);return this._comparator(M,A)});for(const D of S)w.push(this._stickyModelFromOutlineElement(D,D.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new n.StickyElement(void 0,w,void 0),providerID:h}}_stickyModelFromOutlineElement(f,h){const v=[];for(const S of f.children.values())if(S.symbol.selectionRange.startLineNumber!==S.symbol.range.endLineNumber)if(S.symbol.selectionRange.startLineNumber!==h)v.push(this._stickyModelFromOutlineElement(S,S.symbol.selectionRange.startLineNumber));else for(const L of S.children.values())v.push(this._stickyModelFromOutlineElement(L,S.symbol.selectionRange.startLineNumber));v.sort((S,L)=>this._comparator(S.range,L.range));const w=new n.StickyRange(f.symbol.selectionRange.startLineNumber,f.symbol.range.endLineNumber);return new n.StickyElement(w,v,void 0)}_comparator(f,h){return f.startLineNumber!==h.startLineNumber?f.startLineNumber-h.startLineNumber:h.endLineNumber-f.endLineNumber}_findSumOfRangesOfGroup(f){let h=0;for(const v of f.children.values())h+=this._findSumOfRangesOfGroup(v);return f instanceof I.OutlineElement?h+f.symbol.range.endLineNumber-f.symbol.selectionRange.startLineNumber:h}};l=ke([ce(1,k.ILanguageFeaturesService)],l);class a extends c{constructor(f){super(f),this._foldingLimitReporter=new y.RangesLimitReporter(f)}createStickyModel(f,h){const v=this._fromFoldingRegions(h),w=this._editor.getModel();return new n.StickyModel(w.uri,w.getVersionId(),v,void 0)}isModelValid(f){return f!==null}_fromFoldingRegions(f){const h=f.length,v=[],w=new n.StickyElement(void 0,[],void 0);for(let S=0;S0&&(this.provider=this._register(new m.SyntaxRangeProvider(f.getModel(),w,h,this._foldingLimitReporter,void 0)))}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(f){return this.provider?.compute(f)??null}};u=ke([ce(2,k.ILanguageFeaturesService)],u)}),define(ne[837],se([1,0,2,17,18,14,13,6,36,836]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StickyLineCandidateProvider=e.StickyLineCandidate=void 0;class p{constructor(t,i,s){this.startLineNumber=t,this.endLineNumber=i,this.nestingDepth=s}}e.StickyLineCandidate=p;let n=class extends d.Disposable{constructor(t,i,s){super(),this._languageFeaturesService=i,this._languageConfigurationService=s,this._onDidChangeStickyScroll=this._register(new m.Emitter),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=t,this._sessionStore=this._register(new d.DisposableStore),this._updateSoon=this._register(new E.RunOnceScheduler(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(g=>{g.hasChanged(116)&&this.readConfiguration()})),this.readConfiguration()}readConfiguration(){this._sessionStore.clear(),this._editor.getOption(116).enabled&&(this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this.updateStickyModelProvider(),this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this._sessionStore.add((0,d.toDisposable)(()=>{this._stickyModelProvider?.dispose(),this._stickyModelProvider=null})),this.updateStickyModelProvider(),this.update())}getVersionId(){return this._model?.version}updateStickyModelProvider(){this._stickyModelProvider?.dispose(),this._stickyModelProvider=null;const t=this._editor;t.hasModel()&&(this._stickyModelProvider=new b.StickyModelProvider(t,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService))}async update(){this._cts?.dispose(!0),this._cts=new I.CancellationTokenSource,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(t){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}const i=await this._stickyModelProvider.update(t);t.isCancellationRequested||(this._model=i)}updateIndex(t){return t===-1?t=0:t<0&&(t=-t-2),t}getCandidateStickyLinesIntersectingFromStickyModel(t,i,s,g,c){if(i.children.length===0)return;let l=c;const a=[];for(let C=0;CC-f)),u=this.updateIndex((0,y.binarySearch)(a,t.startLineNumber+g,(C,f)=>C-f));for(let C=r;C<=u;C++){const f=i.children[C];if(!f)return;if(f.range){const h=f.range.startLineNumber,v=f.range.endLineNumber;t.startLineNumber<=v+1&&h-1<=t.endLineNumber&&h!==l&&(l=h,s.push(new p(h,v-1,g+1)),this.getCandidateStickyLinesIntersectingFromStickyModel(t,f,s,g+1,h))}else this.getCandidateStickyLinesIntersectingFromStickyModel(t,f,s,g,c)}}getCandidateStickyLinesIntersecting(t){if(!this._model?.element)return[];let i=[];this.getCandidateStickyLinesIntersectingFromStickyModel(t,this._model.element,i,0,-1);const s=this._editor._getViewModel()?.getHiddenAreas();if(s)for(const g of s)i=i.filter(c=>!(c.startLineNumber>=g.startLineNumber&&c.endLineNumber<=g.endLineNumber+1));return i}};e.StickyLineCandidateProvider=n,e.StickyLineCandidateProvider=n=ke([ce(1,k.ILanguageFeaturesService),ce(2,_.ILanguageConfigurationService)],n)}),define(ne[838],se([1,0,5,103,13,2,30,281,125,9,116,150,136,424,531]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StickyScrollWidget=e.StickyScrollWidgetState=void 0;class i{constructor(h,v,w,S=null){this.startLineNumbers=h,this.endLineNumbers=v,this.lastLineRelativePosition=w,this.showEndForLine=S}equals(h){return!!h&&this.lastLineRelativePosition===h.lastLineRelativePosition&&this.showEndForLine===h.showEndForLine&&(0,I.equals)(this.startLineNumbers,h.startLineNumbers)&&(0,I.equals)(this.endLineNumbers,h.endLineNumbers)}static get Empty(){return new i([],[],0)}}e.StickyScrollWidgetState=i;const s=(0,k.createTrustedTypesPolicy)("stickyScrollViewLayer",{createHTML:f=>f}),g="data-sticky-line-index",c="data-sticky-is-line",l="data-sticky-is-line-number",a="data-sticky-is-folding-icon";class r extends E.Disposable{constructor(h){super(),this._editor=h,this._foldingIconStore=new E.DisposableStore,this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._lineHeight=this._editor.getOption(67),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",h instanceof _.EmbeddedCodeEditorWidget),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable);const v=()=>{this._linesDomNode.style.left=this._editor.getOption(116).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration(w=>{w.hasChanged(116)&&v(),w.hasChanged(67)&&(this._lineHeight=this._editor.getOption(67))})),this._register(this._editor.onDidScrollChange(w=>{w.scrollLeftChanged&&v(),w.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{v(),this._updateWidgetWidth()})),this._register(this._foldingIconStore),v(),this._register(this._editor.onDidLayoutChange(w=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(h){return this._renderedStickyLines.find(v=>v.lineNumber===h)}getCurrentLines(){return this._lineNumbers}setState(h,v,w){if(w===void 0&&(!this._previousState&&!h||this._previousState&&this._previousState.equals(h)))return;const S=this._isWidgetHeightZero(h),L=S?void 0:h,D=S?0:this._findLineToRebuildWidgetFrom(h,w);this._renderRootNode(L,v,D),this._previousState=h}_isWidgetHeightZero(h){if(!h)return!0;const v=h.startLineNumbers.length*this._lineHeight+h.lastLineRelativePosition;if(v>0){this._lastLineRelativePosition=h.lastLineRelativePosition;const w=[...h.startLineNumbers];h.showEndForLine!==null&&(w[h.showEndForLine]=h.endLineNumbers[h.showEndForLine]),this._lineNumbers=w}else this._lastLineRelativePosition=0,this._lineNumbers=[];return v===0}_findLineToRebuildWidgetFrom(h,v){if(!h||!this._previousState)return 0;if(v!==void 0)return v;const w=this._previousState,S=h.startLineNumbers.findIndex(L=>!w.startLineNumbers.includes(L));return S===-1?0:S}_updateWidgetWidth(){const h=this._editor.getLayoutInfo(),v=h.contentLeft;this._lineNumbersDomNode.style.width=`${v}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-h.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${h.width-h.verticalScrollbarWidth}px`}_clearStickyLinesFromLine(h){this._foldingIconStore.clear();for(let v=h;vT.scrollWidth))+S.verticalScrollbarWidth,this._editor.layoutOverlayWidget(this)}_setFoldingHoverListeners(){this._editor.getOption(111)==="mouseover"&&(this._foldingIconStore.add(d.addDisposableListener(this._lineNumbersDomNode,d.EventType.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(d.addDisposableListener(this._lineNumbersDomNode,d.EventType.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)})))}_renderChildNode(h,v,w,S){const L=this._editor._getViewModel();if(!L)return;const D=L.coordinatesConverter.convertModelPositionToViewPosition(new b.Position(v,1)).lineNumber,T=L.getViewLineRenderingData(D),M=this._editor.getOption(68);let A;try{A=n.LineDecoration.filter(T.inlineDecorations,D,T.minColumn,T.maxColumn)}catch{A=[]}const P=new o.RenderLineInput(!0,!0,T.content,T.continuesWithWrappedLine,T.isBasicASCII,T.containsRTL,0,T.tokens,A,T.tabSize,T.startVisibleColumn,1,1,1,500,"none",!0,!0,null),N=new p.StringBuilder(2e3),O=(0,o.renderViewLine)(P,N);let F;s?F=s.createHTML(N.build()):F=N.build();const x=document.createElement("span");x.setAttribute(g,String(h)),x.setAttribute(c,""),x.setAttribute("role","listitem"),x.tabIndex=0,x.className="sticky-line-content",x.classList.add(`stickyLine${v}`),x.style.lineHeight=`${this._lineHeight}px`,x.innerHTML=F;const W=document.createElement("span");W.setAttribute(g,String(h)),W.setAttribute(l,""),W.className="sticky-line-number",W.style.lineHeight=`${this._lineHeight}px`;const V=S.contentLeft;W.style.width=`${V}px`;const q=document.createElement("span");M.renderType===1||M.renderType===3&&v%10===0?q.innerText=v.toString():M.renderType===2&&(q.innerText=Math.abs(v-this._editor.getPosition().lineNumber).toString()),q.className="sticky-line-number-inner",q.style.lineHeight=`${this._lineHeight}px`,q.style.width=`${S.lineNumbersWidth}px`,q.style.paddingLeft=`${S.lineNumbersLeft}px`,W.appendChild(q);const H=this._renderFoldingIconForLine(w,v);H&&W.appendChild(H.domNode),this._editor.applyFontInfo(x),this._editor.applyFontInfo(q),W.style.lineHeight=`${this._lineHeight}px`,x.style.lineHeight=`${this._lineHeight}px`,W.style.height=`${this._lineHeight}px`,x.style.height=`${this._lineHeight}px`;const z=new u(h,v,x,W,H,O.characterMapping,x.scrollWidth);return this._updateTopAndZIndexOfStickyLine(z)}_updateTopAndZIndexOfStickyLine(h){const v=h.index,w=h.lineDomNode,S=h.lineNumberDomNode,L=v===this._lineNumbers.length-1,D="0",T="1";w.style.zIndex=L?D:T,S.style.zIndex=L?D:T;const M=`${v*this._lineHeight+this._lastLineRelativePosition+(h.foldingIcon?.isCollapsed?1:0)}px`,A=`${v*this._lineHeight}px`;return w.style.top=L?M:A,S.style.top=L?M:A,h}_renderFoldingIconForLine(h,v){const w=this._editor.getOption(111);if(!h||w==="never")return;const S=h.regions,L=S.findRange(v),D=S.getStartLineNumber(L);if(!(v===D))return;const M=S.isCollapsed(L),A=new C(M,D,S.getEndLineNumber(L),this._lineHeight);return A.setVisible(this._isOnGlyphMargin?!0:M||w==="always"),A.domNode.setAttribute(a,""),A}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOridinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(h){0<=h&&h0)return null;const v=this._getRenderedStickyLineFromChildDomNode(h);if(!v)return null;const w=(0,m.getColumnOfNodeOffset)(v.characterMapping,h,0);return new b.Position(v.lineNumber,w)}getLineNumberFromChildDomNode(h){return this._getRenderedStickyLineFromChildDomNode(h)?.lineNumber??null}_getRenderedStickyLineFromChildDomNode(h){const v=this.getLineIndexFromChildDomNode(h);return v===null||v<0||v>=this._renderedStickyLines.length?null:this._renderedStickyLines[v]}getLineIndexFromChildDomNode(h){const v=this._getAttributeValue(h,g);return v?parseInt(v,10):null}isInStickyLine(h){return this._getAttributeValue(h,c)!==void 0}isInFoldingIconDomNode(h){return this._getAttributeValue(h,a)!==void 0}_getAttributeValue(h,v){for(;h&&h!==this._rootDomNode;){const w=h.getAttribute(v);if(w!==null)return w;h=h.parentElement}}}e.StickyScrollWidget=r;class u{constructor(h,v,w,S,L,D,T){this.index=h,this.lineNumber=v,this.lineDomNode=w,this.lineNumberDomNode=S,this.foldingIcon=L,this.characterMapping=D,this.scrollWidth=T}}class C{constructor(h,v,w,S){this.isCollapsed=h,this.foldingStartLine=v,this.foldingEndLine=w,this.dimension=S,this.domNode=document.createElement("div"),this.domNode.style.width=`${S}px`,this.domNode.style.height=`${S}px`,this.domNode.className=y.ThemeIcon.asClassName(h?t.foldingCollapsedIcon:t.foldingExpandedIcon)}setVisible(h){this.domNode.style.cursor=h?"pointer":"default",this.domNode.style.opacity=h?"1":"0"}}}),define(ne[839],se([1,0,5,115,14,8,6,2,141,11,125,798,3,12,7,101,32,97,25,255,155,402,793,110,46,195,532,280]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h){"use strict";var v;Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestContentWidget=e.SuggestWidget=e.editorSuggestWidgetSelectedBackground=void 0,(0,g.registerColor)("editorSuggestWidget.background",g.editorWidgetBackground,o.localize(1328,"Background color of the suggest widget.")),(0,g.registerColor)("editorSuggestWidget.border",g.editorWidgetBorder,o.localize(1329,"Border color of the suggest widget."));const w=(0,g.registerColor)("editorSuggestWidget.foreground",g.editorForeground,o.localize(1330,"Foreground color of the suggest widget."));(0,g.registerColor)("editorSuggestWidget.selectedForeground",g.quickInputListFocusForeground,o.localize(1331,"Foreground color of the selected entry in the suggest widget.")),(0,g.registerColor)("editorSuggestWidget.selectedIconForeground",g.quickInputListFocusIconForeground,o.localize(1332,"Icon foreground color of the selected entry in the suggest widget.")),e.editorSuggestWidgetSelectedBackground=(0,g.registerColor)("editorSuggestWidget.selectedBackground",g.quickInputListFocusBackground,o.localize(1333,"Background color of the selected entry in the suggest widget.")),(0,g.registerColor)("editorSuggestWidget.highlightForeground",g.listHighlightForeground,o.localize(1334,"Color of the match highlights in the suggest widget.")),(0,g.registerColor)("editorSuggestWidget.focusHighlightForeground",g.listFocusHighlightForeground,o.localize(1335,"Color of the match highlights in the suggest widget when an item is focused.")),(0,g.registerColor)("editorSuggestWidgetStatus.foreground",(0,g.transparent)(w,.5),o.localize(1336,"Foreground color of the suggest widget status."));class S{constructor(M,A){this._service=M,this._key=`suggestWidget.size/${A.getEditorType()}/${A instanceof p.EmbeddedCodeEditorWidget}`}restore(){const M=this._service.get(this._key,0)??"";try{const A=JSON.parse(M);if(d.Dimension.is(A))return d.Dimension.lift(A)}catch{}}store(M){this._service.store(this._key,JSON.stringify(M),0,1)}reset(){this._service.remove(this._key,0)}}let L=class{static{v=this}static{this.LOADING_MESSAGE=o.localize(1337,"Loading...")}static{this.NO_SUGGESTIONS_MESSAGE=o.localize(1338,"No suggestions.")}constructor(M,A,P,N,O){this.editor=M,this._storageService=A,this._state=0,this._isAuto=!1,this._pendingLayout=new m.MutableDisposable,this._pendingShowDetails=new m.MutableDisposable,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new I.TimeoutTimer,this._disposables=new m.DisposableStore,this._onDidSelect=new y.PauseableEmitter,this._onDidFocus=new y.PauseableEmitter,this._onDidHide=new y.Emitter,this._onDidShow=new y.Emitter,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new y.Emitter,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new a.ResizableHTMLElement,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new D(this,M),this._persistedSize=new S(A,M);class F{constructor(U,j,Y=!1,G=!1){this.persistedSize=U,this.currentSize=j,this.persistHeight=Y,this.persistWidth=G}}let x;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),x=new F(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize(z=>{if(this._resize(z.dimension.width,z.dimension.height),x&&(x.persistHeight=x.persistHeight||!!z.north||!!z.south,x.persistWidth=x.persistWidth||!!z.east||!!z.west),!!z.done){if(x){const{itemHeight:U,defaultSize:j}=this.getLayoutInfo(),Y=Math.round(U/2);let{width:G,height:K}=this.element.size;(!x.persistHeight||Math.abs(x.currentSize.height-K)<=Y)&&(K=x.persistedSize?.height??j.height),(!x.persistWidth||Math.abs(x.currentSize.width-G)<=Y)&&(G=x.persistedSize?.width??j.width),this._persistedSize.store(new d.Dimension(G,K))}this._contentWidget.unlockPreference(),x=void 0}})),this._messageElement=d.append(this.element.domNode,d.$(".message")),this._listElement=d.append(this.element.domNode,d.$(".tree"));const W=this._disposables.add(O.createInstance(u.SuggestDetailsWidget,this.editor));W.onDidClose(this.toggleDetails,this,this._disposables),this._details=new u.SuggestDetailsOverlay(W,this.editor);const V=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(119).showIcons);V();const q=O.createInstance(C.ItemRenderer,this.editor);this._disposables.add(q),this._disposables.add(q.onDidToggleDetails(()=>this.toggleDetails())),this._list=new k.List("SuggestWidget",this._listElement,{getHeight:z=>this.getLayoutInfo().itemHeight,getTemplateId:z=>"suggestion"},[q],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>"option",getWidgetAriaLabel:()=>o.localize(1339,"Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:z=>{let U=z.textLabel;if(typeof z.completion.label!="string"){const{detail:K,description:R}=z.completion.label;K&&R?U=o.localize(1340,"{0} {1}, {2}",U,K,R):K?U=o.localize(1341,"{0} {1}",U,K):R&&(U=o.localize(1342,"{0}, {1}",U,R))}if(!z.isResolved||!this._isDetailsVisible())return U;const{documentation:j,detail:Y}=z.completion,G=b.format("{0}{1}",Y||"",j?typeof j=="string"?j:j.value:"");return o.localize(1343,"{0}, docs: {1}",U,G)}}}),this._list.style((0,f.getListStyles)({listInactiveFocusBackground:e.editorSuggestWidgetSelectedBackground,listInactiveFocusOutline:g.activeContrastBorder})),this._status=O.createInstance(n.SuggestWidgetStatus,this.element.domNode,r.suggestWidgetStatusbarMenu);const H=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(119).showStatusBar);H(),this._disposables.add(N.onDidColorThemeChange(z=>this._onThemeChange(z))),this._onThemeChange(N.getColorTheme()),this._disposables.add(this._list.onMouseDown(z=>this._onListMouseDownOrTap(z))),this._disposables.add(this._list.onTap(z=>this._onListMouseDownOrTap(z))),this._disposables.add(this._list.onDidChangeSelection(z=>this._onListSelection(z))),this._disposables.add(this._list.onDidChangeFocus(z=>this._onListFocus(z))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration(z=>{z.hasChanged(119)&&(H(),V()),this._completionModel&&(z.hasChanged(50)||z.hasChanged(120)||z.hasChanged(121))&&this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=r.Context.Visible.bindTo(P),this._ctxSuggestWidgetDetailsVisible=r.Context.DetailsVisible.bindTo(P),this._ctxSuggestWidgetMultipleSuggestions=r.Context.MultipleSuggestions.bindTo(P),this._ctxSuggestWidgetHasFocusedSuggestion=r.Context.HasFocusedSuggestion.bindTo(P),this._disposables.add(d.addStandardDisposableListener(this._details.widget.domNode,"keydown",z=>{this._onDetailsKeydown.fire(z)})),this._disposables.add(this.editor.onMouseDown(z=>this._onEditorMouseDown(z)))}dispose(){this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),this._loadingTimeout?.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}_onEditorMouseDown(M){this._details.widget.domNode.contains(M.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(M.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){this._state!==0&&this._contentWidget.layout()}_onListMouseDownOrTap(M){typeof M.element>"u"||typeof M.index>"u"||(M.browserEvent.preventDefault(),M.browserEvent.stopPropagation(),this._select(M.element,M.index))}_onListSelection(M){M.elements.length&&this._select(M.elements[0],M.indexes[0])}_select(M,A){const P=this._completionModel;P&&(this._onDidSelect.fire({item:M,index:A,model:P}),this.editor.focus())}_onThemeChange(M){this._details.widget.borderWidth=(0,c.isHighContrast)(M.type)?2:1}_onListFocus(M){if(this._ignoreFocusEvents)return;if(!M.elements.length){this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);const A=M.elements[0],P=M.indexes[0];A!==this._focusedItem&&(this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=A,this._list.reveal(P),this._currentSuggestionDetails=(0,I.createCancelablePromise)(async N=>{const O=(0,I.disposableTimeout)(()=>{this._isDetailsVisible()&&this.showDetails(!0)},250),F=N.onCancellationRequested(()=>O.dispose());try{return await A.resolve(N)}finally{O.dispose(),F.dispose()}}),this._currentSuggestionDetails.then(()=>{P>=this._list.length||A!==this._list.element(P)||(this._ignoreFocusEvents=!0,this._list.splice(P,1,[A]),this._list.setFocus([P]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this.showDetails(!1):this.element.domNode.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:(0,C.getAriaId)(P)}))}).catch(E.onUnexpectedError)),this._onDidFocus.fire({item:A,index:P,model:this._completionModel})}_setState(M){if(this._state!==M)switch(this._state=M,this.element.domNode.classList.toggle("frozen",M===4),this.element.domNode.classList.remove("message"),M){case 0:d.hide(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=v.LOADING_MESSAGE,d.hide(this._listElement,this._status.element),d.show(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,(0,h.status)(v.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=v.NO_SUGGESTIONS_MESSAGE,d.hide(this._listElement,this._status.element),d.show(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,(0,h.status)(v.NO_SUGGESTIONS_MESSAGE);break;case 3:d.hide(this._messageElement),d.show(this._listElement,this._status.element),this._show();break;case 4:d.hide(this._messageElement),d.show(this._listElement,this._status.element),this._show();break;case 5:d.hide(this._messageElement),d.show(this._listElement,this._status.element),this._details.show(),this._show();break}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet(()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)},100)}showTriggered(M,A){this._state===0&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!M,this._isAuto||(this._loadingTimeout=(0,I.disposableTimeout)(()=>this._setState(1),A)))}showSuggestions(M,A,P,N,O){if(this._contentWidget.setPosition(this.editor.getPosition()),this._loadingTimeout?.dispose(),this._currentSuggestionDetails?.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==M&&(this._completionModel=M),P&&this._state!==2&&this._state!==0){this._setState(4);return}const F=this._completionModel.items.length,x=F===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(F>1),x){this._setState(N?0:2),this._completionModel=void 0;return}this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(P?4:3),this._list.reveal(A,0),this._list.setFocus(O?[]:[A])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=d.runAtThisOrScheduleAtNextAnimationFrame(d.getWindow(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")})}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){this._state===5?(this._setState(3),this._details.widget.domNode.classList.remove("focused")):this._state===3&&this._isDetailsVisible()&&(this._setState(5),this._details.widget.domNode.classList.add("focused"))}toggleDetails(){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):((0,u.canExpandCompletionItem)(this._list.getFocusedElements()[0])||this._explainMode)&&(this._state===3||this._state===5||this._state===4)&&(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this.showDetails(!1))}showDetails(M){this._pendingShowDetails.value=d.runAtThisOrScheduleAtNextAnimationFrame(d.getWindow(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show(),M?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._details.widget.isEmpty?this._details.hide():(this._positionDetails(),this.element.domNode.classList.add("shows-details")),this.editor.focus()})}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this.showDetails(!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){this._pendingLayout.clear(),this._pendingShowDetails.clear(),this._loadingTimeout?.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const M=this._persistedSize.restore(),A=Math.ceil(this.getLayoutInfo().itemHeight*4.3);M&&M.heightF&&(O=F);const x=this._completionModel?this._completionModel.stats.pLabelLen*P.typicalHalfwidthCharacterWidth:O,W=P.statusBarHeight+this._list.contentHeight+P.borderHeight,V=P.itemHeight+P.statusBarHeight,q=d.getDomNodePagePosition(this.editor.getDomNode()),H=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),z=q.top+H.top+H.height,U=Math.min(A.height-z-P.verticalPadding,W),j=q.top+H.top-P.verticalPadding,Y=Math.min(j,W);let G=Math.min(Math.max(Y,U)+P.borderHeight,W);N===this._cappedHeight?.capped&&(N=this._cappedHeight.wanted),NG&&(N=G),N>U||this._forceRenderingAbove&&j>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),G=Y):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),G=U),this.element.preferredSize=new d.Dimension(x,P.defaultSize.height),this.element.maxSize=new d.Dimension(F,G),this.element.minSize=new d.Dimension(220,V),this._cappedHeight=N===W?{wanted:this._cappedHeight?.wanted??M.height,capped:N}:void 0}this._resize(O,N)}_resize(M,A){const{width:P,height:N}=this.element.maxSize;M=Math.min(P,M),A=Math.min(N,A);const{statusBarHeight:O}=this.getLayoutInfo();this._list.layout(A-O,M),this._listElement.style.height=`${A-O}px`,this.element.layout(A,M),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,this._contentWidget.getPosition()?.preference[0]===2)}getLayoutInfo(){const M=this.editor.getOption(50),A=(0,_.clamp)(this.editor.getOption(121)||M.lineHeight,8,1e3),P=!this.editor.getOption(119).showStatusBar||this._state===2||this._state===1?0:A,N=this._details.widget.borderWidth,O=2*N;return{itemHeight:A,statusBarHeight:P,borderWidth:N,borderHeight:O,typicalHalfwidthCharacterWidth:M.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new d.Dimension(430,P+12*A+O)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(M){this._storageService.store("expandSuggestionDocs",M,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};e.SuggestWidget=L,e.SuggestWidget=L=v=ke([ce(1,s.IStorageService),ce(2,t.IContextKeyService),ce(3,l.IThemeService),ce(4,i.IInstantiationService)],L);class D{constructor(M,A){this._widget=M,this._editor=A,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return this._hidden||!this._position||!this._preference?null:{position:this._position,preference:[this._preference]}}beforeRender(){const{height:M,width:A}=this._widget.element.size,{borderWidth:P,horizontalPadding:N}=this._widget.getLayoutInfo();return new d.Dimension(A+2*P+N,M+2*P)}afterRender(M){this._widget._afterRender(M)}setPreference(M){this._preferenceLocked||(this._preference=M)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(M){this._position=M}}e.SuggestContentWidget=D}),define(ne[426],se([1,0,40,35,27,3,32,25,536]),function(oe,e,d,k,I,E,y,m){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getHighlightDecorationOptions=l,e.getSelectionHighlightDecorationOptions=a;const _=(0,y.registerColor)("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},E.localize(1415,"Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0);(0,y.registerColor)("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},E.localize(1416,"Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0),(0,y.registerColor)("editor.wordHighlightTextBackground",_,E.localize(1417,"Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0);const b=(0,y.registerColor)("editor.wordHighlightBorder",{light:null,dark:null,hcDark:y.activeContrastBorder,hcLight:y.activeContrastBorder},E.localize(1418,"Border color of a symbol during read-access, like reading a variable."));(0,y.registerColor)("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:y.activeContrastBorder,hcLight:y.activeContrastBorder},E.localize(1419,"Border color of a symbol during write-access, like writing to a variable.")),(0,y.registerColor)("editor.wordHighlightTextBorder",b,E.localize(1420,"Border color of a textual occurrence for a symbol."));const p=(0,y.registerColor)("editorOverviewRuler.wordHighlightForeground","#A0A0A0CC",E.localize(1421,"Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),n=(0,y.registerColor)("editorOverviewRuler.wordHighlightStrongForeground","#C0A0C0CC",E.localize(1422,"Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),o=(0,y.registerColor)("editorOverviewRuler.wordHighlightTextForeground",y.overviewRulerSelectionHighlightForeground,E.localize(1423,"Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0),t=k.ModelDecorationOptions.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:(0,m.themeColorFromId)(n),position:d.OverviewRulerLane.Center},minimap:{color:(0,m.themeColorFromId)(y.minimapSelectionOccurrenceHighlight),position:1}}),i=k.ModelDecorationOptions.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:(0,m.themeColorFromId)(o),position:d.OverviewRulerLane.Center},minimap:{color:(0,m.themeColorFromId)(y.minimapSelectionOccurrenceHighlight),position:1}}),s=k.ModelDecorationOptions.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:(0,m.themeColorFromId)(y.overviewRulerSelectionHighlightForeground),position:d.OverviewRulerLane.Center},minimap:{color:(0,m.themeColorFromId)(y.minimapSelectionOccurrenceHighlight),position:1}}),g=k.ModelDecorationOptions.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),c=k.ModelDecorationOptions.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:(0,m.themeColorFromId)(p),position:d.OverviewRulerLane.Center},minimap:{color:(0,m.themeColorFromId)(y.minimapSelectionOccurrenceHighlight),position:1}});function l(r){return r===I.DocumentHighlightKind.Write?t:r===I.DocumentHighlightKind.Text?i:c}function a(r){return r?g:s}(0,m.registerThemingParticipant)((r,u)=>{const C=r.getColor(y.editorSelectionHighlight);C&&u.addRule(`.monaco-editor .selectionHighlight { background-color: ${C.transparent(.5)}; }`)})}),define(ne[840],se([1,0,46,14,72,2,15,235,4,23,20,423,3,29,12,17,426,7]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";var l;Object.defineProperty(e,"__esModule",{value:!0}),e.FocusPreviousCursor=e.FocusNextCursor=e.SelectionHighlighter=e.CompatChangeAll=e.SelectHighlightsAction=e.MoveSelectionToPreviousFindMatchAction=e.MoveSelectionToNextFindMatchAction=e.AddSelectionToPreviousFindMatchAction=e.AddSelectionToNextFindMatchAction=e.MultiCursorSelectionControllerAction=e.MultiCursorSelectionController=e.MultiCursorSession=e.MultiCursorSessionResult=e.InsertCursorBelow=e.InsertCursorAbove=void 0;function a(H,z){const U=z.filter(j=>!H.find(Y=>Y.equals(j)));if(U.length>=1){const j=U.map(G=>`line ${G.viewState.position.lineNumber} column ${G.viewState.position.column}`).join(", "),Y=U.length===1?o.localize(1149,"Cursor added: {0}",j):o.localize(1150,"Cursors added: {0}",j);(0,d.status)(Y)}}class r extends y.EditorAction{constructor(){super({id:"editor.action.insertCursorAbove",label:o.localize(1151,"Add Cursor Above"),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"3_multi",title:o.localize(1152,"&&Add Cursor Above"),order:2}})}run(z,U,j){if(!U.hasModel())return;let Y=!0;j&&j.logicalLine===!1&&(Y=!1);const G=U._getViewModel();if(G.cursorConfig.readOnly)return;G.model.pushStackElement();const K=G.getCursorStates();G.setCursorStates(j.source,3,m.CursorMoveCommands.addCursorUp(G,K,Y)),G.revealTopMostCursor(j.source),a(K,G.getCursorStates())}}e.InsertCursorAbove=r;class u extends y.EditorAction{constructor(){super({id:"editor.action.insertCursorBelow",label:o.localize(1153,"Add Cursor Below"),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"3_multi",title:o.localize(1154,"A&&dd Cursor Below"),order:3}})}run(z,U,j){if(!U.hasModel())return;let Y=!0;j&&j.logicalLine===!1&&(Y=!1);const G=U._getViewModel();if(G.cursorConfig.readOnly)return;G.model.pushStackElement();const K=G.getCursorStates();G.setCursorStates(j.source,3,m.CursorMoveCommands.addCursorDown(G,K,Y)),G.revealBottomMostCursor(j.source),a(K,G.getCursorStates())}}e.InsertCursorBelow=u;class C extends y.EditorAction{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:o.localize(1155,"Add Cursors to Line Ends"),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"3_multi",title:o.localize(1156,"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(z,U,j){if(!z.isEmpty()){for(let Y=z.startLineNumber;Y1&&j.push(new b.Selection(z.endLineNumber,z.endColumn,z.endLineNumber,z.endColumn))}}run(z,U){if(!U.hasModel())return;const j=U.getModel(),Y=U.getSelections(),G=U._getViewModel(),K=G.getCursorStates(),R=[];Y.forEach(J=>this.getCursorsForSelection(J,j,R)),R.length>0&&U.setSelections(R),a(K,G.getCursorStates())}}class f extends y.EditorAction{constructor(){super({id:"editor.action.addCursorsToBottom",label:o.localize(1157,"Add Cursors To Bottom"),alias:"Add Cursors To Bottom",precondition:void 0})}run(z,U){if(!U.hasModel())return;const j=U.getSelections(),Y=U.getModel().getLineCount(),G=[];for(let J=j[0].startLineNumber;J<=Y;J++)G.push(new b.Selection(J,j[0].startColumn,J,j[0].endColumn));const K=U._getViewModel(),R=K.getCursorStates();G.length>0&&U.setSelections(G),a(R,K.getCursorStates())}}class h extends y.EditorAction{constructor(){super({id:"editor.action.addCursorsToTop",label:o.localize(1158,"Add Cursors To Top"),alias:"Add Cursors To Top",precondition:void 0})}run(z,U){if(!U.hasModel())return;const j=U.getSelections(),Y=[];for(let R=j[0].startLineNumber;R>=1;R--)Y.push(new b.Selection(R,j[0].startColumn,R,j[0].endColumn));const G=U._getViewModel(),K=G.getCursorStates();Y.length>0&&U.setSelections(Y),a(K,G.getCursorStates())}}class v{constructor(z,U,j){this.selections=z,this.revealRange=U,this.revealScrollType=j}}e.MultiCursorSessionResult=v;class w{static create(z,U){if(!z.hasModel())return null;const j=U.getState();if(!z.hasTextFocus()&&j.isRevealed&&j.searchString.length>0)return new w(z,U,!1,j.searchString,j.wholeWord,j.matchCase,null);let Y=!1,G,K;const R=z.getSelections();R.length===1&&R[0].isEmpty()?(Y=!0,G=!0,K=!0):(G=j.wholeWord,K=j.matchCase);const J=z.getSelection();let ie,ue=null;if(J.isEmpty()){const he=z.getConfiguredWordAtPosition(J.getStartPosition());if(!he)return null;ie=he.word,ue=new b.Selection(J.startLineNumber,he.startColumn,J.startLineNumber,he.endColumn)}else ie=z.getModel().getValueInRange(J).replace(/\r\n/g,` +`);return new w(z,U,Y,ie,G,K,ue)}constructor(z,U,j,Y,G,K,R){this._editor=z,this.findController=U,this.isDisconnectedFromFindController=j,this.searchText=Y,this.wholeWord=G,this.matchCase=K,this.currentMatch=R}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const z=this._getNextMatch();if(!z)return null;const U=this._editor.getSelections();return new v(U.concat(z),z,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const z=this._getNextMatch();if(!z)return null;const U=this._editor.getSelections();return new v(U.slice(0,U.length-1).concat(z),z,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const Y=this.currentMatch;return this.currentMatch=null,Y}this.findController.highlightFindOptions();const z=this._editor.getSelections(),U=z[z.length-1],j=this._editor.getModel().findNextMatch(this.searchText,U.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1);return j?new b.Selection(j.range.startLineNumber,j.range.startColumn,j.range.endLineNumber,j.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const z=this._getPreviousMatch();if(!z)return null;const U=this._editor.getSelections();return new v(U.concat(z),z,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const z=this._getPreviousMatch();if(!z)return null;const U=this._editor.getSelections();return new v(U.slice(0,U.length-1).concat(z),z,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const Y=this.currentMatch;return this.currentMatch=null,Y}this.findController.highlightFindOptions();const z=this._editor.getSelections(),U=z[z.length-1],j=this._editor.getModel().findPreviousMatch(this.searchText,U.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1);return j?new b.Selection(j.range.startLineNumber,j.range.startColumn,j.range.endLineNumber,j.range.endColumn):null}selectAll(z){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();const U=this._editor.getModel();return z?U.findMatches(this.searchText,z,!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1,1073741824):U.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(132):null,!1,1073741824)}}e.MultiCursorSession=w;class S extends E.Disposable{static{this.ID="editor.contrib.multiCursorController"}static get(z){return z.getContribution(S.ID)}constructor(z){super(),this._sessionDispose=this._register(new E.DisposableStore),this._editor=z,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(z){if(!this._session){const U=w.create(this._editor,z);if(!U)return;this._session=U;const j={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(j.wholeWordOverride=1,j.matchCaseOverride=1,j.isRegexOverride=2),z.getState().change(j,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection(Y=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(z.getState().onFindReplaceStateChange(Y=>{(Y.matchCase||Y.wholeWord)&&this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const z={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(z,!1)}this._session=null}_setSelections(z){this._ignoreSelectionChange=!0,this._editor.setSelections(z),this._ignoreSelectionChange=!1}_expandEmptyToWord(z,U){if(!U.isEmpty())return U;const j=this._editor.getConfiguredWordAtPosition(U.getStartPosition());return j?new b.Selection(U.startLineNumber,j.startColumn,U.startLineNumber,j.endColumn):U}_applySessionResult(z){z&&(this._setSelections(z.selections),z.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(z.revealRange,z.revealScrollType))}getSession(z){return this._session}addSelectionToNextFindMatch(z){if(this._editor.hasModel()){if(!this._session){const U=this._editor.getSelections();if(U.length>1){const Y=z.getState().matchCase;if(!x(this._editor.getModel(),U,Y)){const K=this._editor.getModel(),R=[];for(let J=0,ie=U.length;J0&&j.isRegex){const Y=this._editor.getModel();j.searchScope?U=Y.findMatches(j.searchString,j.searchScope,j.isRegex,j.matchCase,j.wholeWord?this._editor.getOption(132):null,!1,1073741824):U=Y.findMatches(j.searchString,!0,j.isRegex,j.matchCase,j.wholeWord?this._editor.getOption(132):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(z),!this._session)return;U=this._session.selectAll(j.searchScope)}if(U.length>0){const Y=this._editor.getSelection();for(let G=0,K=U.length;Gnew b.Selection(G.range.startLineNumber,G.range.startColumn,G.range.endLineNumber,G.range.endColumn)))}}}e.MultiCursorSelectionController=S;class L extends y.EditorAction{run(z,U){const j=S.get(U);if(!j)return;const Y=U._getViewModel();if(Y){const G=Y.getCursorStates(),K=n.CommonFindController.get(U);if(K)this._run(j,K);else{const R=z.get(c.IInstantiationService).createInstance(n.CommonFindController,U);this._run(j,R),R.dispose()}a(G,Y.getCursorStates())}}}e.MultiCursorSelectionControllerAction=L;class D extends L{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:o.localize(1159,"Add Selection To Next Find Match"),alias:"Add Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.focus,primary:2082,weight:100},menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"3_multi",title:o.localize(1160,"Add &&Next Occurrence"),order:5}})}_run(z,U){z.addSelectionToNextFindMatch(U)}}e.AddSelectionToNextFindMatchAction=D;class T extends L{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:o.localize(1161,"Add Selection To Previous Find Match"),alias:"Add Selection To Previous Find Match",precondition:void 0,menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"3_multi",title:o.localize(1162,"Add P&&revious Occurrence"),order:6}})}_run(z,U){z.addSelectionToPreviousFindMatch(U)}}e.AddSelectionToPreviousFindMatchAction=T;class M extends L{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:o.localize(1163,"Move Last Selection To Next Find Match"),alias:"Move Last Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.focus,primary:(0,I.KeyChord)(2089,2082),weight:100}})}_run(z,U){z.moveSelectionToNextFindMatch(U)}}e.MoveSelectionToNextFindMatchAction=M;class A extends L{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:o.localize(1164,"Move Last Selection To Previous Find Match"),alias:"Move Last Selection To Previous Find Match",precondition:void 0})}_run(z,U){z.moveSelectionToPreviousFindMatch(U)}}e.MoveSelectionToPreviousFindMatchAction=A;class P extends L{constructor(){super({id:"editor.action.selectHighlights",label:o.localize(1165,"Select All Occurrences of Find Match"),alias:"Select All Occurrences of Find Match",precondition:void 0,kbOpts:{kbExpr:p.EditorContextKeys.focus,primary:3114,weight:100},menuOpts:{menuId:t.MenuId.MenubarSelectionMenu,group:"3_multi",title:o.localize(1166,"Select All &&Occurrences"),order:7}})}_run(z,U){z.selectAll(U)}}e.SelectHighlightsAction=P;class N extends L{constructor(){super({id:"editor.action.changeAll",label:o.localize(1167,"Change All Occurrences"),alias:"Change All Occurrences",precondition:i.ContextKeyExpr.and(p.EditorContextKeys.writable,p.EditorContextKeys.editorTextFocus),kbOpts:{kbExpr:p.EditorContextKeys.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(z,U){z.selectAll(U)}}e.CompatChangeAll=N;class O{constructor(z,U,j,Y,G){this._model=z,this._searchText=U,this._matchCase=j,this._wordSeparators=Y,this._modelVersionId=this._model.getVersionId(),this._cachedFindMatches=null,G&&this._model===G._model&&this._searchText===G._searchText&&this._matchCase===G._matchCase&&this._wordSeparators===G._wordSeparators&&this._modelVersionId===G._modelVersionId&&(this._cachedFindMatches=G._cachedFindMatches)}findMatches(){return this._cachedFindMatches===null&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map(z=>z.range),this._cachedFindMatches.sort(_.Range.compareRangesUsingStarts)),this._cachedFindMatches}}let F=class extends E.Disposable{static{l=this}static{this.ID="editor.contrib.selectionHighlighter"}constructor(z,U){super(),this._languageFeaturesService=U,this.editor=z,this._isEnabled=z.getOption(109),this._decorations=z.createDecorationsCollection(),this.updateSoon=this._register(new k.RunOnceScheduler(()=>this._update(),300)),this.state=null,this._register(z.onDidChangeConfiguration(Y=>{this._isEnabled=z.getOption(109)})),this._register(z.onDidChangeCursorSelection(Y=>{this._isEnabled&&(Y.selection.isEmpty()?Y.reason===3?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(z.onDidChangeModel(Y=>{this._setState(null)})),this._register(z.onDidChangeModelContent(Y=>{this._isEnabled&&this.updateSoon.schedule()}));const j=n.CommonFindController.get(z);j&&this._register(j.getState().onFindReplaceStateChange(Y=>{this._update()})),this.updateSoon.schedule()}_update(){this._setState(l._createState(this.state,this._isEnabled,this.editor))}static _createState(z,U,j){if(!U||!j.hasModel())return null;const Y=j.getSelection();if(Y.startLineNumber!==Y.endLineNumber)return null;const G=S.get(j);if(!G)return null;const K=n.CommonFindController.get(j);if(!K)return null;let R=G.getSession(K);if(!R){const ue=j.getSelections();if(ue.length>1){const pe=K.getState().matchCase;if(!x(j.getModel(),ue,pe))return null}R=w.create(j,K)}if(!R||R.currentMatch||/^[ \t]+$/.test(R.searchText)||R.searchText.length>200)return null;const J=K.getState(),ie=J.matchCase;if(J.isRevealed){let ue=J.searchString;ie||(ue=ue.toLowerCase());let he=R.searchText;if(ie||(he=he.toLowerCase()),ue===he&&R.matchCase===J.matchCase&&R.wholeWord===J.wholeWord&&!J.isRegex)return null}return new O(j.getModel(),R.searchText,R.matchCase,R.wholeWord?j.getOption(132):null,z)}_setState(z){if(this.state=z,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;const U=this.editor.getModel();if(U.isTooLargeForTokenization())return;const j=this.state.findMatches(),Y=this.editor.getSelections();Y.sort(_.Range.compareRangesUsingStarts);const G=[];for(let ie=0,ue=0,he=j.length,pe=Y.length;ie=pe)G.push(ae),ie++;else{const ee=_.Range.compareRangesUsingStarts(ae,Y[ue]);ee<0?((Y[ue].isEmpty()||!_.Range.areIntersecting(ae,Y[ue]))&&G.push(ae),ie++):(ee>0||ie++,ue++)}}const K=this.editor.getOption(81)!=="off",R=this._languageFeaturesService.documentHighlightProvider.has(U)&&K,J=G.map(ie=>({range:ie,options:(0,g.getSelectionHighlightDecorationOptions)(R)}));this._decorations.set(J)}dispose(){this._setState(null),super.dispose()}};e.SelectionHighlighter=F,e.SelectionHighlighter=F=l=ke([ce(1,s.ILanguageFeaturesService)],F);function x(H,z,U){const j=W(H,z[0],!U);for(let Y=1,G=z.length;Y()=>Promise.resolve(j.provideDocumentHighlights(q,H,z)).then(void 0,y.onUnexpectedExternalError)),j=>j!=null).then(j=>{if(j){const Y=new l.ResourceMap;return Y.set(q.uri,j),Y}return new l.ResourceMap})}function S(V,q,H,z,U,j){const Y=V.ordered(q);return(0,I.first)(Y.map(G=>()=>{const K=j.filter(R=>(0,t.shouldSynchronizeModel)(R)).filter(R=>(0,a.score)(G.selector,R.uri,R.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(G.provideMultiDocumentHighlights(q,H,K,U)).then(void 0,y.onUnexpectedExternalError)}),G=>G!=null)}class L{constructor(q,H,z){this._model=q,this._selection=H,this._wordSeparators=z,this._wordRange=this._getCurrentWordRange(q,H),this._result=null}get result(){return this._result||(this._result=(0,I.createCancelablePromise)(q=>this._compute(this._model,this._selection,this._wordSeparators,q))),this._result}_getCurrentWordRange(q,H){const z=q.getWordAtPosition(H.getPosition());return z?new n.Range(H.startLineNumber,z.startColumn,H.startLineNumber,z.endColumn):null}isValid(q,H,z){const U=H.startLineNumber,j=H.startColumn,Y=H.endColumn,G=this._getCurrentWordRange(q,H);let K=!!(this._wordRange&&this._wordRange.equalsRange(G));for(let R=0,J=z.length;!K&&R=Y&&(K=!0)}return K}cancel(){this.result.cancel()}}class D extends L{constructor(q,H,z,U){super(q,H,z),this._providers=U}_compute(q,H,z,U){return w(this._providers,q,H.getPosition(),U).then(j=>j||new l.ResourceMap)}}class T extends L{constructor(q,H,z,U,j){super(q,H,z),this._providers=U,this._otherModels=j}_compute(q,H,z,U){return S(this._providers,q,H.getPosition(),z,U,this._otherModels).then(j=>j||new l.ResourceMap)}}function M(V,q,H,z,U){return new D(q,H,U,V)}function A(V,q,H,z,U,j){return new T(q,H,U,V,j)}(0,b.registerModelAndPositionCommand)("_executeDocumentHighlights",async(V,q,H)=>{const z=V.get(i.ILanguageFeaturesService);return(await w(z.documentHighlightProvider,q,H,E.CancellationToken.None))?.get(q.uri)});let P=class{static{f=this}static{this.storedDecorationIDs=new l.ResourceMap}static{this.query=null}constructor(q,H,z,U,j){this.toUnhook=new m.DisposableStore,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new l.ResourceMap,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.runDelayer=this.toUnhook.add(new I.Delayer(50)),this.editor=q,this.providers=H,this.multiDocumentProviders=z,this.codeEditorService=j,this._hasWordHighlights=v.bindTo(U),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(81),this.model=this.editor.getModel(),this.toUnhook.add(q.onDidChangeCursorPosition(Y=>{this._ignorePositionChangeEvent||this.occurrencesHighlight!=="off"&&this.runDelayer.trigger(()=>{this._onPositionChanged(Y)})})),this.toUnhook.add(q.onDidFocusEditorText(Y=>{this.occurrencesHighlight!=="off"&&(this.workerRequest||this.runDelayer.trigger(()=>{this._run()}))})),this.toUnhook.add(q.onDidChangeModelContent(Y=>{(0,c.matchesScheme)(this.model.uri,"output")||this._stopAll()})),this.toUnhook.add(q.onDidChangeModel(Y=>{!Y.newModelUrl&&Y.oldModelUrl?this._stopSingular():f.query&&this._run()})),this.toUnhook.add(q.onDidChangeConfiguration(Y=>{const G=this.editor.getOption(81);if(this.occurrencesHighlight!==G)switch(this.occurrencesHighlight=G,G){case"off":this._stopAll();break;case"singleFile":this._stopAll(f.query?.modelInfo?.model);break;case"multiFile":f.query&&this._run(!0);break;default:console.warn("Unknown occurrencesHighlight setting value:",G);break}})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,f.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(){this.occurrencesHighlight!=="off"&&(this.runDelayer.cancel(),this._run())}_getSortedHighlights(){return this.decorations.getRanges().sort(n.Range.compareRangesUsingStarts)}moveNext(){const q=this._getSortedHighlights(),z=(q.findIndex(j=>j.containsPosition(this.editor.getPosition()))+1)%q.length,U=q[z];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(U.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(U);const j=this._getWord();if(j){const Y=this.editor.getModel().getLineContent(U.startLineNumber);(0,k.alert)(`${Y}, ${z+1} of ${q.length} for '${j.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const q=this._getSortedHighlights(),z=(q.findIndex(j=>j.containsPosition(this.editor.getPosition()))-1+q.length)%q.length,U=q[z];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(U.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(U);const j=this._getWord();if(j){const Y=this.editor.getModel().getLineContent(U.startLineNumber);(0,k.alert)(`${Y}, ${z+1} of ${q.length} for '${j.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const q=f.storedDecorationIDs.get(this.editor.getModel().uri);q&&(this.editor.removeDecorations(q),f.storedDecorationIDs.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(q){const H=this.codeEditorService.listCodeEditors(),z=[];for(const U of H){if(!U.hasModel()||(0,r.isEqual)(U.getModel().uri,q?.uri))continue;const j=f.storedDecorationIDs.get(U.getModel().uri);if(!j)continue;U.removeDecorations(j),z.push(U.getModel().uri);const Y=N.get(U);Y?.wordHighlighter&&Y.wordHighlighter.decorations.length>0&&(Y.wordHighlighter.decorations.clear(),Y.wordHighlighter.workerRequest=null,Y.wordHighlighter._hasWordHighlights.set(!1))}for(const U of z)f.storedDecorationIDs.delete(U)}_stopSingular(){this._removeSingleDecorations(),this.editor.hasTextFocus()&&(this.editor.getModel()?.uri.scheme!==c.Schemas.vscodeNotebookCell&&f.query?.modelInfo?.model.uri.scheme!==c.Schemas.vscodeNotebookCell?(f.query=null,this._run()):f.query?.modelInfo&&(f.query.modelInfo=null)),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_stopAll(q){this._removeAllDecorations(q),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(q){if(this.occurrencesHighlight==="off"){this._stopAll();return}if(q.reason!==3&&this.editor.getModel()?.uri.scheme!==c.Schemas.vscodeNotebookCell){this._stopAll();return}this._run()}_getWord(){const q=this.editor.getSelection(),H=q.startLineNumber,z=q.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:H,column:z})}getOtherModelsToHighlight(q){if(!q)return[];if(q.uri.scheme===c.Schemas.vscodeNotebookCell){const j=[],Y=this.codeEditorService.listCodeEditors();for(const G of Y){const K=G.getModel();K&&K!==q&&K.uri.scheme===c.Schemas.vscodeNotebookCell&&j.push(K)}return j}const z=[],U=this.codeEditorService.listCodeEditors();for(const j of U){if(!(0,_.isDiffEditor)(j))continue;const Y=j.getModel();Y&&q===Y.modified&&z.push(Y.modified)}if(z.length)return z;if(this.occurrencesHighlight==="singleFile")return[];for(const j of U){const Y=j.getModel();Y&&Y!==q&&z.push(Y)}return z}_run(q){let H;if(this.editor.hasTextFocus()){const U=this.editor.getSelection();if(!U||U.startLineNumber!==U.endLineNumber){f.query=null,this._stopAll();return}const j=U.startColumn,Y=U.endColumn,G=this._getWord();if(!G||G.startColumn>j||G.endColumn{U===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=Y||[],this._beginRenderDecorations())},y.onUnexpectedError)}}computeWithModel(q,H,z,U){return U.length?A(this.multiDocumentProviders,q,H,z,this.editor.getOption(132),U):M(this.providers,q,H,z,this.editor.getOption(132))}_beginRenderDecorations(){const q=new Date().getTime(),H=this.lastCursorPositionChangeTime+250;q>=H?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},H-q)}renderDecorations(){this.renderDecorationsTimer=-1;const q=this.codeEditorService.listCodeEditors();for(const H of q){const z=N.get(H);if(!z)continue;const U=[],j=H.getModel()?.uri;if(j&&this.workerRequestValue.has(j)){const Y=f.storedDecorationIDs.get(j),G=this.workerRequestValue.get(j);if(G)for(const R of G)R.range&&U.push({range:R.range,options:(0,s.getHighlightDecorationOptions)(R.kind)});let K=[];H.changeDecorations(R=>{K=R.deltaDecorations(Y??[],U)}),f.storedDecorationIDs=f.storedDecorationIDs.set(j,K),U.length>0&&(z.wordHighlighter?.decorations.set(U),z.wordHighlighter?._hasWordHighlights.set(!0))}}}dispose(){this._stopSingular(),this.toUnhook.dispose()}};P=f=ke([ce(4,p.ICodeEditorService)],P);let N=class extends m.Disposable{static{h=this}static{this.ID="editor.contrib.wordHighlighter"}static get(q){return q.getContribution(h.ID)}constructor(q,H,z,U){super(),this._wordHighlighter=null;const j=()=>{q.hasModel()&&!q.getModel().isTooLargeForTokenization()&&(this._wordHighlighter=new P(q,z.documentHighlightProvider,z.multiDocumentHighlightProvider,H,U))};this._register(q.onDidChangeModel(Y=>{this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),j()})),j()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!!(this._wordHighlighter&&this._wordHighlighter.hasDecorations())}moveNext(){this._wordHighlighter?.moveNext()}moveBack(){this._wordHighlighter?.moveBack()}restoreViewState(q){this._wordHighlighter&&q&&this._wordHighlighter.restore()}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}};e.WordHighlighterContribution=N,e.WordHighlighterContribution=N=h=ke([ce(1,g.IContextKeyService),ce(2,i.ILanguageFeaturesService),ce(3,p.ICodeEditorService)],N);class O extends b.EditorAction{constructor(q,H){super(H),this._isNext=q}run(q,H){const z=N.get(H);z&&(this._isNext?z.moveNext():z.moveBack())}}class F extends O{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:d.localize(1424,"Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:v,kbOpts:{kbExpr:o.EditorContextKeys.editorTextFocus,primary:65,weight:100}})}}class x extends O{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:d.localize(1425,"Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:v,kbOpts:{kbExpr:o.EditorContextKeys.editorTextFocus,primary:1089,weight:100}})}}class W extends b.EditorAction{constructor(){super({id:"editor.action.wordHighlight.trigger",label:d.localize(1426,"Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:void 0,kbOpts:{kbExpr:o.EditorContextKeys.editorTextFocus,primary:0,weight:100}})}run(q,H,z){const U=N.get(H);U&&U.restoreViewState(!0)}}(0,b.registerEditorContribution)(N.ID,N,0),(0,b.registerEditorAction)(F),(0,b.registerEditorAction)(x),(0,b.registerEditorAction)(W),(0,C.registerEditorFeature)(u.TextualMultiDocumentHighlightFeature)}),define(ne[842],se([1,0,5,173,33,187,2,60,4,35,537]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ZoneWidget=e.OverlayWidgetDelegate=void 0;const p=new I.Color(new I.RGBA(0,122,204)),n={showArrow:!0,showFrame:!0,className:"",frameColor:p,arrowColor:p,keepEditorSelection:!1},o="vs.editor.contrib.zoneWidget";class t{constructor(l,a,r,u,C,f,h,v){this.id="",this.domNode=l,this.afterLineNumber=a,this.afterColumn=r,this.heightInLines=u,this.showInHiddenAreas=h,this.ordinal=v,this._onDomNodeTop=C,this._onComputedHeight=f}onDomNodeTop(l){this._onDomNodeTop(l)}onComputedHeight(l){this._onComputedHeight(l)}}class i{constructor(l,a){this._id=l,this._domNode=a}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}e.OverlayWidgetDelegate=i;class s{static{this._IdGenerator=new E.IdGenerator(".arrow-decoration-")}constructor(l){this._editor=l,this._ruleName=s._IdGenerator.nextId(),this._decorations=this._editor.createDecorationsCollection(),this._color=null,this._height=-1}dispose(){this.hide(),d.removeCSSRulesContainingSelector(this._ruleName)}set color(l){this._color!==l&&(this._color=l,this._updateStyle())}set height(l){this._height!==l&&(this._height=l,this._updateStyle())}_updateStyle(){d.removeCSSRulesContainingSelector(this._ruleName),d.createCSSRule(`.monaco-editor ${this._ruleName}`,`border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px !important; margin-left: -${this._height}px; `)}show(l){l.column===1&&(l={lineNumber:l.lineNumber,column:2}),this._decorations.set([{range:_.Range.fromPositions(l),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}class g{constructor(l,a={}){this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._viewZone=null,this._disposables=new y.DisposableStore,this.container=null,this._isShowing=!1,this.editor=l,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=m.deepClone(a),m.mixin(this.options,n,!1),this.domNode=document.createElement("div"),this.options.isAccessible||(this.domNode.setAttribute("aria-hidden","true"),this.domNode.setAttribute("role","presentation")),this._disposables.add(this.editor.onDidLayoutChange(r=>{const u=this._getWidth(r);this.domNode.style.width=u+"px",this.domNode.style.left=this._getLeft(r)+"px",this._onWidth(u)}))}dispose(){this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones(l=>{this._viewZone&&l.removeZone(this._viewZone.id),this._viewZone=null}),this._positionMarkerId.clear(),this._disposables.dispose()}create(){this.domNode.classList.add("zone-widget"),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new s(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(l){l.frameColor&&(this.options.frameColor=l.frameColor),l.arrowColor&&(this.options.arrowColor=l.arrowColor),this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){const l=this.options.frameColor.toString();this.container.style.borderTopColor=l,this.container.style.borderBottomColor=l}if(this._arrow&&this.options.arrowColor){const l=this.options.arrowColor.toString();this._arrow.color=l}}_getWidth(l){return l.width-l.minimap.minimapWidth-l.verticalScrollbarWidth}_getLeft(l){return l.minimap.minimapWidth>0&&l.minimap.minimapLeft===0?l.minimap.minimapWidth:0}_onViewZoneTop(l){this.domNode.style.top=l+"px"}_onViewZoneHeight(l){if(this.domNode.style.height=`${l}px`,this.container){const a=l-this._decoratingElementsHeight();this.container.style.height=`${a}px`;const r=this.editor.getLayoutInfo();this._doLayout(a,this._getWidth(r))}this._resizeSash?.layout()}get position(){const l=this._positionMarkerId.getRange(0);if(l)return l.getStartPosition()}show(l,a){const r=_.Range.isIRange(l)?_.Range.lift(l):_.Range.fromPositions(l);this._isShowing=!0,this._showImpl(r,a),this._isShowing=!1,this._positionMarkerId.set([{range:r,options:b.ModelDecorationOptions.EMPTY}])}hide(){this._viewZone&&(this.editor.changeViewZones(l=>{this._viewZone&&l.removeZone(this._viewZone.id)}),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._arrow?.hide(),this._positionMarkerId.clear()}_decoratingElementsHeight(){const l=this.editor.getOption(67);let a=0;if(this.options.showArrow){const r=Math.round(l/3);a+=2*r}if(this.options.showFrame){const r=Math.round(l/9);a+=2*r}return a}_showImpl(l,a){const r=l.getStartPosition(),u=this.editor.getLayoutInfo(),C=this._getWidth(u);this.domNode.style.width=`${C}px`,this.domNode.style.left=this._getLeft(u)+"px";const f=document.createElement("div");f.style.overflow="hidden";const h=this.editor.getOption(67);if(!this.options.allowUnlimitedHeight){const D=Math.max(12,this.editor.getLayoutInfo().height/h*.8);a=Math.min(a,D)}let v=0,w=0;if(this._arrow&&this.options.showArrow&&(v=Math.round(h/3),this._arrow.height=v,this._arrow.show(r)),this.options.showFrame&&(w=Math.round(h/9)),this.editor.changeViewZones(D=>{this._viewZone&&D.removeZone(this._viewZone.id),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this.domNode.style.top="-1000px",this._viewZone=new t(f,r.lineNumber,r.column,a,T=>this._onViewZoneTop(T),T=>this._onViewZoneHeight(T),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=D.addZone(this._viewZone),this._overlayWidget=new i(o+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this.container&&this.options.showFrame){const D=this.options.frameWidth?this.options.frameWidth:w;this.container.style.borderTopWidth=D+"px",this.container.style.borderBottomWidth=D+"px"}const S=a*h-this._decoratingElementsHeight();this.container&&(this.container.style.top=v+"px",this.container.style.height=S+"px",this.container.style.overflow="hidden"),this._doLayout(S,C),this.options.keepEditorSelection||this.editor.setSelection(l);const L=this.editor.getModel();if(L){const D=L.validateRange(new _.Range(l.startLineNumber,1,l.endLineNumber+1,1));this.revealRange(D,D.startLineNumber===L.getLineCount())}}revealRange(l,a){a?this.editor.revealLineNearTop(l.endLineNumber,0):this.editor.revealRange(l,0)}setCssClass(l,a){this.container&&(a&&this.container.classList.remove(a),this.container.classList.add(l))}_onWidth(l){}_doLayout(l,a){}_relayout(l){this._viewZone&&this._viewZone.heightInLines!==l&&this.editor.changeViewZones(a=>{this._viewZone&&(this._viewZone.heightInLines=l,a.layoutZone(this._viewZone.id))})}_initSash(){if(this._resizeSash)return;this._resizeSash=this._disposables.add(new k.Sash(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.state=0);let l;this._disposables.add(this._resizeSash.onDidStart(a=>{this._viewZone&&(l={startY:a.startY,heightInLines:this._viewZone.heightInLines})})),this._disposables.add(this._resizeSash.onDidEnd(()=>{l=void 0})),this._disposables.add(this._resizeSash.onDidChange(a=>{if(l){const r=(a.currentY-l.startY)/this.editor.getOption(67),u=r<0?Math.ceil(r):Math.floor(r),C=l.heightInLines+u;C>5&&C<35&&this._relayout(C)}}))}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(this.domNode.style.height===null?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){const l=this.editor.getLayoutInfo();return l.width-l.minimap.minimapWidth}}e.ZoneWidget=g}),define(ne[158],se([1,0,5,87,41,26,30,33,6,60,15,34,125,842,3,124,12,49,7,32,527]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.peekViewEditorMatchHighlightBorder=e.peekViewEditorMatchHighlight=e.peekViewResultsMatchHighlight=e.peekViewEditorStickyScrollBackground=e.peekViewEditorGutterBackground=e.peekViewEditorBackground=e.peekViewResultsSelectionForeground=e.peekViewResultsSelectionBackground=e.peekViewResultsFileForeground=e.peekViewResultsMatchForeground=e.peekViewResultsBackground=e.peekViewBorder=e.peekViewTitleInfoForeground=e.peekViewTitleForeground=e.peekViewTitleBackground=e.PeekViewWidget=e.PeekContext=e.IPeekViewService=void 0,e.getOuterEditor=C,e.IPeekViewService=(0,l.createDecorator)("IPeekViewService"),(0,c.registerSingleton)(e.IPeekViewService,class{constructor(){this._widgets=new Map}addExclusiveWidget(v,w){const S=this._widgets.get(v);S&&(S.listener.dispose(),S.widget.dispose());const L=()=>{const D=this._widgets.get(v);D&&D.widget===w&&(D.listener.dispose(),this._widgets.delete(v))};this._widgets.set(v,{widget:w,listener:w.onDidClose(L)})}},1);var r;(function(v){v.inPeekEditor=new g.RawContextKey("inReferenceSearchEditor",!0,i.localize(1177,"Whether the current code editor is embedded inside peek")),v.notInPeekEditor=v.inPeekEditor.toNegated()})(r||(e.PeekContext=r={}));let u=class{static{this.ID="editor.contrib.referenceController"}constructor(w,S){w instanceof o.EmbeddedCodeEditorWidget&&r.inPeekEditor.bindTo(S)}dispose(){}};u=ke([ce(1,g.IContextKeyService)],u),(0,p.registerEditorContribution)(u.ID,u,0);function C(v){const w=v.get(n.ICodeEditorService).getFocusedCodeEditor();return w instanceof o.EmbeddedCodeEditorWidget?w.getParentEditor():w}const f={headerBackgroundColor:m.Color.white,primaryHeadingColor:m.Color.fromHex("#333333"),secondaryHeadingColor:m.Color.fromHex("#6c6c6cb3")};let h=class extends t.ZoneWidget{constructor(w,S,L){super(w,S),this.instantiationService=L,this._onDidClose=new _.Emitter,this.onDidClose=this._onDidClose.event,b.mixin(this.options,f,!1)}dispose(){this.disposed||(this.disposed=!0,super.dispose(),this._onDidClose.fire(this))}style(w){const S=this.options;w.headerBackgroundColor&&(S.headerBackgroundColor=w.headerBackgroundColor),w.primaryHeadingColor&&(S.primaryHeadingColor=w.primaryHeadingColor),w.secondaryHeadingColor&&(S.secondaryHeadingColor=w.secondaryHeadingColor),super.style(w)}_applyStyles(){super._applyStyles();const w=this.options;this._headElement&&w.headerBackgroundColor&&(this._headElement.style.backgroundColor=w.headerBackgroundColor.toString()),this._primaryHeading&&w.primaryHeadingColor&&(this._primaryHeading.style.color=w.primaryHeadingColor.toString()),this._secondaryHeading&&w.secondaryHeadingColor&&(this._secondaryHeading.style.color=w.secondaryHeadingColor.toString()),this._bodyElement&&w.frameColor&&(this._bodyElement.style.borderColor=w.frameColor.toString())}_fillContainer(w){this.setCssClass("peekview-widget"),this._headElement=d.$(".head"),this._bodyElement=d.$(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),w.appendChild(this._headElement),w.appendChild(this._bodyElement)}_fillHead(w,S){this._titleElement=d.$(".peekview-title"),this.options.supportOnTitleClick&&(this._titleElement.classList.add("clickable"),d.addStandardDisposableListener(this._titleElement,"click",T=>this._onTitleClick(T))),d.append(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=d.$("span.filename"),this._secondaryHeading=d.$("span.dirname"),this._metaHeading=d.$("span.meta"),d.append(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);const L=d.$(".peekview-actions");d.append(this._headElement,L);const D=this._getActionBarOptions();this._actionbarWidget=new k.ActionBar(L,D),this._disposables.add(this._actionbarWidget),S||this._actionbarWidget.push(new I.Action("peekview.close",i.localize(1178,"Close"),y.ThemeIcon.asClassName(E.Codicon.close),!0,()=>(this.dispose(),Promise.resolve())),{label:!1,icon:!0})}_fillTitleIcon(w){}_getActionBarOptions(){return{actionViewItemProvider:s.createActionViewItem.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(w){}setTitle(w,S){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=w,this._primaryHeading.setAttribute("title",w),S?this._secondaryHeading.innerText=S:d.clearNode(this._secondaryHeading))}setMetaTitle(w){this._metaHeading&&(w?(this._metaHeading.innerText=w,d.show(this._metaHeading)):d.hide(this._metaHeading))}_doLayout(w,S){if(!this._isShowing&&w<0){this.dispose();return}const L=Math.ceil(this.editor.getOption(67)*1.2),D=Math.round(w-(L+2));this._doLayoutHead(L,S),this._doLayoutBody(D,S)}_doLayoutHead(w,S){this._headElement&&(this._headElement.style.height=`${w}px`,this._headElement.style.lineHeight=this._headElement.style.height)}_doLayoutBody(w,S){this._bodyElement&&(this._bodyElement.style.height=`${w}px`)}};e.PeekViewWidget=h,e.PeekViewWidget=h=ke([ce(2,l.IInstantiationService)],h),e.peekViewTitleBackground=(0,a.registerColor)("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:m.Color.black,hcLight:m.Color.white},i.localize(1179,"Background color of the peek view title area.")),e.peekViewTitleForeground=(0,a.registerColor)("peekViewTitleLabel.foreground",{dark:m.Color.white,light:m.Color.black,hcDark:m.Color.white,hcLight:a.editorForeground},i.localize(1180,"Color of the peek view title.")),e.peekViewTitleInfoForeground=(0,a.registerColor)("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},i.localize(1181,"Color of the peek view title info.")),e.peekViewBorder=(0,a.registerColor)("peekView.border",{dark:a.editorInfoForeground,light:a.editorInfoForeground,hcDark:a.contrastBorder,hcLight:a.contrastBorder},i.localize(1182,"Color of the peek view borders and arrow.")),e.peekViewResultsBackground=(0,a.registerColor)("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:m.Color.black,hcLight:m.Color.white},i.localize(1183,"Background color of the peek view result list.")),e.peekViewResultsMatchForeground=(0,a.registerColor)("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:m.Color.white,hcLight:a.editorForeground},i.localize(1184,"Foreground color for line nodes in the peek view result list.")),e.peekViewResultsFileForeground=(0,a.registerColor)("peekViewResult.fileForeground",{dark:m.Color.white,light:"#1E1E1E",hcDark:m.Color.white,hcLight:a.editorForeground},i.localize(1185,"Foreground color for file nodes in the peek view result list.")),e.peekViewResultsSelectionBackground=(0,a.registerColor)("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},i.localize(1186,"Background color of the selected entry in the peek view result list.")),e.peekViewResultsSelectionForeground=(0,a.registerColor)("peekViewResult.selectionForeground",{dark:m.Color.white,light:"#6C6C6C",hcDark:m.Color.white,hcLight:a.editorForeground},i.localize(1187,"Foreground color of the selected entry in the peek view result list.")),e.peekViewEditorBackground=(0,a.registerColor)("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:m.Color.black,hcLight:m.Color.white},i.localize(1188,"Background color of the peek view editor.")),e.peekViewEditorGutterBackground=(0,a.registerColor)("peekViewEditorGutter.background",e.peekViewEditorBackground,i.localize(1189,"Background color of the gutter in the peek view editor.")),e.peekViewEditorStickyScrollBackground=(0,a.registerColor)("peekViewEditorStickyScroll.background",e.peekViewEditorBackground,i.localize(1190,"Background color of sticky scroll in the peek view editor.")),e.peekViewResultsMatchHighlight=(0,a.registerColor)("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},i.localize(1191,"Match highlight color in the peek view result list.")),e.peekViewEditorMatchHighlight=(0,a.registerColor)("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},i.localize(1192,"Match highlight color in the peek view editor.")),e.peekViewEditorMatchHighlightBorder=(0,a.registerColor)("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:a.activeContrastBorder,hcLight:a.activeContrastBorder},i.localize(1193,"Match highlight border in the peek view editor."))}),define(ne[843],se([1,0,5,86,13,33,6,2,48,11,4,158,3,124,29,12,7,181,108,59,723,32,25,512]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C){"use strict";var f;Object.defineProperty(e,"__esModule",{value:!0}),e.MarkerNavigationWidget=void 0;class h{constructor(x,W,V,q,H){this._openerService=q,this._labelService=H,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new m.DisposableStore,this._editor=W;const z=document.createElement("div");z.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),z.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),z.appendChild(this._relatedBlock),this._disposables.add(d.addStandardDisposableListener(this._relatedBlock,"click",U=>{U.preventDefault();const j=this._relatedDiagnostics.get(U.target);j&&V(j)})),this._scrollable=new k.ScrollableElement(z,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),x.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll(U=>{z.style.left=`-${U.scrollLeft}px`,z.style.top=`-${U.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){(0,m.dispose)(this._disposables)}update(x){const{source:W,message:V,relatedInformation:q,code:H}=x;let z=(W?.length||0)+2;H&&(typeof H=="string"?z+=H.length:z+=H.value.length);const U=(0,b.splitLines)(V);this._lines=U.length,this._longestLineLength=0;for(const R of U)this._longestLineLength=Math.max(R.length+z,this._longestLineLength);d.clearNode(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(x)),this._editor.applyFontInfo(this._messageBlock);let j=this._messageBlock;for(const R of U)j=document.createElement("div"),j.innerText=R,R===""&&(j.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(j);if(W||H){const R=document.createElement("span");if(R.classList.add("details"),j.appendChild(R),W){const J=document.createElement("span");J.innerText=W,J.classList.add("source"),R.appendChild(J)}if(H)if(typeof H=="string"){const J=document.createElement("span");J.innerText=`(${H})`,J.classList.add("code"),R.appendChild(J)}else{this._codeLink=d.$("a.code-link"),this._codeLink.setAttribute("href",`${H.target.toString()}`),this._codeLink.onclick=ie=>{this._openerService.open(H.target,{allowCommands:!0}),ie.preventDefault(),ie.stopPropagation()};const J=d.append(this._codeLink,d.$("span"));J.innerText=H.value,R.appendChild(this._codeLink)}}if(d.clearNode(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),(0,I.isNonEmptyArray)(q)){const R=this._relatedBlock.appendChild(document.createElement("div"));R.style.paddingTop=`${Math.floor(this._editor.getOption(67)*.66)}px`,this._lines+=1;for(const J of q){const ie=document.createElement("div"),ue=document.createElement("a");ue.classList.add("filename"),ue.innerText=`${this._labelService.getUriBasenameLabel(J.resource)}(${J.startLineNumber}, ${J.startColumn}): `,ue.title=this._labelService.getUriLabel(J.resource),this._relatedDiagnostics.set(ue,J);const he=document.createElement("span");he.innerText=J.message,ie.appendChild(ue),ie.appendChild(he),this._lines+=1,R.appendChild(ie)}}const Y=this._editor.getOption(50),G=Math.ceil(Y.typicalFullwidthCharacterWidth*this._longestLineLength*.75),K=Y.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:G,scrollHeight:K})}layout(x,W){this._scrollable.getDomNode().style.height=`${x}px`,this._scrollable.getDomNode().style.width=`${W}px`,this._scrollable.setScrollDimensions({width:W,height:x})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(x){let W="";switch(x.severity){case l.MarkerSeverity.Error:W=o.localize(932,"Error");break;case l.MarkerSeverity.Warning:W=o.localize(933,"Warning");break;case l.MarkerSeverity.Info:W=o.localize(934,"Info");break;case l.MarkerSeverity.Hint:W=o.localize(935,"Hint");break}let V=o.localize(936,"{0} at {1}. ",W,x.startLineNumber+":"+x.startColumn);const q=this._editor.getModel();return q&&x.startLineNumber<=q.getLineCount()&&x.startLineNumber>=1&&(V=`${q.getLineContent(x.startLineNumber)}, ${V}`),V}}let v=class extends n.PeekViewWidget{static{f=this}static{this.TitleMenu=new i.MenuId("gotoErrorTitleMenu")}constructor(x,W,V,q,H,z,U){super(x,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},H),this._themeService=W,this._openerService=V,this._menuService=q,this._contextKeyService=z,this._labelService=U,this._callOnDispose=new m.DisposableStore,this._onDidSelectRelatedInformation=new y.Emitter,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=l.MarkerSeverity.Warning,this._backgroundColor=E.Color.white,this._applyTheme(W.getColorTheme()),this._callOnDispose.add(W.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(x){this._backgroundColor=x.getColor(O);let W=D,V=T;this._severity===l.MarkerSeverity.Warning?(W=M,V=A):this._severity===l.MarkerSeverity.Info&&(W=P,V=N);const q=x.getColor(W),H=x.getColor(V);this.style({arrowColor:q,frameColor:q,headerBackgroundColor:H,primaryHeadingColor:x.getColor(n.peekViewTitleForeground),secondaryHeadingColor:x.getColor(n.peekViewTitleInfoForeground)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(x){super._fillHead(x),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun(q=>this.editor.focus()));const W=[],V=this._menuService.getMenuActions(f.TitleMenu,this._contextKeyService);(0,t.createAndFillInActionBarActions)(V,W),this._actionbarWidget.push(W,{label:!1,icon:!0,index:0})}_fillTitleIcon(x){this._icon=d.append(x,d.$(""))}_fillBody(x){this._parentContainer=x,x.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),x.appendChild(this._container),this._message=new h(this._container,this.editor,W=>this._onDidSelectRelatedInformation.fire(W),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw new Error("call showAtMarker")}showAtMarker(x,W,V){this._container.classList.remove("stale"),this._message.update(x),this._severity=x.severity,this._applyTheme(this._themeService.getColorTheme());const q=p.Range.lift(x),H=this.editor.getPosition(),z=H&&q.containsPosition(H)?H:q.getStartPosition();super.show(z,this.computeRequiredHeight());const U=this.editor.getModel();if(U){const j=V>1?o.localize(937,"{0} of {1} problems",W,V):o.localize(938,"{0} of {1} problem",W,V);this.setTitle((0,_.basename)(U.uri),j)}this._icon.className=`codicon ${r.SeverityIcon.className(l.MarkerSeverity.toSeverity(this._severity))}`,this.editor.revealPositionNearTop(z,0),this.editor.focus()}updateMarker(x){this._container.classList.remove("stale"),this._message.update(x)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(x,W){super._doLayoutBody(x,W),this._heightInPixel=x,this._message.layout(x,W),this._container.style.height=`${x}px`}_onWidth(x){this._message.layout(this._heightInPixel,x)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};e.MarkerNavigationWidget=v,e.MarkerNavigationWidget=v=f=ke([ce(1,C.IThemeService),ce(2,a.IOpenerService),ce(3,i.IMenuService),ce(4,g.IInstantiationService),ce(5,s.IContextKeyService),ce(6,c.ILabelService)],v);const w=(0,u.oneOf)(u.editorErrorForeground,u.editorErrorBorder),S=(0,u.oneOf)(u.editorWarningForeground,u.editorWarningBorder),L=(0,u.oneOf)(u.editorInfoForeground,u.editorInfoBorder),D=(0,u.registerColor)("editorMarkerNavigationError.background",{dark:w,light:w,hcDark:u.contrastBorder,hcLight:u.contrastBorder},o.localize(939,"Editor marker navigation widget error color.")),T=(0,u.registerColor)("editorMarkerNavigationError.headerBackground",{dark:(0,u.transparent)(D,.1),light:(0,u.transparent)(D,.1),hcDark:null,hcLight:null},o.localize(940,"Editor marker navigation widget error heading background.")),M=(0,u.registerColor)("editorMarkerNavigationWarning.background",{dark:S,light:S,hcDark:u.contrastBorder,hcLight:u.contrastBorder},o.localize(941,"Editor marker navigation widget warning color.")),A=(0,u.registerColor)("editorMarkerNavigationWarning.headerBackground",{dark:(0,u.transparent)(M,.1),light:(0,u.transparent)(M,.1),hcDark:"#0C141F",hcLight:(0,u.transparent)(M,.2)},o.localize(942,"Editor marker navigation widget warning heading background.")),P=(0,u.registerColor)("editorMarkerNavigationInfo.background",{dark:L,light:L,hcDark:u.contrastBorder,hcLight:u.contrastBorder},o.localize(943,"Editor marker navigation widget info color.")),N=(0,u.registerColor)("editorMarkerNavigationInfo.headerBackground",{dark:(0,u.transparent)(P,.1),light:(0,u.transparent)(P,.1),hcDark:null,hcLight:null},o.localize(944,"Editor marker navigation widget info heading background.")),O=(0,u.registerColor)("editorMarkerNavigation.background",u.editorBackground,o.localize(945,"Editor marker navigation widget background."))}),define(ne[427],se([1,0,26,2,15,34,9,4,20,698,3,29,12,7,71,843]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";var g;Object.defineProperty(e,"__esModule",{value:!0}),e.NextMarkerAction=e.MarkerController=void 0;let c=class{static{g=this}static{this.ID="editor.contrib.markerController"}static get(w){return w.getContribution(g.ID)}constructor(w,S,L,D,T){this._markerNavigationService=S,this._contextKeyService=L,this._editorService=D,this._instantiationService=T,this._sessionDispoables=new k.DisposableStore,this._editor=w,this._widgetVisible=f.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(w){if(this._model&&this._model.matches(w))return this._model;let S=!1;return this._model&&(S=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(w),S&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(s.MarkerNavigationWidget,this._editor),this._widget.onDidClose(()=>this.close(),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition(L=>{(!this._model?.selected||!m.Range.containsPosition(this._model?.selected.marker,L.position))&&this._model?.resetIndex()})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;const L=this._model.find(this._editor.getModel().uri,this._widget.position);L?this._widget.updateMarker(L.marker):this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation(L=>{this._editorService.openCodeEditor({resource:L.resource,options:{pinned:!0,revealIfOpened:!0,selection:m.Range.lift(L).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(w=!0){this._cleanUp(),w&&this._editor.focus()}showAtMarker(w){if(this._editor.hasModel()){const S=this._getOrCreateModel(this._editor.getModel().uri);S.resetIndex(),S.move(!0,this._editor.getModel(),new y.Position(w.startLineNumber,w.startColumn)),S.selected&&this._widget.showAtMarker(S.selected.marker,S.selected.index,S.selected.total)}}async nagivate(w,S){if(this._editor.hasModel()){const L=this._getOrCreateModel(S?void 0:this._editor.getModel().uri);if(L.move(w,this._editor.getModel(),this._editor.getPosition()),!L.selected)return;if(L.selected.marker.resource.toString()!==this._editor.getModel().uri.toString()){this._cleanUp();const D=await this._editorService.openCodeEditor({resource:L.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:L.selected.marker}},this._editor);D&&(g.get(D)?.close(),g.get(D)?.nagivate(w,S))}else this._widget.showAtMarker(L.selected.marker,L.selected.index,L.selected.total)}}};e.MarkerController=c,e.MarkerController=c=g=ke([ce(1,b.IMarkerNavigationService),ce(2,o.IContextKeyService),ce(3,E.ICodeEditorService),ce(4,t.IInstantiationService)],c);class l extends I.EditorAction{constructor(w,S,L){super(L),this._next=w,this._multiFile=S}async run(w,S){S.hasModel()&&c.get(S)?.nagivate(this._next,this._multiFile)}}class a extends l{static{this.ID="editor.action.marker.next"}static{this.LABEL=p.localize(924,"Go to Next Problem (Error, Warning, Info)")}constructor(){super(!0,!1,{id:a.ID,label:a.LABEL,alias:"Go to Next Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.focus,primary:578,weight:100},menuOpts:{menuId:s.MarkerNavigationWidget.TitleMenu,title:a.LABEL,icon:(0,i.registerIcon)("marker-navigation-next",d.Codicon.arrowDown,p.localize(925,"Icon for goto next marker.")),group:"navigation",order:1}})}}e.NextMarkerAction=a;class r extends l{static{this.ID="editor.action.marker.prev"}static{this.LABEL=p.localize(926,"Go to Previous Problem (Error, Warning, Info)")}constructor(){super(!1,!1,{id:r.ID,label:r.LABEL,alias:"Go to Previous Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.focus,primary:1602,weight:100},menuOpts:{menuId:s.MarkerNavigationWidget.TitleMenu,title:r.LABEL,icon:(0,i.registerIcon)("marker-navigation-previous",d.Codicon.arrowUp,p.localize(927,"Icon for goto previous marker.")),group:"navigation",order:2}})}}class u extends l{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:p.localize(928,"Go to Next Problem in Files (Error, Warning, Info)"),alias:"Go to Next Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.focus,primary:66,weight:100},menuOpts:{menuId:n.MenuId.MenubarGoMenu,title:p.localize(929,"Next &&Problem"),group:"6_problem_nav",order:1}})}}class C extends l{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:p.localize(930,"Go to Previous Problem in Files (Error, Warning, Info)"),alias:"Go to Previous Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.focus,primary:1090,weight:100},menuOpts:{menuId:n.MenuId.MenubarGoMenu,title:p.localize(931,"Previous &&Problem"),group:"6_problem_nav",order:2}})}}(0,I.registerEditorContribution)(c.ID,c,4),(0,I.registerEditorAction)(a),(0,I.registerEditorAction)(r),(0,I.registerEditorAction)(u),(0,I.registerEditorAction)(C);const f=new o.RawContextKey("markersNavigationVisible",!1),h=I.EditorCommand.bindToContribution(c.get);(0,I.registerEditorCommand)(new h({id:"closeMarkersNavigation",precondition:f,handler:v=>v.close(),kbOpts:{weight:150,kbExpr:_.EditorContextKeys.focus,primary:9,secondary:[1033]}}))}),define(ne[844],se([1,0,5,357,33,6,2,42,48,125,4,35,70,78,758,158,3,7,31,181,216,25,178,514]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReferenceWidget=e.LayoutData=void 0;class f{static{this.DecorationOptions=n.ModelDecorationOptions.register({description:"reference-decoration",stickiness:1,className:"reference-decoration"})}constructor(L,D){this._editor=L,this._model=D,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new y.DisposableStore,this._callOnModelChange=new y.DisposableStore,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();const L=this._editor.getModel();if(L){for(const D of this._model.references)if(D.uri.toString()===L.uri.toString()){this._addDecorations(D.parent);return}}}_addDecorations(L){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));const D=[],T=[];for(let M=0,A=L.children.length;M{const A=M.deltaDecorations([],D);for(let P=0;P{A.equals(9)&&(this._keybindingService.dispatchEvent(A,A.target),A.stopPropagation())},!0)),this._tree=this._instantiationService.createInstance(v,"ReferencesWidget",this._treeContainer,new i.Delegate,[this._instantiationService.createInstance(i.FileReferencesRenderer),this._instantiationService.createInstance(i.OneReferenceRenderer)],this._instantiationService.createInstance(i.DataSource),T),this._splitView.addView({onDidChange:E.Event.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:A=>{this._preview.layout({height:this._dim.height,width:A})}},k.Sizing.Distribute),this._splitView.addView({onDidChange:E.Event.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:A=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${A}px`,this._tree.layout(this._dim.height,A)}},k.Sizing.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)},void 0));const M=(A,P)=>{A instanceof C.OneReference&&(P==="show"&&this._revealReference(A,!1),this._onDidSelectReference.fire({element:A,kind:P,source:"tree"}))};this._disposables.add(this._tree.onDidOpen(A=>{A.sideBySide?M(A.element,"side"):A.editorOptions.pinned?M(A.element,"goto"):M(A.element,"show")})),d.hide(this._treeContainer)}_onWidth(L){this._dim&&this._doLayoutBody(this._dim.height,L)}_doLayoutBody(L,D){super._doLayoutBody(L,D),this._dim=new d.Dimension(D,L),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(D),this._splitView.resizeView(0,D*this.layoutData.ratio)}setSelection(L){return this._revealReference(L,!0).then(()=>{this._model&&(this._tree.setSelection([L]),this._tree.setFocus([L]))})}setModel(L){return this._disposeOnNewModel.clear(),this._model=L,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=g.localize(993,"No results"),d.show(this._messageContainer),Promise.resolve(void 0)):(d.hide(this._messageContainer),this._decorationsManager=new f(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange(L=>this._tree.rerender(L))),this._disposeOnNewModel.add(this._preview.onMouseDown(L=>{const{event:D,target:T}=L;if(D.detail!==2)return;const M=this._getFocusedReference();M&&this._onDidSelectReference.fire({element:{uri:M.uri,range:T.range},kind:D.ctrlKey||D.metaKey||D.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),d.show(this._treeContainer),d.show(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(this._model.groups.length===1?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){const[L]=this._tree.getFocus();if(L instanceof C.OneReference)return L;if(L instanceof C.FileReferences&&L.children.length>0)return L.children[0]}async revealReference(L){await this._revealReference(L,!1),this._onDidSelectReference.fire({element:L,kind:"goto",source:"tree"})}async _revealReference(L,D){if(this._revealedReference===L)return;this._revealedReference=L,L.uri.scheme!==m.Schemas.inMemory?this.setTitle((0,_.basenameOrAuthority)(L.uri),this._uriLabel.getUriLabel((0,_.dirname)(L.uri))):this.setTitle(g.localize(994,"References"));const T=this._textModelResolverService.createModelReference(L.uri);this._tree.getInput()===L.parent?this._tree.reveal(L):(D&&this._tree.reveal(L.parent),await this._tree.expand(L.parent),this._tree.reveal(L));const M=await T;if(!this._model){M.dispose();return}(0,y.dispose)(this._previewModelReference);const A=M.object;if(A){const P=this._preview.getModel()===A.textEditorModel?0:1,N=p.Range.lift(L.range).collapseToStart();this._previewModelReference=M,this._preview.setModel(A.textEditorModel),this._preview.setSelection(N),this._preview.revealRangeInCenter(N,P)}else this._preview.setModel(this._previewNotAvailableMessage),M.dispose()}};e.ReferenceWidget=w,e.ReferenceWidget=w=ke([ce(3,u.IThemeService),ce(4,t.ITextModelService),ce(5,c.IInstantiationService),ce(6,s.IPeekViewService),ce(7,a.ILabelService),ce(8,l.IKeybindingService)],w)}),define(ne[428],se([1,0,14,8,72,2,34,9,4,158,3,24,28,12,7,121,216,50,101,178,844,20,179]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C){"use strict";var f;Object.defineProperty(e,"__esModule",{value:!0}),e.ReferencesController=e.ctxReferenceSearchVisible=void 0,e.ctxReferenceSearchVisible=new t.RawContextKey("referenceSearchVisible",!1,p.localize(986,"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'"));let h=class{static{f=this}static{this.ID="editor.contrib.referencesController"}static get(S){return S.getContribution(f.ID)}constructor(S,L,D,T,M,A,P,N){this._defaultTreeKeyboardSupport=S,this._editor=L,this._editorService=T,this._notificationService=M,this._instantiationService=A,this._storageService=P,this._configurationService=N,this._disposables=new E.DisposableStore,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=e.ctxReferenceSearchVisible.bindTo(D)}dispose(){this._referenceSearchVisible.reset(),this._disposables.dispose(),this._widget?.dispose(),this._model?.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(S,L,D){let T;if(this._widget&&(T=this._widget.position),this.closeWidget(),T&&S.containsPosition(T))return;this._peekMode=D,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{this._ignoreModelChangeEvent||this.closeWidget()}));const M="peekViewLayout",A=r.LayoutData.fromJSON(this._storageService.get(M,0,"{}"));this._widget=this._instantiationService.createInstance(r.ReferenceWidget,this._editor,this._defaultTreeKeyboardSupport,A),this._widget.setTitle(p.localize(987,"Loading...")),this._widget.show(S),this._disposables.add(this._widget.onDidClose(()=>{L.cancel(),this._widget?(this._storageService.store(M,JSON.stringify(this._widget.layoutData),0,1),this._widget.isClosing||this.closeWidget(),this._widget=void 0):this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference(N=>{const{element:O,kind:F}=N;if(O)switch(F){case"open":(N.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))&&this.openReference(O,!1,!1);break;case"side":this.openReference(O,!0,!1);break;case"goto":D?this._gotoReference(O,!0):this.openReference(O,!1,!0);break}}));const P=++this._requestIdPool;L.then(N=>{if(P!==this._requestIdPool||!this._widget){N.dispose();return}return this._model?.dispose(),this._model=N,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(""):this._widget.setMetaTitle(p.localize(988,"{0} ({1})",this._model.title,this._model.references.length));const O=this._editor.getModel().uri,F=new m.Position(S.startLineNumber,S.startColumn),x=this._model.nearestReference(O,F);if(x)return this._widget.setSelection(x).then(()=>{this._widget&&this._editor.getOption(87)==="editor"&&this._widget.focusOnPreviewEditor()})}})},N=>{this._notificationService.error(N)})}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}async goToNextOrPreviousReference(S){if(!this._editor.hasModel()||!this._model||!this._widget)return;const L=this._widget.position;if(!L)return;const D=this._model.nearestReference(this._editor.getModel().uri,L);if(!D)return;const T=this._model.nextOrPreviousReference(D,S),M=this._editor.hasTextFocus(),A=this._widget.isPreviewEditorFocused();await this._widget.setSelection(T),await this._gotoReference(T,!1),M?this._editor.focus():this._widget&&A&&this._widget.focusOnPreviewEditor()}async revealReference(S){!this._editor.hasModel()||!this._model||!this._widget||await this._widget.revealReference(S)}closeWidget(S=!0){this._widget?.dispose(),this._model?.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,S&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(S,L){this._widget?.hide(),this._ignoreModelChangeEvent=!0;const D=_.Range.lift(S.range).collapseToStart();return this._editorService.openCodeEditor({resource:S.uri,options:{selection:D,selectionSource:"code.jump",pinned:L}},this._editor).then(T=>{if(this._ignoreModelChangeEvent=!1,!T||!this._widget){this.closeWidget();return}if(this._editor===T)this._widget.show(D),this._widget.focusOnReferenceTree();else{const M=f.get(T),A=this._model.clone();this.closeWidget(),T.focus(),M?.toggleWidget(D,(0,d.createCancelablePromise)(P=>Promise.resolve(A)),this._peekMode??!1)}},T=>{this._ignoreModelChangeEvent=!1,(0,k.onUnexpectedError)(T)})}openReference(S,L,D){L||this.closeWidget();const{uri:T,range:M}=S;this._editorService.openCodeEditor({resource:T,options:{selection:M,selectionSource:"code.jump",pinned:D}},this._editor,L)}};e.ReferencesController=h,e.ReferencesController=h=f=ke([ce(2,t.IContextKeyService),ce(3,y.ICodeEditorService),ce(4,c.INotificationService),ce(5,i.IInstantiationService),ce(6,l.IStorageService),ce(7,o.IConfigurationService)],h);function v(w,S){const L=(0,b.getOuterEditor)(w);if(!L)return;const D=h.get(L);D&&S(D)}s.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:(0,I.KeyChord)(2089,60),when:t.ContextKeyExpr.or(e.ctxReferenceSearchVisible,b.PeekContext.inPeekEditor),handler(w){v(w,S=>{S.changeFocusBetweenPreviewAndReferences()})}}),s.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:t.ContextKeyExpr.or(e.ctxReferenceSearchVisible,b.PeekContext.inPeekEditor),handler(w){v(w,S=>{S.goToNextOrPreviousReference(!0)})}}),s.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:t.ContextKeyExpr.or(e.ctxReferenceSearchVisible,b.PeekContext.inPeekEditor),handler(w){v(w,S=>{S.goToNextOrPreviousReference(!1)})}}),n.CommandsRegistry.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference"),n.CommandsRegistry.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference"),n.CommandsRegistry.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch"),n.CommandsRegistry.registerCommand("closeReferenceSearch",w=>v(w,S=>S.closeWidget())),s.KeybindingsRegistry.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:t.ContextKeyExpr.and(b.PeekContext.inPeekEditor,t.ContextKeyExpr.not("config.editor.stablePeek"))}),s.KeybindingsRegistry.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:t.ContextKeyExpr.and(e.ctxReferenceSearchVisible,t.ContextKeyExpr.not("config.editor.stablePeek"),t.ContextKeyExpr.or(u.EditorContextKeys.editorTextFocus,C.InputFocusedContext.negate()))}),s.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:t.ContextKeyExpr.and(e.ctxReferenceSearchVisible,g.WorkbenchListFocusContextKey,g.WorkbenchTreeElementCanCollapse.negate(),g.WorkbenchTreeElementCanExpand.negate()),handler(w){const L=w.get(g.IListService).lastFocusedList?.getFocus();Array.isArray(L)&&L[0]instanceof a.OneReference&&v(w,D=>D.revealReference(L[0]))}}),s.KeybindingsRegistry.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:t.ContextKeyExpr.and(e.ctxReferenceSearchVisible,g.WorkbenchListFocusContextKey,g.WorkbenchTreeElementCanCollapse.negate(),g.WorkbenchTreeElementCanExpand.negate()),handler(w){const L=w.get(g.IListService).lastFocusedList?.getFocus();Array.isArray(L)&&L[0]instanceof a.OneReference&&v(w,D=>D.openReference(L[0],!0,!0))}}),n.CommandsRegistry.registerCommand("openReference",w=>{const L=w.get(g.IListService).lastFocusedList?.getFocus();Array.isArray(L)&&L[0]instanceof a.OneReference&&v(w,D=>D.openReference(L[0],!1,!0))})}),define(ne[291],se([1,0,46,14,72,19,22,122,168,15,34,125,9,4,20,27,428,178,736,184,158,3,29,24,12,7,50,96,277,17,53,179]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DefinitionAction=e.SymbolNavigationAction=e.SymbolNavigationAnchor=void 0,C.MenuRegistry.appendMenuItem(C.MenuId.EditorContext,{submenu:C.MenuId.EditorContextPeek,title:u.localize(946,"Peek"),group:"navigation",order:100});class A{static is(H){return!H||typeof H!="object"?!1:!!(H instanceof A||o.Position.isIPosition(H.position)&&H.model)}constructor(H,z){this.model=H,this.position=z}}e.SymbolNavigationAnchor=A;class P extends b.EditorAction2{static{this._allSymbolNavigationCommands=new Map}static{this._activeAlternativeCommands=new Set}static all(){return P._allSymbolNavigationCommands.values()}static _patchConfig(H){const z={...H,f1:!0};if(z.menu)for(const U of T.Iterable.wrap(z.menu))(U.id===C.MenuId.EditorContext||U.id===C.MenuId.EditorContextPeek)&&(U.when=h.ContextKeyExpr.and(H.precondition,U.when));return z}constructor(H,z){super(P._patchConfig(z)),this.configuration=H,P._allSymbolNavigationCommands.set(z.id,this)}runEditorCommand(H,z,U,j){if(!z.hasModel())return Promise.resolve(void 0);const Y=H.get(w.INotificationService),G=H.get(p.ICodeEditorService),K=H.get(S.IEditorProgressService),R=H.get(l.ISymbolNavigationService),J=H.get(D.ILanguageFeaturesService),ie=H.get(v.IInstantiationService),ue=z.getModel(),he=z.getPosition(),pe=A.is(U)?U:new A(ue,he),ae=new m.EditorStateCancellationTokenSource(z,5),ee=(0,k.raceCancellation)(this._getLocationModel(J,pe.model,pe.position,ae.token),ae.token).then(async de=>{if(!de||ae.token.isCancellationRequested)return;(0,d.alert)(de.ariaMessage);let ge;if(de.referenceAt(ue.uri,he)){const B=this._getAlternativeCommand(z);!P._activeAlternativeCommands.has(B)&&P._allSymbolNavigationCommands.has(B)&&(ge=P._allSymbolNavigationCommands.get(B))}const X=de.references.length;if(X===0){if(!this.configuration.muteMessage){const B=ue.getWordAtPosition(he);a.MessageController.get(z)?.showMessage(this._getNoResultFoundMessage(B),he)}}else if(X===1&&ge)P._activeAlternativeCommands.add(this.desc.id),ie.invokeFunction(B=>ge.runEditorCommand(B,z,U,j).finally(()=>{P._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(G,R,z,de,j)},de=>{Y.error(de)}).finally(()=>{ae.dispose()});return K.showWhile(ee,250),ee}async _onResult(H,z,U,j,Y){const G=this._getGoToPreference(U);if(!(U instanceof n.EmbeddedCodeEditorWidget)&&(this.configuration.openInPeek||G==="peek"&&j.references.length>1))this._openInPeek(U,j,Y);else{const K=j.firstReference(),R=j.references.length>1&&G==="gotoAndPeek",J=await this._openReference(U,H,K,this.configuration.openToSide,!R);R&&J?this._openInPeek(J,j,Y):j.dispose(),G==="goto"&&z.put(K)}}async _openReference(H,z,U,j,Y){let G;if((0,s.isLocationLink)(U)&&(G=U.targetSelectionRange),G||(G=U.range),!G)return;const K=await z.openCodeEditor({resource:U.uri,options:{selection:t.Range.collapseToStart(G),selectionRevealType:3,selectionSource:"code.jump"}},H,j);if(K){if(Y){const R=K.getModel(),J=K.createDecorationsCollection([{range:G,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{K.getModel()===R&&J.clear()},350)}return K}}_openInPeek(H,z,U){const j=g.ReferencesController.get(H);j&&H.hasModel()?j.toggleWidget(U??H.getSelection(),(0,k.createCancelablePromise)(Y=>Promise.resolve(z)),this.configuration.openInPeek):z.dispose()}}e.SymbolNavigationAction=P;class N extends P{async _getLocationModel(H,z,U,j){return new c.ReferencesModel(await(0,L.getDefinitionsAtPosition)(H.definitionProvider,z,U,!1,j),u.localize(947,"Definitions"))}_getNoResultFoundMessage(H){return H&&H.word?u.localize(948,"No definition found for '{0}'",H.word):u.localize(949,"No definition found")}_getAlternativeCommand(H){return H.getOption(58).alternativeDefinitionCommand}_getGoToPreference(H){return H.getOption(58).multipleDefinitions}}e.DefinitionAction=N,(0,C.registerAction2)(class Gt extends N{static{this.id="editor.action.revealDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:Gt.id,title:{...u.localize2(973,"Go to Definition"),mnemonicTitle:u.localize(950,"Go to &&Definition")},precondition:i.EditorContextKeys.hasDefinitionProvider,keybinding:[{when:i.EditorContextKeys.editorTextFocus,primary:70,weight:100},{when:h.ContextKeyExpr.and(i.EditorContextKeys.editorTextFocus,M.IsWebContext),primary:2118,weight:100}],menu:[{id:C.MenuId.EditorContext,group:"navigation",order:1.1},{id:C.MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]}),f.CommandsRegistry.registerCommandAlias("editor.action.goToDeclaration",Gt.id)}}),(0,C.registerAction2)(class Yt extends N{static{this.id="editor.action.revealDefinitionAside"}constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:Yt.id,title:u.localize2(974,"Open Definition to the Side"),precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasDefinitionProvider,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:[{when:i.EditorContextKeys.editorTextFocus,primary:(0,I.KeyChord)(2089,70),weight:100},{when:h.ContextKeyExpr.and(i.EditorContextKeys.editorTextFocus,M.IsWebContext),primary:(0,I.KeyChord)(2089,2118),weight:100}]}),f.CommandsRegistry.registerCommandAlias("editor.action.openDeclarationToTheSide",Yt.id)}}),(0,C.registerAction2)(class Qt extends N{static{this.id="editor.action.peekDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:Qt.id,title:u.localize2(975,"Peek Definition"),precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasDefinitionProvider,r.PeekContext.notInPeekEditor,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:{when:i.EditorContextKeys.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:C.MenuId.EditorContextPeek,group:"peek",order:2}}),f.CommandsRegistry.registerCommandAlias("editor.action.previewDeclaration",Qt.id)}});class O extends P{async _getLocationModel(H,z,U,j){return new c.ReferencesModel(await(0,L.getDeclarationsAtPosition)(H.declarationProvider,z,U,!1,j),u.localize(951,"Declarations"))}_getNoResultFoundMessage(H){return H&&H.word?u.localize(952,"No declaration found for '{0}'",H.word):u.localize(953,"No declaration found")}_getAlternativeCommand(H){return H.getOption(58).alternativeDeclarationCommand}_getGoToPreference(H){return H.getOption(58).multipleDeclarations}}(0,C.registerAction2)(class hi extends O{static{this.id="editor.action.revealDeclaration"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:hi.id,title:{...u.localize2(976,"Go to Declaration"),mnemonicTitle:u.localize(954,"Go to &&Declaration")},precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasDeclarationProvider,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:[{id:C.MenuId.EditorContext,group:"navigation",order:1.3},{id:C.MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(H){return H&&H.word?u.localize(955,"No declaration found for '{0}'",H.word):u.localize(956,"No declaration found")}}),(0,C.registerAction2)(class extends O{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:u.localize2(977,"Peek Declaration"),precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasDeclarationProvider,r.PeekContext.notInPeekEditor,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:{id:C.MenuId.EditorContextPeek,group:"peek",order:3}})}});class F extends P{async _getLocationModel(H,z,U,j){return new c.ReferencesModel(await(0,L.getTypeDefinitionsAtPosition)(H.typeDefinitionProvider,z,U,!1,j),u.localize(957,"Type Definitions"))}_getNoResultFoundMessage(H){return H&&H.word?u.localize(958,"No type definition found for '{0}'",H.word):u.localize(959,"No type definition found")}_getAlternativeCommand(H){return H.getOption(58).alternativeTypeDefinitionCommand}_getGoToPreference(H){return H.getOption(58).multipleTypeDefinitions}}(0,C.registerAction2)(class gi extends F{static{this.ID="editor.action.goToTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:gi.ID,title:{...u.localize2(978,"Go to Type Definition"),mnemonicTitle:u.localize(960,"Go to &&Type Definition")},precondition:i.EditorContextKeys.hasTypeDefinitionProvider,keybinding:{when:i.EditorContextKeys.editorTextFocus,primary:0,weight:100},menu:[{id:C.MenuId.EditorContext,group:"navigation",order:1.4},{id:C.MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}}),(0,C.registerAction2)(class fi extends F{static{this.ID="editor.action.peekTypeDefinition"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:fi.ID,title:u.localize2(979,"Peek Type Definition"),precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasTypeDefinitionProvider,r.PeekContext.notInPeekEditor,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:{id:C.MenuId.EditorContextPeek,group:"peek",order:4}})}});class x extends P{async _getLocationModel(H,z,U,j){return new c.ReferencesModel(await(0,L.getImplementationsAtPosition)(H.implementationProvider,z,U,!1,j),u.localize(961,"Implementations"))}_getNoResultFoundMessage(H){return H&&H.word?u.localize(962,"No implementation found for '{0}'",H.word):u.localize(963,"No implementation found")}_getAlternativeCommand(H){return H.getOption(58).alternativeImplementationCommand}_getGoToPreference(H){return H.getOption(58).multipleImplementations}}(0,C.registerAction2)(class mi extends x{static{this.ID="editor.action.goToImplementation"}constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:mi.ID,title:{...u.localize2(980,"Go to Implementations"),mnemonicTitle:u.localize(964,"Go to &&Implementations")},precondition:i.EditorContextKeys.hasImplementationProvider,keybinding:{when:i.EditorContextKeys.editorTextFocus,primary:2118,weight:100},menu:[{id:C.MenuId.EditorContext,group:"navigation",order:1.45},{id:C.MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}}),(0,C.registerAction2)(class pi extends x{static{this.ID="editor.action.peekImplementation"}constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:pi.ID,title:u.localize2(981,"Peek Implementations"),precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasImplementationProvider,r.PeekContext.notInPeekEditor,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:{when:i.EditorContextKeys.editorTextFocus,primary:3142,weight:100},menu:{id:C.MenuId.EditorContextPeek,group:"peek",order:5}})}});class W extends P{_getNoResultFoundMessage(H){return H?u.localize(965,"No references found for '{0}'",H.word):u.localize(966,"No references found")}_getAlternativeCommand(H){return H.getOption(58).alternativeReferenceCommand}_getGoToPreference(H){return H.getOption(58).multipleReferences}}(0,C.registerAction2)(class extends W{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{...u.localize2(982,"Go to References"),mnemonicTitle:u.localize(967,"Go to &&References")},precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasReferenceProvider,r.PeekContext.notInPeekEditor,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:{when:i.EditorContextKeys.editorTextFocus,primary:1094,weight:100},menu:[{id:C.MenuId.EditorContext,group:"navigation",order:1.45},{id:C.MenuId.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(H,z,U,j){return new c.ReferencesModel(await(0,L.getReferencesAtPosition)(H.referenceProvider,z,U,!0,!1,j),u.localize(968,"References"))}}),(0,C.registerAction2)(class extends W{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:u.localize2(983,"Peek References"),precondition:h.ContextKeyExpr.and(i.EditorContextKeys.hasReferenceProvider,r.PeekContext.notInPeekEditor,i.EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:{id:C.MenuId.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(H,z,U,j){return new c.ReferencesModel(await(0,L.getReferencesAtPosition)(H.referenceProvider,z,U,!1,!1,j),u.localize(969,"References"))}});class V extends P{constructor(H,z,U){super(H,{id:"editor.action.goToLocation",title:u.localize2(984,"Go to Any Symbol"),precondition:h.ContextKeyExpr.and(r.PeekContext.notInPeekEditor,i.EditorContextKeys.isInEmbeddedEditor.toNegated())}),this._references=z,this._gotoMultipleBehaviour=U}async _getLocationModel(H,z,U,j){return new c.ReferencesModel(this._references,u.localize(970,"Locations"))}_getNoResultFoundMessage(H){return H&&u.localize(971,"No results for '{0}'",H.word)||""}_getGoToPreference(H){return this._gotoMultipleBehaviour??H.getOption(58).multipleReferences}_getAlternativeCommand(){return""}}f.CommandsRegistry.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:y.URI},{name:"position",description:"The position at which to start",constraint:o.Position.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:async(q,H,z,U,j,Y,G)=>{(0,E.assertType)(y.URI.isUri(H)),(0,E.assertType)(o.Position.isIPosition(z)),(0,E.assertType)(Array.isArray(U)),(0,E.assertType)(typeof j>"u"||typeof j=="string"),(0,E.assertType)(typeof G>"u"||typeof G=="boolean");const K=q.get(p.ICodeEditorService),R=await K.openCodeEditor({resource:H},K.getFocusedCodeEditor());if((0,_.isCodeEditor)(R))return R.setPosition(z),R.revealPositionInCenterIfOutsideViewport(z,0),R.invokeWithinContext(J=>{const ie=new class extends V{_getNoResultFoundMessage(ue){return Y||super._getNoResultFoundMessage(ue)}}({muteMessage:!Y,openInPeek:!!G,openToSide:!1},U,j);J.get(v.IInstantiationService).invokeFunction(ie.run.bind(ie),R)})}}),f.CommandsRegistry.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:y.URI},{name:"position",description:"The position at which to start",constraint:o.Position.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"}]},handler:async(q,H,z,U,j)=>{q.get(f.ICommandService).executeCommand("editor.action.goToLocations",H,z,U,j,void 0,!0)}}),f.CommandsRegistry.registerCommand({id:"editor.action.findReferences",handler:(q,H,z)=>{(0,E.assertType)(y.URI.isUri(H)),(0,E.assertType)(o.Position.isIPosition(z));const U=q.get(D.ILanguageFeaturesService),j=q.get(p.ICodeEditorService);return j.openCodeEditor({resource:H},j.getFocusedCodeEditor()).then(Y=>{if(!(0,_.isCodeEditor)(Y)||!Y.hasModel())return;const G=g.ReferencesController.get(Y);if(!G)return;const K=(0,k.createCancelablePromise)(J=>(0,L.getReferencesAtPosition)(U.referenceProvider,Y.getModel(),o.Position.lift(z),!1,!1,J).then(ie=>new c.ReferencesModel(ie,u.localize(972,"References")))),R=new t.Range(z.lineNumber,z.column,z.lineNumber,z.column);return Promise.resolve(G.toggleWidget(R,K,!1))})}}),f.CommandsRegistry.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations")}),define(ne[429],se([1,0,14,8,57,2,122,15,4,43,78,209,158,3,12,291,277,17,35,513]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),e.GotoDefinitionAtPositionEditorContribution=void 0;let r=class{static{a=this}static{this.ID="editor.contrib.gotodefinitionatposition"}static{this.MAX_SOURCE_PREVIEW_LINES=8}constructor(C,f,h,v){this.textModelResolverService=f,this.languageService=h,this.languageFeaturesService=v,this.toUnhook=new E.DisposableStore,this.toUnhookForKeyboard=new E.DisposableStore,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=C,this.linkDecorations=this.editor.createDecorationsCollection();const w=new n.ClickLinkGesture(C);this.toUnhook.add(w),this.toUnhook.add(w.onMouseMoveOrRelevantKeyDown(([S,L])=>{this.startFindDefinitionFromMouse(S,L??void 0)})),this.toUnhook.add(w.onExecute(S=>{this.isEnabled(S)&&this.gotoDefinition(S.target.position,S.hasSideBySideModifier).catch(L=>{(0,k.onUnexpectedError)(L)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(w.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(C){return C.getContribution(a.ID)}async startFindDefinitionFromCursor(C){await this.startFindDefinition(C),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown(f=>{f&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())}))}startFindDefinitionFromMouse(C,f){if(C.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(C,f)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}const h=C.target.position;this.startFindDefinition(h)}async startFindDefinition(C){this.toUnhookForKeyboard.clear();const f=C?this.editor.getModel()?.getWordAtPosition(C):null;if(!f){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===f.startColumn&&this.currentWordAtPosition.endColumn===f.endColumn&&this.currentWordAtPosition.word===f.word)return;this.currentWordAtPosition=f;const h=new y.EditorState(this.editor,15);this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=(0,d.createCancelablePromise)(S=>this.findDefinition(C,S));let v;try{v=await this.previousPromise}catch(S){(0,k.onUnexpectedError)(S);return}if(!v||!v.length||!h.validate(this.editor)){this.removeLinkDecorations();return}const w=v[0].originSelectionRange?_.Range.lift(v[0].originSelectionRange):new _.Range(C.lineNumber,f.startColumn,C.lineNumber,f.endColumn);if(v.length>1){let S=w;for(const{originSelectionRange:L}of v)L&&(S=_.Range.plusRange(S,L));this.addDecoration(S,new I.MarkdownString().appendText(t.localize(985,"Click to show {0} definitions.",v.length)))}else{const S=v[0];if(!S.uri)return;this.textModelResolverService.createModelReference(S.uri).then(L=>{if(!L.object||!L.object.textEditorModel){L.dispose();return}const{object:{textEditorModel:D}}=L,{startLineNumber:T}=S.range;if(T<1||T>D.getLineCount()){L.dispose();return}const M=this.getPreviewValue(D,T,S),A=this.languageService.guessLanguageIdByFilepathOrFirstLine(D.uri);this.addDecoration(w,M?new I.MarkdownString().appendCodeblock(A||"",M):void 0),L.dispose()})}}getPreviewValue(C,f,h){let v=h.range;return v.endLineNumber-v.startLineNumber>=a.MAX_SOURCE_PREVIEW_LINES&&(v=this.getPreviewRangeBasedOnIndentation(C,f)),this.stripIndentationFromPreviewRange(C,f,v)}stripIndentationFromPreviewRange(C,f,h){let w=C.getLineFirstNonWhitespaceColumn(f);for(let L=f+1;L{const v=!f&&this.editor.getOption(89)&&!this.isInPeekEditor(h);return new s.DefinitionAction({openToSide:f,openInPeek:v,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(h)})}isInPeekEditor(C){const f=C.get(i.IContextKeyService);return o.PeekContext.inPeekEditor.getValue(f)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};e.GotoDefinitionAtPositionEditorContribution=r,e.GotoDefinitionAtPositionEditorContribution=r=a=ke([ce(1,p.ITextModelService),ce(2,b.ILanguageService),ce(3,c.ILanguageFeaturesService)],r),(0,m.registerEditorContribution)(r.ID,r,2)}),define(ne[845],se([1,0,5,13,14,8,2,48,4,17,266,157,287,134,427,84,3,108,59,96]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MarkerHoverParticipant=e.MarkerHover=void 0;const r=d.$;class u{constructor(v,w,S){this.owner=v,this.range=w,this.marker=S}isValidForHoverAnchor(v){return v.type===1&&this.range.startColumn<=v.range.startColumn&&this.range.endColumn>=v.range.endColumn}}e.MarkerHover=u;const C={type:1,filter:{include:t.CodeActionKind.QuickFix},triggerAction:t.CodeActionTriggerSource.QuickFixHover};let f=class{constructor(v,w,S,L){this._editor=v,this._markerDecorationsService=w,this._openerService=S,this._languageFeaturesService=L,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(v,w){if(!this._editor.hasModel()||v.type!==1&&!v.supportsMarkerHover)return[];const S=this._editor.getModel(),L=v.range.startLineNumber,D=S.getLineMaxColumn(L),T=[];for(const M of w){const A=M.range.startLineNumber===L?M.range.startColumn:1,P=M.range.endLineNumber===L?M.range.endColumn:D,N=this._markerDecorationsService.getMarker(S.uri,M);if(!N)continue;const O=new _.Range(v.range.startLineNumber,A,v.range.startLineNumber,P);T.push(new u(this,O,N))}return T}renderHoverParts(v,w){if(!w.length)return new s.RenderedHoverParts([]);const S=new y.DisposableStore,L=[];w.forEach(T=>{const M=this._renderMarkerHover(T);v.fragment.appendChild(M.hoverElement),L.push(M)});const D=w.length===1?w[0]:w.sort((T,M)=>c.MarkerSeverity.compare(T.marker.severity,M.marker.severity))[0];return this.renderMarkerStatusbar(v,D,S),new s.RenderedHoverParts(L)}_renderMarkerHover(v){const w=new y.DisposableStore,S=r("div.hover-row"),L=d.append(S,r("div.marker.hover-contents")),{source:D,message:T,code:M,relatedInformation:A}=v.marker;this._editor.applyFontInfo(L);const P=d.append(L,r("span"));if(P.style.whiteSpace="pre-wrap",P.innerText=T,D||M)if(M&&typeof M!="string"){const O=r("span");if(D){const V=d.append(O,r("span"));V.innerText=D}const F=d.append(O,r("a.code-link"));F.setAttribute("href",M.target.toString()),w.add(d.addDisposableListener(F,"click",V=>{this._openerService.open(M.target,{allowCommands:!0}),V.preventDefault(),V.stopPropagation()}));const x=d.append(F,r("span"));x.innerText=M.value;const W=d.append(L,O);W.style.opacity="0.6",W.style.paddingLeft="6px"}else{const O=d.append(L,r("span"));O.style.opacity="0.6",O.style.paddingLeft="6px",O.innerText=D&&M?`${D}(${M})`:D||`(${M})`}if((0,k.isNonEmptyArray)(A))for(const{message:O,resource:F,startLineNumber:x,startColumn:W}of A){const V=d.append(L,r("div"));V.style.marginTop="8px";const q=d.append(V,r("a"));q.innerText=`${(0,m.basename)(F)}(${x}, ${W}): `,q.style.cursor="pointer",w.add(d.addDisposableListener(q,"click",z=>{if(z.stopPropagation(),z.preventDefault(),this._openerService){const U={selection:{startLineNumber:x,startColumn:W}};this._openerService.open(F,{fromUserGesture:!0,editorOptions:U}).catch(E.onUnexpectedError)}}));const H=d.append(V,r("span"));H.innerText=O,this._editor.applyFontInfo(H)}return{hoverPart:v,hoverElement:S,dispose:()=>w.dispose()}}renderMarkerStatusbar(v,w,S){if(w.marker.severity===c.MarkerSeverity.Error||w.marker.severity===c.MarkerSeverity.Warning||w.marker.severity===c.MarkerSeverity.Info){const L=i.MarkerController.get(this._editor);L&&v.statusBar.addAction({label:g.localize(1040,"View Problem"),commandId:i.NextMarkerAction.ID,run:()=>{v.hide(),L.showAtMarker(w.marker),this._editor.focus()}})}if(!this._editor.getOption(92)){const L=v.statusBar.append(r("div"));this.recentMarkerCodeActionsInfo&&(c.IMarkerData.makeKey(this.recentMarkerCodeActionsInfo.marker)===c.IMarkerData.makeKey(w.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(L.textContent=g.localize(1041,"No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const D=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?y.Disposable.None:(0,I.disposableTimeout)(()=>L.textContent=g.localize(1042,"Checking for quick fixes..."),200,S);L.textContent||(L.textContent="\xA0");const T=this.getCodeActions(w.marker);S.add((0,y.toDisposable)(()=>T.cancel())),T.then(M=>{if(D.dispose(),this.recentMarkerCodeActionsInfo={marker:w.marker,hasCodeActions:M.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){M.dispose(),L.textContent=g.localize(1043,"No quick fixes available");return}L.style.display="none";let A=!1;S.add((0,y.toDisposable)(()=>{A||M.dispose()})),v.statusBar.addAction({label:g.localize(1044,"Quick Fix..."),commandId:n.quickFixCommandId,run:P=>{A=!0;const N=o.CodeActionController.get(this._editor),O=d.getDomNodePagePosition(P);v.hide(),N?.showCodeActions(C,M,{x:O.left,y:O.top,width:O.width,height:O.height})}})},E.onUnexpectedError)}}getCodeActions(v){return(0,I.createCancelablePromise)(w=>(0,n.getCodeActions)(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new _.Range(v.startLineNumber,v.startColumn,v.endLineNumber,v.endColumn),C,a.Progress.None,w))}};e.MarkerHoverParticipant=f,e.MarkerHoverParticipant=f=ke([ce(1,p.IMarkerDecorationsService),ce(2,l.IOpenerService),ce(3,b.ILanguageFeaturesService)],f)}),define(ne[430],se([1,0,5,41,18,193,4,78,291,158,29,24,12,58,7,50]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.showGoToContextMenu=g,e.goToDefinitionWithLocation=c;async function g(l,a,r,u){const C=l.get(m.ITextModelService),f=l.get(t.IContextMenuService),h=l.get(n.ICommandService),v=l.get(i.IInstantiationService),w=l.get(s.INotificationService);if(await u.item.resolve(I.CancellationToken.None),!u.part.location)return;const S=u.part.location,L=[],D=new Set(p.MenuRegistry.getMenuItems(p.MenuId.EditorContext).map(M=>(0,p.isIMenuItem)(M)?M.command.id:(0,E.generateUuid)()));for(const M of _.SymbolNavigationAction.all())D.has(M.desc.id)&&L.push(new k.Action(M.desc.id,p.MenuItemAction.label(M.desc,{renderShortTitle:!0}),void 0,!0,async()=>{const A=await C.createModelReference(S.uri);try{const P=new _.SymbolNavigationAnchor(A.object.textEditorModel,y.Range.getStartPosition(S.range)),N=u.item.anchor.range;await v.invokeFunction(M.runEditorCommand.bind(M),a,P,N)}finally{A.dispose()}}));if(u.part.command){const{command:M}=u.part;L.push(new k.Separator),L.push(new k.Action(M.id,M.title,void 0,!0,async()=>{try{await h.executeCommand(M.id,...M.arguments??[])}catch(A){w.notify({severity:s.Severity.Error,source:u.item.provider.displayName,message:A})}}))}const T=a.getOption(128);f.showContextMenu({domForShadowRoot:T?a.getDomNode()??void 0:void 0,getAnchor:()=>{const M=d.getDomNodePagePosition(r);return{x:M.left,y:M.top+M.height+8}},getActions:()=>L,onHide:()=>{a.focus()},autoSelectFirstItem:!0})}async function c(l,a,r,u){const f=await l.get(m.ITextModelService).createModelReference(u.uri);await r.invokeWithinContext(async h=>{const v=a.hasSideBySideModifier,w=h.get(o.IContextKeyService),S=b.PeekContext.inPeekEditor.getValue(w),L=!v&&r.getOption(89)&&!S;return new _.DefinitionAction({openToSide:v,openInPeek:L,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(h,new _.SymbolNavigationAnchor(f.object.textEditorModel,y.Range.getStartPosition(u.range)),y.Range.lift(u.range))}),f.dispose()}}),define(ne[431],se([1,0,5,13,14,18,8,2,45,19,22,185,143,37,75,4,27,40,35,79,17,78,209,377,430,24,49,7,50,32,25]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T){"use strict";var M;Object.defineProperty(e,"__esModule",{value:!0}),e.InlayHintsController=e.RenderedInlayHintLabelPart=void 0;class A{constructor(){this._entries=new _.LRUCache(50)}get(V){const q=A._key(V);return this._entries.get(q)}set(V,q){const H=A._key(V);this._entries.set(H,q)}static _key(V){return`${V.uri.toString()}/${V.getVersionId()}`}}const P=(0,S.createDecorator)("IInlayHintsCache");(0,w.registerSingleton)(P,A,1);class N{constructor(V,q){this.item=V,this.index=q}get part(){const V=this.item.hint.label;return typeof V=="string"?{label:V}:V[this.index]}}e.RenderedInlayHintLabelPart=N;class O{constructor(V,q){this.part=V,this.hasTriggerModifier=q}}let F=class{static{M=this}static{this.ID="editor.contrib.InlayHints"}static{this._MAX_DECORATORS=1500}static{this._MAX_LABEL_LEN=43}static get(V){return V.getContribution(M.ID)??void 0}constructor(V,q,H,z,U,j,Y){this._editor=V,this._languageFeaturesService=q,this._inlayHintsCache=z,this._commandService=U,this._notificationService=j,this._instaService=Y,this._disposables=new m.DisposableStore,this._sessionDisposables=new m.DisposableStore,this._decorationsMetadata=new Map,this._ruleFactory=new n.DynamicCssRules(this._editor),this._activeRenderMode=0,this._debounceInfo=H.for(q.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(q.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(V.onDidChangeModel(()=>this._update())),this._disposables.add(V.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(V.onDidChangeConfiguration(G=>{G.hasChanged(142)&&this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const V=this._editor.getOption(142);if(V.enabled==="off")return;const q=this._editor.getModel();if(!q||!this._languageFeaturesService.inlayHintsProvider.has(q))return;if(V.enabled==="on")this._activeRenderMode=0;else{let Y,G;V.enabled==="onUnlessPressed"?(Y=0,G=1):(Y=1,G=0),this._activeRenderMode=Y,this._sessionDisposables.add(d.ModifierKeyEmitter.getInstance().event(K=>{if(!this._editor.hasModel())return;const R=K.altKey&&K.ctrlKey&&!(K.shiftKey||K.metaKey)?G:Y;if(R!==this._activeRenderMode){this._activeRenderMode=R;const J=this._editor.getModel(),ie=this._copyInlayHintsWithCurrentAnchor(J);this._updateHintsDecorators([J.getFullModelRange()],ie),j.schedule(0)}}))}const H=this._inlayHintsCache.get(q);H&&this._updateHintsDecorators([q.getFullModelRange()],H),this._sessionDisposables.add((0,m.toDisposable)(()=>{q.isDisposed()||this._cacheHintsForFastRestore(q)}));let z;const U=new Set,j=new I.RunOnceScheduler(async()=>{const Y=Date.now();z?.dispose(!0),z=new E.CancellationTokenSource;const G=q.onWillDispose(()=>z?.cancel());try{const K=z.token,R=await f.InlayHintsFragments.create(this._languageFeaturesService.inlayHintsProvider,q,this._getHintsRanges(),K);if(j.delay=this._debounceInfo.update(q,Date.now()-Y),K.isCancellationRequested){R.dispose();return}for(const J of R.provider)typeof J.onDidChangeInlayHints=="function"&&!U.has(J)&&(U.add(J),this._sessionDisposables.add(J.onDidChangeInlayHints(()=>{j.isScheduled()||j.schedule()})));this._sessionDisposables.add(R),this._updateHintsDecorators(R.ranges,R.items),this._cacheHintsForFastRestore(q)}catch(K){(0,y.onUnexpectedError)(K)}finally{z.dispose(),G.dispose()}},this._debounceInfo.get(q));this._sessionDisposables.add(j),this._sessionDisposables.add((0,m.toDisposable)(()=>z?.dispose(!0))),j.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange(Y=>{(Y.scrollTopChanged||!j.isScheduled())&&j.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeModelContent(Y=>{z?.cancel();const G=Math.max(j.delay,1250);j.schedule(G)})),this._sessionDisposables.add(this._installDblClickGesture(()=>j.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const V=new m.DisposableStore,q=V.add(new C.ClickLinkGesture(this._editor)),H=new m.DisposableStore;return V.add(H),V.add(q.onMouseMoveOrRelevantKeyDown(z=>{const[U]=z,j=this._getInlayHintLabelPart(U),Y=this._editor.getModel();if(!j||!Y){H.clear();return}const G=new E.CancellationTokenSource;H.add((0,m.toDisposable)(()=>G.dispose(!0))),j.item.resolve(G.token),this._activeInlayHintPart=j.part.command||j.part.location?new O(j,U.hasTriggerModifier):void 0;const K=Y.validatePosition(j.item.hint.position).lineNumber,R=new s.Range(K,1,K,Y.getLineMaxColumn(K)),J=this._getInlineHintsForRange(R);this._updateHintsDecorators([R],J),H.add((0,m.toDisposable)(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([R],J)}))})),V.add(q.onCancel(()=>H.clear())),V.add(q.onExecute(async z=>{const U=this._getInlayHintLabelPart(z);if(U){const j=U.part;j.location?this._instaService.invokeFunction(h.goToDefinitionWithLocation,z,this._editor,j.location):g.Command.is(j.command)&&await this._invokeCommand(j.command,U.item)}})),V}_getInlineHintsForRange(V){const q=new Set;for(const H of this._decorationsMetadata.values())V.containsRange(H.item.anchor.range)&&q.add(H.item);return Array.from(q)}_installDblClickGesture(V){return this._editor.onMouseUp(async q=>{if(q.event.detail!==2)return;const H=this._getInlayHintLabelPart(q);if(H&&(q.event.preventDefault(),await H.item.resolve(E.CancellationToken.None),(0,k.isNonEmptyArray)(H.item.hint.textEdits))){const z=H.item.hint.textEdits.map(U=>i.EditOperation.replace(s.Range.lift(U.range),U.text));this._editor.executeEdits("inlayHint.default",z),V()}})}_installContextMenu(){return this._editor.onContextMenu(async V=>{if(!(0,d.isHTMLElement)(V.event.target))return;const q=this._getInlayHintLabelPart(V);q&&await this._instaService.invokeFunction(h.showGoToContextMenu,this._editor,V.event.target,q)})}_getInlayHintLabelPart(V){if(V.target.type!==6)return;const q=V.target.detail.injectedText?.options;if(q instanceof l.ModelDecorationInjectedTextOptions&&q?.attachedData instanceof N)return q.attachedData}async _invokeCommand(V,q){try{await this._commandService.executeCommand(V.id,...V.arguments??[])}catch(H){this._notificationService.notify({severity:L.Severity.Error,source:q.provider.displayName,message:H})}}_cacheHintsForFastRestore(V){const q=this._copyInlayHintsWithCurrentAnchor(V);this._inlayHintsCache.set(V,q)}_copyInlayHintsWithCurrentAnchor(V){const q=new Map;for(const[H,z]of this._decorationsMetadata){if(q.has(z.item))continue;const U=V.getDecorationRange(H);if(U){const j=new f.InlayHintAnchor(U,z.item.anchor.direction),Y=z.item.with({anchor:j});q.set(z.item,Y)}}return Array.from(q.values())}_getHintsRanges(){const q=this._editor.getModel(),H=this._editor.getVisibleRangesPlusViewportAboveBelow(),z=[];for(const U of H.sort(s.Range.compareRangesUsingStarts)){const j=q.validateRange(new s.Range(U.startLineNumber-30,U.startColumn,U.endLineNumber+30,U.endColumn));z.length===0||!s.Range.areIntersectingOrTouching(z[z.length-1],j)?z.push(j):z[z.length-1]=s.Range.plusRange(z[z.length-1],j)}return z}_updateHintsDecorators(V,q){const H=[],z=(he,pe,ae,ee,de)=>{const ge={content:ae,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:pe.className,cursorStops:ee,attachedData:de};H.push({item:he,classNameRef:pe,decoration:{range:he.anchor.range,options:{description:"InlayHint",showIfCollapsed:he.anchor.range.isEmpty(),collapseOnReplaceEdit:!he.anchor.range.isEmpty(),stickiness:0,[he.anchor.direction]:this._activeRenderMode===0?ge:void 0}}})},U=(he,pe)=>{const ae=this._ruleFactory.createClassNameRef({width:`${j/3|0}px`,display:"inline-block"});z(he,ae,"\u200A",pe?c.InjectedTextCursorStops.Right:c.InjectedTextCursorStops.None)},{fontSize:j,fontFamily:Y,padding:G,isUniform:K}=this._getLayoutInfo(),R="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(R,Y);let J={line:0,totalLen:0};for(const he of q){if(J.line!==he.anchor.range.startLineNumber&&(J={line:he.anchor.range.startLineNumber,totalLen:0}),J.totalLen>M._MAX_LABEL_LEN)continue;he.hint.paddingLeft&&U(he,!1);const pe=typeof he.hint.label=="string"?[{label:he.hint.label}]:he.hint.label;for(let ae=0;ae0&&(B=B.slice(0,-Q)+"\u2026",$=!0),z(he,this._ruleFactory.createClassNameRef(X),x(B),ge&&!he.hint.paddingRight?c.InjectedTextCursorStops.Right:c.InjectedTextCursorStops.None,new N(he,ae)),$)break}if(he.hint.paddingRight&&U(he,!0),H.length>M._MAX_DECORATORS)break}const ie=[];for(const[he,pe]of this._decorationsMetadata){const ae=this._editor.getModel()?.getDecorationRange(he);ae&&V.some(ee=>ee.containsRange(ae))&&(ie.push(he),pe.classNameRef.dispose(),this._decorationsMetadata.delete(he))}const ue=o.StableEditorScrollState.capture(this._editor);this._editor.changeDecorations(he=>{const pe=he.deltaDecorations(ie,H.map(ae=>ae.decoration));for(let ae=0;aeH)&&(U=H);const j=V.fontFamily||z;return{fontSize:U,fontFamily:j,padding:q,isUniform:!q&&j===z&&U===H}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const V of this._decorationsMetadata.values())V.classNameRef.dispose();this._decorationsMetadata.clear()}};e.InlayHintsController=F,e.InlayHintsController=F=M=ke([ce(1,r.ILanguageFeaturesService),ce(2,a.ILanguageFeatureDebounceService),ce(3,P),ce(4,v.ICommandService),ce(5,L.INotificationService),ce(6,S.IInstantiationService)],F);function x(W){return W.replace(/[ \t]/g,"\xA0")}v.CommandsRegistry.registerCommand("_executeInlayHintProvider",async(W,...V)=>{const[q,H]=V;(0,b.assertType)(p.URI.isUri(q)),(0,b.assertType)(s.Range.isIRange(H));const{inlayHintsProvider:z}=W.get(r.ILanguageFeaturesService),U=await W.get(u.ITextModelService).createModelReference(q);try{const j=await f.InlayHintsFragments.create(z,U.object.textEditorModel,[s.Range.lift(H)],E.CancellationToken.None),Y=j.items.map(G=>G.hint);return setTimeout(()=>j.dispose(),0),Y}finally{U.dispose()}})}),define(ne[432],se([1,0,14,57,9,35,84,43,78,410,217,431,28,59,17,3,16,377,13,31,118,24]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlayHintsHover=void 0;class C extends y.HoverForeignElementAnchor{constructor(v,w,S,L){super(10,w,v.item.anchor.range,S,L,!0),this.part=v}}let f=class extends p.MarkdownHoverParticipant{constructor(v,w,S,L,D,T,M,A,P){super(v,w,S,T,A,L,D,P),this._resolverService=M,this.hoverOrdinal=6}suggestHoverAnchor(v){if(!n.InlayHintsController.get(this._editor)||v.target.type!==6)return null;const S=v.target.detail.injectedText?.options;return S instanceof E.ModelDecorationInjectedTextOptions&&S.attachedData instanceof n.RenderedInlayHintLabelPart?new C(S.attachedData,this,v.event.posx,v.event.posy):null}computeSync(){return[]}computeAsync(v,w,S){return v instanceof C?new d.AsyncIterableObject(async L=>{const{part:D}=v;if(await D.item.resolve(S),S.isCancellationRequested)return;let T;typeof D.item.hint.tooltip=="string"?T=new k.MarkdownString().appendText(D.item.hint.tooltip):D.item.hint.tooltip&&(T=D.item.hint.tooltip),T&&L.emitOne(new p.MarkdownHover(this,v.range,[T],!1,0)),(0,l.isNonEmptyArray)(D.item.hint.textEdits)&&L.emitOne(new p.MarkdownHover(this,v.range,[new k.MarkdownString().appendText((0,s.localize)(1065,"Double-click to insert"))],!1,10001));let M;if(typeof D.part.tooltip=="string"?M=new k.MarkdownString().appendText(D.part.tooltip):D.part.tooltip&&(M=D.part.tooltip),M&&L.emitOne(new p.MarkdownHover(this,v.range,[M],!1,1)),D.part.location||D.part.command){let P;const O=this._editor.getOption(78)==="altKey"?g.isMacintosh?(0,s.localize)(1066,"cmd + click"):(0,s.localize)(1067,"ctrl + click"):g.isMacintosh?(0,s.localize)(1068,"option + click"):(0,s.localize)(1069,"alt + click");D.part.location&&D.part.command?P=new k.MarkdownString().appendText((0,s.localize)(1070,"Go to Definition ({0}), right click for more",O)):D.part.location?P=new k.MarkdownString().appendText((0,s.localize)(1071,"Go to Definition ({0})",O)):D.part.command&&(P=new k.MarkdownString(`[${(0,s.localize)(1072,"Execute Command")}](${(0,c.asCommandLink)(D.part.command)} "${D.part.command.title}") (${O})`,{isTrusted:!0})),P&&L.emitOne(new p.MarkdownHover(this,v.range,[P],!1,1e4))}const A=await this._resolveInlayHintLabelPartHover(D,S);for await(const P of A)L.emitOne(P)}):d.AsyncIterableObject.EMPTY}async _resolveInlayHintLabelPartHover(v,w){if(!v.part.location)return d.AsyncIterableObject.EMPTY;const{uri:S,range:L}=v.part.location,D=await this._resolverService.createModelReference(S);try{const T=D.object.textEditorModel;return this._languageFeaturesService.hoverProvider.has(T)?(0,b.getHoverProviderResultsAsAsyncIterable)(this._languageFeaturesService.hoverProvider,T,new I.Position(L.startLineNumber,L.startColumn),w).filter(M=>!(0,k.isEmptyMarkdownString)(M.hover.contents)).map(M=>new p.MarkdownHover(this,v.item.anchor.range,M.hover.contents,!1,2+M.ordinal)):d.AsyncIterableObject.EMPTY}finally{D.dispose()}}};e.InlayHintsHover=f,e.InlayHintsHover=f=ke([ce(1,m.ILanguageService),ce(2,t.IOpenerService),ce(3,a.IKeybindingService),ce(4,r.IHoverService),ce(5,o.IConfigurationService),ce(6,_.ITextModelService),ce(7,i.ILanguageFeaturesService),ce(8,u.ICommandService)],f)}),define(ne[846],se([1,0,84,2,391,35,9,4,5,217,288,432,8]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RenderedContentHover=void 0;class t extends k.Disposable{constructor(c,l,a,r,u,C){super();const f=l.anchor,h=l.hoverParts;this._renderedHoverParts=this._register(new s(c,a,h,C,u));const{showAtPosition:v,showAtSecondaryPosition:w}=t.computeHoverPositions(c,f.range,h);this.shouldAppearBeforeContent=h.some(S=>S.isBeforeContent),this.showAtPosition=v,this.showAtSecondaryPosition=w,this.initialMousePosX=f.initialMousePosX,this.initialMousePosY=f.initialMousePosY,this.shouldFocus=r.shouldFocus,this.source=r.source}get domNode(){return this._renderedHoverParts.domNode}get domNodeHasChildren(){return this._renderedHoverParts.domNodeHasChildren}get focusedHoverPartIndex(){return this._renderedHoverParts.focusedHoverPartIndex}async updateHoverVerbosityLevel(c,l,a){this._renderedHoverParts.updateHoverVerbosityLevel(c,l,a)}isColorPickerVisible(){return this._renderedHoverParts.isColorPickerVisible()}static computeHoverPositions(c,l,a){let r=1;if(c.hasModel()){const w=c._getViewModel(),S=w.coordinatesConverter,L=S.convertModelRangeToViewRange(l),D=w.getLineMinColumn(L.startLineNumber),T=new y.Position(L.startLineNumber,D);r=S.convertViewPositionToModelPosition(T).column}const u=l.startLineNumber;let C=l.startColumn,f;for(const w of a){const S=w.range,L=S.startLineNumber===u,D=S.endLineNumber===u;if(L&&D){const M=S.startColumn,A=Math.min(C,M);C=Math.max(A,r)}w.forceShowAtRange&&(f=S)}let h,v;if(f){const w=f.getStartPosition();h=w,v=w}else h=l.getStartPosition(),v=new y.Position(u,C);return{showAtPosition:h,showAtSecondaryPosition:v}}}e.RenderedContentHover=t;class i{constructor(c,l){this._statusBar=l,c.appendChild(this._statusBar.hoverElement)}get hoverElement(){return this._statusBar.hoverElement}get actions(){return this._statusBar.actions}dispose(){this._statusBar.dispose()}}class s extends k.Disposable{static{this._DECORATION_OPTIONS=E.ModelDecorationOptions.register({description:"content-hover-highlight",className:"hoverHighlight"})}constructor(c,l,a,r,u){super(),this._renderedParts=[],this._focusedHoverPartIndex=-1,this._context=u,this._fragment=document.createDocumentFragment(),this._register(this._renderParts(l,a,u,r)),this._register(this._registerListenersOnRenderedParts()),this._register(this._createEditorDecorations(c,a)),this._updateMarkdownAndColorParticipantInfo(l)}_createEditorDecorations(c,l){if(l.length===0)return k.Disposable.None;let a=l[0].range;for(const u of l){const C=u.range;a=m.Range.plusRange(a,C)}const r=c.createDecorationsCollection();return r.set([{range:a,options:s._DECORATION_OPTIONS}]),(0,k.toDisposable)(()=>{r.clear()})}_renderParts(c,l,a,r){const u=new I.EditorHoverStatusBar(r),C={fragment:this._fragment,statusBar:u,...a},f=new k.DisposableStore;for(const v of c){const w=this._renderHoverPartsForParticipant(l,v,C);f.add(w);for(const S of w.renderedHoverParts)this._renderedParts.push({type:"hoverPart",participant:v,hoverPart:S.hoverPart,hoverElement:S.hoverElement})}const h=this._renderStatusBar(this._fragment,u);return h&&(f.add(h),this._renderedParts.push({type:"statusBar",hoverElement:h.hoverElement,actions:h.actions})),(0,k.toDisposable)(()=>{f.dispose()})}_renderHoverPartsForParticipant(c,l,a){const r=c.filter(C=>C.owner===l);return r.length>0?l.renderHoverParts(a,r):new d.RenderedHoverParts([])}_renderStatusBar(c,l){if(l.hasContent)return new i(c,l)}_registerListenersOnRenderedParts(){const c=new k.DisposableStore;return this._renderedParts.forEach((l,a)=>{const r=l.hoverElement;r.tabIndex=0,c.add(_.addDisposableListener(r,_.EventType.FOCUS_IN,u=>{u.stopPropagation(),this._focusedHoverPartIndex=a})),c.add(_.addDisposableListener(r,_.EventType.FOCUS_OUT,u=>{u.stopPropagation(),this._focusedHoverPartIndex=-1}))}),c}_updateMarkdownAndColorParticipantInfo(c){const l=c.find(a=>a instanceof b.MarkdownHoverParticipant&&!(a instanceof n.InlayHintsHover));l&&(this._markdownHoverParticipant=l),this._colorHoverParticipant=c.find(a=>a instanceof p.ColorHoverParticipant)}async updateHoverVerbosityLevel(c,l,a){if(!this._markdownHoverParticipant)return;const r=this._normalizedIndexToMarkdownHoverIndexRange(this._markdownHoverParticipant,l);if(r===void 0)return;const u=await this._markdownHoverParticipant.updateMarkdownHoverVerbosityLevel(c,r,a);u&&(this._renderedParts[l]={type:"hoverPart",participant:this._markdownHoverParticipant,hoverPart:u.hoverPart,hoverElement:u.hoverElement},this._context.onContentsChanged())}isColorPickerVisible(){return this._colorHoverParticipant?.isColorPickerVisible()??!1}_normalizedIndexToMarkdownHoverIndexRange(c,l){const a=this._renderedParts[l];if(!a||a.type!=="hoverPart"||!(a.participant===c))return;const u=this._renderedParts.findIndex(C=>C.type==="hoverPart"&&C.participant===c);if(u===-1)throw new o.BugIndicatingError;return l-u}get domNode(){return this._fragment}get domNodeHasChildren(){return this._fragment.hasChildNodes()}get focusedHoverPartIndex(){return this._focusedHoverPartIndex}}}),define(ne[847],se([1,0,5,2,27,376,84,7,31,690,668,614,6,846,210]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContentHoverWidgetWrapper=void 0;let s=class extends k.Disposable{constructor(c,l,a){super(),this._editor=c,this._instantiationService=l,this._keybindingService=a,this._currentResult=null,this._onContentsChanged=this._register(new o.Emitter),this.onContentsChanged=this._onContentsChanged.event,this._contentHoverWidget=this._register(this._instantiationService.createInstance(b.ContentHoverWidget,this._editor)),this._participants=this._initializeHoverParticipants(),this._computer=new p.ContentHoverComputer(this._editor,this._participants),this._hoverOperation=this._register(new E.HoverOperation(this._editor,this._computer)),this._registerListeners()}_initializeHoverParticipants(){const c=[];for(const l of y.HoverParticipantRegistry.getAll()){const a=this._instantiationService.createInstance(l,this._editor);c.push(a)}return c.sort((l,a)=>l.hoverOrdinal-a.hoverOrdinal),this._register(this._contentHoverWidget.onDidResize(()=>{this._participants.forEach(l=>l.handleResize?.())})),c}_registerListeners(){this._register(this._hoverOperation.onResult(l=>{if(!this._computer.anchor)return;const a=l.hasLoadingMessage?this._addLoadingMessage(l.value):l.value;this._withResult(new n.HoverResult(this._computer.anchor,a,l.isComplete))}));const c=this._contentHoverWidget.getDomNode();this._register(d.addStandardDisposableListener(c,"keydown",l=>{l.equals(9)&&this.hide()})),this._register(d.addStandardDisposableListener(c,"mouseleave",l=>{this._onMouseLeave(l)})),this._register(I.TokenizationRegistry.onDidChange(()=>{this._contentHoverWidget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)}))}_startShowingOrUpdateHover(c,l,a,r,u){if(!(this._contentHoverWidget.position&&this._currentResult))return c?(this._startHoverOperationIfNecessary(c,l,a,r,!1),!0):!1;const f=this._editor.getOption(60).sticky,h=u&&this._contentHoverWidget.isMouseGettingCloser(u.event.posx,u.event.posy);return f&&h?(c&&this._startHoverOperationIfNecessary(c,l,a,r,!0),!0):c?this._currentResult.anchor.equals(c)?!0:c.canAdoptVisibleHover(this._currentResult.anchor,this._contentHoverWidget.position)?(this._setCurrentResult(this._currentResult.filter(c)),this._startHoverOperationIfNecessary(c,l,a,r,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(c,l,a,r,!1),!0):(this._setCurrentResult(null),!1)}_startHoverOperationIfNecessary(c,l,a,r,u){this._computer.anchor&&this._computer.anchor.equals(c)||(this._hoverOperation.cancel(),this._computer.anchor=c,this._computer.shouldFocus=r,this._computer.source=a,this._computer.insistOnKeepingHoverVisible=u,this._hoverOperation.start(l))}_setCurrentResult(c){let l=c;if(this._currentResult===l)return;l&&l.hoverParts.length===0&&(l=null),this._currentResult=l,this._currentResult?this._showHover(this._currentResult):this._hideHover()}_addLoadingMessage(c){if(!this._computer.anchor)return c;for(const l of this._participants){if(!l.createLoadingMessage)continue;const a=l.createLoadingMessage(this._computer.anchor);if(a)return c.slice(0).concat([a])}return c}_withResult(c){if(this._contentHoverWidget.position&&this._currentResult&&this._currentResult.isComplete||this._setCurrentResult(c),!c.isComplete)return;const r=c.hoverParts.length===0,u=this._computer.insistOnKeepingHoverVisible;r&&u||this._setCurrentResult(c)}_showHover(c){const l=this._getHoverContext();this._renderedContentHover=new t.RenderedContentHover(this._editor,c,this._participants,this._computer,l,this._keybindingService),this._renderedContentHover.domNodeHasChildren?this._contentHoverWidget.show(this._renderedContentHover):this._renderedContentHover.dispose()}_hideHover(){this._contentHoverWidget.hide()}_getHoverContext(){return{hide:()=>{this.hide()},onContentsChanged:()=>{this._onContentsChanged.fire(),this._contentHoverWidget.onContentsChanged()},setMinimumDimensions:r=>{this._contentHoverWidget.setMinimumDimensions(r)}}}showsOrWillShow(c){if(this._contentHoverWidget.isResizing)return!0;const a=this._findHoverAnchorCandidates(c);if(!(a.length>0))return this._startShowingOrUpdateHover(null,0,0,!1,c);const u=a[0];return this._startShowingOrUpdateHover(u,0,0,!1,c)}_findHoverAnchorCandidates(c){const l=[];for(const r of this._participants){if(!r.suggestHoverAnchor)continue;const u=r.suggestHoverAnchor(c);u&&l.push(u)}const a=c.target;switch(a.type){case 6:{l.push(new y.HoverRangeAnchor(0,a.range,c.event.posx,c.event.posy));break}case 7:{const r=this._editor.getOption(50).typicalHalfwidthCharacterWidth/2;if(!(!a.detail.isAfterLines&&typeof a.detail.horizontalDistanceToText=="number"&&a.detail.horizontalDistanceToTextu.priority-r.priority),l}_onMouseLeave(c){const l=this._editor.getDomNode();(!l||!(0,i.isMousePositionWithinElement)(l,c.x,c.y))&&this.hide()}startShowingAtRange(c,l,a,r){this._startShowingOrUpdateHover(new y.HoverRangeAnchor(0,c,void 0,void 0),l,a,r,null)}async updateHoverVerbosityLevel(c,l,a){this._renderedContentHover?.updateHoverVerbosityLevel(c,l,a)}focusedHoverPartIndex(){return this._renderedContentHover?.focusedHoverPartIndex??-1}containsNode(c){return c?this._contentHoverWidget.getDomNode().contains(c):!1}focus(){this._contentHoverWidget.focus()}scrollUp(){this._contentHoverWidget.scrollUp()}scrollDown(){this._contentHoverWidget.scrollDown()}scrollLeft(){this._contentHoverWidget.scrollLeft()}scrollRight(){this._contentHoverWidget.scrollRight()}pageUp(){this._contentHoverWidget.pageUp()}pageDown(){this._contentHoverWidget.pageDown()}goToTop(){this._contentHoverWidget.goToTop()}goToBottom(){this._contentHoverWidget.goToBottom()}hide(){this._computer.anchor=null,this._hoverOperation.cancel(),this._setCurrentResult(null)}getDomNode(){return this._contentHoverWidget.getDomNode()}get isColorPickerVisible(){return this._renderedContentHover?.isColorPickerVisible()??!1}get isVisibleFromKeyboard(){return this._contentHoverWidget.isVisibleFromKeyboard}get isVisible(){return this._contentHoverWidget.isVisible}get isFocused(){return this._contentHoverWidget.isFocused}get isResizing(){return this._contentHoverWidget.isResizing}get widget(){return this._contentHoverWidget}};e.ContentHoverWidgetWrapper=s,e.ContentHoverWidgetWrapper=s=ke([ce(1,m.IInstantiationService),ce(2,_.IKeybindingService)],s)}),define(ne[292],se([1,0,264,2,7,283,31,14,210,847,6,196]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.ContentHoverController=void 0;const o=!1;let t=class extends k.Disposable{static{n=this}static{this.ID="editor.contrib.contentHover"}constructor(s,g,c){super(),this._editor=s,this._instantiationService=g,this._keybindingService=c,this._onHoverContentsChanged=this._register(new p.Emitter),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new k.DisposableStore,this._hoverState={mouseDown:!1,activatedByDecoratorClick:!1},this._reactToEditorMouseMoveRunner=this._register(new m.RunOnceScheduler(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(l=>{l.hasChanged(60)&&(this._unhookListeners(),this._hookListeners())}))}static get(s){return s.getContribution(n.ID)}_hookListeners(){const s=this._editor.getOption(60);this._hoverSettings={enabled:s.enabled,sticky:s.sticky,hidingDelay:s.hidingDelay},s.enabled?(this._listenersStore.add(this._editor.onMouseDown(g=>this._onEditorMouseDown(g))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(g=>this._onEditorMouseMove(g))),this._listenersStore.add(this._editor.onKeyDown(g=>this._onKeyDown(g)))):(this._listenersStore.add(this._editor.onMouseMove(g=>this._onEditorMouseMove(g))),this._listenersStore.add(this._editor.onKeyDown(g=>this._onKeyDown(g)))),this._listenersStore.add(this._editor.onMouseLeave(g=>this._onEditorMouseLeave(g))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this._hideWidgets()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(g=>this._onEditorScrollChanged(g)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(s){(s.scrollTopChanged||s.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(s){this._hoverState.mouseDown=!0,!this._shouldNotHideCurrentHoverWidget(s)&&this._hideWidgets()}_shouldNotHideCurrentHoverWidget(s){return this._isMouseOnContentHoverWidget(s)||this._isContentWidgetResizing()}_isMouseOnContentHoverWidget(s){const g=this._contentWidget?.getDomNode();return g?(0,_.isMousePositionWithinElement)(g,s.event.posx,s.event.posy):!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(s){this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),this._shouldNotHideCurrentHoverWidget(s))||o||this._hideWidgets()}_shouldNotRecomputeCurrentHoverWidget(s){const g=this._hoverSettings.sticky,c=(r,u)=>{const C=this._isMouseOnContentHoverWidget(r);return u&&C},l=r=>{const u=this._isMouseOnContentHoverWidget(r),C=this._contentWidget?.isColorPickerVisible??!1;return u&&C},a=(r,u)=>(u&&this._contentWidget?.containsNode(r.event.browserEvent.view?.document.activeElement)&&!r.event.browserEvent.view?.getSelection()?.isCollapsed)??!1;return c(s,g)||l(s)||a(s,g)}_onEditorMouseMove(s){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._mouseMoveEvent=s,this._contentWidget?.isFocused||this._contentWidget?.isResizing))return;const g=this._hoverSettings.sticky;if(g&&this._contentWidget?.isVisibleFromKeyboard)return;if(this._shouldNotRecomputeCurrentHoverWidget(s)){this._reactToEditorMouseMoveRunner.cancel();return}const l=this._hoverSettings.hidingDelay;if(this._contentWidget?.isVisible&&g&&l>0){this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(l);return}this._reactToEditorMouseMove(s)}_reactToEditorMouseMove(s){if(!s)return;const c=s.target.element?.classList.contains("colorpicker-color-decoration"),l=this._editor.getOption(149),a=this._hoverSettings.enabled,r=this._hoverState.activatedByDecoratorClick;if(c&&(l==="click"&&!r||l==="hover"&&!a&&!o||l==="clickAndHover"&&!a&&!r)||!c&&!a&&!r){this._hideWidgets();return}this._tryShowHoverWidget(s)||o||this._hideWidgets()}_tryShowHoverWidget(s){return this._getOrCreateContentWidget().showsOrWillShow(s)}_onKeyDown(s){if(!this._editor.hasModel())return;const g=this._keybindingService.softDispatch(s,this._editor.getDomNode()),c=g.kind===1||g.kind===2&&(g.commandId===d.SHOW_OR_FOCUS_HOVER_ACTION_ID||g.commandId===d.INCREASE_HOVER_VERBOSITY_ACTION_ID||g.commandId===d.DECREASE_HOVER_VERBOSITY_ACTION_ID)&&this._contentWidget?.isVisible;s.keyCode===5||s.keyCode===6||s.keyCode===57||s.keyCode===4||c||this._hideWidgets()}_hideWidgets(){o||this._hoverState.mouseDown&&this._contentWidget?.isColorPickerVisible||E.InlineSuggestionHintsContentWidget.dropDownVisible||(this._hoverState.activatedByDecoratorClick=!1,this._contentWidget?.hide())}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(b.ContentHoverWidgetWrapper,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()))),this._contentWidget}showContentHover(s,g,c,l,a=!1){this._hoverState.activatedByDecoratorClick=a,this._getOrCreateContentWidget().startShowingAtRange(s,g,c,l)}_isContentWidgetResizing(){return this._contentWidget?.widget.isResizing||!1}focusedHoverPartIndex(){return this._getOrCreateContentWidget().focusedHoverPartIndex()}updateHoverVerbosityLevel(s,g,c){this._getOrCreateContentWidget().updateHoverVerbosityLevel(s,g,c)}focus(){this._contentWidget?.focus()}scrollUp(){this._contentWidget?.scrollUp()}scrollDown(){this._contentWidget?.scrollDown()}scrollLeft(){this._contentWidget?.scrollLeft()}scrollRight(){this._contentWidget?.scrollRight()}pageUp(){this._contentWidget?.pageUp()}pageDown(){this._contentWidget?.pageDown()}goToTop(){this._contentWidget?.goToTop()}goToBottom(){this._contentWidget?.goToBottom()}get isColorPickerVisible(){return this._contentWidget?.isColorPickerVisible}get isHoverVisible(){return this._contentWidget?.isVisible}dispose(){super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),this._contentWidget?.dispose()}};e.ContentHoverController=t,e.ContentHoverController=t=n=ke([ce(1,I.IInstantiationService),ce(2,y.IKeybindingService)],t)}),define(ne[848],se([1,0,2,15,4,422,288,292,84]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColorContribution=void 0;class b extends d.Disposable{static{this.ID="editor.contrib.colorContribution"}constructor(n){super(),this._editor=n,this._register(n.onMouseDown(o=>this.onMouseDown(o)))}dispose(){super.dispose()}onMouseDown(n){const o=this._editor.getOption(149);if(o!=="click"&&o!=="clickAndHover")return;const t=n.target;if(t.type!==6||!t.detail.injectedText||t.detail.injectedText.options.attachedData!==E.ColorDecorationInjectedTextMarker||!t.range)return;const i=this._editor.getContribution(m.ContentHoverController.ID);if(i&&!i.isColorPickerVisible){const s=new I.Range(t.range.startLineNumber,t.range.startColumn+1,t.range.endLineNumber,t.range.endColumn+1);i.showContentHover(s,1,0,!1,!0)}}}e.ColorContribution=b,(0,k.registerEditorContribution)(b.ID,b,2),_.HoverParticipantRegistry.register(y.ColorHoverParticipant)}),define(ne[849],se([1,0,264,72,15,4,20,429,292,27,3,196]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DecreaseHoverVerbosityLevel=e.IncreaseHoverVerbosityLevel=e.GoToBottomHoverAction=e.GoToTopHoverAction=e.PageDownHoverAction=e.PageUpHoverAction=e.ScrollRightHoverAction=e.ScrollLeftHoverAction=e.ScrollDownHoverAction=e.ScrollUpHoverAction=e.ShowDefinitionPreviewHoverAction=e.ShowOrFocusHoverAction=void 0;var n;(function(h){h.NoAutoFocus="noAutoFocus",h.FocusIfVisible="focusIfVisible",h.AutoFocusImmediately="autoFocusImmediately"})(n||(n={}));class o extends I.EditorAction{constructor(){super({id:d.SHOW_OR_FOCUS_HOVER_ACTION_ID,label:p.localize(1008,"Show or Focus Hover"),metadata:{description:p.localize2(1021,"Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position."),args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if and when the hover should take focus upon being triggered by this action.",enum:[n.NoAutoFocus,n.FocusIfVisible,n.AutoFocusImmediately],enumDescriptions:[p.localize(1009,"The hover will not automatically take focus."),p.localize(1010,"The hover will take focus only if it is already visible."),p.localize(1011,"The hover will automatically take focus when it appears.")],default:n.FocusIfVisible}}}}]},alias:"Show or Focus Hover",precondition:void 0,kbOpts:{kbExpr:y.EditorContextKeys.editorTextFocus,primary:(0,k.KeyChord)(2089,2087),weight:100}})}run(v,w,S){if(!w.hasModel())return;const L=_.ContentHoverController.get(w);if(!L)return;const D=S?.focus;let T=n.FocusIfVisible;Object.values(n).includes(D)?T=D:typeof D=="boolean"&&D&&(T=n.AutoFocusImmediately);const M=P=>{const N=w.getPosition(),O=new E.Range(N.lineNumber,N.column,N.lineNumber,N.column);L.showContentHover(O,1,1,P)},A=w.getOption(2)===2;L.isHoverVisible?T!==n.NoAutoFocus?L.focus():M(A):M(A||T===n.AutoFocusImmediately)}}e.ShowOrFocusHoverAction=o;class t extends I.EditorAction{constructor(){super({id:d.SHOW_DEFINITION_PREVIEW_HOVER_ACTION_ID,label:p.localize(1012,"Show Definition Preview Hover"),alias:"Show Definition Preview Hover",precondition:void 0,metadata:{description:p.localize2(1022,"Show the definition preview hover in the editor.")}})}run(v,w){const S=_.ContentHoverController.get(w);if(!S)return;const L=w.getPosition();if(!L)return;const D=new E.Range(L.lineNumber,L.column,L.lineNumber,L.column),T=m.GotoDefinitionAtPositionEditorContribution.get(w);if(!T)return;T.startFindDefinitionFromCursor(L).then(()=>{S.showContentHover(D,1,1,!0)})}}e.ShowDefinitionPreviewHoverAction=t;class i extends I.EditorAction{constructor(){super({id:d.SCROLL_UP_HOVER_ACTION_ID,label:p.localize(1013,"Scroll Up Hover"),alias:"Scroll Up Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:16,weight:100},metadata:{description:p.localize2(1023,"Scroll up the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.scrollUp()}}e.ScrollUpHoverAction=i;class s extends I.EditorAction{constructor(){super({id:d.SCROLL_DOWN_HOVER_ACTION_ID,label:p.localize(1014,"Scroll Down Hover"),alias:"Scroll Down Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:18,weight:100},metadata:{description:p.localize2(1024,"Scroll down the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.scrollDown()}}e.ScrollDownHoverAction=s;class g extends I.EditorAction{constructor(){super({id:d.SCROLL_LEFT_HOVER_ACTION_ID,label:p.localize(1015,"Scroll Left Hover"),alias:"Scroll Left Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:15,weight:100},metadata:{description:p.localize2(1025,"Scroll left the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.scrollLeft()}}e.ScrollLeftHoverAction=g;class c extends I.EditorAction{constructor(){super({id:d.SCROLL_RIGHT_HOVER_ACTION_ID,label:p.localize(1016,"Scroll Right Hover"),alias:"Scroll Right Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:17,weight:100},metadata:{description:p.localize2(1026,"Scroll right the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.scrollRight()}}e.ScrollRightHoverAction=c;class l extends I.EditorAction{constructor(){super({id:d.PAGE_UP_HOVER_ACTION_ID,label:p.localize(1017,"Page Up Hover"),alias:"Page Up Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:p.localize2(1027,"Page up the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.pageUp()}}e.PageUpHoverAction=l;class a extends I.EditorAction{constructor(){super({id:d.PAGE_DOWN_HOVER_ACTION_ID,label:p.localize(1018,"Page Down Hover"),alias:"Page Down Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:p.localize2(1028,"Page down the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.pageDown()}}e.PageDownHoverAction=a;class r extends I.EditorAction{constructor(){super({id:d.GO_TO_TOP_HOVER_ACTION_ID,label:p.localize(1019,"Go To Top Hover"),alias:"Go To Bottom Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:p.localize2(1029,"Go to the top of the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.goToTop()}}e.GoToTopHoverAction=r;class u extends I.EditorAction{constructor(){super({id:d.GO_TO_BOTTOM_HOVER_ACTION_ID,label:p.localize(1020,"Go To Bottom Hover"),alias:"Go To Bottom Hover",precondition:y.EditorContextKeys.hoverFocused,kbOpts:{kbExpr:y.EditorContextKeys.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:p.localize2(1030,"Go to the bottom of the editor hover.")}})}run(v,w){const S=_.ContentHoverController.get(w);S&&S.goToBottom()}}e.GoToBottomHoverAction=u;class C extends I.EditorAction{constructor(){super({id:d.INCREASE_HOVER_VERBOSITY_ACTION_ID,label:d.INCREASE_HOVER_VERBOSITY_ACTION_LABEL,alias:"Increase Hover Verbosity Level",precondition:y.EditorContextKeys.hoverVisible})}run(v,w,S){const L=_.ContentHoverController.get(w);if(!L)return;const D=S?.index!==void 0?S.index:L.focusedHoverPartIndex();L.updateHoverVerbosityLevel(b.HoverVerbosityAction.Increase,D,S?.focus)}}e.IncreaseHoverVerbosityLevel=C;class f extends I.EditorAction{constructor(){super({id:d.DECREASE_HOVER_VERBOSITY_ACTION_ID,label:d.DECREASE_HOVER_VERBOSITY_ACTION_LABEL,alias:"Decrease Hover Verbosity Level",precondition:y.EditorContextKeys.hoverVisible})}run(v,w,S){const L=_.ContentHoverController.get(w);if(!L)return;const D=S?.index!==void 0?S.index:L.focusedHoverPartIndex();_.ContentHoverController.get(w)?.updateHoverVerbosityLevel(b.HoverVerbosityAction.Decrease,D,S?.focus)}}e.DecreaseHoverVerbosityLevel=f}),define(ne[850],se([1,0,849,15,32,25,84,217,845,292,713,380,615,196]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,k.registerEditorContribution)(b.ContentHoverController.ID,b.ContentHoverController,2),(0,k.registerEditorContribution)(p.MarginHoverController.ID,p.MarginHoverController,2),(0,k.registerEditorAction)(d.ShowOrFocusHoverAction),(0,k.registerEditorAction)(d.ShowDefinitionPreviewHoverAction),(0,k.registerEditorAction)(d.ScrollUpHoverAction),(0,k.registerEditorAction)(d.ScrollDownHoverAction),(0,k.registerEditorAction)(d.ScrollLeftHoverAction),(0,k.registerEditorAction)(d.ScrollRightHoverAction),(0,k.registerEditorAction)(d.PageUpHoverAction),(0,k.registerEditorAction)(d.PageDownHoverAction),(0,k.registerEditorAction)(d.GoToTopHoverAction),(0,k.registerEditorAction)(d.GoToBottomHoverAction),(0,k.registerEditorAction)(d.IncreaseHoverVerbosityLevel),(0,k.registerEditorAction)(d.DecreaseHoverVerbosityLevel),y.HoverParticipantRegistry.register(m.MarkdownHoverParticipant),y.HoverParticipantRegistry.register(_.MarkerHoverParticipant),(0,E.registerThemingParticipant)((t,i)=>{const s=t.getColor(I.editorHoverBorder);s&&(i.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${s.transparent(.5)}; }`),i.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${s.transparent(.5)}; }`),i.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${s.transparent(.5)}; }`))}),n.AccessibleViewRegistry.register(new o.HoverAccessibleView),n.AccessibleViewRegistry.register(new o.HoverAccessibilityHelp),n.AccessibleViewRegistry.register(new o.ExtHoverAccessibleView)}),define(ne[851],se([1,0,15,84,431,432]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorContribution)(I.InlayHintsController.ID,I.InlayHintsController,1),k.HoverParticipantRegistry.register(E.InlayHintsHover)}),define(ne[433],se([1,0,2,17,838,837,7,58,29,12,20,209,4,277,430,9,18,36,79,5,341,77,289,334]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f){"use strict";var h;Object.defineProperty(e,"__esModule",{value:!0}),e.StickyScrollController=void 0;let v=class extends d.Disposable{static{h=this}static{this.ID="store.contrib.stickyScrollController"}constructor(S,L,D,T,M,A,P){super(),this._editor=S,this._contextMenuService=L,this._languageFeaturesService=D,this._instaService=T,this._contextKeyService=P,this._sessionStore=new d.DisposableStore,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._stickyScrollWidget=new I.StickyScrollWidget(this._editor),this._stickyLineCandidateProvider=new E.StickyLineCandidateProvider(this._editor,D,M),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=I.StickyScrollWidgetState.Empty,this._onDidResize(),this._readConfiguration();const N=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeConfiguration(F=>{this._readConfigurationChange(F)})),this._register(a.addDisposableListener(N,a.EventType.CONTEXT_MENU,async F=>{this._onContextMenu(a.getWindow(N),F)})),this._stickyScrollFocusedContextKey=p.EditorContextKeys.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=p.EditorContextKeys.stickyScrollVisible.bindTo(this._contextKeyService);const O=this._register(a.trackFocus(N));this._register(O.onDidBlur(F=>{this._positionRevealed===!1&&N.clientHeight===0?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()})),this._register(O.onDidFocus(F=>{this.focus()})),this._registerMouseListeners(),this._register(a.addDisposableListener(N,a.EventType.MOUSE_DOWN,F=>{this._onMouseDown=!0}))}static get(S){return S.getContribution(h.ID)}_disposeFocusStickyScrollStore(){this._stickyScrollFocusedContextKey.set(!1),this._focusDisposableStore?.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}this._stickyScrollFocusedContextKey.get()!==!0&&(this._focused=!0,this._focusDisposableStore=new d.DisposableStore,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(S){this._focusedStickyElementIndex=S?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const S=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:S[this._focusedStickyElementIndex],column:1})}_revealPosition(S){this._reveaInEditor(S,()=>this._editor.revealPosition(S))}_revealLineInCenterIfOutsideViewport(S){this._reveaInEditor(S,()=>this._editor.revealLineInCenterIfOutsideViewport(S.lineNumber,0))}_reveaInEditor(S,L){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,L(),this._editor.setSelection(o.Range.fromPositions(S)),this._editor.focus()}_registerMouseListeners(){const S=this._register(new d.DisposableStore),L=this._register(new n.ClickLinkGesture(this._editor,{extractLineNumberFromMouseEvent:M=>{const A=this._stickyScrollWidget.getEditorPositionFromNode(M.target.element);return A?A.lineNumber:0}})),D=M=>{if(!this._editor.hasModel()||M.target.type!==12||M.target.detail!==this._stickyScrollWidget.getId())return null;const A=M.target.element;if(!A||A.innerText!==A.innerHTML)return null;const P=this._stickyScrollWidget.getEditorPositionFromNode(A);return P?{range:new o.Range(P.lineNumber,P.column,P.lineNumber,P.column+A.innerText.length),textElement:A}:null},T=this._stickyScrollWidget.getDomNode();this._register(a.addStandardDisposableListener(T,a.EventType.CLICK,M=>{if(M.ctrlKey||M.altKey||M.metaKey||!M.leftButton)return;if(M.shiftKey){const O=this._stickyScrollWidget.getLineIndexFromChildDomNode(M.target);if(O===null)return;const F=new s.Position(this._endLineNumbers[O],1);this._revealLineInCenterIfOutsideViewport(F);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(M.target)){const O=this._stickyScrollWidget.getLineNumberFromChildDomNode(M.target);this._toggleFoldingRegionForLine(O);return}if(!this._stickyScrollWidget.isInStickyLine(M.target))return;let N=this._stickyScrollWidget.getEditorPositionFromNode(M.target);if(!N){const O=this._stickyScrollWidget.getLineNumberFromChildDomNode(M.target);if(O===null)return;N=new s.Position(O,1)}this._revealPosition(N)})),this._register(a.addStandardDisposableListener(T,a.EventType.MOUSE_MOVE,M=>{if(M.shiftKey){const A=this._stickyScrollWidget.getLineIndexFromChildDomNode(M.target);if(A===null||this._showEndForLine!==null&&this._showEndForLine===A)return;this._showEndForLine=A,this._renderStickyScroll();return}this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(a.addDisposableListener(T,a.EventType.MOUSE_LEAVE,M=>{this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(L.onMouseMoveOrRelevantKeyDown(([M,A])=>{const P=D(M);if(!P||!M.hasTriggerModifier||!this._editor.hasModel()){S.clear();return}const{range:N,textElement:O}=P;if(!N.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=N,S.clear();else if(O.style.textDecoration==="underline")return;const F=new g.CancellationTokenSource;S.add((0,d.toDisposable)(()=>F.dispose(!0)));let x;(0,t.getDefinitionsAtPosition)(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new s.Position(N.startLineNumber,N.startColumn+1),!1,F.token).then(W=>{if(!F.token.isCancellationRequested)if(W.length!==0){this._candidateDefinitionsLength=W.length;const V=O;x!==V?(S.clear(),x=V,x.style.textDecoration="underline",S.add((0,d.toDisposable)(()=>{x.style.textDecoration="none"}))):x||(x=V,x.style.textDecoration="underline",S.add((0,d.toDisposable)(()=>{x.style.textDecoration="none"})))}else S.clear()})})),this._register(L.onCancel(()=>{S.clear()})),this._register(L.onExecute(async M=>{if(M.target.type!==12||M.target.detail!==this._stickyScrollWidget.getId())return;const A=this._stickyScrollWidget.getEditorPositionFromNode(M.target.element);A&&(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor||(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:A.lineNumber,column:1})),this._instaService.invokeFunction(i.goToDefinitionWithLocation,M,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})))}))}_onContextMenu(S,L){const D=new u.StandardMouseEvent(S,L);this._contextMenuService.showContextMenu({menuId:_.MenuId.StickyScrollContext,getAnchor:()=>D})}_toggleFoldingRegionForLine(S){if(!this._foldingModel||S===null)return;const L=this._stickyScrollWidget.getRenderedStickyLine(S),D=L?.foldingIcon;if(!D)return;(0,f.toggleCollapseState)(this._foldingModel,Number.MAX_VALUE,[S]),D.isCollapsed=!D.isCollapsed;const T=(D.isCollapsed?this._editor.getTopForLineNumber(D.foldingEndLine):this._editor.getTopForLineNumber(D.foldingStartLine))-this._editor.getOption(67)*L.index+1;this._editor.setScrollTop(T),this._renderStickyScroll(S)}_readConfiguration(){const S=this._editor.getOption(116);if(S.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._sessionStore.clear(),this._enabled=!1;return}else S.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange(D=>{D.scrollTopChanged&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(D=>this._onTokensChange(D))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=void 0,this._renderStickyScroll()})),this._enabled=!0);this._editor.getOption(68).renderType===2&&this._sessionStore.add(this._editor.onDidChangeCursorPosition(()=>{this._showEndForLine=void 0,this._renderStickyScroll(0)}))}_readConfigurationChange(S){(S.hasChanged(116)||S.hasChanged(73)||S.hasChanged(67)||S.hasChanged(111)||S.hasChanged(68))&&this._readConfiguration(),S.hasChanged(68)&&this._renderStickyScroll(0)}_needsUpdate(S){const L=this._stickyScrollWidget.getCurrentLines();for(const D of L)for(const T of S.ranges)if(D>=T.fromLineNumber&&D<=T.toLineNumber)return!0;return!1}_onTokensChange(S){this._needsUpdate(S)&&this._renderStickyScroll(0)}_onDidResize(){const L=this._editor.getLayoutInfo().height/this._editor.getOption(67);this._maxStickyLines=Math.round(L*.25)}async _renderStickyScroll(S){const L=this._editor.getModel();if(!L||L.isTooLargeForTokenization()){this._resetState();return}const D=this._updateAndGetMinRebuildFromLine(S),T=this._stickyLineCandidateProvider.getVersionId();if(T===void 0||T===L.getVersionId())if(!this._focused)await this._updateState(D);else if(this._focusedStickyElementIndex===-1)await this._updateState(D),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const A=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];await this._updateState(D),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(A)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}}_updateAndGetMinRebuildFromLine(S){if(S!==void 0){const L=this._minRebuildFromLine!==void 0?this._minRebuildFromLine:1/0;this._minRebuildFromLine=Math.min(S,L)}return this._minRebuildFromLine}async _updateState(S){this._minRebuildFromLine=void 0,this._foldingModel=await C.FoldingController.get(this._editor)?.getFoldingModel()??void 0,this._widgetState=this.findScrollWidgetState();const L=this._widgetState.startLineNumbers.length>0;this._stickyScrollVisibleContextKey.set(L),this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,S)}async _resetState(){this._minRebuildFromLine=void 0,this._foldingModel=void 0,this._widgetState=I.StickyScrollWidgetState.Empty,this._stickyScrollVisibleContextKey.set(!1),this._stickyScrollWidget.setState(void 0,void 0)}findScrollWidgetState(){const S=this._editor.getOption(67),L=Math.min(this._maxStickyLines,this._editor.getOption(116).maxLineCount),D=this._editor.getScrollTop();let T=0;const M=[],A=[],P=this._editor.getVisibleRanges();if(P.length!==0){const N=new r.StickyRange(P[0].startLineNumber,P[P.length-1].endLineNumber),O=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(N);for(const F of O){const x=F.startLineNumber,W=F.endLineNumber,V=F.nestingDepth;if(W-x>0){const q=(V-1)*S,H=V*S,z=this._editor.getBottomForLineNumber(x)-D,U=this._editor.getTopForLineNumber(W)-D,j=this._editor.getBottomForLineNumber(W)-D;if(q>U&&q<=j){M.push(x),A.push(W+1),T=j-H;break}else H>z&&H<=j&&(M.push(x),A.push(W+1));if(M.length===L)break}}}return this._endLineNumbers=A,new I.StickyScrollWidgetState(M,A,T,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};e.StickyScrollController=v,e.StickyScrollController=v=h=ke([ce(1,m.IContextMenuService),ce(2,k.ILanguageFeaturesService),ce(3,y.IInstantiationService),ce(4,c.ILanguageConfigurationService),ce(5,l.ILanguageFeatureDebounceService),ce(6,b.IContextKeyService)],v)}),define(ne[852],se([1,0,15,3,671,29,28,12,20,433]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectEditor=e.GoToStickyScrollLine=e.SelectPreviousStickyScrollLine=e.SelectNextStickyScrollLine=e.FocusStickyScroll=e.ToggleStickyScroll=void 0;class p extends E.Action2{constructor(){super({id:"editor.action.toggleStickyScroll",title:{...(0,k.localize2)(1303,"Toggle Editor Sticky Scroll"),mnemonicTitle:(0,k.localize)(1299,"&&Toggle Editor Sticky Scroll")},metadata:{description:(0,k.localize2)(1304,"Toggle/enable the editor sticky scroll which shows the nested scopes at the top of the viewport")},category:I.Categories.View,toggled:{condition:m.ContextKeyExpr.equals("config.editor.stickyScroll.enabled",!0),title:(0,k.localize)(1300,"Sticky Scroll"),mnemonicTitle:(0,k.localize)(1301,"&&Sticky Scroll")},menu:[{id:E.MenuId.CommandPalette},{id:E.MenuId.MenubarAppearanceMenu,group:"4_editor",order:3},{id:E.MenuId.StickyScrollContext}]})}async run(l){const a=l.get(y.IConfigurationService),r=!a.getValue("editor.stickyScroll.enabled");return a.updateValue("editor.stickyScroll.enabled",r)}}e.ToggleStickyScroll=p;const n=100;class o extends d.EditorAction2{constructor(){super({id:"editor.action.focusStickyScroll",title:{...(0,k.localize2)(1305,"Focus on the editor sticky scroll"),mnemonicTitle:(0,k.localize)(1302,"&&Focus Sticky Scroll")},precondition:m.ContextKeyExpr.and(m.ContextKeyExpr.has("config.editor.stickyScroll.enabled"),_.EditorContextKeys.stickyScrollVisible),menu:[{id:E.MenuId.CommandPalette}]})}runEditorCommand(l,a){b.StickyScrollController.get(a)?.focus()}}e.FocusStickyScroll=o;class t extends d.EditorAction2{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:(0,k.localize2)(1306,"Select the next editor sticky scroll line"),precondition:_.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:n,primary:18}})}runEditorCommand(l,a){b.StickyScrollController.get(a)?.focusNext()}}e.SelectNextStickyScrollLine=t;class i extends d.EditorAction2{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:(0,k.localize2)(1307,"Select the previous sticky scroll line"),precondition:_.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:n,primary:16}})}runEditorCommand(l,a){b.StickyScrollController.get(a)?.focusPrevious()}}e.SelectPreviousStickyScrollLine=i;class s extends d.EditorAction2{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:(0,k.localize2)(1308,"Go to the focused sticky scroll line"),precondition:_.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:n,primary:3}})}runEditorCommand(l,a){b.StickyScrollController.get(a)?.goToFocused()}}e.GoToStickyScrollLine=s;class g extends d.EditorAction2{constructor(){super({id:"editor.action.selectEditor",title:(0,k.localize2)(1309,"Select Editor"),precondition:_.EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:n,primary:9}})}runEditorCommand(l,a){b.StickyScrollController.get(a)?.selectEditor()}}e.SelectEditor=g}),define(ne[853],se([1,0,15,852,433,29]),function(oe,e,d,k,I,E){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorContribution)(I.StickyScrollController.ID,I.StickyScrollController,1),(0,E.registerAction2)(k.ToggleStickyScroll),(0,E.registerAction2)(k.FocusStickyScroll),(0,E.registerAction2)(k.SelectPreviousStickyScrollLine),(0,E.registerAction2)(k.SelectNextStickyScrollLine),(0,E.registerAction2)(k.GoToStickyScrollLine),(0,E.registerAction2)(k.SelectEditor)}),define(ne[854],se([1,0,15,34,428,28,12,7,50,101]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneReferencesController=void 0;let p=class extends I.ReferencesController{constructor(o,t,i,s,g,c,l){super(!0,o,t,i,s,g,c,l)}};e.StandaloneReferencesController=p,e.StandaloneReferencesController=p=ke([ce(1,y.IContextKeyService),ce(2,k.ICodeEditorService),ce(3,_.INotificationService),ce(4,m.IInstantiationService),ce(5,b.IStorageService),ce(6,E.IConfigurationService)],p),(0,d.registerEditorContribution)(I.ReferencesController.ID,p,4)}),define(ne[855],se([1,0,8,2,42,111,3,180,49,50,284]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.UndoRedoService=void 0;const n=!1;function o(f){return f.scheme===I.Schemas.file?f.fsPath:f.path}let t=0;class i{constructor(h,v,w,S,L,D,T){this.id=++t,this.type=0,this.actual=h,this.label=h.label,this.confirmBeforeUndo=h.confirmBeforeUndo||!1,this.resourceLabel=v,this.strResource=w,this.resourceLabels=[this.resourceLabel],this.strResources=[this.strResource],this.groupId=S,this.groupOrder=L,this.sourceId=D,this.sourceOrder=T,this.isValid=!0}setValid(h){this.isValid=h}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.isValid?" VALID":"INVALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class s{constructor(h,v){this.resourceLabel=h,this.reason=v}}class g{constructor(){this.elements=new Map}createMessage(){const h=[],v=[];for(const[,S]of this.elements)(S.reason===0?h:v).push(S.resourceLabel);const w=[];return h.length>0&&w.push(y.localize(1843,"The following files have been closed and modified on disk: {0}.",h.join(", "))),v.length>0&&w.push(y.localize(1844,"The following files have been modified in an incompatible way: {0}.",v.join(", "))),w.join(` +`)}get size(){return this.elements.size}has(h){return this.elements.has(h)}set(h,v){this.elements.set(h,v)}delete(h){return this.elements.delete(h)}}class c{constructor(h,v,w,S,L,D,T){this.id=++t,this.type=1,this.actual=h,this.label=h.label,this.confirmBeforeUndo=h.confirmBeforeUndo||!1,this.resourceLabels=v,this.strResources=w,this.groupId=S,this.groupOrder=L,this.sourceId=D,this.sourceOrder=T,this.removedResources=null,this.invalidatedResources=null}canSplit(){return typeof this.actual.split=="function"}removeResource(h,v,w){this.removedResources||(this.removedResources=new g),this.removedResources.has(v)||this.removedResources.set(v,new s(h,w))}setValid(h,v,w){w?this.invalidatedResources&&(this.invalidatedResources.delete(v),this.invalidatedResources.size===0&&(this.invalidatedResources=null)):(this.invalidatedResources||(this.invalidatedResources=new g),this.invalidatedResources.has(v)||this.invalidatedResources.set(v,new s(h,0)))}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources?"INVALID":" VALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class l{constructor(h,v){this.resourceLabel=h,this.strResource=v,this._past=[],this._future=[],this.locked=!1,this.versionId=1}dispose(){for(const h of this._past)h.type===1&&h.removeResource(this.resourceLabel,this.strResource,0);for(const h of this._future)h.type===1&&h.removeResource(this.resourceLabel,this.strResource,0);this.versionId++}toString(){const h=[];h.push(`* ${this.strResource}:`);for(let v=0;v=0;v--)h.push(` * [REDO] ${this._future[v]}`);return h.join(` +`)}flushAllElements(){this._past=[],this._future=[],this.versionId++}_setElementValidFlag(h,v){h.type===1?h.setValid(this.resourceLabel,this.strResource,v):h.setValid(v)}setElementsValidFlag(h,v){for(const w of this._past)v(w.actual)&&this._setElementValidFlag(w,h);for(const w of this._future)v(w.actual)&&this._setElementValidFlag(w,h)}pushElement(h){for(const v of this._future)v.type===1&&v.removeResource(this.resourceLabel,this.strResource,1);this._future=[],this._past.push(h),this.versionId++}createSnapshot(h){const v=[];for(let w=0,S=this._past.length;w=0;w--)v.push(this._future[w].id);return new p.ResourceEditStackSnapshot(h,v)}restoreSnapshot(h){const v=h.elements.length;let w=!0,S=0,L=-1;for(let T=0,M=this._past.length;T=v||A.id!==h.elements[S])&&(w=!1,L=0),!w&&A.type===1&&A.removeResource(this.resourceLabel,this.strResource,0)}let D=-1;for(let T=this._future.length-1;T>=0;T--,S++){const M=this._future[T];w&&(S>=v||M.id!==h.elements[S])&&(w=!1,D=T),!w&&M.type===1&&M.removeResource(this.resourceLabel,this.strResource,0)}L!==-1&&(this._past=this._past.slice(0,L)),D!==-1&&(this._future=this._future.slice(D+1)),this.versionId++}getElements(){const h=[],v=[];for(const w of this._past)h.push(w.actual);for(const w of this._future)v.push(w.actual);return{past:h,future:v}}getClosestPastElement(){return this._past.length===0?null:this._past[this._past.length-1]}getSecondClosestPastElement(){return this._past.length<2?null:this._past[this._past.length-2]}getClosestFutureElement(){return this._future.length===0?null:this._future[this._future.length-1]}hasPastElements(){return this._past.length>0}hasFutureElements(){return this._future.length>0}splitPastWorkspaceElement(h,v){for(let w=this._past.length-1;w>=0;w--)if(this._past[w]===h){v.has(this.strResource)?this._past[w]=v.get(this.strResource):this._past.splice(w,1);break}this.versionId++}splitFutureWorkspaceElement(h,v){for(let w=this._future.length-1;w>=0;w--)if(this._future[w]===h){v.has(this.strResource)?this._future[w]=v.get(this.strResource):this._future.splice(w,1);break}this.versionId++}moveBackward(h){this._past.pop(),this._future.push(h),this.versionId++}moveForward(h){this._future.pop(),this._past.push(h),this.versionId++}}class a{constructor(h){this.editStacks=h,this._versionIds=[];for(let v=0,w=this.editStacks.length;vv.sourceOrder)&&(v=D,w=S)}return[v,w]}canUndo(h){if(h instanceof p.UndoRedoSource){const[,w]=this._findClosestUndoElementWithSource(h.id);return!!w}const v=this.getUriComparisonKey(h);return this._editStacks.has(v)?this._editStacks.get(v).hasPastElements():!1}_onError(h,v){(0,d.onUnexpectedError)(h);for(const w of v.strResources)this.removeElements(w);this._notificationService.error(h)}_acquireLocks(h){for(const v of h.editStacks)if(v.locked)throw new Error("Cannot acquire edit stack lock");for(const v of h.editStacks)v.locked=!0;return()=>{for(const v of h.editStacks)v.locked=!1}}_safeInvokeWithLocks(h,v,w,S,L){const D=this._acquireLocks(w);let T;try{T=v()}catch(M){return D(),S.dispose(),this._onError(M,h)}return T?T.then(()=>(D(),S.dispose(),L()),M=>(D(),S.dispose(),this._onError(M,h))):(D(),S.dispose(),L())}async _invokeWorkspacePrepare(h){if(typeof h.actual.prepareUndoRedo>"u")return k.Disposable.None;const v=h.actual.prepareUndoRedo();return typeof v>"u"?k.Disposable.None:v}_invokeResourcePrepare(h,v){if(h.actual.type!==1||typeof h.actual.prepareUndoRedo>"u")return v(k.Disposable.None);const w=h.actual.prepareUndoRedo();return w?(0,k.isDisposable)(w)?v(w):w.then(S=>v(S)):v(k.Disposable.None)}_getAffectedEditStacks(h){const v=[];for(const w of h.strResources)v.push(this._editStacks.get(w)||r);return new a(v)}_tryToSplitAndUndo(h,v,w,S){if(v.canSplit())return this._splitPastWorkspaceElement(v,w),this._notificationService.warn(S),new C(this._undo(h,0,!0));for(const L of v.strResources)this.removeElements(L);return this._notificationService.warn(S),new C}_checkWorkspaceUndo(h,v,w,S){if(v.removedResources)return this._tryToSplitAndUndo(h,v,v.removedResources,y.localize(1845,"Could not undo '{0}' across all files. {1}",v.label,v.removedResources.createMessage()));if(S&&v.invalidatedResources)return this._tryToSplitAndUndo(h,v,v.invalidatedResources,y.localize(1846,"Could not undo '{0}' across all files. {1}",v.label,v.invalidatedResources.createMessage()));const L=[];for(const T of w.editStacks)T.getClosestPastElement()!==v&&L.push(T.resourceLabel);if(L.length>0)return this._tryToSplitAndUndo(h,v,null,y.localize(1847,"Could not undo '{0}' across all files because changes were made to {1}",v.label,L.join(", ")));const D=[];for(const T of w.editStacks)T.locked&&D.push(T.resourceLabel);return D.length>0?this._tryToSplitAndUndo(h,v,null,y.localize(1848,"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}",v.label,D.join(", "))):w.isValid()?null:this._tryToSplitAndUndo(h,v,null,y.localize(1849,"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime",v.label))}_workspaceUndo(h,v,w){const S=this._getAffectedEditStacks(v),L=this._checkWorkspaceUndo(h,v,S,!1);return L?L.returnValue:this._confirmAndExecuteWorkspaceUndo(h,v,S,w)}_isPartOfUndoGroup(h){if(!h.groupId)return!1;for(const[,v]of this._editStacks){const w=v.getClosestPastElement();if(w){if(w===h){const S=v.getSecondClosestPastElement();if(S&&S.groupId===h.groupId)return!0}if(w.groupId===h.groupId)return!0}}return!1}async _confirmAndExecuteWorkspaceUndo(h,v,w,S){if(v.canSplit()&&!this._isPartOfUndoGroup(v)){let T;(function(P){P[P.All=0]="All",P[P.This=1]="This",P[P.Cancel=2]="Cancel"})(T||(T={}));const{result:M}=await this._dialogService.prompt({type:E.default.Info,message:y.localize(1850,"Would you like to undo '{0}' across all files?",v.label),buttons:[{label:y.localize(1851,"&&Undo in {0} Files",w.editStacks.length),run:()=>T.All},{label:y.localize(1852,"Undo this &&File"),run:()=>T.This}],cancelButton:{run:()=>T.Cancel}});if(M===T.Cancel)return;if(M===T.This)return this._splitPastWorkspaceElement(v,null),this._undo(h,0,!0);const A=this._checkWorkspaceUndo(h,v,w,!1);if(A)return A.returnValue;S=!0}let L;try{L=await this._invokeWorkspacePrepare(v)}catch(T){return this._onError(T,v)}const D=this._checkWorkspaceUndo(h,v,w,!0);if(D)return L.dispose(),D.returnValue;for(const T of w.editStacks)T.moveBackward(v);return this._safeInvokeWithLocks(v,()=>v.actual.undo(),w,L,()=>this._continueUndoInGroup(v.groupId,S))}_resourceUndo(h,v,w){if(!v.isValid){h.flushAllElements();return}if(h.locked){const S=y.localize(1853,"Could not undo '{0}' because there is already an undo or redo operation running.",v.label);this._notificationService.warn(S);return}return this._invokeResourcePrepare(v,S=>(h.moveBackward(v),this._safeInvokeWithLocks(v,()=>v.actual.undo(),new a([h]),S,()=>this._continueUndoInGroup(v.groupId,w))))}_findClosestUndoElementInGroup(h){if(!h)return[null,null];let v=null,w=null;for(const[S,L]of this._editStacks){const D=L.getClosestPastElement();D&&D.groupId===h&&(!v||D.groupOrder>v.groupOrder)&&(v=D,w=S)}return[v,w]}_continueUndoInGroup(h,v){if(!h)return;const[,w]=this._findClosestUndoElementInGroup(h);if(w)return this._undo(w,0,v)}undo(h){if(h instanceof p.UndoRedoSource){const[,v]=this._findClosestUndoElementWithSource(h.id);return v?this._undo(v,h.id,!1):void 0}return typeof h=="string"?this._undo(h,0,!1):this._undo(this.getUriComparisonKey(h),0,!1)}_undo(h,v=0,w){if(!this._editStacks.has(h))return;const S=this._editStacks.get(h),L=S.getClosestPastElement();if(!L)return;if(L.groupId){const[T,M]=this._findClosestUndoElementInGroup(L.groupId);if(L!==T&&M)return this._undo(M,v,w)}if((L.sourceId!==v||L.confirmBeforeUndo)&&!w)return this._confirmAndContinueUndo(h,v,L);try{return L.type===1?this._workspaceUndo(h,L,w):this._resourceUndo(S,L,w)}finally{n&&this._print("undo")}}async _confirmAndContinueUndo(h,v,w){if((await this._dialogService.confirm({message:y.localize(1854,"Would you like to undo '{0}'?",w.label),primaryButton:y.localize(1855,"&&Yes"),cancelButton:y.localize(1856,"No")})).confirmed)return this._undo(h,v,!0)}_findClosestRedoElementWithSource(h){if(!h)return[null,null];let v=null,w=null;for(const[S,L]of this._editStacks){const D=L.getClosestFutureElement();D&&D.sourceId===h&&(!v||D.sourceOrder0)return this._tryToSplitAndRedo(h,v,null,y.localize(1859,"Could not redo '{0}' across all files because changes were made to {1}",v.label,L.join(", ")));const D=[];for(const T of w.editStacks)T.locked&&D.push(T.resourceLabel);return D.length>0?this._tryToSplitAndRedo(h,v,null,y.localize(1860,"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}",v.label,D.join(", "))):w.isValid()?null:this._tryToSplitAndRedo(h,v,null,y.localize(1861,"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime",v.label))}_workspaceRedo(h,v){const w=this._getAffectedEditStacks(v),S=this._checkWorkspaceRedo(h,v,w,!1);return S?S.returnValue:this._executeWorkspaceRedo(h,v,w)}async _executeWorkspaceRedo(h,v,w){let S;try{S=await this._invokeWorkspacePrepare(v)}catch(D){return this._onError(D,v)}const L=this._checkWorkspaceRedo(h,v,w,!0);if(L)return S.dispose(),L.returnValue;for(const D of w.editStacks)D.moveForward(v);return this._safeInvokeWithLocks(v,()=>v.actual.redo(),w,S,()=>this._continueRedoInGroup(v.groupId))}_resourceRedo(h,v){if(!v.isValid){h.flushAllElements();return}if(h.locked){const w=y.localize(1862,"Could not redo '{0}' because there is already an undo or redo operation running.",v.label);this._notificationService.warn(w);return}return this._invokeResourcePrepare(v,w=>(h.moveForward(v),this._safeInvokeWithLocks(v,()=>v.actual.redo(),new a([h]),w,()=>this._continueRedoInGroup(v.groupId))))}_findClosestRedoElementInGroup(h){if(!h)return[null,null];let v=null,w=null;for(const[S,L]of this._editStacks){const D=L.getClosestFutureElement();D&&D.groupId===h&&(!v||D.groupOrder"u")return typeof i=="string"?{id:(0,k.basename)(i)}:s?e.EXTENSION_DEVELOPMENT_EMPTY_WINDOW_WORKSPACE:e.UNKNOWN_EMPTY_WINDOW_WORKSPACE;const g=i;return g.configuration?{id:g.id,configPath:g.configuration}:g.folders.length===1?{id:g.id,uri:g.folders[0].uri}:{id:g.id}}function p(i){const s=i;return typeof s?.id=="string"&&E.URI.isUri(s.configPath)}class n{constructor(s,g,c,l,a){this._id=s,this._transient=c,this._configuration=l,this._ignorePathCasing=a,this._foldersMap=I.TernarySearchTree.forUris(this._ignorePathCasing,()=>!0),this.folders=g}get folders(){return this._folders}set folders(s){this._folders=s,this.updateFoldersMap()}get id(){return this._id}get transient(){return this._transient}get configuration(){return this._configuration}set configuration(s){this._configuration=s}getFolder(s){return s&&this._foldersMap.findSubstr(s)||null}updateFoldersMap(){this._foldersMap=I.TernarySearchTree.forUris(this._ignorePathCasing,()=>!0);for(const s of this.folders)this._foldersMap.set(s.uri,s)}toJSON(){return{id:this.id,folders:this.folders,transient:this.transient,configuration:this.configuration}}}e.Workspace=n;class o{constructor(s,g){this.raw=g,this.uri=s.uri,this.index=s.index,this.name=s.name}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}}e.WorkspaceFolder=o,e.WORKSPACE_EXTENSION="code-workspace",e.WORKSPACE_FILTER=[{name:(0,d.localize)(1863,"Code Workspace"),extensions:[e.WORKSPACE_EXTENSION]}],e.STANDALONE_EDITOR_WORKSPACE_ID="4064f6ec-cb38-4ad0-af64-ee6467e63c82";function t(i){return i.id===e.STANDALONE_EDITOR_WORKSPACE_ID}}),define(ne[434],se([1,0,5,151,41,2,16,15,20,3,29,12,58,31,28,186]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";var g;Object.defineProperty(e,"__esModule",{value:!0}),e.ContextMenuController=void 0;let c=class{static{g=this}static{this.ID="editor.contrib.contextmenu"}static get(r){return r.getContribution(g.ID)}constructor(r,u,C,f,h,v,w,S){this._contextMenuService=u,this._contextViewService=C,this._contextKeyService=f,this._keybindingService=h,this._menuService=v,this._configurationService=w,this._workspaceContextService=S,this._toDispose=new E.DisposableStore,this._contextMenuIsBeingShownCount=0,this._editor=r,this._toDispose.add(this._editor.onContextMenu(L=>this._onContextMenu(L))),this._toDispose.add(this._editor.onMouseWheel(L=>{if(this._contextMenuIsBeingShownCount>0){const D=this._contextViewService.getContextViewElement(),T=L.srcElement;T.shadowRoot&&d.getShadowRoot(D)===T.shadowRoot||this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown(L=>{this._editor.getOption(24)&&L.keyCode===58&&(L.preventDefault(),L.stopPropagation(),this.showContextMenu())}))}_onContextMenu(r){if(!this._editor.hasModel())return;if(!this._editor.getOption(24)){this._editor.focus(),r.target.position&&!this._editor.getSelection().containsPosition(r.target.position)&&this._editor.setPosition(r.target.position);return}if(r.target.type===12||r.target.type===6&&r.target.detail.injectedText)return;if(r.event.preventDefault(),r.event.stopPropagation(),r.target.type===11)return this._showScrollbarContextMenu(r.event);if(r.target.type!==6&&r.target.type!==7&&r.target.type!==1)return;if(this._editor.focus(),r.target.position){let C=!1;for(const f of this._editor.getSelections())if(f.containsPosition(r.target.position)){C=!0;break}C||this._editor.setPosition(r.target.position)}let u=null;r.target.type!==1&&(u=r.event),this.showContextMenu(u)}showContextMenu(r){if(!this._editor.getOption(24)||!this._editor.hasModel())return;const u=this._getMenuActions(this._editor.getModel(),this._editor.contextMenuId);u.length>0&&this._doShowContextMenu(u,r)}_getMenuActions(r,u){const C=[],f=this._menuService.getMenuActions(u,this._contextKeyService,{arg:r.uri});for(const h of f){const[,v]=h;let w=0;for(const S of v)if(S instanceof p.SubmenuItemAction){const L=this._getMenuActions(r,S.item.submenu);L.length>0&&(C.push(new I.SubmenuAction(S.id,S.label,L)),w++)}else C.push(S),w++;w&&C.push(new I.Separator)}return C.length&&C.pop(),C}_doShowContextMenu(r,u=null){if(!this._editor.hasModel())return;const C=this._editor.getOption(60);this._editor.updateOptions({hover:{enabled:!1}});let f=u;if(!f){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const v=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),w=d.getDomNodePagePosition(this._editor.getDomNode()),S=w.left+v.left,L=w.top+v.top+v.height;f={x:S,y:L}}const h=this._editor.getOption(128)&&!y.isIOS;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:h?this._editor.getOverflowWidgetsDomNode()??this._editor.getDomNode():void 0,getAnchor:()=>f,getActions:()=>r,getActionViewItem:v=>{const w=this._keybindingFor(v);if(w)return new k.ActionViewItem(v,v,{label:!0,keybinding:w.getLabel(),isMenu:!0});const S=v;return typeof S.getActionViewItem=="function"?S.getActionViewItem():new k.ActionViewItem(v,v,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:v=>this._keybindingFor(v),onHide:v=>{this._contextMenuIsBeingShownCount--,this._editor.updateOptions({hover:C})}})}_showScrollbarContextMenu(r){if(!this._editor.hasModel()||(0,s.isStandaloneEditorWorkspace)(this._workspaceContextService.getWorkspace()))return;const u=this._editor.getOption(73);let C=0;const f=L=>({id:`menu-action-${++C}`,label:L.label,tooltip:"",class:void 0,enabled:typeof L.enabled>"u"?!0:L.enabled,checked:L.checked,run:L.run}),h=(L,D)=>new I.SubmenuAction(`menu-action-${++C}`,L,D,void 0),v=(L,D,T,M,A)=>{if(!D)return f({label:L,enabled:D,run:()=>{}});const P=O=>()=>{this._configurationService.updateValue(T,O)},N=[];for(const O of A)N.push(f({label:O.label,checked:M===O.value,run:P(O.value)}));return h(L,N)},w=[];w.push(f({label:b.localize(811,"Minimap"),checked:u.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!u.enabled)}})),w.push(new I.Separator),w.push(f({label:b.localize(812,"Render Characters"),enabled:u.enabled,checked:u.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!u.renderCharacters)}})),w.push(v(b.localize(813,"Vertical size"),u.enabled,"editor.minimap.size",u.size,[{label:b.localize(814,"Proportional"),value:"proportional"},{label:b.localize(815,"Fill"),value:"fill"},{label:b.localize(816,"Fit"),value:"fit"}])),w.push(v(b.localize(817,"Slider"),u.enabled,"editor.minimap.showSlider",u.showSlider,[{label:b.localize(818,"Mouse Over"),value:"mouseover"},{label:b.localize(819,"Always"),value:"always"}]));const S=this._editor.getOption(128)&&!y.isIOS;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:S?this._editor.getDomNode():void 0,getAnchor:()=>r,getActions:()=>w,onHide:L=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(r){return this._keybindingService.lookupKeybinding(r.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}};e.ContextMenuController=c,e.ContextMenuController=c=g=ke([ce(1,o.IContextMenuService),ce(2,o.IContextViewService),ce(3,n.IContextKeyService),ce(4,t.IKeybindingService),ce(5,p.IMenuService),ce(6,i.IConfigurationService),ce(7,s.IWorkspaceContextService)],c);class l extends m.EditorAction{constructor(){super({id:"editor.action.showContextMenu",label:b.localize(820,"Show Editor Context Menu"),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.textInputFocus,primary:1092,weight:100}})}run(r,u){c.get(u)?.showContextMenu()}}(0,m.registerEditorContribution)(c.ID,c,2),(0,m.registerEditorAction)(l)}),define(ne[293],se([1,0,13,194,91,2,128,42,48,22,27,17,3,186]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.DefaultPasteProvidersFeature=e.DefaultDropProvidersFeature=e.DefaultTextPasteOrDropEditProvider=void 0;class i{async provideDocumentPasteEdits(f,h,v,w,S){const L=await this.getEdit(v,S);if(L)return{edits:[{insertText:L.insertText,title:L.title,kind:L.kind,handledMimeType:L.handledMimeType,yieldTo:L.yieldTo}],dispose(){}}}async provideDocumentDropEdits(f,h,v,w){const S=await this.getEdit(v,w);if(S)return{edits:[{insertText:S.insertText,title:S.title,kind:S.kind,handledMimeType:S.handledMimeType,yieldTo:S.yieldTo}],dispose(){}}}}class s extends i{constructor(){super(...arguments),this.kind=s.kind,this.dropMimeTypes=[y.Mimes.text],this.pasteMimeTypes=[y.Mimes.text]}static{this.id="text"}static{this.kind=new I.HierarchicalKind("text.plain")}async getEdit(f,h){const v=f.get(y.Mimes.text);if(!v||f.has(y.Mimes.uriList))return;const w=await v.asString();return{handledMimeType:y.Mimes.text,title:(0,o.localize)(833,"Insert Plain Text"),insertText:w,kind:this.kind}}}e.DefaultTextPasteOrDropEditProvider=s;class g extends i{constructor(){super(...arguments),this.kind=new I.HierarchicalKind("uri.absolute"),this.dropMimeTypes=[y.Mimes.uriList],this.pasteMimeTypes=[y.Mimes.uriList]}async getEdit(f,h){const v=await a(f);if(!v.length||h.isCancellationRequested)return;let w=0;const S=v.map(({uri:D,originalText:T})=>D.scheme===m.Schemas.file?D.fsPath:(w++,T)).join(" ");let L;return w>0?L=v.length>1?(0,o.localize)(834,"Insert Uris"):(0,o.localize)(835,"Insert Uri"):L=v.length>1?(0,o.localize)(836,"Insert Paths"):(0,o.localize)(837,"Insert Path"),{handledMimeType:y.Mimes.uriList,insertText:S,title:L,kind:this.kind}}}let c=class extends i{constructor(f){super(),this._workspaceContextService=f,this.kind=new I.HierarchicalKind("uri.relative"),this.dropMimeTypes=[y.Mimes.uriList],this.pasteMimeTypes=[y.Mimes.uriList]}async getEdit(f,h){const v=await a(f);if(!v.length||h.isCancellationRequested)return;const w=(0,d.coalesce)(v.map(({uri:S})=>{const L=this._workspaceContextService.getWorkspaceFolder(S);return L?(0,_.relativePath)(L.uri,S):void 0}));if(w.length)return{handledMimeType:y.Mimes.uriList,insertText:w.join(" "),title:v.length>1?(0,o.localize)(838,"Insert Relative Paths"):(0,o.localize)(839,"Insert Relative Path"),kind:this.kind}}};c=ke([ce(0,t.IWorkspaceContextService)],c);class l{constructor(){this.kind=new I.HierarchicalKind("html"),this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:y.Mimes.text}]}async provideDocumentPasteEdits(f,h,v,w,S){if(w.triggerKind!==p.DocumentPasteTriggerKind.PasteAs&&!w.only?.contains(this.kind))return;const D=await v.get("text/html")?.asString();if(!(!D||S.isCancellationRequested))return{dispose(){},edits:[{insertText:D,yieldTo:this._yieldTo,title:(0,o.localize)(840,"Insert HTML"),kind:this.kind}]}}}async function a(C){const f=C.get(y.Mimes.uriList);if(!f)return[];const h=await f.asString(),v=[];for(const w of k.UriList.parse(h))try{v.push({uri:b.URI.parse(w),originalText:w})}catch{}return v}let r=class extends E.Disposable{constructor(f,h){super(),this._register(f.documentDropEditProvider.register("*",new s)),this._register(f.documentDropEditProvider.register("*",new g)),this._register(f.documentDropEditProvider.register("*",new c(h)))}};e.DefaultDropProvidersFeature=r,e.DefaultDropProvidersFeature=r=ke([ce(0,n.ILanguageFeaturesService),ce(1,t.IWorkspaceContextService)],r);let u=class extends E.Disposable{constructor(f,h){super(),this._register(f.documentPasteEditProvider.register("*",new s)),this._register(f.documentPasteEditProvider.register("*",new g)),this._register(f.documentPasteEditProvider.register("*",new c(h))),this._register(f.documentPasteEditProvider.register("*",new l))}};e.DefaultPasteProvidersFeature=u,e.DefaultPasteProvidersFeature=u=ke([ce(0,n.ILanguageFeaturesService),ce(1,t.IWorkspaceContextService)],u)}),define(ne[435],se([1,0,5,13,14,18,194,91,2,128,16,193,212,400,152,4,27,17,293,268,122,290,184,3,117,12,7,96,66,396,8]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T){"use strict";var M;Object.defineProperty(e,"__esModule",{value:!0}),e.CopyPasteController=e.pasteWidgetVisibleCtx=e.changePasteTypeCommandId=void 0,e.changePasteTypeCommandId="editor.changePasteType",e.pasteWidgetVisibleCtx=new v.RawContextKey("pasteWidgetVisible",!1,(0,f.localize)(826,"Whether the paste widget is showing"));const A="application/vnd.code.copyMetadata";let P=class extends _.Disposable{static{M=this}static{this.ID="editor.contrib.copyPasteActionController"}static get(O){return O.getContribution(M.ID)}constructor(O,F,x,W,V,q,H){super(),this._bulkEditService=x,this._clipboardService=W,this._languageFeaturesService=V,this._quickInputService=q,this._progressService=H,this._editor=O;const z=O.getContainerDomNode();this._register((0,d.addDisposableListener)(z,"copy",U=>this.handleCopy(U))),this._register((0,d.addDisposableListener)(z,"cut",U=>this.handleCopy(U))),this._register((0,d.addDisposableListener)(z,"paste",U=>this.handlePaste(U),!0)),this._pasteProgressManager=this._register(new u.InlineProgressManager("pasteIntoEditor",O,F)),this._postPasteWidgetManager=this._register(F.createInstance(D.PostEditWidgetManager,"pasteIntoEditor",O,e.pasteWidgetVisibleCtx,{id:e.changePasteTypeCommandId,label:(0,f.localize)(827,"Show paste options...")}))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}pasteAs(O){this._editor.focus();try{this._pasteAsActionContext={preferred:O},(0,d.getActiveDocument)().execCommand("paste")}finally{this._pasteAsActionContext=void 0}}clearWidgets(){this._postPasteWidgetManager.clear()}isPasteAsEnabled(){return this._editor.getOption(85).enabled}async finishedPaste(){await this._currentPasteOperation}handleCopy(O){if(!this._editor.hasTextFocus()||(this._clipboardService.clearInternalState?.(),!O.clipboardData||!this.isPasteAsEnabled()))return;const F=this._editor.getModel(),x=this._editor.getSelections();if(!F||!x?.length)return;const W=this._editor.getOption(37);let V=x;const q=x.length===1&&x[0].isEmpty();if(q){if(!W)return;V=[new s.Range(V[0].startLineNumber,1,V[0].startLineNumber,1+F.getLineLength(V[0].startLineNumber))]}const H=this._editor._getViewModel()?.getPlainTextToCopy(x,W,p.isWindows),U={multicursorText:Array.isArray(H)?H:null,pasteOnNewLine:q,mode:null},j=this._languageFeaturesService.documentPasteEditProvider.ordered(F).filter(J=>!!J.prepareDocumentPaste);if(!j.length){this.setCopyMetadata(O.clipboardData,{defaultPastePayload:U});return}const Y=(0,t.toVSDataTransfer)(O.clipboardData),G=j.flatMap(J=>J.copyMimeTypes??[]),K=(0,n.generateUuid)();this.setCopyMetadata(O.clipboardData,{id:K,providerCopyMimeTypes:G,defaultPastePayload:U});const R=(0,I.createCancelablePromise)(async J=>{const ie=(0,k.coalesce)(await Promise.all(j.map(async ue=>{try{return await ue.prepareDocumentPaste(F,V,Y,J)}catch(he){console.error(he);return}})));ie.reverse();for(const ue of ie)for(const[he,pe]of ue)Y.replace(he,pe);return Y});M._currentCopyOperation?.dataTransferPromise.cancel(),M._currentCopyOperation={handle:K,dataTransferPromise:R}}async handlePaste(O){if(!O.clipboardData||!this._editor.hasTextFocus())return;C.MessageController.get(this._editor)?.closeMessage(),this._currentPasteOperation?.cancel(),this._currentPasteOperation=void 0;const F=this._editor.getModel(),x=this._editor.getSelections();if(!x?.length||!F||this._editor.getOption(92)||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;const W=this.fetchCopyMetadata(O),V=(0,t.toExternalVSDataTransfer)(O.clipboardData);V.delete(A);const q=[...O.clipboardData.types,...W?.providerCopyMimeTypes??[],b.Mimes.uriList],H=this._languageFeaturesService.documentPasteEditProvider.ordered(F).filter(z=>{const U=this._pasteAsActionContext?.preferred;return U&&z.providedPasteEditKinds&&!this.providerMatchesPreference(z,U)?!1:z.pasteMimeTypes?.some(j=>(0,y.matchesMimeType)(j,q))});if(!H.length){this._pasteAsActionContext?.preferred&&this.showPasteAsNoEditMessage(x,this._pasteAsActionContext.preferred);return}O.preventDefault(),O.stopImmediatePropagation(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferred,H,x,V,W):this.doPasteInline(H,x,V,W,O)}showPasteAsNoEditMessage(O,F){C.MessageController.get(this._editor)?.showMessage((0,f.localize)(828,"No paste edits for '{0}' found",F instanceof m.HierarchicalKind?F.value:F.providerId),O[0].getStartPosition())}doPasteInline(O,F,x,W,V){const q=this._editor;if(!q.hasModel())return;const H=new r.EditorStateCancellationTokenSource(q,3,void 0),z=(0,I.createCancelablePromise)(async U=>{const j=this._editor;if(!j.hasModel())return;const Y=j.getModel(),G=new _.DisposableStore,K=G.add(new E.CancellationTokenSource(U));G.add(H.token.onCancellationRequested(()=>K.cancel()));const R=K.token;try{if(await this.mergeInDataFromCopy(x,W,R),R.isCancellationRequested)return;const J=O.filter(he=>this.isSupportedPasteProvider(he,x));if(!J.length||J.length===1&&J[0]instanceof l.DefaultTextPasteOrDropEditProvider)return this.applyDefaultPasteHandler(x,W,R,V);const ie={triggerKind:g.DocumentPasteTriggerKind.Automatic},ue=await this.getPasteEdits(J,x,Y,F,ie,R);if(G.add(ue),R.isCancellationRequested)return;if(ue.edits.length===1&&ue.edits[0].provider instanceof l.DefaultTextPasteOrDropEditProvider)return this.applyDefaultPasteHandler(x,W,R,V);if(ue.edits.length){const he=j.getOption(85).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(F,{activeEditIndex:0,allEdits:ue.edits},he,(pe,ae)=>new Promise((ee,de)=>{(async()=>{try{const ge=pe.provider.resolveDocumentPasteEdit?.(pe,ae),X=new I.DeferredPromise,B=ge&&await this._pasteProgressManager.showWhile(F[0].getEndPosition(),(0,f.localize)(829,"Resolving paste edit. Click to cancel"),Promise.race([X.p,ge]),{cancel:()=>(X.cancel(),de(new T.CancellationError))},0);return B&&(pe.additionalEdit=B.additionalEdit),ee(pe)}catch(ge){return de(ge)}})()}),R)}await this.applyDefaultPasteHandler(x,W,R,V)}finally{G.dispose(),this._currentPasteOperation===z&&(this._currentPasteOperation=void 0)}});this._pasteProgressManager.showWhile(F[0].getEndPosition(),(0,f.localize)(830,"Running paste handlers. Click to cancel and do basic paste"),z,{cancel:async()=>{try{if(z.cancel(),H.token.isCancellationRequested)return;await this.applyDefaultPasteHandler(x,W,H.token,V)}finally{H.dispose()}}}).then(()=>{H.dispose()}),this._currentPasteOperation=z}showPasteAsPick(O,F,x,W,V){const q=(0,I.createCancelablePromise)(async H=>{const z=this._editor;if(!z.hasModel())return;const U=z.getModel(),j=new _.DisposableStore,Y=j.add(new r.EditorStateCancellationTokenSource(z,3,void 0,H));try{if(await this.mergeInDataFromCopy(W,V,Y.token),Y.token.isCancellationRequested)return;let G=F.filter(ue=>this.isSupportedPasteProvider(ue,W,O));O&&(G=G.filter(ue=>this.providerMatchesPreference(ue,O)));const K={triggerKind:g.DocumentPasteTriggerKind.PasteAs,only:O&&O instanceof m.HierarchicalKind?O:void 0};let R=j.add(await this.getPasteEdits(G,W,U,x,K,Y.token));if(Y.token.isCancellationRequested)return;if(O&&(R={edits:R.edits.filter(ue=>O instanceof m.HierarchicalKind?O.contains(ue.kind):O.providerId===ue.provider.id),dispose:R.dispose}),!R.edits.length){K.only&&this.showPasteAsNoEditMessage(x,K.only);return}let J;if(O?J=R.edits.at(0):J=(await this._quickInputService.pick(R.edits.map(he=>({label:he.title,description:he.kind?.value,edit:he})),{placeHolder:(0,f.localize)(831,"Select Paste Action")}))?.edit,!J)return;const ie=(0,a.createCombinedWorkspaceEdit)(U.uri,x,J);await this._bulkEditService.apply(ie,{editor:this._editor})}finally{j.dispose(),this._currentPasteOperation===q&&(this._currentPasteOperation=void 0)}});this._progressService.withProgress({location:10,title:(0,f.localize)(832,"Running paste handlers")},()=>q)}setCopyMetadata(O,F){O.setData(A,JSON.stringify(F))}fetchCopyMetadata(O){if(!O.clipboardData)return;const F=O.clipboardData.getData(A);if(F)try{return JSON.parse(F)}catch{return}const[x,W]=o.ClipboardEventUtils.getTextData(O.clipboardData);if(W)return{defaultPastePayload:{mode:W.mode,multicursorText:W.multicursorText??null,pasteOnNewLine:!!W.isFromEmptySelection}}}async mergeInDataFromCopy(O,F,x){if(F?.id&&M._currentCopyOperation?.handle===F.id){const W=await M._currentCopyOperation.dataTransferPromise;if(x.isCancellationRequested)return;for(const[V,q]of W)O.replace(V,q)}if(!O.has(b.Mimes.uriList)){const W=await this._clipboardService.readResources();if(x.isCancellationRequested)return;W.length&&O.append(b.Mimes.uriList,(0,y.createStringDataTransferItem)(y.UriList.create(W)))}}async getPasteEdits(O,F,x,W,V,q){const H=new _.DisposableStore,z=await(0,I.raceCancellation)(Promise.all(O.map(async j=>{try{const Y=await j.provideDocumentPasteEdits?.(x,W,F,V,q);return Y&&H.add(Y),Y?.edits?.map(G=>({...G,provider:j}))}catch(Y){(0,T.isCancellationError)(Y)||console.error(Y);return}})),q),U=(0,k.coalesce)(z??[]).flat().filter(j=>!V.only||V.only.contains(j.kind));return{edits:(0,a.sortEditsByYieldTo)(U),dispose:()=>H.dispose()}}async applyDefaultPasteHandler(O,F,x,W){const q=await(O.get(b.Mimes.text)??O.get("text"))?.asString()??"";if(x.isCancellationRequested)return;const H={clipboardEvent:W,text:q,pasteOnNewLine:F?.defaultPastePayload.pasteOnNewLine??!1,multicursorText:F?.defaultPastePayload.multicursorText??null,mode:null};this._editor.trigger("keyboard","paste",H)}isSupportedPasteProvider(O,F,x){return O.pasteMimeTypes?.some(W=>F.matches(W))?!x||this.providerMatchesPreference(O,x):!1}providerMatchesPreference(O,F){return F instanceof m.HierarchicalKind?O.providedPasteEditKinds?O.providedPasteEditKinds.some(x=>F.contains(x)):!0:O.id===F.providerId}};e.CopyPasteController=P,e.CopyPasteController=P=M=ke([ce(1,w.IInstantiationService),ce(2,i.IBulkEditService),ce(3,h.IClipboardService),ce(4,c.ILanguageFeaturesService),ce(5,L.IQuickInputService),ce(6,S.IProgressService)],P)}),define(ne[856],se([1,0,64,5,16,212,15,34,20,435,3,29,117,12]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PasteAction=e.CopyAction=e.CutAction=void 0;const i="9_cutcopypaste",s=I.isNative||document.queryCommandSupported("cut"),g=I.isNative||document.queryCommandSupported("copy"),c=typeof navigator.clipboard>"u"||d.isFirefox?document.queryCommandSupported("paste"):!0;function l(u){return u.register(),u}e.CutAction=s?l(new y.MultiCommand({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:I.isNative?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:n.MenuId.MenubarEditMenu,group:"2_ccp",title:p.localize(725,"Cu&&t"),order:1},{menuId:n.MenuId.EditorContext,group:i,title:p.localize(726,"Cut"),when:_.EditorContextKeys.writable,order:1},{menuId:n.MenuId.CommandPalette,group:"",title:p.localize(727,"Cut"),order:1},{menuId:n.MenuId.SimpleEditorContext,group:i,title:p.localize(728,"Cut"),when:_.EditorContextKeys.writable,order:1}]})):void 0,e.CopyAction=g?l(new y.MultiCommand({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:I.isNative?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:n.MenuId.MenubarEditMenu,group:"2_ccp",title:p.localize(729,"&&Copy"),order:2},{menuId:n.MenuId.EditorContext,group:i,title:p.localize(730,"Copy"),order:2},{menuId:n.MenuId.CommandPalette,group:"",title:p.localize(731,"Copy"),order:1},{menuId:n.MenuId.SimpleEditorContext,group:i,title:p.localize(732,"Copy"),order:2}]})):void 0,n.MenuRegistry.appendMenuItem(n.MenuId.MenubarEditMenu,{submenu:n.MenuId.MenubarCopy,title:p.localize2(738,"Copy As"),group:"2_ccp",order:3}),n.MenuRegistry.appendMenuItem(n.MenuId.EditorContext,{submenu:n.MenuId.EditorContextCopy,title:p.localize2(739,"Copy As"),group:i,order:3}),n.MenuRegistry.appendMenuItem(n.MenuId.EditorContext,{submenu:n.MenuId.EditorContextShare,title:p.localize2(740,"Share"),group:"11_share",order:-1,when:t.ContextKeyExpr.and(t.ContextKeyExpr.notEquals("resourceScheme","output"),_.EditorContextKeys.editorTextFocus)}),n.MenuRegistry.appendMenuItem(n.MenuId.ExplorerContext,{submenu:n.MenuId.ExplorerContextShare,title:p.localize2(741,"Share"),group:"11_share",order:-1}),e.PasteAction=c?l(new y.MultiCommand({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:I.isNative?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:n.MenuId.MenubarEditMenu,group:"2_ccp",title:p.localize(733,"&&Paste"),order:4},{menuId:n.MenuId.EditorContext,group:i,title:p.localize(734,"Paste"),when:_.EditorContextKeys.writable,order:4},{menuId:n.MenuId.CommandPalette,group:"",title:p.localize(735,"Paste"),order:1},{menuId:n.MenuId.SimpleEditorContext,group:i,title:p.localize(736,"Paste"),when:_.EditorContextKeys.writable,order:4}]})):void 0;class a extends y.EditorAction{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:p.localize(737,"Copy With Syntax Highlighting"),alias:"Copy With Syntax Highlighting",precondition:void 0,kbOpts:{kbExpr:_.EditorContextKeys.textInputFocus,primary:0,weight:100}})}run(C,f){!f.hasModel()||!f.getOption(37)&&f.getSelection().isEmpty()||(E.CopyOptions.forceCopyWithSyntaxHighlighting=!0,f.focus(),f.getContainerDomNode().ownerDocument.execCommand("copy"),E.CopyOptions.forceCopyWithSyntaxHighlighting=!1)}}function r(u,C){u&&(u.addImplementation(1e4,"code-editor",(f,h)=>{const v=f.get(m.ICodeEditorService).getFocusedCodeEditor();if(v&&v.hasTextFocus()){const w=v.getOption(37),S=v.getSelection();return S&&S.isEmpty()&&!w||v.getContainerDomNode().ownerDocument.execCommand(C),!0}return!1}),u.addImplementation(0,"generic-dom",(f,h)=>((0,k.getActiveDocument)().execCommand(C),!0)))}r(e.CutAction,"cut"),r(e.CopyAction,"copy"),e.PasteAction&&(e.PasteAction.addImplementation(1e4,"code-editor",(u,C)=>{const f=u.get(m.ICodeEditorService),h=u.get(o.IClipboardService),v=f.getFocusedCodeEditor();return v&&v.hasTextFocus()?v.getContainerDomNode().ownerDocument.execCommand("paste")?b.CopyPasteController.get(v)?.finishedPaste()??Promise.resolve():I.isWeb?(async()=>{const S=await h.readText();if(S!==""){const L=E.InMemoryClipboardMetadataManager.INSTANCE.get(S);let D=!1,T=null,M=null;L&&(D=v.getOption(37)&&!!L.isFromEmptySelection,T=typeof L.multicursorText<"u"?L.multicursorText:null,M=L.mode),v.trigger("keyboard","paste",{text:S,pasteOnNewLine:D,multicursorText:T,mode:M})}})():!0:!1}),e.PasteAction.addImplementation(0,"generic-dom",(u,C)=>((0,k.getActiveDocument)().execCommand("paste"),!0))),g&&(0,y.registerEditorAction)(a)}),define(ne[857],se([1,0,91,15,20,130,435,293,3]),function(oe,e,d,k,I,E,y,m,_){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,k.registerEditorContribution)(y.CopyPasteController.ID,y.CopyPasteController,0),(0,E.registerEditorFeature)(m.DefaultPasteProvidersFeature),(0,k.registerEditorCommand)(new class extends k.EditorCommand{constructor(){super({id:y.changePasteTypeCommandId,precondition:y.pasteWidgetVisibleCtx,kbOpts:{weight:100,primary:2137}})}runEditorCommand(b,p){return y.CopyPasteController.get(p)?.changePasteType()}}),(0,k.registerEditorCommand)(new class extends k.EditorCommand{constructor(){super({id:"editor.hidePasteWidget",precondition:y.pasteWidgetVisibleCtx,kbOpts:{weight:100,primary:9}})}runEditorCommand(b,p){y.CopyPasteController.get(p)?.clearWidgets()}}),(0,k.registerEditorAction)(class bi extends k.EditorAction{static{this.argsSchema={type:"object",properties:{kind:{type:"string",description:_.localize(823,"The kind of the paste edit to try applying. If not provided or there are multiple edits for this kind, the editor will show a picker.")}}}}constructor(){super({id:"editor.action.pasteAs",label:_.localize(824,"Paste As..."),alias:"Paste As...",precondition:I.EditorContextKeys.writable,metadata:{description:"Paste as",args:[{name:"args",schema:bi.argsSchema}]}})}run(p,n,o){let t=typeof o?.kind=="string"?o.kind:void 0;return!t&&o&&(t=typeof o.id=="string"?o.id:void 0),y.CopyPasteController.get(n)?.pasteAs(t?new d.HierarchicalKind(t):void 0)}}),(0,k.registerEditorAction)(class extends k.EditorAction{constructor(){super({id:"editor.action.pasteAsText",label:_.localize(825,"Paste as Text"),alias:"Paste as Text",precondition:I.EditorContextKeys.writable})}run(b,p){return y.CopyPasteController.get(p)?.pasteAs({providerId:m.DefaultTextPasteOrDropEditProvider.id})}})}),define(ne[858],se([1,0,15,274,130,293,3,109,38,832]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorContribution)(b.DropIntoEditorController.ID,b.DropIntoEditorController,2),(0,I.registerEditorFeature)(E.DefaultDropProvidersFeature),(0,d.registerEditorCommand)(new class extends d.EditorCommand{constructor(){super({id:b.changeDropTypeCommandId,precondition:b.dropWidgetVisibleCtx,kbOpts:{weight:100,primary:2137}})}runEditorCommand(p,n,o){b.DropIntoEditorController.get(n)?.changeDropType()}}),(0,d.registerEditorCommand)(new class extends d.EditorCommand{constructor(){super({id:"editor.hideDropWidget",precondition:b.dropWidgetVisibleCtx,kbOpts:{weight:100,primary:9}})}runEditorCommand(p,n,o){b.DropIntoEditorController.get(n)?.clearWidgets()}}),_.Registry.as(m.Extensions.Configuration).registerConfiguration({...k.editorConfigurationBaseNode,properties:{[b.defaultProviderConfig]:{type:"object",scope:5,description:y.localize(841,"Configures the default drop provider to use for content of a given mime type."),default:{},additionalProperties:{type:"string"}}}})}),define(ne[859],se([1,0,629,99,48,11,193,36,135,3,186]),function(oe,e,d,k,I,E,y,m,_,b,p){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RandomBasedVariableResolver=e.WorkspaceBasedVariableResolver=e.TimeBasedVariableResolver=e.CommentBasedVariableResolver=e.ClipboardBasedVariableResolver=e.ModelBasedVariableResolver=e.SelectionBasedVariableResolver=e.CompositeSnippetVariableResolver=e.KnownSnippetVariableNames=void 0,e.KnownSnippetVariableNames=Object.freeze({CURRENT_YEAR:!0,CURRENT_YEAR_SHORT:!0,CURRENT_MONTH:!0,CURRENT_DATE:!0,CURRENT_HOUR:!0,CURRENT_MINUTE:!0,CURRENT_SECOND:!0,CURRENT_DAY_NAME:!0,CURRENT_DAY_NAME_SHORT:!0,CURRENT_MONTH_NAME:!0,CURRENT_MONTH_NAME_SHORT:!0,CURRENT_SECONDS_UNIX:!0,CURRENT_TIMEZONE_OFFSET:!0,SELECTION:!0,CLIPBOARD:!0,TM_SELECTED_TEXT:!0,TM_CURRENT_LINE:!0,TM_CURRENT_WORD:!0,TM_LINE_INDEX:!0,TM_LINE_NUMBER:!0,TM_FILENAME:!0,TM_FILENAME_BASE:!0,TM_DIRECTORY:!0,TM_FILEPATH:!0,CURSOR_INDEX:!0,CURSOR_NUMBER:!0,RELATIVE_FILEPATH:!0,BLOCK_COMMENT_START:!0,BLOCK_COMMENT_END:!0,LINE_COMMENT:!0,WORKSPACE_NAME:!0,WORKSPACE_FOLDER:!0,RANDOM:!0,RANDOM_HEX:!0,UUID:!0});class n{constructor(r){this._delegates=r}resolve(r){for(const u of this._delegates){const C=u.resolve(r);if(C!==void 0)return C}}}e.CompositeSnippetVariableResolver=n;class o{constructor(r,u,C,f){this._model=r,this._selection=u,this._selectionIdx=C,this._overtypingCapturer=f}resolve(r){const{name:u}=r;if(u==="SELECTION"||u==="TM_SELECTED_TEXT"){let C=this._model.getValueInRange(this._selection)||void 0,f=this._selection.startLineNumber!==this._selection.endLineNumber;if(!C&&this._overtypingCapturer){const h=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);h&&(C=h.value,f=h.multiline)}if(C&&f&&r.snippet){const h=this._model.getLineContent(this._selection.startLineNumber),v=(0,E.getLeadingWhitespace)(h,0,this._selection.startColumn-1);let w=v;r.snippet.walk(L=>L===r?!1:(L instanceof _.Text&&(w=(0,E.getLeadingWhitespace)((0,E.splitLines)(L.value).pop())),!0));const S=(0,E.commonPrefixLength)(w,v);C=C.replace(/(\r\n|\r|\n)(.*)/g,(L,D,T)=>`${D}${w.substr(S)}${T}`)}return C}else{if(u==="TM_CURRENT_LINE")return this._model.getLineContent(this._selection.positionLineNumber);if(u==="TM_CURRENT_WORD"){const C=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return C&&C.word||void 0}else{if(u==="TM_LINE_INDEX")return String(this._selection.positionLineNumber-1);if(u==="TM_LINE_NUMBER")return String(this._selection.positionLineNumber);if(u==="CURSOR_INDEX")return String(this._selectionIdx);if(u==="CURSOR_NUMBER")return String(this._selectionIdx+1)}}}}e.SelectionBasedVariableResolver=o;class t{constructor(r,u){this._labelService=r,this._model=u}resolve(r){const{name:u}=r;if(u==="TM_FILENAME")return k.basename(this._model.uri.fsPath);if(u==="TM_FILENAME_BASE"){const C=k.basename(this._model.uri.fsPath),f=C.lastIndexOf(".");return f<=0?C:C.slice(0,f)}else{if(u==="TM_DIRECTORY")return k.dirname(this._model.uri.fsPath)==="."?"":this._labelService.getUriLabel((0,I.dirname)(this._model.uri));if(u==="TM_FILEPATH")return this._labelService.getUriLabel(this._model.uri);if(u==="RELATIVE_FILEPATH")return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0})}}}e.ModelBasedVariableResolver=t;class i{constructor(r,u,C,f){this._readClipboardText=r,this._selectionIdx=u,this._selectionCount=C,this._spread=f}resolve(r){if(r.name!=="CLIPBOARD")return;const u=this._readClipboardText();if(u){if(this._spread){const C=u.split(/\r\n|\n|\r/).filter(f=>!(0,E.isFalsyOrWhitespace)(f));if(C.length===this._selectionCount)return C[this._selectionIdx]}return u}}}e.ClipboardBasedVariableResolver=i;let s=class{constructor(r,u,C){this._model=r,this._selection=u,this._languageConfigurationService=C}resolve(r){const{name:u}=r,C=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),f=this._languageConfigurationService.getLanguageConfiguration(C).comments;if(f){if(u==="LINE_COMMENT")return f.lineCommentToken||void 0;if(u==="BLOCK_COMMENT_START")return f.blockCommentStartToken||void 0;if(u==="BLOCK_COMMENT_END")return f.blockCommentEndToken||void 0}}};e.CommentBasedVariableResolver=s,e.CommentBasedVariableResolver=s=ke([ce(2,m.ILanguageConfigurationService)],s);class g{constructor(){this._date=new Date}static{this.dayNames=[b.localize(1261,"Sunday"),b.localize(1262,"Monday"),b.localize(1263,"Tuesday"),b.localize(1264,"Wednesday"),b.localize(1265,"Thursday"),b.localize(1266,"Friday"),b.localize(1267,"Saturday")]}static{this.dayNamesShort=[b.localize(1268,"Sun"),b.localize(1269,"Mon"),b.localize(1270,"Tue"),b.localize(1271,"Wed"),b.localize(1272,"Thu"),b.localize(1273,"Fri"),b.localize(1274,"Sat")]}static{this.monthNames=[b.localize(1275,"January"),b.localize(1276,"February"),b.localize(1277,"March"),b.localize(1278,"April"),b.localize(1279,"May"),b.localize(1280,"June"),b.localize(1281,"July"),b.localize(1282,"August"),b.localize(1283,"September"),b.localize(1284,"October"),b.localize(1285,"November"),b.localize(1286,"December")]}static{this.monthNamesShort=[b.localize(1287,"Jan"),b.localize(1288,"Feb"),b.localize(1289,"Mar"),b.localize(1290,"Apr"),b.localize(1291,"May"),b.localize(1292,"Jun"),b.localize(1293,"Jul"),b.localize(1294,"Aug"),b.localize(1295,"Sep"),b.localize(1296,"Oct"),b.localize(1297,"Nov"),b.localize(1298,"Dec")]}resolve(r){const{name:u}=r;if(u==="CURRENT_YEAR")return String(this._date.getFullYear());if(u==="CURRENT_YEAR_SHORT")return String(this._date.getFullYear()).slice(-2);if(u==="CURRENT_MONTH")return String(this._date.getMonth().valueOf()+1).padStart(2,"0");if(u==="CURRENT_DATE")return String(this._date.getDate().valueOf()).padStart(2,"0");if(u==="CURRENT_HOUR")return String(this._date.getHours().valueOf()).padStart(2,"0");if(u==="CURRENT_MINUTE")return String(this._date.getMinutes().valueOf()).padStart(2,"0");if(u==="CURRENT_SECOND")return String(this._date.getSeconds().valueOf()).padStart(2,"0");if(u==="CURRENT_DAY_NAME")return g.dayNames[this._date.getDay()];if(u==="CURRENT_DAY_NAME_SHORT")return g.dayNamesShort[this._date.getDay()];if(u==="CURRENT_MONTH_NAME")return g.monthNames[this._date.getMonth()];if(u==="CURRENT_MONTH_NAME_SHORT")return g.monthNamesShort[this._date.getMonth()];if(u==="CURRENT_SECONDS_UNIX")return String(Math.floor(this._date.getTime()/1e3));if(u==="CURRENT_TIMEZONE_OFFSET"){const C=this._date.getTimezoneOffset(),f=C>0?"-":"+",h=Math.trunc(Math.abs(C/60)),v=h<10?"0"+h:h,w=Math.abs(C)-h*60,S=w<10?"0"+w:w;return f+v+":"+S}}}e.TimeBasedVariableResolver=g;class c{constructor(r){this._workspaceService=r}resolve(r){if(!this._workspaceService)return;const u=(0,p.toWorkspaceIdentifier)(this._workspaceService.getWorkspace());if(!(0,p.isEmptyWorkspaceIdentifier)(u)){if(r.name==="WORKSPACE_NAME")return this._resolveWorkspaceName(u);if(r.name==="WORKSPACE_FOLDER")return this._resoveWorkspacePath(u)}}_resolveWorkspaceName(r){if((0,p.isSingleFolderWorkspaceIdentifier)(r))return k.basename(r.uri.path);let u=k.basename(r.configPath.path);return u.endsWith(p.WORKSPACE_EXTENSION)&&(u=u.substr(0,u.length-p.WORKSPACE_EXTENSION.length-1)),u}_resoveWorkspacePath(r){if((0,p.isSingleFolderWorkspaceIdentifier)(r))return(0,d.normalizeDriveLetter)(r.uri.fsPath);const u=k.basename(r.configPath.path);let C=r.configPath.fsPath;return C.endsWith(u)&&(C=C.substr(0,C.length-u.length-1)),C?(0,d.normalizeDriveLetter)(C):"/"}}e.WorkspaceBasedVariableResolver=c;class l{resolve(r){const{name:u}=r;if(u==="RANDOM")return Math.random().toString().slice(-6);if(u==="RANDOM_HEX")return Math.random().toString(16).slice(-6);if(u==="UUID")return(0,y.generateUuid)()}}e.RandomBasedVariableResolver=l}),define(ne[436],se([1,0,13,2,11,75,4,23,36,35,181,186,135,859,530]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.SnippetSession=e.OneSnippet=void 0;class s{static{this._decor={active:b.ModelDecorationOptions.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:b.ModelDecorationOptions.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:b.ModelDecorationOptions.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:b.ModelDecorationOptions.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})}}constructor(a,r,u){this._editor=a,this._snippet=r,this._snippetLineLeadingWhitespace=u,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=(0,d.groupBy)(r.placeholders,o.Placeholder.compareByIndex),this._placeholderGroupsIdx=-1}initialize(a){this._offset=a.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(this._offset===-1)throw new Error("Snippet not initialized!");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;const a=this._editor.getModel();this._editor.changeDecorations(r=>{for(const u of this._snippet.placeholders){const C=this._snippet.offset(u),f=this._snippet.fullLen(u),h=y.Range.fromPositions(a.getPositionAt(this._offset+C),a.getPositionAt(this._offset+C+f)),v=u.isFinalTabstop?s._decor.inactiveFinal:s._decor.inactive,w=r.addDecoration(h,v);this._placeholderDecorations.set(u,w)}})}move(a){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){const C=[];for(const f of this._placeholderGroups[this._placeholderGroupsIdx])if(f.transform){const h=this._placeholderDecorations.get(f),v=this._editor.getModel().getDecorationRange(h),w=this._editor.getModel().getValueInRange(v),S=f.transform.resolve(w).split(/\r\n|\r|\n/);for(let L=1;L0&&this._editor.executeEdits("snippet.placeholderTransform",C)}let r=!1;a===!0&&this._placeholderGroupsIdx0&&(this._placeholderGroupsIdx-=1,r=!0);const u=this._editor.getModel().changeDecorations(C=>{const f=new Set,h=[];for(const v of this._placeholderGroups[this._placeholderGroupsIdx]){const w=this._placeholderDecorations.get(v),S=this._editor.getModel().getDecorationRange(w);h.push(new m.Selection(S.startLineNumber,S.startColumn,S.endLineNumber,S.endColumn)),r=r&&this._hasPlaceholderBeenCollapsed(v),C.changeDecorationOptions(w,v.isFinalTabstop?s._decor.activeFinal:s._decor.active),f.add(v);for(const L of this._snippet.enclosingPlaceholders(v)){const D=this._placeholderDecorations.get(L);C.changeDecorationOptions(D,L.isFinalTabstop?s._decor.activeFinal:s._decor.active),f.add(L)}}for(const[v,w]of this._placeholderDecorations)f.has(v)||C.changeDecorationOptions(w,v.isFinalTabstop?s._decor.inactiveFinal:s._decor.inactive);return h});return r?this.move(a):u??[]}_hasPlaceholderBeenCollapsed(a){let r=a;for(;r;){if(r instanceof o.Placeholder){const u=this._placeholderDecorations.get(r);if(this._editor.getModel().getDecorationRange(u).isEmpty()&&r.toString().length>0)return!0}r=r.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||this._placeholderGroups.length===0}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(this._snippet.placeholders.length===0)return!0;if(this._snippet.placeholders.length===1){const[a]=this._snippet.placeholders;if(a.isFinalTabstop&&this._snippet.rightMostDescendant===a)return!0}return!1}computePossibleSelections(){const a=new Map;for(const r of this._placeholderGroups){let u;for(const C of r){if(C.isFinalTabstop)break;u||(u=[],a.set(C.index,u));const f=this._placeholderDecorations.get(C),h=this._editor.getModel().getDecorationRange(f);if(!h){a.delete(C.index);break}u.push(h)}}return a}get activeChoice(){if(!this._placeholderDecorations)return;const a=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!a?.choice)return;const r=this._placeholderDecorations.get(a);if(!r)return;const u=this._editor.getModel().getDecorationRange(r);if(u)return{range:u,choice:a.choice}}get hasChoice(){let a=!1;return this._snippet.walk(r=>(a=r instanceof o.Choice,!a)),a}merge(a){const r=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations(u=>{for(const C of this._placeholderGroups[this._placeholderGroupsIdx]){const f=a.shift();console.assert(f._offset!==-1),console.assert(!f._placeholderDecorations);const h=f._snippet.placeholderInfo.last.index;for(const w of f._snippet.placeholderInfo.all)w.isFinalTabstop?w.index=C.index+(h+1)/this._nestingLevel:w.index=C.index+w.index/this._nestingLevel;this._snippet.replace(C,f._snippet.children);const v=this._placeholderDecorations.get(C);u.removeDecoration(v),this._placeholderDecorations.delete(C);for(const w of f._snippet.placeholders){const S=f._snippet.offset(w),L=f._snippet.fullLen(w),D=y.Range.fromPositions(r.getPositionAt(f._offset+S),r.getPositionAt(f._offset+S+L)),T=u.addDecoration(D,s._decor.inactive);this._placeholderDecorations.set(w,T)}}this._placeholderGroups=(0,d.groupBy)(this._snippet.placeholders,o.Placeholder.compareByIndex)})}}e.OneSnippet=s;const g={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let c=i=class{static adjustWhitespace(a,r,u,C,f){const h=a.getLineContent(r.lineNumber),v=(0,I.getLeadingWhitespace)(h,0,r.column-1);let w;return C.walk(S=>{if(!(S instanceof o.Text)||S.parent instanceof o.Choice||f&&!f.has(S))return!0;const L=S.value.split(/\r\n|\r|\n/);if(u){const T=C.offset(S);if(T===0)L[0]=a.normalizeIndentation(L[0]);else{w=w??C.toString();const M=w.charCodeAt(T-1);(M===10||M===13)&&(L[0]=a.normalizeIndentation(v+L[0]))}for(let M=1;MW.get(n.IWorkspaceContextService)),A=a.invokeWithinContext(W=>new t.ModelBasedVariableResolver(W.get(p.ILabelService),T)),P=()=>v,N=T.getValueInRange(i.adjustSelection(T,a.getSelection(),u,0)),O=T.getValueInRange(i.adjustSelection(T,a.getSelection(),0,C)),F=T.getLineFirstNonWhitespaceColumn(a.getSelection().positionLineNumber),x=a.getSelections().map((W,V)=>({selection:W,idx:V})).sort((W,V)=>y.Range.compareRangesUsingStarts(W.selection,V.selection));for(const{selection:W,idx:V}of x){let q=i.adjustSelection(T,W,u,0),H=i.adjustSelection(T,W,0,C);N!==T.getValueInRange(q)&&(q=W),O!==T.getValueInRange(H)&&(H=W);const z=W.setStartPosition(q.startLineNumber,q.startColumn).setEndPosition(H.endLineNumber,H.endColumn),U=new o.SnippetParser().parse(r,!0,f),j=z.getStartPosition(),Y=i.adjustWhitespace(T,j,h||V>0&&F!==T.getLineFirstNonWhitespaceColumn(W.positionLineNumber),U);U.resolveVariables(new t.CompositeSnippetVariableResolver([A,new t.ClipboardBasedVariableResolver(P,V,x.length,a.getOption(79)==="spread"),new t.SelectionBasedVariableResolver(T,W,V,w),new t.CommentBasedVariableResolver(T,W,S),new t.TimeBasedVariableResolver,new t.WorkspaceBasedVariableResolver(M),new t.RandomBasedVariableResolver])),L[V]=E.EditOperation.replace(z,U.toString()),L[V].identifier={major:V,minor:0},L[V]._isTracked=!0,D[V]=new s(a,U,Y)}return{edits:L,snippets:D}}static createEditsAndSnippetsFromEdits(a,r,u,C,f,h,v){if(!a.hasModel()||r.length===0)return{edits:[],snippets:[]};const w=[],S=a.getModel(),L=new o.SnippetParser,D=new o.TextmateSnippet,T=new t.CompositeSnippetVariableResolver([a.invokeWithinContext(A=>new t.ModelBasedVariableResolver(A.get(p.ILabelService),S)),new t.ClipboardBasedVariableResolver(()=>f,0,a.getSelections().length,a.getOption(79)==="spread"),new t.SelectionBasedVariableResolver(S,a.getSelection(),0,h),new t.CommentBasedVariableResolver(S,a.getSelection(),v),new t.TimeBasedVariableResolver,new t.WorkspaceBasedVariableResolver(a.invokeWithinContext(A=>A.get(n.IWorkspaceContextService))),new t.RandomBasedVariableResolver]);r=r.sort((A,P)=>y.Range.compareRangesUsingStarts(A.range,P.range));let M=0;for(let A=0;A0){const V=r[A-1].range,q=y.Range.fromPositions(V.getEndPosition(),P.getStartPosition()),H=new o.Text(S.getValueInRange(q));D.appendChild(H),M+=H.value.length}const O=L.parseFragment(N,D);i.adjustWhitespace(S,P.getStartPosition(),!0,D,new Set(O)),D.resolveVariables(T);const F=D.toString(),x=F.slice(M);M=F.length;const W=E.EditOperation.replace(P,x);W.identifier={major:A,minor:0},W._isTracked=!0,w.push(W)}return L.ensureFinalTabstop(D,u,!0),{edits:w,snippets:[new s(a,D,"")]}}constructor(a,r,u=g,C){this._editor=a,this._template=r,this._options=u,this._languageConfigurationService=C,this._templateMerges=[],this._snippets=[]}dispose(){(0,k.dispose)(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(){if(!this._editor.hasModel())return;const{edits:a,snippets:r}=typeof this._template=="string"?i.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):i.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=r,this._editor.executeEdits("snippet",a,u=>{const C=u.filter(f=>!!f.identifier);for(let f=0;fm.Selection.fromPositions(f.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(a,r=g){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,a]);const{edits:u,snippets:C}=i.createEditsAndSnippetsFromSelections(this._editor,a,r.overwriteBefore,r.overwriteAfter,!0,r.adjustWhitespace,r.clipboardText,r.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",u,f=>{const h=f.filter(w=>!!w.identifier);for(let w=0;wm.Selection.fromPositions(w.range.getEndPosition()))})}next(){const a=this._move(!0);this._editor.setSelections(a),this._editor.revealPositionInCenterIfOutsideViewport(a[0].getPosition())}prev(){const a=this._move(!1);this._editor.setSelections(a),this._editor.revealPositionInCenterIfOutsideViewport(a[0].getPosition())}_move(a){const r=[];for(const u of this._snippets){const C=u.move(a);r.push(...C)}return r}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;const a=this._editor.getSelections();if(a.length{f.push(...C.get(h))})}a.sort(y.Range.compareRangesUsingStarts);for(const[u,C]of r){if(C.length!==a.length){r.delete(u);continue}C.sort(y.Range.compareRangesUsingStarts);for(let f=0;f0}};e.SnippetSession=c,e.SnippetSession=c=i=ke([ce(3,_.ILanguageConfigurationService)],c)}),define(ne[221],se([1,0,2,19,15,9,20,36,17,155,3,12,62,436]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";var i;Object.defineProperty(e,"__esModule",{value:!0}),e.SnippetController2=void 0;const s={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let g=class{static{i=this}static{this.ID="snippetController2"}static get(a){return a.getContribution(i.ID)}static{this.InSnippetMode=new n.RawContextKey("inSnippetMode",!1,(0,p.localize)(1257,"Whether the editor in current in snippet mode"))}static{this.HasNextTabstop=new n.RawContextKey("hasNextTabstop",!1,(0,p.localize)(1258,"Whether there is a next tab stop when in snippet mode"))}static{this.HasPrevTabstop=new n.RawContextKey("hasPrevTabstop",!1,(0,p.localize)(1259,"Whether there is a previous tab stop when in snippet mode"))}constructor(a,r,u,C,f){this._editor=a,this._logService=r,this._languageFeaturesService=u,this._languageConfigurationService=f,this._snippetListener=new d.DisposableStore,this._modelVersionId=-1,this._inSnippet=i.InSnippetMode.bindTo(C),this._hasNextTabstop=i.HasNextTabstop.bindTo(C),this._hasPrevTabstop=i.HasPrevTabstop.bindTo(C)}dispose(){this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._session?.dispose(),this._snippetListener.dispose()}insert(a,r){try{this._doInsert(a,typeof r>"u"?s:{...s,...r})}catch(u){this.cancel(),this._logService.error(u),this._logService.error("snippet_error"),this._logService.error("insert_template=",a),this._logService.error("existing_template=",this._session?this._session._logInfo():"")}}_doInsert(a,r){if(this._editor.hasModel()){if(this._snippetListener.clear(),r.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&typeof a!="string"&&this.cancel(),this._session?((0,k.assertType)(typeof a=="string"),this._session.merge(a,r)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new t.SnippetSession(this._editor,a,r,this._languageConfigurationService),this._session.insert()),r.undoStopAfter&&this._editor.getModel().pushStackElement(),this._session?.hasChoice){const u={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(S,L)=>{if(!this._session||S!==this._editor.getModel()||!E.Position.equals(this._editor.getPosition(),L))return;const{activeChoice:D}=this._session;if(!D||D.choice.options.length===0)return;const T=S.getValueInRange(D.range),M=!!D.choice.options.find(P=>P.value===T),A=[];for(let P=0;P{f?.dispose(),h=!1},w=()=>{h||(f=this._languageFeaturesService.completionProvider.register({language:C.getLanguageId(),pattern:C.uri.fsPath,scheme:C.uri.scheme,exclusive:!0},u),this._snippetListener.add(f),h=!0)};this._choiceCompletions={provider:u,enable:w,disable:v}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent(u=>u.isFlush&&this.cancel())),this._snippetListener.add(this._editor.onDidChangeModel(()=>this.cancel())),this._snippetListener.add(this._editor.onDidChangeCursorSelection(()=>this._updateState()))}}_updateState(){if(!(!this._session||!this._editor.hasModel())){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){if(!this._session||!this._editor.hasModel()){this._currentChoice=void 0;return}const{activeChoice:a}=this._session;if(!a||!this._choiceCompletions){this._choiceCompletions?.disable(),this._currentChoice=void 0;return}this._currentChoice!==a.choice&&(this._currentChoice=a.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{(0,b.showSimpleSuggestions)(this._editor,this._choiceCompletions.provider)}))}finish(){for(;this._inSnippet.get();)this.next()}cancel(a=!1){this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),this._currentChoice=void 0,this._session?.dispose(),this._session=void 0,this._modelVersionId=-1,a&&this._editor.setSelections([this._editor.getSelection()])}prev(){this._session?.prev(),this._updateState()}next(){this._session?.next(),this._updateState()}isInSnippet(){return!!this._inSnippet.get()}};e.SnippetController2=g,e.SnippetController2=g=i=ke([ce(1,o.ILogService),ce(2,_.ILanguageFeaturesService),ce(3,n.IContextKeyService),ce(4,m.ILanguageConfigurationService)],g),(0,I.registerEditorContribution)(g.ID,g,4);const c=I.EditorCommand.bindToContribution(g.get);(0,I.registerEditorCommand)(new c({id:"jumpToNextSnippetPlaceholder",precondition:n.ContextKeyExpr.and(g.InSnippetMode,g.HasNextTabstop),handler:l=>l.next(),kbOpts:{weight:130,kbExpr:y.EditorContextKeys.textInputFocus,primary:2}})),(0,I.registerEditorCommand)(new c({id:"jumpToPrevSnippetPlaceholder",precondition:n.ContextKeyExpr.and(g.InSnippetMode,g.HasPrevTabstop),handler:l=>l.prev(),kbOpts:{weight:130,kbExpr:y.EditorContextKeys.textInputFocus,primary:1026}})),(0,I.registerEditorCommand)(new c({id:"leaveSnippet",precondition:g.InSnippetMode,handler:l=>l.cancel(!0),kbOpts:{weight:130,kbExpr:y.EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})),(0,I.registerEditorCommand)(new c({id:"acceptSnippet",precondition:g.InSnippetMode,handler:l=>l.finish()}))}),define(ne[860],se([1,0,13,67,102,8,2,21,11,19,75,9,4,23,104,113,27,36,204,715,246,205,221,24,7]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.VersionIdChangeReason=e.InlineCompletionsModel=void 0,e.getSecondaryEdits=S;let v=class extends y.Disposable{get isAcceptingPartially(){return this._isAcceptingPartially}constructor(M,A,P,N,O,F,x,W,V,q,H,z){super(),this.textModel=M,this.selectedSuggestItem=A,this._textModelVersionId=P,this._positions=N,this._debounceValue=O,this._suggestPreviewEnabled=F,this._suggestPreviewMode=x,this._inlineSuggestMode=W,this._enabled=V,this._instantiationService=q,this._commandService=H,this._languageConfigurationService=z,this._source=this._register(this._instantiationService.createInstance(a.InlineCompletionsSource,this.textModel,this._textModelVersionId,this._debounceValue)),this._isActive=(0,m.observableValue)(this,!1),this._forceUpdateExplicitlySignal=(0,m.observableSignal)(this),this._selectedInlineCompletionId=(0,m.observableValue)(this,void 0),this._primaryPosition=(0,m.derived)(this,j=>this._positions.read(j)[0]??new n.Position(1,1)),this._isAcceptingPartially=!1,this._preserveCurrentCompletionReasons=new Set([w.Redo,w.Undo,w.AcceptWord]),this._fetchInlineCompletionsPromise=(0,m.derivedHandleChanges)({owner:this,createEmptyChangeSummary:()=>({preserveCurrentCompletion:!1,inlineCompletionTriggerKind:g.InlineCompletionTriggerKind.Automatic}),handleChange:(j,Y)=>(j.didChange(this._textModelVersionId)&&this._preserveCurrentCompletionReasons.has(this._getReason(j.change))?Y.preserveCurrentCompletion=!0:j.didChange(this._forceUpdateExplicitlySignal)&&(Y.inlineCompletionTriggerKind=g.InlineCompletionTriggerKind.Explicit),!0)},(j,Y)=>{if(this._forceUpdateExplicitlySignal.read(j),!(this._enabled.read(j)&&this.selectedSuggestItem.read(j)||this._isActive.read(j))){this._source.cancelUpdate();return}this._textModelVersionId.read(j);const K=this._source.suggestWidgetInlineCompletions.get(),R=this.selectedSuggestItem.read(j);if(K&&!R){const pe=this._source.inlineCompletions.get();(0,m.transaction)(ae=>{(!pe||K.request.versionId>pe.request.versionId)&&this._source.inlineCompletions.set(K.clone(),ae),this._source.clearSuggestWidgetInlineCompletions(ae)})}const J=this._primaryPosition.read(j),ie={triggerKind:Y.inlineCompletionTriggerKind,selectedSuggestionInfo:R?.toSelectedSuggestionInfo()},ue=this.selectedInlineCompletion.get(),he=Y.preserveCurrentCompletion||ue?.forwardStable?ue:void 0;return this._source.fetch(J,ie,he)}),this._filteredInlineCompletionItems=(0,m.derivedOpts)({owner:this,equalsFn:(0,I.itemsEquals)()},j=>{const Y=this._source.inlineCompletions.read(j);if(!Y)return[];const G=this._primaryPosition.read(j);return Y.inlineCompletions.filter(R=>R.isVisible(this.textModel,G,j))}),this.selectedInlineCompletionIndex=(0,m.derived)(this,j=>{const Y=this._selectedInlineCompletionId.read(j),G=this._filteredInlineCompletionItems.read(j),K=this._selectedInlineCompletionId===void 0?-1:G.findIndex(R=>R.semanticId===Y);return K===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):K}),this.selectedInlineCompletion=(0,m.derived)(this,j=>{const Y=this._filteredInlineCompletionItems.read(j),G=this.selectedInlineCompletionIndex.read(j);return Y[G]}),this.activeCommands=(0,m.derivedOpts)({owner:this,equalsFn:(0,I.itemsEquals)()},j=>this.selectedInlineCompletion.read(j)?.inlineCompletion.source.inlineCompletions.commands??[]),this.lastTriggerKind=this._source.inlineCompletions.map(this,j=>j?.request.context.triggerKind),this.inlineCompletionsCount=(0,m.derived)(this,j=>{if(this.lastTriggerKind.read(j)===g.InlineCompletionTriggerKind.Explicit)return this._filteredInlineCompletionItems.read(j).length}),this.state=(0,m.derivedOpts)({owner:this,equalsFn:(j,Y)=>!j||!Y?j===Y:(0,l.ghostTextsOrReplacementsEqual)(j.ghostTexts,Y.ghostTexts)&&j.inlineCompletion===Y.inlineCompletion&&j.suggestItem===Y.suggestItem},j=>{const Y=this.textModel,G=this.selectedSuggestItem.read(j);if(G){const K=(0,r.singleTextRemoveCommonPrefix)(G.toSingleTextEdit(),Y),R=this._computeAugmentation(K,j);if(!this._suggestPreviewEnabled.read(j)&&!R)return;const ie=R?.edit??K,ue=R?R.edit.text.length-K.text.length:0,he=this._suggestPreviewMode.read(j),pe=this._positions.read(j),ae=[ie,...S(this.textModel,pe,ie)],ee=ae.map((ge,X)=>(0,r.computeGhostText)(ge,Y,he,pe[X],ue)).filter(b.isDefined),de=ee[0]??new l.GhostText(ie.range.endLineNumber,[]);return{edits:ae,primaryGhostText:de,ghostTexts:ee,inlineCompletion:R?.completion,suggestItem:G}}else{if(!this._isActive.read(j))return;const K=this.selectedInlineCompletion.read(j);if(!K)return;const R=K.toSingleTextEdit(j),J=this._inlineSuggestMode.read(j),ie=this._positions.read(j),ue=[R,...S(this.textModel,ie,R)],he=ue.map((pe,ae)=>(0,r.computeGhostText)(pe,Y,J,ie[ae],0)).filter(b.isDefined);return he[0]?{edits:ue,primaryGhostText:he[0],ghostTexts:he,inlineCompletion:K,suggestItem:void 0}:void 0}}),this.ghostTexts=(0,m.derivedOpts)({owner:this,equalsFn:l.ghostTextsOrReplacementsEqual},j=>{const Y=this.state.read(j);if(Y)return Y.ghostTexts}),this.primaryGhostText=(0,m.derivedOpts)({owner:this,equalsFn:l.ghostTextOrReplacementEquals},j=>{const Y=this.state.read(j);if(Y)return Y?.primaryGhostText}),this._register((0,m.recomputeInitiallyAndOnChange)(this._fetchInlineCompletionsPromise));let U;this._register((0,m.autorun)(j=>{const G=this.state.read(j)?.inlineCompletion;if(G?.semanticId!==U?.semanticId&&(U=G,G)){const K=G.inlineCompletion,R=K.source;R.provider.handleItemDidShow?.(R.inlineCompletions,K.sourceInlineCompletion,K.insertText)}}))}_getReason(M){return M?.isUndoing?w.Undo:M?.isRedoing?w.Redo:this.isAcceptingPartially?w.AcceptWord:w.Other}async trigger(M){this._isActive.set(!0,M),await this._fetchInlineCompletionsPromise.get()}async triggerExplicitly(M){(0,m.subtransaction)(M,A=>{this._isActive.set(!0,A),this._forceUpdateExplicitlySignal.trigger(A)}),await this._fetchInlineCompletionsPromise.get()}stop(M){(0,m.subtransaction)(M,A=>{this._isActive.set(!1,A),this._source.clear(A)})}_computeAugmentation(M,A){const P=this.textModel,N=this._source.suggestWidgetInlineCompletions.read(A),O=N?N.inlineCompletions:[this.selectedInlineCompletion.read(A)].filter(b.isDefined);return(0,k.mapFindFirst)(O,x=>{let W=x.toSingleTextEdit(A);return W=(0,r.singleTextRemoveCommonPrefix)(W,P,o.Range.fromPositions(W.range.getStartPosition(),M.range.getEndPosition())),(0,r.singleTextEditAugments)(W,M)?{completion:x,edit:W}:void 0})}async _deltaSelectedInlineCompletionIndex(M){await this.triggerExplicitly();const A=this._filteredInlineCompletionItems.get()||[];if(A.length>0){const P=(this.selectedInlineCompletionIndex.get()+M+A.length)%A.length;this._selectedInlineCompletionId.set(A[P].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(M){if(M.getModel()!==this.textModel)throw new E.BugIndicatingError;const A=this.state.get();if(!A||A.primaryGhostText.isEmpty()||!A.inlineCompletion)return;const P=A.inlineCompletion.toInlineCompletion(void 0);if(P.command&&P.source.addRef(),M.pushUndoStop(),P.snippetInfo)M.executeEdits("inlineSuggestion.accept",[p.EditOperation.replace(P.range,""),...P.additionalTextEdits]),M.setPosition(P.snippetInfo.range.getStartPosition(),"inlineCompletionAccept"),C.SnippetController2.get(M)?.insert(P.snippetInfo.snippet,{undoStopBefore:!1});else{const N=A.edits,O=D(N).map(F=>t.Selection.fromPositions(F));M.executeEdits("inlineSuggestion.accept",[...N.map(F=>p.EditOperation.replace(F.range,F.text)),...P.additionalTextEdits]),M.setSelections(O,"inlineCompletionAccept")}this.stop(),P.command&&(await this._commandService.executeCommand(P.command.id,...P.command.arguments||[]).then(void 0,E.onUnexpectedExternalError),P.source.removeRef())}async acceptNextWord(M){await this._acceptNext(M,(A,P)=>{const N=this.textModel.getLanguageIdAtPosition(A.lineNumber,A.column),O=this._languageConfigurationService.getLanguageConfiguration(N),F=new RegExp(O.wordDefinition.source,O.wordDefinition.flags.replace("g","")),x=P.match(F);let W=0;x&&x.index!==void 0?x.index===0?W=x[0].length:W=x.index:W=P.length;const q=/\s+/g.exec(P);return q&&q.index!==void 0&&q.index+q[0].length{const N=P.match(/\n/);return N&&N.index!==void 0?N.index+1:P.length},1)}async _acceptNext(M,A,P){if(M.getModel()!==this.textModel)throw new E.BugIndicatingError;const N=this.state.get();if(!N||N.primaryGhostText.isEmpty()||!N.inlineCompletion)return;const O=N.primaryGhostText,F=N.inlineCompletion.toInlineCompletion(void 0);if(F.snippetInfo||F.filterText!==F.insertText){await this.accept(M);return}const x=O.parts[0],W=new n.Position(O.lineNumber,x.column),V=x.text,q=A(W,V);if(q===V.length&&O.parts.length===1){this.accept(M);return}const H=V.substring(0,q),z=this._positions.get(),U=z[0];F.source.addRef();try{this._isAcceptingPartially=!0;try{M.pushUndoStop();const j=o.Range.fromPositions(U,W),Y=M.getModel().getValueInRange(j)+H,G=new i.SingleTextEdit(j,Y),K=[G,...S(this.textModel,z,G)],R=D(K).map(J=>t.Selection.fromPositions(J));M.executeEdits("inlineSuggestion.accept",K.map(J=>p.EditOperation.replace(J.range,J.text))),M.setSelections(R,"inlineCompletionPartialAccept"),M.revealPositionInCenterIfOutsideViewport(M.getPosition(),1)}finally{this._isAcceptingPartially=!1}if(F.source.provider.handlePartialAccept){const j=o.Range.fromPositions(F.range.getStartPosition(),s.TextLength.ofText(H).addToPosition(W)),Y=M.getModel().getValueInRange(j,1);F.source.provider.handlePartialAccept(F.source.inlineCompletions,F.sourceInlineCompletion,Y.length,{kind:P})}}finally{F.source.removeRef()}}handleSuggestAccepted(M){const A=(0,r.singleTextRemoveCommonPrefix)(M.toSingleTextEdit(),this.textModel),P=this._computeAugmentation(A,void 0);if(!P)return;const N=P.completion.inlineCompletion;N.source.provider.handlePartialAccept?.(N.source.inlineCompletions,N.sourceInlineCompletion,A.text.length,{kind:2})}};e.InlineCompletionsModel=v,e.InlineCompletionsModel=v=ke([ce(9,h.IInstantiationService),ce(10,f.ICommandService),ce(11,c.ILanguageConfigurationService)],v);var w;(function(T){T[T.Undo=0]="Undo",T[T.Redo=1]="Redo",T[T.AcceptWord=2]="AcceptWord",T[T.Other=3]="Other"})(w||(e.VersionIdChangeReason=w={}));function S(T,M,A){if(M.length===1)return[];const P=M[0],N=M.slice(1),O=A.range.getStartPosition(),F=A.range.getEndPosition(),x=T.getValueInRange(o.Range.fromPositions(P,F)),W=(0,u.subtractPositions)(P,O);if(W.lineNumber<1)return(0,E.onUnexpectedError)(new E.BugIndicatingError(`positionWithinTextEdit line number should be bigger than 0. + Invalid subtraction between ${P.toString()} and ${O.toString()}`)),[];const V=L(A.text,W);return N.map(q=>{const H=(0,u.addPositions)((0,u.subtractPositions)(q,O),F),z=T.getValueInRange(o.Range.fromPositions(q,H)),U=(0,_.commonPrefixLength)(x,z),j=o.Range.fromPositions(q,q.delta(0,U));return new i.SingleTextEdit(j,V)})}function L(T,M){let A="";const P=(0,_.splitLinesIncludeSeparators)(T);for(let N=M.lineNumber-1;NO.range,o.Range.compareRangesUsingStarts)),P=new i.TextEdit(M.apply(T)).getNewRanges();return M.inverse().apply(P).map(O=>O.getEndPosition())}}),define(ne[437],se([1,0,14,18,8,6,2,11,23,100,343,117,28,12,62,63,342,155,17,82,19,269,221,271]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f){"use strict";var h;Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestModel=e.LineContext=void 0;class v{static shouldAutoTrigger(T){if(!T.hasModel())return!1;const M=T.getModel(),A=T.getPosition();M.tokenization.tokenizeIfCheap(A.lineNumber);const P=M.getWordAtPosition(A);return!(!P||P.endColumn!==A.column&&P.startColumn+1!==A.column||!isNaN(Number(P.word)))}constructor(T,M,A){this.leadingLineContent=T.getLineContent(M.lineNumber).substr(0,M.column-1),this.leadingWord=T.getWordUntilPosition(M),this.lineNumber=M.lineNumber,this.column=M.column,this.triggerOptions=A}}e.LineContext=v;function w(D,T,M){if(!T.getContextKeyValue(u.InlineCompletionContextKeys.inlineSuggestionVisible.key))return!0;const A=T.getContextKeyValue(u.InlineCompletionContextKeys.suppressSuggestions.key);return A!==void 0?!A:!D.getOption(62).suppressSuggestions}function S(D,T,M){if(!T.getContextKeyValue("inlineSuggestionVisible"))return!0;const A=T.getContextKeyValue(u.InlineCompletionContextKeys.suppressSuggestions.key);return A!==void 0?!A:!D.getOption(62).suppressSuggestions}let L=h=class{constructor(T,M,A,P,N,O,F,x,W){this._editor=T,this._editorWorkerService=M,this._clipboardService=A,this._telemetryService=P,this._logService=N,this._contextKeyService=O,this._configurationService=F,this._languageFeaturesService=x,this._envService=W,this._toDispose=new y.DisposableStore,this._triggerCharacterListener=new y.DisposableStore,this._triggerQuickSuggest=new d.TimeoutTimer,this._triggerState=void 0,this._completionDisposables=new y.DisposableStore,this._onDidCancel=new E.Emitter,this._onDidTrigger=new E.Emitter,this._onDidSuggest=new E.Emitter,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._telemetryGate=0,this._currentSelection=this._editor.getSelection()||new _.Selection(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeModelLanguage(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeConfiguration(()=>{this._updateTriggerCharacters()})),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()}));let V=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{V=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{V=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection(q=>{V||this._onCursorChange(q)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{!V&&this._triggerState!==void 0&&this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){(0,y.dispose)(this._triggerCharacterListener),(0,y.dispose)([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(92)||!this._editor.hasModel()||!this._editor.getOption(122))return;const T=new Map;for(const A of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(const P of A.triggerCharacters||[]){let N=T.get(P);if(!N){N=new Set;const O=(0,c.getSnippetSuggestSupport)();O&&N.add(O),T.set(P,N)}N.add(A)}const M=A=>{if(!S(this._editor,this._contextKeyService,this._configurationService)||v.shouldAutoTrigger(this._editor))return;if(!A){const O=this._editor.getPosition();A=this._editor.getModel().getLineContent(O.lineNumber).substr(0,O.column-1)}let P="";(0,m.isLowSurrogate)(A.charCodeAt(A.length-1))?(0,m.isHighSurrogate)(A.charCodeAt(A.length-2))&&(P=A.substr(A.length-2)):P=A.charAt(A.length-1);const N=T.get(P);if(N){const O=new Map;if(this._completionModel)for(const[F,x]of this._completionModel.getItemsByProvider())N.has(F)||O.set(F,x);this.trigger({auto:!0,triggerKind:1,triggerCharacter:P,retrigger:!!this._completionModel,clipboardText:this._completionModel?.clipboardText,completionOptions:{providerFilter:N,providerItemsToReuse:O}})}};this._triggerCharacterListener.add(this._editor.onDidType(M)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>M()))}get state(){return this._triggerState?this._triggerState.auto?2:1:0}cancel(T=!1){this._triggerState!==void 0&&(this._triggerQuickSuggest.cancel(),this._requestToken?.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:T}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){this._triggerState!==void 0&&(!this._editor.hasModel()||!this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.cancel():this.trigger({auto:this._triggerState.auto,retrigger:!0}))}_onCursorChange(T){if(!this._editor.hasModel())return;const M=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!T.selection.isEmpty()||T.reason!==0&&T.reason!==3||T.source!=="keyboard"&&T.source!=="deleteLeft"){this.cancel();return}this._triggerState===void 0&&T.reason===0?(M.containsRange(this._currentSelection)||M.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():this._triggerState!==void 0&&T.reason===3&&this._refilterCompletionItems()}_onCompositionEnd(){this._triggerState===void 0?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){c.QuickSuggestionsOptions.isAllOff(this._editor.getOption(90))||this._editor.getOption(119).snippetsPreventQuickSuggestions&&C.SnippetController2.get(this._editor)?.isInSnippet()||(this.cancel(),this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0||!v.shouldAutoTrigger(this._editor)||!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;const T=this._editor.getModel(),M=this._editor.getPosition(),A=this._editor.getOption(90);if(!c.QuickSuggestionsOptions.isAllOff(A)){if(!c.QuickSuggestionsOptions.isAllOn(A)){T.tokenization.tokenizeIfCheap(M.lineNumber);const P=T.tokenization.getLineTokens(M.lineNumber),N=P.getStandardTokenType(P.findTokenIndexAtOffset(Math.max(M.column-1-1,0)));if(c.QuickSuggestionsOptions.valueFor(A,N)!=="on")return}w(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(T)&&this.trigger({auto:!0})}},this._editor.getOption(91)))}_refilterCompletionItems(){(0,r.assertType)(this._editor.hasModel()),(0,r.assertType)(this._triggerState!==void 0);const T=this._editor.getModel(),M=this._editor.getPosition(),A=new v(T,M,{...this._triggerState,refilter:!0});this._onNewContext(A)}trigger(T){if(!this._editor.hasModel())return;const M=this._editor.getModel(),A=new v(M,this._editor.getPosition(),T);this.cancel(T.retrigger),this._triggerState=T,this._onDidTrigger.fire({auto:T.auto,shy:T.shy??!1,position:this._editor.getPosition()}),this._context=A;let P={triggerKind:T.triggerKind??0};T.triggerCharacter&&(P={triggerKind:1,triggerCharacter:T.triggerCharacter}),this._requestToken=new k.CancellationTokenSource;const N=this._editor.getOption(113);let O=1;switch(N){case"top":O=0;break;case"bottom":O=2;break}const{itemKind:F,showDeprecated:x}=h.createSuggestFilter(this._editor),W=new c.CompletionOptions(O,T.completionOptions?.kindFilter??F,T.completionOptions?.providerFilter,T.completionOptions?.providerItemsToReuse,x),V=p.WordDistance.create(this._editorWorkerService,this._editor),q=(0,c.provideSuggestionItems)(this._languageFeaturesService.completionProvider,M,this._editor.getPosition(),W,P,this._requestToken.token);Promise.all([q,V]).then(async([H,z])=>{if(this._requestToken?.dispose(),!this._editor.hasModel())return;let U=T?.clipboardText;if(!U&&H.needsClipboard&&(U=await this._clipboardService.readText()),this._triggerState===void 0)return;const j=this._editor.getModel(),Y=new v(j,this._editor.getPosition(),T),G={...a.FuzzyScoreOptions.default,firstMatchCanBeWeak:!this._editor.getOption(119).matchOnWordStartOnly};if(this._completionModel=new g.CompletionModel(H.items,this._context.column,{leadingLineContent:Y.leadingLineContent,characterCountDelta:Y.column-this._context.column},z,this._editor.getOption(119),this._editor.getOption(113),G,U),this._completionDisposables.add(H.disposable),this._onNewContext(Y),this._reportDurationsTelemetry(H.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(const K of H.items)K.isInvalid&&this._logService.warn(`[suggest] did IGNORE invalid completion item from ${K.provider._debugDisplayName}`,K.completion)}).catch(I.onUnexpectedError)}_reportDurationsTelemetry(T){this._telemetryGate++%230===0&&setTimeout(()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(T)}),this._logService.debug("suggest.durations.json",T)})}static createSuggestFilter(T){const M=new Set;T.getOption(113)==="none"&&M.add(27);const P=T.getOption(119);return P.showMethods||M.add(0),P.showFunctions||M.add(1),P.showConstructors||M.add(2),P.showFields||M.add(3),P.showVariables||M.add(4),P.showClasses||M.add(5),P.showStructs||M.add(6),P.showInterfaces||M.add(7),P.showModules||M.add(8),P.showProperties||M.add(9),P.showEvents||M.add(10),P.showOperators||M.add(11),P.showUnits||M.add(12),P.showValues||M.add(13),P.showConstants||M.add(14),P.showEnums||M.add(15),P.showEnumMembers||M.add(16),P.showKeywords||M.add(17),P.showWords||M.add(18),P.showColors||M.add(19),P.showFiles||M.add(20),P.showReferences||M.add(21),P.showColors||M.add(22),P.showFolders||M.add(23),P.showTypeParameters||M.add(24),P.showSnippets||M.add(27),P.showUsers||M.add(25),P.showIssues||M.add(26),{itemKind:M,showDeprecated:P.showDeprecated}}_onNewContext(T){if(this._context){if(T.lineNumber!==this._context.lineNumber){this.cancel();return}if((0,m.getLeadingWhitespace)(T.leadingLineContent)!==(0,m.getLeadingWhitespace)(this._context.leadingLineContent)){this.cancel();return}if(T.columnthis._context.leadingWord.startColumn){if(v.shouldAutoTrigger(this._editor)&&this._context){const A=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:A}})}return}if(T.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&T.leadingWord.word.length!==0){const M=new Map,A=new Set;for(const[P,N]of this._completionModel.getItemsByProvider())N.length>0&&N[0].container.incomplete?A.add(P):M.set(P,N);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:A,providerItemsToReuse:M}})}else{const M=this._completionModel.lineContext;let A=!1;if(this._completionModel.lineContext={leadingLineContent:T.leadingLineContent,characterCountDelta:T.column-this._context.column},this._completionModel.items.length===0){const P=v.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(P&&this._context.leadingWord.endColumn0,A&&T.leadingWord.word.length===0){this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:T.triggerOptions,isFrozen:A})}}}}};e.SuggestModel=L,e.SuggestModel=L=h=ke([ce(1,b.IEditorWorkerService),ce(2,n.IClipboardService),ce(3,s.ITelemetryService),ce(4,i.ILogService),ce(5,t.IContextKeyService),ce(6,o.IConfigurationService),ce(7,l.ILanguageFeaturesService),ce(8,f.IEnvironmentService)],L)}),define(ne[294],se([1,0,46,13,18,8,6,140,2,16,54,19,143,15,75,9,4,20,221,135,405,685,3,24,12,7,62,155,684,622,437,623,839,63,48,129,5,35]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M,A,P,N,O,F,x){"use strict";var W;Object.defineProperty(e,"__esModule",{value:!0}),e.TriggerSuggestAction=e.SuggestController=void 0;const V=!1;class q{constructor(K,R){if(this._model=K,this._position=R,this._decorationOptions=x.ModelDecorationOptions.register({description:"suggest-line-suffix",stickiness:1}),K.getLineMaxColumn(R.lineNumber)!==R.column){const ie=K.getOffsetAt(R),ue=K.getPositionAt(ie+1);K.changeDecorations(he=>{this._marker&&he.removeDecoration(this._marker),this._marker=he.addDecoration(g.Range.fromPositions(R,ue),this._decorationOptions)})}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.changeDecorations(K=>{K.removeDecoration(this._marker),this._marker=void 0})}delta(K){if(this._model.isDisposed()||this._position.lineNumber!==K.lineNumber)return 0;if(this._marker){const R=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(R.getStartPosition())-this._model.getOffsetAt(K)}else return this._model.getLineMaxColumn(K.lineNumber)-K.column}}let H=class{static{W=this}static{this.ID="editor.contrib.suggestController"}static get(K){return K.getContribution(W.ID)}constructor(K,R,J,ie,ue,he,pe){this._memoryService=R,this._commandService=J,this._contextKeyService=ie,this._instantiationService=ue,this._logService=he,this._telemetryService=pe,this._lineSuffix=new _.MutableDisposable,this._toDispose=new _.DisposableStore,this._selectors=new z(ge=>ge.priority),this._onWillInsertSuggestItem=new y.Emitter,this.onWillInsertSuggestItem=this._onWillInsertSuggestItem.event,this.editor=K,this.model=ue.createInstance(T.SuggestModel,this.editor),this._selectors.register({priority:0,select:(ge,X,B)=>this._memoryService.select(ge,X,B)});const ae=S.Context.InsertMode.bindTo(ie);ae.set(K.getOption(119).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>ae.set(K.getOption(119).insertMode))),this.widget=this._toDispose.add(new F.WindowIdleValue((0,F.getWindow)(K.getDomNode()),()=>{const ge=this._instantiationService.createInstance(A.SuggestWidget,this.editor);this._toDispose.add(ge),this._toDispose.add(ge.onDidSelect(Z=>this._insertSuggestion(Z,0),this));const X=new D.CommitCharacterController(this.editor,ge,this.model,Z=>this._insertSuggestion(Z,2));this._toDispose.add(X);const B=S.Context.MakesTextEdit.bindTo(this._contextKeyService),$=S.Context.HasInsertAndReplaceRange.bindTo(this._contextKeyService),Q=S.Context.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add((0,_.toDisposable)(()=>{B.reset(),$.reset(),Q.reset()})),this._toDispose.add(ge.onDidFocus(({item:Z})=>{const te=this.editor.getPosition(),re=Z.editStart.column,le=te.column;let me=!0;this.editor.getOption(1)==="smart"&&this.model.state===2&&!Z.completion.additionalTextEdits&&!(Z.completion.insertTextRules&4)&&le-re===Z.completion.insertText.length&&(me=this.editor.getModel().getValueInRange({startLineNumber:te.lineNumber,startColumn:re,endLineNumber:te.lineNumber,endColumn:le})!==Z.completion.insertText),B.set(me),$.set(!s.Position.equals(Z.editInsertEnd,Z.editReplaceEnd)),Q.set(!!Z.provider.resolveCompletionItem||!!Z.completion.documentation||Z.completion.detail!==Z.completion.label)})),this._toDispose.add(ge.onDetailsKeyDown(Z=>{if(Z.toKeyCodeChord().equals(new m.KeyCodeChord(!0,!1,!1,!1,33))||b.isMacintosh&&Z.toKeyCodeChord().equals(new m.KeyCodeChord(!1,!1,!1,!0,33))){Z.stopPropagation();return}Z.toKeyCodeChord().isModifierKey()||this.editor.focus()})),ge})),this._overtypingCapturer=this._toDispose.add(new F.WindowIdleValue((0,F.getWindow)(K.getDomNode()),()=>this._toDispose.add(new M.OvertypingCapturer(this.editor,this.model)))),this._alternatives=this._toDispose.add(new F.WindowIdleValue((0,F.getWindow)(K.getDomNode()),()=>this._toDispose.add(new L.SuggestAlternatives(this.editor,this._contextKeyService)))),this._toDispose.add(ue.createInstance(u.WordContextKey,K)),this._toDispose.add(this.model.onDidTrigger(ge=>{this.widget.value.showTriggered(ge.auto,ge.shy?250:50),this._lineSuffix.value=new q(this.editor.getModel(),ge.position)})),this._toDispose.add(this.model.onDidSuggest(ge=>{if(ge.triggerOptions.shy)return;let X=-1;for(const $ of this._selectors.itemsOrderedByPriorityDesc)if(X=$.select(this.editor.getModel(),this.editor.getPosition(),ge.completionModel.items),X!==-1)break;if(X===-1&&(X=0),this.model.state===0)return;let B=!1;if(ge.triggerOptions.auto){const $=this.editor.getOption(119);$.selectionMode==="never"||$.selectionMode==="always"?B=$.selectionMode==="never":$.selectionMode==="whenTriggerCharacter"?B=ge.triggerOptions.triggerKind!==1:$.selectionMode==="whenQuickSuggestion"&&(B=ge.triggerOptions.triggerKind===1&&!ge.triggerOptions.refilter)}this.widget.value.showSuggestions(ge.completionModel,X,ge.isFrozen,ge.triggerOptions.auto,B)})),this._toDispose.add(this.model.onDidCancel(ge=>{ge.retrigger||this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{V||(this.model.cancel(),this.model.clear())}));const ee=S.Context.AcceptSuggestionsOnEnter.bindTo(ie),de=()=>{const ge=this.editor.getOption(1);ee.set(ge==="on"||ge==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>de())),de()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(K,R){if(!K||!K.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;const J=l.SnippetController2.get(this.editor);if(!J)return;this._onWillInsertSuggestItem.fire({item:K.item});const ie=this.editor.getModel(),ue=ie.getAlternativeVersionId(),{item:he}=K,pe=[],ae=new I.CancellationTokenSource;R&1||this.editor.pushUndoStop();const ee=this.getOverwriteInfo(he,!!(R&8));this._memoryService.memorize(ie,this.editor.getPosition(),he);const de=he.isResolved;let ge=-1,X=-1;if(Array.isArray(he.completion.additionalTextEdits)){this.model.cancel();const $=o.StableEditorScrollState.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",he.completion.additionalTextEdits.map(Q=>{let Z=g.Range.lift(Q.range);if(Z.startLineNumber===he.position.lineNumber&&Z.startColumn>he.position.column){const te=this.editor.getPosition().column-he.position.column,re=te,le=g.Range.spansMultipleLines(Z)?0:te;Z=new g.Range(Z.startLineNumber,Z.startColumn+re,Z.endLineNumber,Z.endColumn+le)}return i.EditOperation.replaceMove(Z,Q.text)})),$.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!de){const $=new p.StopWatch;let Q;const Z=ie.onDidChangeContent(me=>{if(me.isFlush){ae.cancel(),Z.dispose();return}for(const Ce of me.changes){const ye=g.Range.getEndPosition(Ce.range);(!Q||s.Position.isBefore(ye,Q))&&(Q=ye)}}),te=R;R|=2;let re=!1;const le=this.editor.onWillType(()=>{le.dispose(),re=!0,te&2||this.editor.pushUndoStop()});pe.push(he.resolve(ae.token).then(()=>{if(!he.completion.additionalTextEdits||ae.token.isCancellationRequested)return;if(Q&&he.completion.additionalTextEdits.some(Ce=>s.Position.isBefore(Q,g.Range.getStartPosition(Ce.range))))return!1;re&&this.editor.pushUndoStop();const me=o.StableEditorScrollState.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",he.completion.additionalTextEdits.map(Ce=>i.EditOperation.replaceMove(g.Range.lift(Ce.range),Ce.text))),me.restoreRelativeVerticalPositionOfCursor(this.editor),(re||!(te&2))&&this.editor.pushUndoStop(),!0}).then(me=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",$.elapsed(),me),X=me===!0?1:me===!1?0:-2}).finally(()=>{Z.dispose(),le.dispose()}))}let{insertText:B}=he.completion;if(he.completion.insertTextRules&4||(B=a.SnippetParser.escape(B)),this.model.cancel(),J.insert(B,{overwriteBefore:ee.overwriteBefore,overwriteAfter:ee.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(he.completion.insertTextRules&1),clipboardText:K.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),R&2||this.editor.pushUndoStop(),he.completion.command)if(he.completion.command.id===U.id)this.model.trigger({auto:!0,retrigger:!0});else{const $=new p.StopWatch;pe.push(this._commandService.executeCommand(he.completion.command.id,...he.completion.command.arguments?[...he.completion.command.arguments]:[]).catch(Q=>{he.completion.extensionId?(0,E.onUnexpectedExternalError)(Q):(0,E.onUnexpectedError)(Q)}).finally(()=>{ge=$.elapsed()}))}R&4&&this._alternatives.value.set(K,$=>{for(ae.cancel();ie.canUndo();){ue!==ie.getAlternativeVersionId()&&ie.undo(),this._insertSuggestion($,3|(R&8?8:0));break}}),this._alertCompletionItem(he),Promise.all(pe).finally(()=>{this._reportSuggestionAcceptedTelemetry(he,ie,de,ge,X,K.index,K.model.items),this.model.clear(),ae.dispose()})}_reportSuggestionAcceptedTelemetry(K,R,J,ie,ue,he,pe){if(Math.floor(Math.random()*100)===0)return;const ae=new Map;for(let X=0;X1?ee[0]:-1;this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:K.extensionId?.value??"unknown",providerId:K.provider._debugDisplayName??"unknown",kind:K.completion.kind,basenameHash:(0,O.hash)((0,N.basename)(R.uri)).toString(16),languageId:R.getLanguageId(),fileExtension:(0,N.extname)(R.uri),resolveInfo:K.provider.resolveCompletionItem?J?1:0:-1,resolveDuration:K.resolveDuration,commandDuration:ie,additionalEditsAsync:ue,index:he,firstIndex:ge})}getOverwriteInfo(K,R){(0,n.assertType)(this.editor.hasModel());let J=this.editor.getOption(119).insertMode==="replace";R&&(J=!J);const ie=K.position.column-K.editStart.column,ue=(J?K.editReplaceEnd.column:K.editInsertEnd.column)-K.position.column,he=this.editor.getPosition().column-K.position.column,pe=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:ie+he,overwriteAfter:ue+pe}}_alertCompletionItem(K){if((0,k.isNonEmptyArray)(K.completion.additionalTextEdits)){const R=C.localize(1318,"Accepting '{0}' made {1} additional edits",K.textLabel,K.completion.additionalTextEdits.length);(0,d.alert)(R)}}triggerSuggest(K,R,J){this.editor.hasModel()&&(this.model.trigger({auto:R??!1,completionOptions:{providerFilter:K,kindFilter:J?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(K){if(!this.editor.hasModel())return;const R=this.editor.getPosition(),J=()=>{R.equals(this.editor.getPosition())&&this._commandService.executeCommand(K.fallback)},ie=ue=>{if(ue.completion.insertTextRules&4||ue.completion.additionalTextEdits)return!0;const he=this.editor.getPosition(),pe=ue.editStart.column,ae=he.column;return ae-pe!==ue.completion.insertText.length?!0:this.editor.getModel().getValueInRange({startLineNumber:he.lineNumber,startColumn:pe,endLineNumber:he.lineNumber,endColumn:ae})!==ue.completion.insertText};y.Event.once(this.model.onDidTrigger)(ue=>{const he=[];y.Event.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{(0,_.dispose)(he),J()},void 0,he),this.model.onDidSuggest(({completionModel:pe})=>{if((0,_.dispose)(he),pe.items.length===0){J();return}const ae=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),pe.items),ee=pe.items[ae];if(!ie(ee)){J();return}this.editor.pushUndoStop(),this._insertSuggestion({index:ae,item:ee,model:pe},7)},void 0,he)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(R,0),this.editor.focus()}acceptSelectedSuggestion(K,R){const J=this.widget.value.getFocusedItem();let ie=0;K&&(ie|=4),R&&(ie|=8),this._insertSuggestion(J,ie)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.value.forceRenderingAbove()}stopForceRenderingAbove(){this.widget.isInitialized&&this.widget.value.stopForceRenderingAbove()}registerSelector(K){return this._selectors.register(K)}};e.SuggestController=H,e.SuggestController=H=W=ke([ce(1,r.ISuggestMemoryService),ce(2,f.ICommandService),ce(3,h.IContextKeyService),ce(4,v.IInstantiationService),ce(5,w.ILogService),ce(6,P.ITelemetryService)],H);class z{constructor(K){this.prioritySelector=K,this._items=new Array}register(K){if(this._items.indexOf(K)!==-1)throw new Error("Value is already registered");return this._items.push(K),this._items.sort((R,J)=>this.prioritySelector(J)-this.prioritySelector(R)),{dispose:()=>{const R=this._items.indexOf(K);R>=0&&this._items.splice(R,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class U extends t.EditorAction{static{this.id="editor.action.triggerSuggest"}constructor(){super({id:U.id,label:C.localize(1319,"Trigger Suggest"),alias:"Trigger Suggest",precondition:h.ContextKeyExpr.and(c.EditorContextKeys.writable,c.EditorContextKeys.hasCompletionItemProvider,S.Context.Visible.toNegated()),kbOpts:{kbExpr:c.EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(K,R,J){const ie=H.get(R);if(!ie)return;let ue;J&&typeof J=="object"&&J.auto===!0&&(ue=!0),ie.triggerSuggest(void 0,ue,void 0)}}e.TriggerSuggestAction=U,(0,t.registerEditorContribution)(H.ID,H,2),(0,t.registerEditorAction)(U);const j=190,Y=t.EditorCommand.bindToContribution(H.get);(0,t.registerEditorCommand)(new Y({id:"acceptSelectedSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,S.Context.HasFocusedSuggestion),handler(G){G.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:h.ContextKeyExpr.and(S.Context.Visible,c.EditorContextKeys.textInputFocus),weight:j},{primary:3,kbExpr:h.ContextKeyExpr.and(S.Context.Visible,c.EditorContextKeys.textInputFocus,S.Context.AcceptSuggestionsOnEnter,S.Context.MakesTextEdit),weight:j}],menuOpts:[{menuId:S.suggestWidgetStatusbarMenu,title:C.localize(1320,"Insert"),group:"left",order:1,when:S.Context.HasInsertAndReplaceRange.toNegated()},{menuId:S.suggestWidgetStatusbarMenu,title:C.localize(1321,"Insert"),group:"left",order:1,when:h.ContextKeyExpr.and(S.Context.HasInsertAndReplaceRange,S.Context.InsertMode.isEqualTo("insert"))},{menuId:S.suggestWidgetStatusbarMenu,title:C.localize(1322,"Replace"),group:"left",order:1,when:h.ContextKeyExpr.and(S.Context.HasInsertAndReplaceRange,S.Context.InsertMode.isEqualTo("replace"))}]})),(0,t.registerEditorCommand)(new Y({id:"acceptAlternativeSelectedSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,c.EditorContextKeys.textInputFocus,S.Context.HasFocusedSuggestion),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:1027,secondary:[1026]},handler(G){G.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:S.suggestWidgetStatusbarMenu,group:"left",order:2,when:h.ContextKeyExpr.and(S.Context.HasInsertAndReplaceRange,S.Context.InsertMode.isEqualTo("insert")),title:C.localize(1323,"Replace")},{menuId:S.suggestWidgetStatusbarMenu,group:"left",order:2,when:h.ContextKeyExpr.and(S.Context.HasInsertAndReplaceRange,S.Context.InsertMode.isEqualTo("replace")),title:C.localize(1324,"Insert")}]})),f.CommandsRegistry.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion"),(0,t.registerEditorCommand)(new Y({id:"hideSuggestWidget",precondition:S.Context.Visible,handler:G=>G.cancelSuggestWidget(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}})),(0,t.registerEditorCommand)(new Y({id:"selectNextSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,h.ContextKeyExpr.or(S.Context.MultipleSuggestions,S.Context.HasFocusedSuggestion.negate())),handler:G=>G.selectNextSuggestion(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),(0,t.registerEditorCommand)(new Y({id:"selectNextPageSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,h.ContextKeyExpr.or(S.Context.MultipleSuggestions,S.Context.HasFocusedSuggestion.negate())),handler:G=>G.selectNextPageSuggestion(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:12,secondary:[2060]}})),(0,t.registerEditorCommand)(new Y({id:"selectLastSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,h.ContextKeyExpr.or(S.Context.MultipleSuggestions,S.Context.HasFocusedSuggestion.negate())),handler:G=>G.selectLastSuggestion()})),(0,t.registerEditorCommand)(new Y({id:"selectPrevSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,h.ContextKeyExpr.or(S.Context.MultipleSuggestions,S.Context.HasFocusedSuggestion.negate())),handler:G=>G.selectPrevSuggestion(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),(0,t.registerEditorCommand)(new Y({id:"selectPrevPageSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,h.ContextKeyExpr.or(S.Context.MultipleSuggestions,S.Context.HasFocusedSuggestion.negate())),handler:G=>G.selectPrevPageSuggestion(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:11,secondary:[2059]}})),(0,t.registerEditorCommand)(new Y({id:"selectFirstSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,h.ContextKeyExpr.or(S.Context.MultipleSuggestions,S.Context.HasFocusedSuggestion.negate())),handler:G=>G.selectFirstSuggestion()})),(0,t.registerEditorCommand)(new Y({id:"focusSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,S.Context.HasFocusedSuggestion.negate()),handler:G=>G.focusSuggestion(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}})),(0,t.registerEditorCommand)(new Y({id:"focusAndAcceptSuggestion",precondition:h.ContextKeyExpr.and(S.Context.Visible,S.Context.HasFocusedSuggestion.negate()),handler:G=>{G.focusSuggestion(),G.acceptSelectedSuggestion(!0,!1)}})),(0,t.registerEditorCommand)(new Y({id:"toggleSuggestionDetails",precondition:h.ContextKeyExpr.and(S.Context.Visible,S.Context.HasFocusedSuggestion),handler:G=>G.toggleSuggestionDetails(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:S.suggestWidgetStatusbarMenu,group:"right",order:1,when:h.ContextKeyExpr.and(S.Context.DetailsVisible,S.Context.CanResolve),title:C.localize(1325,"Show Less")},{menuId:S.suggestWidgetStatusbarMenu,group:"right",order:1,when:h.ContextKeyExpr.and(S.Context.DetailsVisible.toNegated(),S.Context.CanResolve),title:C.localize(1326,"Show More")}]})),(0,t.registerEditorCommand)(new Y({id:"toggleExplainMode",precondition:S.Context.Visible,handler:G=>G.toggleExplainMode(),kbOpts:{weight:100,primary:2138}})),(0,t.registerEditorCommand)(new Y({id:"toggleSuggestionFocus",precondition:S.Context.Visible,handler:G=>G.toggleSuggestionFocus(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:2570,mac:{primary:778}}})),(0,t.registerEditorCommand)(new Y({id:"insertBestCompletion",precondition:h.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.ContextKeyExpr.equals("config.editor.tabCompletion","on"),u.WordContextKey.AtEnd,S.Context.Visible.toNegated(),L.SuggestAlternatives.OtherSuggestions.toNegated(),l.SnippetController2.InSnippetMode.toNegated()),handler:(G,K)=>{G.triggerSuggestAndAcceptBest((0,n.isObject)(K)?{fallback:"tab",...K}:{fallback:"tab"})},kbOpts:{weight:j,primary:2}})),(0,t.registerEditorCommand)(new Y({id:"insertNextSuggestion",precondition:h.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.ContextKeyExpr.equals("config.editor.tabCompletion","on"),L.SuggestAlternatives.OtherSuggestions,S.Context.Visible.toNegated(),l.SnippetController2.InSnippetMode.toNegated()),handler:G=>G.acceptNextSuggestion(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:2}})),(0,t.registerEditorCommand)(new Y({id:"insertPrevSuggestion",precondition:h.ContextKeyExpr.and(c.EditorContextKeys.textInputFocus,h.ContextKeyExpr.equals("config.editor.tabCompletion","on"),L.SuggestAlternatives.OtherSuggestions,S.Context.Visible.toNegated(),l.SnippetController2.InSnippetMode.toNegated()),handler:G=>G.acceptPrevSuggestion(),kbOpts:{weight:j,kbExpr:c.EditorContextKeys.textInputFocus,primary:1026}})),(0,t.registerEditorAction)(class extends t.EditorAction{constructor(){super({id:"editor.action.resetSuggestSize",label:C.localize(1327,"Reset Suggest Widget Size"),alias:"Reset Suggest Widget Size",precondition:void 0})}run(G,K){H.get(K)?.resetWidgetSize()}})}),define(ne[861],se([1,0,13,67,6,2,9,4,104,27,246,135,436,294]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestItemInfo=e.SuggestWidgetAdaptor=void 0;class i extends E.Disposable{get selectedItem(){return this._currentSuggestItemInfo}constructor(l,a,r){super(),this.editor=l,this.suggestControllerPreselector=a,this.onWillAccept=r,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._onDidSelectedItemChange=this._register(new I.Emitter),this.onDidSelectedItemChange=this._onDidSelectedItemChange.event,this._register(l.onKeyDown(C=>{C.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))})),this._register(l.onKeyUp(C=>{C.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))}));const u=t.SuggestController.get(this.editor);if(u){this._register(u.registerSelector({priority:100,select:(h,v,w)=>{const S=this.editor.getModel();if(!S)return-1;const L=this.suggestControllerPreselector(),D=L?(0,p.singleTextRemoveCommonPrefix)(L,S):void 0;if(!D)return-1;const T=y.Position.lift(v),M=w.map((P,N)=>{const O=s.fromSuggestion(u,S,T,P,this.isShiftKeyPressed),F=(0,p.singleTextRemoveCommonPrefix)(O.toSingleTextEdit(),S),x=(0,p.singleTextEditAugments)(D,F);return{index:N,valid:x,prefixLength:F.text.length,suggestItem:P}}).filter(P=>P&&P.valid&&P.prefixLength>0),A=(0,k.findFirstMax)(M,(0,d.compareBy)(P=>P.prefixLength,d.numberComparator));return A?A.index:-1}}));let C=!1;const f=()=>{C||(C=!0,this._register(u.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(u.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(u.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})))};this._register(I.Event.once(u.model.onDidTrigger)(h=>{f()})),this._register(u.onWillInsertSuggestItem(h=>{const v=this.editor.getPosition(),w=this.editor.getModel();if(!v||!w)return;const S=s.fromSuggestion(u,w,v,h.item,this.isShiftKeyPressed);this.onWillAccept(S)}))}this.update(this._isActive)}update(l){const a=this.getSuggestItemInfo();(this._isActive!==l||!g(this._currentSuggestItemInfo,a))&&(this._isActive=l,this._currentSuggestItemInfo=a,this._onDidSelectedItemChange.fire())}getSuggestItemInfo(){const l=t.SuggestController.get(this.editor);if(!l||!this.isSuggestWidgetVisible)return;const a=l.widget.value.getFocusedItem(),r=this.editor.getPosition(),u=this.editor.getModel();if(!(!a||!r||!u))return s.fromSuggestion(l,u,r,a.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){t.SuggestController.get(this.editor)?.stopForceRenderingAbove()}forceRenderingAbove(){t.SuggestController.get(this.editor)?.forceRenderingAbove()}}e.SuggestWidgetAdaptor=i;class s{static fromSuggestion(l,a,r,u,C){let{insertText:f}=u.completion,h=!1;if(u.completion.insertTextRules&4){const w=new n.SnippetParser().parse(f);w.children.length<100&&o.SnippetSession.adjustWhitespace(a,r,!0,w),f=w.toString(),h=!0}const v=l.getOverwriteInfo(u,C);return new s(m.Range.fromPositions(r.delta(0,-v.overwriteBefore),r.delta(0,Math.max(v.overwriteAfter,0))),f,u.completion.kind,h)}constructor(l,a,r,u){this.range=l,this.insertText=a,this.completionItemKind=r,this.isSnippetText=u}equals(l){return this.range.equalsRange(l.range)&&this.insertText===l.insertText&&this.completionItemKind===l.completionItemKind&&this.isSnippetText===l.isSnippetText}toSelectedSuggestionInfo(){return new b.SelectedSuggestionInfo(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}toSingleTextEdit(){return new _.SingleTextEdit(this.range,this.insertText)}}e.SuggestItemInfo=s;function g(c,l){return c===l?!0:!c||!l?!1:c.equals(l)}}),define(ne[295],se([1,0,630,46,14,18,2,21,65,189,19,214,112,9,79,17,245,679,269,283,860,861,3,61,137,24,28,12,7,31]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D){"use strict";var T;Object.defineProperty(e,"__esModule",{value:!0}),e.InlineCompletionsController=void 0;let M=class extends y.Disposable{static{T=this}static{this.ID="editor.contrib.inlineCompletionsController"}static get(N){return N.getContribution(T.ID)}constructor(N,O,F,x,W,V,q,H,z,U){super(),this.editor=N,this._instantiationService=O,this._contextKeyService=F,this._configurationService=x,this._commandService=W,this._debounceService=V,this._languageFeaturesService=q,this._accessibilitySignalService=H,this._keybindingService=z,this._accessibilityService=U,this._editorObs=(0,o.observableCodeEditor)(this.editor),this._positions=(0,m.derived)(this,Y=>this._editorObs.selections.read(Y)?.map(G=>G.getEndPosition())??[new t.Position(1,1)]),this._suggestWidgetAdaptor=this._register(new u.SuggestWidgetAdaptor(this.editor,()=>(this._editorObs.forceUpdate(),this.model.get()?.selectedInlineCompletion.get()?.toSingleTextEdit(void 0)),Y=>this._editorObs.forceUpdate(G=>{this.model.get()?.handleSuggestAccepted(Y)}))),this._suggestWidgetSelectedItem=(0,m.observableFromEvent)(this,Y=>this._suggestWidgetAdaptor.onDidSelectedItemChange(()=>{this._editorObs.forceUpdate(G=>Y(void 0))}),()=>this._suggestWidgetAdaptor.selectedItem),this._enabledInConfig=(0,m.observableFromEvent)(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).enabled),this._isScreenReaderEnabled=(0,m.observableFromEvent)(this,this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this._editorDictationInProgress=(0,m.observableFromEvent)(this,this._contextKeyService.onDidChangeContext,()=>this._contextKeyService.getContext(this.editor.getDomNode()).getValue("editorDictation.inProgress")===!0),this._enabled=(0,m.derived)(this,Y=>this._enabledInConfig.read(Y)&&(!this._isScreenReaderEnabled.read(Y)||!this._editorDictationInProgress.read(Y))),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this.model=(0,_.derivedDisposable)(this,Y=>{if(this._editorObs.isReadonly.read(Y))return;const G=this._editorObs.model.read(Y);return G?this._instantiationService.createInstance(r.InlineCompletionsModel,G,this._suggestWidgetSelectedItem,this._editorObs.versionId,this._positions,this._debounceValue,(0,m.observableFromEvent)(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(119).preview),(0,m.observableFromEvent)(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(119).previewMode),(0,m.observableFromEvent)(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).mode),this._enabled):void 0}).recomputeInitiallyAndOnChange(this._store),this._ghostTexts=(0,m.derived)(this,Y=>this.model.read(Y)?.ghostTexts.read(Y)??[]),this._stablizedGhostTexts=A(this._ghostTexts,this._store),this._ghostTextWidgets=(0,b.mapObservableArrayCached)(this,this._stablizedGhostTexts,(Y,G)=>G.add(this._instantiationService.createInstance(c.GhostTextView,this.editor,{ghostText:Y,minReservedLineCount:(0,m.constObservable)(0),targetTextModel:this.model.map(K=>K?.textModel)}))).recomputeInitiallyAndOnChange(this._store),this._playAccessibilitySignal=(0,m.observableSignal)(this),this._fontFamily=(0,m.observableFromEvent)(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).fontFamily),this._register(new l.InlineCompletionContextKeys(this._contextKeyService,this.model)),this._register((0,o.reactToChange)(this._editorObs.onDidType,(Y,G)=>{this._enabled.get()&&this.model.get()?.trigger()})),this._register(this._commandService.onDidExecuteCommand(Y=>{new Set([n.CoreEditingCommands.Tab.id,n.CoreEditingCommands.DeleteLeft.id,n.CoreEditingCommands.DeleteRight.id,g.inlineSuggestCommitId,"acceptSelectedSuggestion"]).has(Y.commandId)&&N.hasTextFocus()&&this._enabled.get()&&this._editorObs.forceUpdate(K=>{this.model.get()?.trigger(K)})})),this._register((0,o.reactToChange)(this._editorObs.selections,(Y,G)=>{G.some(K=>K.reason===3||K.source==="api")&&this.model.get()?.stop()})),this._register(this.editor.onDidBlurEditorWidget(()=>{this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||N.getOption(62).keepOnBlur||a.InlineSuggestionHintsContentWidget.dropDownVisible||(0,m.transaction)(Y=>{this.model.get()?.stop(Y)})})),this._register((0,m.autorun)(Y=>{const G=this.model.read(Y)?.state.read(Y);G?.suggestItem?G.primaryGhostText.lineCount>=2&&this._suggestWidgetAdaptor.forceRenderingAbove():this._suggestWidgetAdaptor.stopForceRenderingAbove()})),this._register((0,y.toDisposable)(()=>{this._suggestWidgetAdaptor.stopForceRenderingAbove()}));const j=(0,b.derivedObservableWithCache)(this,(Y,G)=>{const R=this.model.read(Y)?.state.read(Y);return this._suggestWidgetSelectedItem.get()?G:R?.inlineCompletion?.semanticId});this._register((0,o.reactToChangeWithStore)((0,m.derived)(Y=>(this._playAccessibilitySignal.read(Y),j.read(Y),{})),async(Y,G,K)=>{const R=this.model.get(),J=R?.state.get();if(!J||!R)return;const ie=R.textModel.getLineContent(J.primaryGhostText.lineNumber);await(0,I.timeout)(50,(0,E.cancelOnDispose)(K)),await(0,m.waitForState)(this._suggestWidgetSelectedItem,p.isUndefined,()=>!1,(0,E.cancelOnDispose)(K)),await this._accessibilitySignalService.playSignal(h.AccessibilitySignal.inlineSuggestion),this.editor.getOption(8)&&this._provideScreenReaderUpdate(J.primaryGhostText.renderForScreenReader(ie))})),this._register(new a.InlineCompletionsHintsWidget(this.editor,this.model,this._instantiationService)),this._register((0,d.createStyleSheetFromObservable)((0,m.derived)(Y=>{const G=this._fontFamily.read(Y);return G===""||G==="default"?"":` +.monaco-editor .ghost-text-decoration, +.monaco-editor .ghost-text-decoration-preview, +.monaco-editor .ghost-text { + font-family: ${G}; +}`}))),this._register(this._configurationService.onDidChangeConfiguration(Y=>{Y.affectsConfiguration("accessibility.verbosity.inlineCompletions")&&this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})})),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})}playAccessibilitySignal(N){this._playAccessibilitySignal.trigger(N)}_provideScreenReaderUpdate(N){const O=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),F=this._keybindingService.lookupKeybinding("editor.action.accessibleView");let x;!O&&F&&this.editor.getOption(150)&&(x=(0,C.localize)(1088,"Inspect this in the accessible view ({0})",F.getAriaLabel())),(0,k.alert)(x?N+", "+x:N)}shouldShowHoverAt(N){const O=this.model.get()?.primaryGhostText.get();return O?O.parts.some(F=>N.containsPosition(new t.Position(O.lineNumber,F.column))):!1}shouldShowHoverAtViewZone(N){return this._ghostTextWidgets.get()[0]?.ownsViewZone(N)??!1}};e.InlineCompletionsController=M,e.InlineCompletionsController=M=T=ke([ce(1,L.IInstantiationService),ce(2,S.IContextKeyService),ce(3,w.IConfigurationService),ce(4,v.ICommandService),ce(5,i.ILanguageFeatureDebounceService),ce(6,s.ILanguageFeaturesService),ce(7,h.IAccessibilitySignalService),ce(8,D.IKeybindingService),ce(9,f.IAccessibilityService)],M);function A(P,N){const O=(0,m.observableValue)("result",[]),F=[];return N.add((0,m.autorun)(x=>{const W=P.read(x);(0,m.transaction)(V=>{if(W.length!==F.length){F.length=W.length;for(let q=0;qq.set(W[H],V))})})),O}}),define(ne[862],se([1,0,21,92,15,20,245,269,295,155,3,29,28,12]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ToggleAlwaysShowInlineSuggestionToolbar=e.HideInlineCompletion=e.AcceptInlineCompletion=e.AcceptNextLineOfInlineCompletion=e.AcceptNextWordOfInlineCompletion=e.TriggerInlineSuggestionAction=e.ShowPreviousInlineSuggestionAction=e.ShowNextInlineSuggestionAction=void 0;class i extends I.EditorAction{static{this.ID=y.showNextInlineSuggestionActionId}constructor(){super({id:i.ID,label:p.localize(1073,"Show Next Inline Suggestion"),alias:"Show Next Inline Suggestion",precondition:t.ContextKeyExpr.and(E.EditorContextKeys.writable,m.InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(f,h){_.InlineCompletionsController.get(h)?.model.get()?.next()}}e.ShowNextInlineSuggestionAction=i;class s extends I.EditorAction{static{this.ID=y.showPreviousInlineSuggestionActionId}constructor(){super({id:s.ID,label:p.localize(1074,"Show Previous Inline Suggestion"),alias:"Show Previous Inline Suggestion",precondition:t.ContextKeyExpr.and(E.EditorContextKeys.writable,m.InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(f,h){_.InlineCompletionsController.get(h)?.model.get()?.previous()}}e.ShowPreviousInlineSuggestionAction=s;class g extends I.EditorAction{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:p.localize(1075,"Trigger Inline Suggestion"),alias:"Trigger Inline Suggestion",precondition:E.EditorContextKeys.writable})}async run(f,h){const v=_.InlineCompletionsController.get(h);await(0,k.asyncTransaction)(async w=>{await v?.model.get()?.triggerExplicitly(w),v?.playAccessibilitySignal(w)})}}e.TriggerInlineSuggestionAction=g;class c extends I.EditorAction{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:p.localize(1076,"Accept Next Word Of Inline Suggestion"),alias:"Accept Next Word Of Inline Suggestion",precondition:t.ContextKeyExpr.and(E.EditorContextKeys.writable,m.InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:t.ContextKeyExpr.and(E.EditorContextKeys.writable,m.InlineCompletionContextKeys.inlineSuggestionVisible)},menuOpts:[{menuId:n.MenuId.InlineSuggestionToolbar,title:p.localize(1077,"Accept Word"),group:"primary",order:2}]})}async run(f,h){const v=_.InlineCompletionsController.get(h);await v?.model.get()?.acceptNextWord(v.editor)}}e.AcceptNextWordOfInlineCompletion=c;class l extends I.EditorAction{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:p.localize(1078,"Accept Next Line Of Inline Suggestion"),alias:"Accept Next Line Of Inline Suggestion",precondition:t.ContextKeyExpr.and(E.EditorContextKeys.writable,m.InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:n.MenuId.InlineSuggestionToolbar,title:p.localize(1079,"Accept Line"),group:"secondary",order:2}]})}async run(f,h){const v=_.InlineCompletionsController.get(h);await v?.model.get()?.acceptNextLine(v.editor)}}e.AcceptNextLineOfInlineCompletion=l;class a extends I.EditorAction{constructor(){super({id:y.inlineSuggestCommitId,label:p.localize(1080,"Accept Inline Suggestion"),alias:"Accept Inline Suggestion",precondition:m.InlineCompletionContextKeys.inlineSuggestionVisible,menuOpts:[{menuId:n.MenuId.InlineSuggestionToolbar,title:p.localize(1081,"Accept"),group:"primary",order:1}],kbOpts:{primary:2,weight:200,kbExpr:t.ContextKeyExpr.and(m.InlineCompletionContextKeys.inlineSuggestionVisible,E.EditorContextKeys.tabMovesFocus.toNegated(),m.InlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize,b.Context.Visible.toNegated(),E.EditorContextKeys.hoverFocused.toNegated())}})}async run(f,h){const v=_.InlineCompletionsController.get(h);v&&(v.model.get()?.accept(v.editor),v.editor.focus())}}e.AcceptInlineCompletion=a;class r extends I.EditorAction{static{this.ID="editor.action.inlineSuggest.hide"}constructor(){super({id:r.ID,label:p.localize(1082,"Hide Inline Suggestion"),alias:"Hide Inline Suggestion",precondition:m.InlineCompletionContextKeys.inlineSuggestionVisible,kbOpts:{weight:100,primary:9}})}async run(f,h){const v=_.InlineCompletionsController.get(h);(0,d.transaction)(w=>{v?.model.get()?.stop(w)})}}e.HideInlineCompletion=r;class u extends n.Action2{static{this.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar"}constructor(){super({id:u.ID,title:p.localize(1083,"Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:n.MenuId.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:t.ContextKeyExpr.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(f,h){const v=f.get(o.IConfigurationService),S=v.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";v.updateValue("editor.inlineSuggest.showToolbar",S)}}e.ToggleAlwaysShowInlineSuggestionToolbar=u}),define(ne[863],se([1,0,5,57,2,21,4,43,84,295,283,120,3,61,7,59,63]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineCompletionsHoverParticipant=e.InlineCompletionsHover=void 0;class c{constructor(r,u,C){this.owner=r,this.range=u,this.controller=C}isValidForHoverAnchor(r){return r.type===1&&this.range.startColumn<=r.range.startColumn&&this.range.endColumn>=r.range.endColumn}}e.InlineCompletionsHover=c;let l=class{constructor(r,u,C,f,h,v){this._editor=r,this._languageService=u,this._openerService=C,this.accessibilityService=f,this._instantiationService=h,this._telemetryService=v,this.hoverOrdinal=4}suggestHoverAnchor(r){const u=b.InlineCompletionsController.get(this._editor);if(!u)return null;const C=r.target;if(C.type===8){const f=C.detail;if(u.shouldShowHoverAtViewZone(f.viewZoneId))return new _.HoverForeignElementAnchor(1e3,this,y.Range.fromPositions(this._editor.getModel().validatePosition(f.positionBefore||f.position)),r.event.posx,r.event.posy,!1)}return C.type===7&&u.shouldShowHoverAt(C.range)?new _.HoverForeignElementAnchor(1e3,this,C.range,r.event.posx,r.event.posy,!1):C.type===6&&C.detail.mightBeForeignElement&&u.shouldShowHoverAt(C.range)?new _.HoverForeignElementAnchor(1e3,this,C.range,r.event.posx,r.event.posy,!1):null}computeSync(r,u){if(this._editor.getOption(62).showToolbar!=="onHover")return[];const C=b.InlineCompletionsController.get(this._editor);return C&&C.shouldShowHoverAt(r.range)?[new c(this,r.range,C)]:[]}renderHoverParts(r,u){const C=new I.DisposableStore,f=u[0];this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(8)&&C.add(this.renderScreenReaderText(r,f));const h=f.controller.model.get(),v=this._instantiationService.createInstance(p.InlineSuggestionHintsContentWidget,this._editor,!1,(0,E.constObservable)(null),h.selectedInlineCompletionIndex,h.inlineCompletionsCount,h.activeCommands),w=v.getDomNode();r.fragment.appendChild(w),h.triggerExplicitly(),C.add(v);const S={hoverPart:f,hoverElement:w,dispose(){C.dispose()}};return new _.RenderedHoverParts([S])}renderScreenReaderText(r,u){const C=new I.DisposableStore,f=d.$,h=f("div.hover-row.markdown-hover"),v=d.append(h,f("div.hover-contents",{"aria-live":"assertive"})),w=C.add(new n.MarkdownRenderer({editor:this._editor},this._languageService,this._openerService)),S=L=>{C.add(w.onDidRenderAsync(()=>{v.className="hover-contents code-hover-contents",r.onContentsChanged()}));const D=o.localize(1089,"Suggestion:"),T=C.add(w.render(new k.MarkdownString().appendText(D).appendCodeblock("text",L)));v.replaceChildren(T.element)};return C.add((0,E.autorun)(L=>{const D=u.controller.model.read(L)?.primaryGhostText.read(L);if(D){const T=this._editor.getModel().getLineContent(D.lineNumber);S(D.renderForScreenReader(T))}else d.reset(v)})),r.fragment.appendChild(h),C}};e.InlineCompletionsHoverParticipant=l,e.InlineCompletionsHoverParticipant=l=ke([ce(1,m.ILanguageService),ce(2,s.IOpenerService),ce(3,t.IAccessibilityService),ce(4,i.IInstantiationService),ce(5,g.ITelemetryService)],l)}),define(ne[864],se([1,0,15,84,862,863,617,295,380,29]),function(oe,e,d,k,I,E,y,m,_,b){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorContribution)(m.InlineCompletionsController.ID,m.InlineCompletionsController,3),(0,d.registerEditorAction)(I.TriggerInlineSuggestionAction),(0,d.registerEditorAction)(I.ShowNextInlineSuggestionAction),(0,d.registerEditorAction)(I.ShowPreviousInlineSuggestionAction),(0,d.registerEditorAction)(I.AcceptNextWordOfInlineCompletion),(0,d.registerEditorAction)(I.AcceptNextLineOfInlineCompletion),(0,d.registerEditorAction)(I.AcceptInlineCompletion),(0,d.registerEditorAction)(I.HideInlineCompletion),(0,b.registerAction2)(I.ToggleAlwaysShowInlineSuggestionToolbar),k.HoverParticipantRegistry.register(E.InlineCompletionsHoverParticipant),_.AccessibleViewRegistry.register(new y.InlineCompletionsAccessibleView)}),define(ne[438],se([1,0,5,347,2,21,65,15,112,125,139,88,70,35,434,379,294,7,521]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.InlineEditsWidget=e.InlineEdit=void 0;class l{constructor(v,w,S){this.range=v,this.newLines=w,this.changes=S}}e.InlineEdit=l;let a=class extends I.Disposable{constructor(v,w,S,L){super(),this._editor=v,this._edit=w,this._userPrompt=S,this._instantiationService=L,this._editorObs=(0,_.observableCodeEditor)(this._editor),this._elements=(0,d.h)("div.inline-edits-widget",{style:{position:"absolute",overflow:"visible",top:"0px",left:"0px"}},[(0,d.h)("div@editorContainer",{style:{position:"absolute",top:"0px",left:"0px",width:"500px",height:"500px"}},[(0,d.h)("div.toolbar@toolbar",{style:{position:"absolute",top:"-25px",left:"0px"}}),(0,d.h)("div.promptEditor@promptEditor",{style:{position:"absolute",top:"-25px",left:"80px",width:"300px",height:"22px"}}),(0,d.h)("div.preview@editor",{style:{position:"absolute",top:"0px",left:"0px"}})]),(0,d.svgElem)("svg",{style:{overflow:"visible",pointerEvents:"none"}},[(0,d.svgElem)("defs",[(0,d.svgElem)("linearGradient",{id:"Gradient2",x1:"0",y1:"0",x2:"1",y2:"0"},[(0,d.svgElem)("stop",{offset:"0%",class:"gradient-stop"}),(0,d.svgElem)("stop",{offset:"100%",class:"gradient-stop"})])]),(0,d.svgElem)("path@path",{d:"",fill:"url(#Gradient2)"})])]),this._previewTextModel=this._register(this._instantiationService.createInstance(t.TextModel,"",o.PLAINTEXT_LANGUAGE_ID,t.TextModel.DEFAULT_CREATION_OPTIONS,null)),this._setText=(0,E.derived)(T=>{const M=this._edit.read(T);M&&this._previewTextModel.setValue(M.newLines.join(` +`))}).recomputeInitiallyAndOnChange(this._store),this._promptTextModel=this._register(this._instantiationService.createInstance(t.TextModel,"",o.PLAINTEXT_LANGUAGE_ID,t.TextModel.DEFAULT_CREATION_OPTIONS,null)),this._promptEditor=this._register(this._instantiationService.createInstance(b.EmbeddedCodeEditorWidget,this._elements.promptEditor,{glyphMargin:!1,lineNumbers:"off",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0,placeholder:"Describe the change you want...",fontFamily:k.DEFAULT_FONT_FAMILY},{contributions:m.EditorExtensionsRegistry.getSomeEditorContributions([g.SuggestController.ID,s.PlaceholderTextContribution.ID,i.ContextMenuController.ID]),isSimpleWidget:!0},this._editor)),this._previewEditor=this._register(this._instantiationService.createInstance(b.EmbeddedCodeEditorWidget,this._elements.editor,{glyphMargin:!1,lineNumbers:"off",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0},{contributions:[]},this._editor)),this._previewEditorObs=(0,_.observableCodeEditor)(this._previewEditor),this._decorations=(0,E.derived)(this,T=>{this._setText.read(T);const M=this._edit.read(T)?.changes;if(!M)return[];const A=[],P=[];if(M.length===1&&M[0].innerChanges[0].modifiedRange.equalsRange(this._previewTextModel.getFullModelRange()))return[];for(const N of M)if(N.original.isEmpty||A.push({range:N.original.toInclusiveRange(),options:p.diffLineDeleteDecorationBackgroundWithIndicator}),N.modified.isEmpty||P.push({range:N.modified.toInclusiveRange(),options:p.diffLineAddDecorationBackgroundWithIndicator}),N.modified.isEmpty||N.original.isEmpty)N.original.isEmpty||A.push({range:N.original.toInclusiveRange(),options:p.diffWholeLineDeleteDecoration}),N.modified.isEmpty||P.push({range:N.modified.toInclusiveRange(),options:p.diffWholeLineAddDecoration});else for(const O of N.innerChanges||[])N.original.contains(O.originalRange.startLineNumber)&&A.push({range:O.originalRange,options:O.originalRange.isEmpty()?p.diffDeleteDecorationEmpty:p.diffDeleteDecoration}),N.modified.contains(O.modifiedRange.startLineNumber)&&P.push({range:O.modifiedRange,options:O.modifiedRange.isEmpty()?p.diffAddDecorationEmpty:p.diffAddDecoration});return P}),this._layout1=(0,E.derived)(this,T=>{const M=this._editor.getModel(),A=this._edit.read(T);if(!A)return null;const P=A.range;let N=0;for(let x=P.startLineNumber;x{const M=this._edit.read(T);if(!M)return null;const A=M.range,P=this._editorObs.scrollLeft.read(T),N=this._layout1.read(T).left+20-P,O=this._editor.getTopForLineNumber(A.startLineNumber)-this._editorObs.scrollTop.read(T),F=this._editor.getTopForLineNumber(A.endLineNumberExclusive)-this._editorObs.scrollTop.read(T),x=new u(N,O),W=new u(N,F),V=F-O,q=50,H=this._editor.getOption(67)*M.newLines.length,z=V-H,U=new u(N+q,O+z/2),j=new u(N+q,F-z/2);return{topCode:x,bottomCode:W,codeHeight:V,topEdit:U,bottomEdit:j,editHeight:H}});const D=(0,E.derived)(this,T=>this._edit.read(T)!==void 0||this._userPrompt.read(T)!==void 0);this._register((0,n.applyStyle)(this._elements.root,{display:(0,E.derived)(this,T=>D.read(T)?"block":"none")})),this._register((0,n.appendRemoveOnDispose)(this._editor.getDomNode(),this._elements.root)),this._register((0,_.observableCodeEditor)(v).createOverlayWidget({domNode:this._elements.root,position:(0,E.constObservable)(null),allowEditorOverflow:!1,minContentWidthInPx:(0,E.derived)(T=>{const M=this._layout1.read(T)?.left;if(M===void 0)return 0;const A=this._previewEditorObs.contentWidth.read(T);return M+A})})),this._previewEditor.setModel(this._previewTextModel),this._register(this._previewEditorObs.setDecorations(this._decorations)),this._register((0,E.autorun)(T=>{const M=this._layout.read(T);if(!M)return;const{topCode:A,bottomCode:P,topEdit:N,bottomEdit:O,editHeight:F}=M,x=10,W=0,V=40,q=new C().moveTo(A).lineTo(A.deltaX(x)).curveTo(A.deltaX(x+V),N.deltaX(-V-W),N.deltaX(-W)).lineTo(N).lineTo(O).lineTo(O.deltaX(-W)).curveTo(O.deltaX(-V-W),P.deltaX(x+V),P.deltaX(x)).lineTo(P).build();this._elements.path.setAttribute("d",q),this._elements.editorContainer.style.top=`${N.y}px`,this._elements.editorContainer.style.left=`${N.x}px`,this._elements.editorContainer.style.height=`${F}px`;const H=this._previewEditorObs.contentWidth.read(T);this._previewEditor.layout({height:F,width:H})})),this._promptEditor.setModel(this._promptTextModel),this._promptEditor.layout(),this._register(f(r(this._userPrompt,T=>T??"",T=>T),(0,_.observableCodeEditor)(this._promptEditor).value)),this._register((0,E.autorun)(T=>{const M=(0,_.observableCodeEditor)(this._promptEditor).isFocused.read(T);this._elements.root.classList.toggle("focused",M)}))}};e.InlineEditsWidget=a,e.InlineEditsWidget=a=ke([ce(3,c.IInstantiationService)],a);function r(h,v,w){return(0,y.derivedWithSetter)(void 0,S=>v(h.read(S)),(S,L)=>h.set(w(S),L))}class u{constructor(v,w){this.x=v,this.y=w}deltaX(v){return new u(this.x+v,this.y)}}class C{constructor(){this._data=""}moveTo(v){return this._data+=`M ${v.x} ${v.y} `,this}lineTo(v){return this._data+=`L ${v.x} ${v.y} `,this}curveTo(v,w,S){return this._data+=`C ${v.x} ${v.y} ${w.x} ${w.y} ${S.x} ${S.y} `,this}build(){return this._data}}function f(h,v){const w=new I.DisposableStore;return w.add((0,E.autorun)(S=>{const L=h.read(S);v.set(L,void 0)})),w.add((0,E.autorun)(S=>{const L=v.read(S);h.set(L,void 0)})),w}}),define(ne[865],se([1,0,14,18,102,8,2,21,65,22,215,55,27,17,51,378,438]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";var c;Object.defineProperty(e,"__esModule",{value:!0}),e.InlineEditsModel=void 0;let l=class extends y.Disposable{static{c=this}static{this._modelId=0}static _createUniqueUri(){return b.URI.from({scheme:"inline-edits",path:new Date().toString()+String(c._modelId++)})}constructor(C,f,h,v,w,S,L){super(),this.textModel=C,this._textModelVersionId=f,this._selection=h,this._debounceValue=v,this.languageFeaturesService=w,this._diffProviderFactoryService=S,this._modelService=L,this._forceUpdateExplicitlySignal=(0,m.observableSignal)(this),this._selectedInlineCompletionId=(0,m.observableValue)(this,void 0),this._isActive=(0,m.observableValue)(this,!1),this._originalModel=(0,_.derivedDisposable)(()=>this._modelService.createModel("",null,c._createUniqueUri())).keepObserved(this._store),this._modifiedModel=(0,_.derivedDisposable)(()=>this._modelService.createModel("",null,c._createUniqueUri())).keepObserved(this._store),this._pinnedRange=new r(this.textModel,this._textModelVersionId),this.isPinned=this._pinnedRange.range.map(D=>!!D),this.userPrompt=(0,m.observableValue)(this,void 0),this.inlineEdit=(0,m.derived)(this,D=>this._inlineEdit.read(D)?.promiseResult.read(D)?.data),this._inlineEdit=(0,m.derived)(this,D=>{const T=this.selectedInlineEdit.read(D);if(!T)return;const M=T.inlineCompletion.range;if(T.inlineCompletion.insertText.trim()==="")return;let A=T.inlineCompletion.insertText.split(/\r\n|\r|\n/);function P(x){const W=x[0].match(/^\s*/)?.[0]??"";return x.map(V=>V.replace(new RegExp("^"+W),""))}A=P(A);let O=this.textModel.getValueInRange(M).split(/\r\n|\r|\n/);O=P(O),this._originalModel.get().setValue(O.join(` +`)),this._modifiedModel.get().setValue(A.join(` +`));const F=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:"advanced"});return m.ObservablePromise.fromFn(async()=>{const x=await F.computeDiff(this._originalModel.get(),this._modifiedModel.get(),{computeMoves:!1,ignoreTrimWhitespace:!1,maxComputationTimeMs:1e3},k.CancellationToken.None);if(!x.identical)return new g.InlineEdit(n.LineRange.fromRangeInclusive(M),P(A),x.changes)})}),this._fetchStore=this._register(new y.DisposableStore),this._inlineEditsFetchResult=(0,m.disposableObservableValue)(this,void 0),this._inlineEdits=(0,m.derivedOpts)({owner:this,equalsFn:I.structuralEquals},D=>this._inlineEditsFetchResult.read(D)?.completions.map(T=>new a(T))??[]),this._fetchInlineEditsPromise=(0,m.derivedHandleChanges)({owner:this,createEmptyChangeSummary:()=>({inlineCompletionTriggerKind:o.InlineCompletionTriggerKind.Automatic}),handleChange:(D,T)=>(D.didChange(this._forceUpdateExplicitlySignal)&&(T.inlineCompletionTriggerKind=o.InlineCompletionTriggerKind.Explicit),!0)},async(D,T)=>{this._fetchStore.clear(),this._forceUpdateExplicitlySignal.read(D),this._textModelVersionId.read(D);function M(F,x){return x(F)}const A=this._pinnedRange.range.read(D)??M(this._selection.read(D),F=>F.isEmpty()?void 0:F);if(!A){this._inlineEditsFetchResult.set(void 0,void 0),this.userPrompt.set(void 0,void 0);return}const P={triggerKind:T.inlineCompletionTriggerKind,selectedSuggestionInfo:void 0,userPrompt:this.userPrompt.read(D)},N=(0,k.cancelOnDispose)(this._fetchStore);await(0,d.timeout)(200,N);const O=await(0,s.provideInlineCompletions)(this.languageFeaturesService.inlineCompletionsProvider,A,this.textModel,P,N);N.isCancellationRequested||this._inlineEditsFetchResult.set(O,void 0)}),this._filteredInlineEditItems=(0,m.derivedOpts)({owner:this,equalsFn:(0,I.itemsEquals)()},D=>this._inlineEdits.read(D)),this.selectedInlineCompletionIndex=(0,m.derived)(this,D=>{const T=this._selectedInlineCompletionId.read(D),M=this._filteredInlineEditItems.read(D),A=this._selectedInlineCompletionId===void 0?-1:M.findIndex(P=>P.semanticId===T);return A===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):A}),this.selectedInlineEdit=(0,m.derived)(this,D=>{const T=this._filteredInlineEditItems.read(D),M=this.selectedInlineCompletionIndex.read(D);return T[M]}),this._register((0,m.recomputeInitiallyAndOnChange)(this._fetchInlineEditsPromise))}async triggerExplicitly(C){(0,m.subtransaction)(C,f=>{this._isActive.set(!0,f),this._forceUpdateExplicitlySignal.trigger(f)}),await this._fetchInlineEditsPromise.get()}stop(C){(0,m.subtransaction)(C,f=>{this.userPrompt.set(void 0,f),this._isActive.set(!1,f),this._inlineEditsFetchResult.set(void 0,f),this._pinnedRange.setRange(void 0,f)})}async _deltaSelectedInlineCompletionIndex(C){await this.triggerExplicitly();const f=this._filteredInlineEditItems.get()||[];if(f.length>0){const h=(this.selectedInlineCompletionIndex.get()+C+f.length)%f.length;this._selectedInlineCompletionId.set(f[h].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(C){if(C.getModel()!==this.textModel)throw new E.BugIndicatingError;const f=this.selectedInlineEdit.get();f&&(C.pushUndoStop(),C.executeEdits("inlineSuggestion.accept",[f.inlineCompletion.toSingleTextEdit().toSingleEditOperation()]),this.stop())}};e.InlineEditsModel=l,e.InlineEditsModel=l=c=ke([ce(4,t.ILanguageFeaturesService),ce(5,p.IDiffProviderFactoryService),ce(6,i.IModelService)],l);class a{constructor(C){this.inlineCompletion=C,this.semanticId=this.inlineCompletion.hash()}}class r extends y.Disposable{constructor(C,f){super(),this._textModel=C,this._versionId=f,this._decorations=(0,m.observableValue)(this,[]),this.range=(0,m.derived)(this,h=>{this._versionId.read(h);const v=this._decorations.read(h)[0];return v?this._textModel.getDecorationRange(v)??null:null}),this._register((0,y.toDisposable)(()=>{this._textModel.deltaDecorations(this._decorations.get(),[])}))}setRange(C,f){this._decorations.set(this._textModel.deltaDecorations(this._decorations.get(),C?[{range:C,options:{description:"trackedRange"}}]:[]),f)}}}),define(ne[439],se([1,0,2,21,65,112,171,23,79,17,390,865,438,28,12,7,397]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g){"use strict";var c;Object.defineProperty(e,"__esModule",{value:!0}),e.InlineEditsController=void 0;let l=class extends d.Disposable{static{c=this}static{this.ID="editor.contrib.inlineEditsController"}static get(u){return u.getContribution(c.ID)}constructor(u,C,f,h,v,w){super(),this.editor=u,this._instantiationService=C,this._contextKeyService=f,this._debounceService=h,this._languageFeaturesService=v,this._configurationService=w,this._enabled=(0,g.observableConfigValue)("editor.inlineEdits.enabled",!1,this._configurationService),this._editorObs=(0,E.observableCodeEditor)(this.editor),this._selection=(0,k.derived)(this,S=>this._editorObs.cursorSelection.read(S)??new m.Selection(1,1,1,1)),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineEditsDebounce",{min:50,max:50}),this.model=(0,I.derivedDisposable)(this,S=>{if(!this._enabled.read(S)||this._editorObs.isReadonly.read(S))return;const L=this._editorObs.model.read(S);return L?this._instantiationService.createInstance((0,y.readHotReloadableExport)(n.InlineEditsModel,S),L,this._editorObs.versionId,this._selection,this._debounceValue):void 0}),this._hadInlineEdit=(0,k.derivedObservableWithCache)(this,(S,L)=>L||this.model.read(S)?.inlineEdit.read(S)!==void 0),this._widget=(0,I.derivedDisposable)(this,S=>{if(this._hadInlineEdit.read(S))return this._instantiationService.createInstance((0,y.readHotReloadableExport)(o.InlineEditsWidget,S),this.editor,this.model.map((L,D)=>L?.inlineEdit.read(D)),a(L=>this.model.read(L)?.userPrompt??(0,k.observableValue)("empty","")))}),this._register((0,g.bindContextKey)(p.inlineEditVisible,this._contextKeyService,S=>!!this.model.read(S)?.inlineEdit.read(S))),this._register((0,g.bindContextKey)(p.isPinnedContextKey,this._contextKeyService,S=>!!this.model.read(S)?.isPinned.read(S))),this.model.recomputeInitiallyAndOnChange(this._store),this._widget.recomputeInitiallyAndOnChange(this._store)}};e.InlineEditsController=l,e.InlineEditsController=l=c=ke([ce(1,s.IInstantiationService),ce(2,i.IContextKeyService),ce(3,_.ILanguageFeatureDebounceService),ce(4,b.ILanguageFeaturesService),ce(5,t.IConfigurationService)],l);function a(r){return(0,I.derivedWithSetter)(void 0,u=>r(u).read(u),(u,C)=>{r(void 0).set(u,C)})}}),define(ne[866],se([1,0,26,21,92,15,125,20,390,439,3,29,12]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.HideInlineEdit=e.AcceptInlineEdit=e.TriggerInlineEditAction=e.ShowPreviousInlineEditAction=e.ShowNextInlineEditAction=void 0;function t(a){return{label:a.value,alias:a.original}}class i extends E.EditorAction{static{this.ID=_.showNextInlineEditActionId}constructor(){super({id:i.ID,...t(p.localize2(1096,"Show Next Inline Edit")),precondition:o.ContextKeyExpr.and(m.EditorContextKeys.writable,_.inlineEditVisible),kbOpts:{weight:100,primary:606}})}async run(r,u){b.InlineEditsController.get(u)?.model.get()?.next()}}e.ShowNextInlineEditAction=i;class s extends E.EditorAction{static{this.ID=_.showPreviousInlineEditActionId}constructor(){super({id:s.ID,...t(p.localize2(1097,"Show Previous Inline Edit")),precondition:o.ContextKeyExpr.and(m.EditorContextKeys.writable,_.inlineEditVisible),kbOpts:{weight:100,primary:604}})}async run(r,u){b.InlineEditsController.get(u)?.model.get()?.previous()}}e.ShowPreviousInlineEditAction=s;class g extends E.EditorAction{constructor(){super({id:"editor.action.inlineEdits.trigger",...t(p.localize2(1098,"Trigger Inline Edit")),precondition:m.EditorContextKeys.writable})}async run(r,u){const C=b.InlineEditsController.get(u);await(0,I.asyncTransaction)(async f=>{await C?.model.get()?.triggerExplicitly(f)})}}e.TriggerInlineEditAction=g;class c extends E.EditorAction{constructor(){super({id:_.inlineEditAcceptId,...t(p.localize2(1099,"Accept Inline Edit")),precondition:_.inlineEditVisible,menuOpts:{menuId:n.MenuId.InlineEditsActions,title:p.localize(1095,"Accept Inline Edit"),group:"primary",order:1,icon:d.Codicon.check},kbOpts:{primary:2058,weight:2e4,kbExpr:_.inlineEditVisible}})}async run(r,u){u instanceof y.EmbeddedCodeEditorWidget&&(u=u.getParentEditor());const C=b.InlineEditsController.get(u);C&&(C.model.get()?.accept(C.editor),C.editor.focus())}}e.AcceptInlineEdit=c;class l extends E.EditorAction{static{this.ID="editor.action.inlineEdits.hide"}constructor(){super({id:l.ID,...t(p.localize2(1100,"Hide Inline Edit")),precondition:_.inlineEditVisible,kbOpts:{weight:100,primary:9}})}async run(r,u){const C=b.InlineEditsController.get(u);(0,k.transaction)(f=>{C?.model.get()?.stop(f)})}}e.HideInlineEdit=l}),define(ne[867],se([1,0,15,866,439]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),(0,d.registerEditorContribution)(I.InlineEditsController.ID,I.InlineEditsController,3),(0,d.registerEditorAction)(k.TriggerInlineEditAction),(0,d.registerEditorAction)(k.ShowNextInlineEditAction),(0,d.registerEditorAction)(k.ShowPreviousInlineEditAction),(0,d.registerEditorAction)(k.AcceptInlineEdit),(0,d.registerEditorAction)(k.HideInlineEdit)}),define(ne[868],se([1,0,18,82,53,2,34,4,130,17,342,155,405,437,343,117]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SuggestInlineCompletions=void 0;class g{constructor(r,u,C,f,h,v){this.range=r,this.insertText=u,this.filterText=C,this.additionalTextEdits=f,this.command=h,this.completion=v}}let c=class extends E.RefCountedDisposable{constructor(r,u,C,f,h,v){super(h.disposable),this.model=r,this.line=u,this.word=C,this.completionModel=f,this._suggestMemoryService=v}canBeReused(r,u,C){return this.model===r&&this.line===u&&this.word.word.length>0&&this.word.startColumn===C.startColumn&&this.word.endColumn=0&&w.resolve(d.CancellationToken.None)}return r}};c=ke([ce(5,o.ISuggestMemoryService)],c);let l=class extends E.Disposable{constructor(r,u,C,f){super(),this._languageFeatureService=r,this._clipboardService=u,this._suggestMemoryService=C,this._editorService=f,this._store.add(r.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(r,u,C,f){if(C.selectedSuggestionInfo)return;let h;for(const A of this._editorService.listCodeEditors())if(A.getModel()===r){h=A;break}if(!h)return;const v=h.getOption(90);if(n.QuickSuggestionsOptions.isAllOff(v))return;r.tokenization.tokenizeIfCheap(u.lineNumber);const w=r.tokenization.getLineTokens(u.lineNumber),S=w.getStandardTokenType(w.findTokenIndexAtOffset(Math.max(u.column-1-1,0)));if(n.QuickSuggestionsOptions.valueFor(v,S)!=="inline")return;let L=r.getWordAtPosition(u),D;if(L?.word||(D=this._getTriggerCharacterInfo(r,u)),!L?.word&&!D||(L||(L=r.getWordUntilPosition(u)),L.endColumn!==u.column))return;let T;const M=r.getValueInRange(new m.Range(u.lineNumber,1,u.lineNumber,u.column));if(!D&&this._lastResult?.canBeReused(r,u.lineNumber,L)){const A=new p.LineContext(M,u.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=A,this._lastResult.acquire(),T=this._lastResult}else{const A=await(0,n.provideSuggestionItems)(this._languageFeatureService.completionProvider,r,u,new n.CompletionOptions(void 0,t.SuggestModel.createSuggestFilter(h).itemKind,D?.providers),D&&{triggerKind:1,triggerCharacter:D.ch},f);let P;A.needsClipboard&&(P=await this._clipboardService.readText());const N=new p.CompletionModel(A.items,u.column,new p.LineContext(M,0),i.WordDistance.None,h.getOption(119),h.getOption(113),{boostFullMatch:!1,firstMatchCanBeWeak:!1},P);T=new c(r,u.lineNumber,L,N,A,this._suggestMemoryService)}return this._lastResult=T,T}handleItemDidShow(r,u){u.completion.resolve(d.CancellationToken.None)}freeInlineCompletions(r){r.release()}_getTriggerCharacterInfo(r,u){const C=r.getValueInRange(m.Range.fromPositions({lineNumber:u.lineNumber,column:u.column-1},u)),f=new Set;for(const h of this._languageFeatureService.completionProvider.all(r))h.triggerCharacters?.includes(C)&&f.add(h);if(f.size!==0)return{providers:f,ch:C}}};e.SuggestInlineCompletions=l,e.SuggestInlineCompletions=l=ke([ce(0,b.ILanguageFeaturesService),ce(1,s.IClipboardService),ce(2,o.ISuggestMemoryService),ce(3,y.ICodeEditorService)],l),(0,_.registerEditorFeature)(l)}),define(ne[440],se([1,0,7]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IWorkspaceTrustManagementService=void 0,e.IWorkspaceTrustManagementService=(0,d.createDecorator)("workspaceTrustManagementService")}),define(ne[869],se([1,0,14,26,57,2,16,11,15,37,35,328,100,43,375,84,217,766,3,28,7,59,66,71,440,535]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ShowExcludeOptions=e.DisableHighlightingOfNonBasicAsciiCharactersAction=e.DisableHighlightingOfInvisibleCharactersAction=e.DisableHighlightingOfAmbiguousCharactersAction=e.DisableHighlightingInStringsAction=e.DisableHighlightingInCommentsAction=e.UnicodeHighlighterHoverParticipant=e.UnicodeHighlighter=e.warningIcon=void 0,e.warningIcon=(0,f.registerIcon)("extensions-warning-message",k.Codicon.warning,l.localize(1386,"Icon shown with a warning message in the extensions editor."));let v=class extends E.Disposable{static{this.ID="editor.contrib.unicodeHighlighter"}constructor(G,K,R,J){super(),this._editor=G,this._editorWorkerService=K,this._workspaceTrustService=R,this._highlighter=null,this._bannerClosed=!1,this._updateState=ie=>{if(ie&&ie.hasMore){if(this._bannerClosed)return;const ue=Math.max(ie.ambiguousCharacterCount,ie.nonBasicAsciiCharacterCount,ie.invisibleCharacterCount);let he;if(ie.nonBasicAsciiCharacterCount>=ue)he={message:l.localize(1387,"This document contains many non-basic ASCII unicode characters"),command:new q};else if(ie.ambiguousCharacterCount>=ue)he={message:l.localize(1388,"This document contains many ambiguous unicode characters"),command:new W};else if(ie.invisibleCharacterCount>=ue)he={message:l.localize(1389,"This document contains many invisible unicode characters"),command:new V};else throw new Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:he.message,icon:e.warningIcon,actions:[{label:he.command.shortLabel,href:`command:${he.command.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(J.createInstance(c.BannerController,G)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=G.getOption(126),this._register(R.onDidChangeTrust(ie=>{this._updateHighlighter()})),this._register(G.onDidChangeConfiguration(ie=>{ie.hasChanged(126)&&(this._options=G.getOption(126),this._updateHighlighter())})),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const G=w(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([G.nonBasicASCII,G.ambiguousCharacters,G.invisibleCharacters].every(R=>R===!1))return;const K={nonBasicASCII:G.nonBasicASCII,ambiguousCharacters:G.ambiguousCharacters,invisibleCharacters:G.invisibleCharacters,includeComments:G.includeComments,includeStrings:G.includeStrings,allowedCodePoints:Object.keys(G.allowedCharacters).map(R=>R.codePointAt(0)),allowedLocales:Object.keys(G.allowedLocales).map(R=>R==="_os"?new Intl.NumberFormat().resolvedOptions().locale:R==="_vscode"?y.language:R)};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new S(this._editor,K,this._updateState,this._editorWorkerService):this._highlighter=new L(this._editor,K,this._updateState)}getDecorationInfo(G){return this._highlighter?this._highlighter.getDecorationInfo(G):null}};e.UnicodeHighlighter=v,e.UnicodeHighlighter=v=ke([ce(1,o.IEditorWorkerService),ce(2,h.IWorkspaceTrustManagementService),ce(3,r.IInstantiationService)],v);function w(Y,G){return{nonBasicASCII:G.nonBasicASCII===b.inUntrustedWorkspace?!Y:G.nonBasicASCII,ambiguousCharacters:G.ambiguousCharacters,invisibleCharacters:G.invisibleCharacters,includeComments:G.includeComments===b.inUntrustedWorkspace?!Y:G.includeComments,includeStrings:G.includeStrings===b.inUntrustedWorkspace?!Y:G.includeStrings,allowedCharacters:G.allowedCharacters,allowedLocales:G.allowedLocales}}let S=class extends E.Disposable{constructor(G,K,R,J){super(),this._editor=G,this._options=K,this._updateState=R,this._editorWorkerService=J,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new d.RunOnceScheduler(()=>this._update(),250)),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const G=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then(K=>{if(this._model.isDisposed()||this._model.getVersionId()!==G)return;this._updateState(K);const R=[];if(!K.hasMore)for(const J of K.ranges)R.push({range:J,options:O.instance.getDecorationFromOptions(this._options)});this._decorations.set(R)})}getDecorationInfo(G){if(!this._decorations.has(G))return null;const K=this._editor.getModel();if(!(0,i.isModelDecorationVisible)(K,G))return null;const R=K.getValueInRange(G.range);return{reason:N(R,this._options),inComment:(0,i.isModelDecorationInComment)(K,G),inString:(0,i.isModelDecorationInString)(K,G)}}};S=ke([ce(3,o.IEditorWorkerService)],S);class L extends E.Disposable{constructor(G,K,R){super(),this._editor=G,this._options=K,this._updateState=R,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new d.RunOnceScheduler(()=>this._update(),250)),this._register(this._editor.onDidLayoutChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidScrollChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeHiddenAreas(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const G=this._editor.getVisibleRanges(),K=[],R={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const J of G){const ie=n.UnicodeTextModelHighlighter.computeUnicodeHighlights(this._model,this._options,J);for(const ue of ie.ranges)R.ranges.push(ue);R.ambiguousCharacterCount+=R.ambiguousCharacterCount,R.invisibleCharacterCount+=R.invisibleCharacterCount,R.nonBasicAsciiCharacterCount+=R.nonBasicAsciiCharacterCount,R.hasMore=R.hasMore||ie.hasMore}if(!R.hasMore)for(const J of R.ranges)K.push({range:J,options:O.instance.getDecorationFromOptions(this._options)});this._updateState(R),this._decorations.set(K)}getDecorationInfo(G){if(!this._decorations.has(G))return null;const K=this._editor.getModel(),R=K.getValueInRange(G.range);return(0,i.isModelDecorationVisible)(K,G)?{reason:N(R,this._options),inComment:(0,i.isModelDecorationInComment)(K,G),inString:(0,i.isModelDecorationInString)(K,G)}:null}}const D=l.localize(1390,"Configure Unicode Highlight Options");let T=class{constructor(G,K,R){this._editor=G,this._languageService=K,this._openerService=R,this.hoverOrdinal=5}computeSync(G,K){if(!this._editor.hasModel()||G.type!==1)return[];const R=this._editor.getModel(),J=this._editor.getContribution(v.ID);if(!J)return[];const ie=[],ue=new Set;let he=300;for(const pe of K){const ae=J.getDecorationInfo(pe);if(!ae)continue;const de=R.getValueInRange(pe.range).codePointAt(0),ge=A(de);let X;switch(ae.reason.kind){case 0:{(0,m.isBasicASCII)(ae.reason.confusableWith)?X=l.localize(1391,"The character {0} could be confused with the ASCII character {1}, which is more common in source code.",ge,A(ae.reason.confusableWith.codePointAt(0))):X=l.localize(1392,"The character {0} could be confused with the character {1}, which is more common in source code.",ge,A(ae.reason.confusableWith.codePointAt(0)));break}case 1:X=l.localize(1393,"The character {0} is invisible.",ge);break;case 2:X=l.localize(1394,"The character {0} is not a basic ASCII character.",ge);break}if(ue.has(X))continue;ue.add(X);const B={codePoint:de,reason:ae.reason,inComment:ae.inComment,inString:ae.inString},$=l.localize(1395,"Adjust settings"),Q=`command:${H.ID}?${encodeURIComponent(JSON.stringify(B))}`,Z=new I.MarkdownString("",!0).appendMarkdown(X).appendText(" ").appendLink(Q,$,D);ie.push(new g.MarkdownHover(this,pe.range,[Z],!1,he++))}return ie}renderHoverParts(G,K){return(0,g.renderMarkdownHovers)(G,K,this._editor,this._languageService,this._openerService)}};e.UnicodeHighlighterHoverParticipant=T,e.UnicodeHighlighterHoverParticipant=T=ke([ce(1,t.ILanguageService),ce(2,u.IOpenerService)],T);function M(Y){return`U+${Y.toString(16).padStart(4,"0")}`}function A(Y){let G=`\`${M(Y)}\``;return m.InvisibleCharacters.isInvisibleCharacter(Y)||(G+=` "${`${P(Y)}`}"`),G}function P(Y){return Y===96?"`` ` ``":"`"+String.fromCodePoint(Y)+"`"}function N(Y,G){return n.UnicodeTextModelHighlighter.computeUnicodeHighlightReason(Y,G)}class O{constructor(){this.map=new Map}static{this.instance=new O}getDecorationFromOptions(G){return this.getDecoration(!G.includeComments,!G.includeStrings)}getDecoration(G,K){const R=`${G}${K}`;let J=this.map.get(R);return J||(J=p.ModelDecorationOptions.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:G,hideInStringTokens:K}),this.map.set(R,J)),J}}class F extends _.EditorAction{constructor(){super({id:W.ID,label:l.localize(1397,"Disable highlighting of characters in comments"),alias:"Disable highlighting of characters in comments",precondition:void 0}),this.shortLabel=l.localize(1396,"Disable Highlight In Comments")}async run(G,K,R){const J=G?.get(a.IConfigurationService);J&&this.runAction(J)}async runAction(G){await G.updateValue(b.unicodeHighlightConfigKeys.includeComments,!1,2)}}e.DisableHighlightingInCommentsAction=F;class x extends _.EditorAction{constructor(){super({id:W.ID,label:l.localize(1399,"Disable highlighting of characters in strings"),alias:"Disable highlighting of characters in strings",precondition:void 0}),this.shortLabel=l.localize(1398,"Disable Highlight In Strings")}async run(G,K,R){const J=G?.get(a.IConfigurationService);J&&this.runAction(J)}async runAction(G){await G.updateValue(b.unicodeHighlightConfigKeys.includeStrings,!1,2)}}e.DisableHighlightingInStringsAction=x;class W extends _.EditorAction{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters"}constructor(){super({id:W.ID,label:l.localize(1401,"Disable highlighting of ambiguous characters"),alias:"Disable highlighting of ambiguous characters",precondition:void 0}),this.shortLabel=l.localize(1400,"Disable Ambiguous Highlight")}async run(G,K,R){const J=G?.get(a.IConfigurationService);J&&this.runAction(J)}async runAction(G){await G.updateValue(b.unicodeHighlightConfigKeys.ambiguousCharacters,!1,2)}}e.DisableHighlightingOfAmbiguousCharactersAction=W;class V extends _.EditorAction{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters"}constructor(){super({id:V.ID,label:l.localize(1403,"Disable highlighting of invisible characters"),alias:"Disable highlighting of invisible characters",precondition:void 0}),this.shortLabel=l.localize(1402,"Disable Invisible Highlight")}async run(G,K,R){const J=G?.get(a.IConfigurationService);J&&this.runAction(J)}async runAction(G){await G.updateValue(b.unicodeHighlightConfigKeys.invisibleCharacters,!1,2)}}e.DisableHighlightingOfInvisibleCharactersAction=V;class q extends _.EditorAction{static{this.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters"}constructor(){super({id:q.ID,label:l.localize(1405,"Disable highlighting of non basic ASCII characters"),alias:"Disable highlighting of non basic ASCII characters",precondition:void 0}),this.shortLabel=l.localize(1404,"Disable Non ASCII Highlight")}async run(G,K,R){const J=G?.get(a.IConfigurationService);J&&this.runAction(J)}async runAction(G){await G.updateValue(b.unicodeHighlightConfigKeys.nonBasicASCII,!1,2)}}e.DisableHighlightingOfNonBasicAsciiCharactersAction=q;class H extends _.EditorAction{static{this.ID="editor.action.unicodeHighlight.showExcludeOptions"}constructor(){super({id:H.ID,label:l.localize(1406,"Show Exclude Options"),alias:"Show Exclude Options",precondition:void 0})}async run(G,K,R){const{codePoint:J,reason:ie,inString:ue,inComment:he}=R,pe=String.fromCodePoint(J),ae=G.get(C.IQuickInputService),ee=G.get(a.IConfigurationService);function de(B){return m.InvisibleCharacters.isInvisibleCharacter(B)?l.localize(1407,"Exclude {0} (invisible character) from being highlighted",M(B)):l.localize(1408,"Exclude {0} from being highlighted",`${M(B)} "${pe}"`)}const ge=[];if(ie.kind===0)for(const B of ie.notAmbiguousInLocales)ge.push({label:l.localize(1409,'Allow unicode characters that are more common in the language "{0}".',B),run:async()=>{U(ee,[B])}});if(ge.push({label:de(J),run:()=>z(ee,[J])}),he){const B=new F;ge.push({label:B.label,run:async()=>B.runAction(ee)})}else if(ue){const B=new x;ge.push({label:B.label,run:async()=>B.runAction(ee)})}if(ie.kind===0){const B=new W;ge.push({label:B.label,run:async()=>B.runAction(ee)})}else if(ie.kind===1){const B=new V;ge.push({label:B.label,run:async()=>B.runAction(ee)})}else if(ie.kind===2){const B=new q;ge.push({label:B.label,run:async()=>B.runAction(ee)})}else j(ie);const X=await ae.pick(ge,{title:D});X&&await X.run()}}e.ShowExcludeOptions=H;async function z(Y,G){const K=Y.getValue(b.unicodeHighlightConfigKeys.allowedCharacters);let R;typeof K=="object"&&K?R=K:R={};for(const J of G)R[String.fromCodePoint(J)]=!0;await Y.updateValue(b.unicodeHighlightConfigKeys.allowedCharacters,R,2)}async function U(Y,G){const K=Y.inspect(b.unicodeHighlightConfigKeys.allowedLocales).user?.value;let R;typeof K=="object"&&K?R=Object.assign({},K):R={};for(const J of G)R[J]=!0;await Y.updateValue(b.unicodeHighlightConfigKeys.allowedLocales,R,2)}function j(Y){throw new Error(`Unexpected value: ${Y}`)}(0,_.registerEditorAction)(W),(0,_.registerEditorAction)(V),(0,_.registerEditorAction)(q),(0,_.registerEditorAction)(H),(0,_.registerEditorContribution)(v.ID,v,1),s.HoverParticipantRegistry.register(T)}),define(ne[870],se([1,0,214,219,812,727,815,728,729,856,817,819,848,821,730,434,731,822,857,858,423,289,734,735,695,864,290,291,429,427,850,737,851,827,738,739,833,834,740,840,831,867,765,786,790,835,791,792,742,221,853,294,868,743,718,869,744,841,411,745,741,694,107,195]),function(oe,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0})}),define(ne[222],se([1,0,11,5,47,6,140,2,16,111,22,152,274,75,9,4,51,78,211,24,28,403,12,180,7,691,31,392,121,393,692,181,50,96,63,186,119,107,48,34,62,440,58,395,711,801,49,701,100,401,43,784,266,808,805,419,153,693,61,29,406,696,117,687,265,688,154,216,108,699,59,66,101,717,137,17,36,697,130,8,271,52,45,384,624,418,394,855,79,785,677,772]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M,A,P,N,O,F,x,W,V,q,H,z,U,j,Y,G,K,R,J,ie,ue,he,pe,ae,ee,de,ge,X,B,$,Q,Z,te,re,le,me,Ce,ye,Le,Ee,Me,Ae,Ne,Ke,ze,Ge,it,Oe,Fe,fe,_e,xe,be,ve){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneServices=e.standaloneEditorWorkerDescriptor=e.StandaloneConfigurationService=e.StandaloneKeybindingService=e.StandaloneCommandService=e.StandaloneNotificationService=void 0,e.updateConfigurationService=Re;class we{constructor(Ve){this.disposed=!1,this.model=Ve,this._onWillDispose=new E.Emitter}get textEditorModel(){return this.model}dispose(){this.disposed=!0,this._onWillDispose.fire()}}let Te=class{constructor(Ve){this.modelService=Ve}createModelReference(Ve){const Ye=this.modelService.getModel(Ve);return Ye?Promise.resolve(new m.ImmortalReference(new we(Ye))):Promise.reject(new Error("Model not found"))}};Te=ke([ce(0,g.IModelService)],Te);class Pe{static{this.NULL_PROGRESS_RUNNER={done:()=>{},total:()=>{},worked:()=>{}}}show(){return Pe.NULL_PROGRESS_RUNNER}async showWhile(Ve,Ye){await Ve}}class Be{withProgress(Ve,Ye,Ze){return Ye({report:()=>{}})}}class He{constructor(){this.isExtensionDevelopment=!1,this.isBuilt=!1}}class $e{async confirm(Ve){return{confirmed:this.doConfirm(Ve.message,Ve.detail),checkboxChecked:!1}}doConfirm(Ve,Ye){let Ze=Ve;return Ye&&(Ze=Ze+` + +`+Ye),_e.mainWindow.confirm(Ze)}async prompt(Ve){let Ye;if(this.doConfirm(Ve.message,Ve.detail)){const nt=[...Ve.buttons??[]];Ve.cancelButton&&typeof Ve.cancelButton!="string"&&typeof Ve.cancelButton!="boolean"&&nt.push(Ve.cancelButton),Ye=await nt[0]?.run({checkboxChecked:!1})}return{result:Ye}}async error(Ve,Ye){await this.prompt({type:b.default.Error,message:Ve,detail:Ye})}}class je{static{this.NO_OP=new A.NoOpNotification}info(Ve){return this.notify({severity:b.default.Info,message:Ve})}warn(Ve){return this.notify({severity:b.default.Warning,message:Ve})}error(Ve){return this.notify({severity:b.default.Error,message:Ve})}notify(Ve){switch(Ve.severity){case b.default.Error:console.error(Ve.message);break;case b.default.Warning:console.warn(Ve.message);break;default:console.log(Ve.message);break}return je.NO_OP}prompt(Ve,Ye,Ze,nt){return je.NO_OP}status(Ve,Ye){return m.Disposable.None}}e.StandaloneNotificationService=je;let Xe=class{constructor(Ve){this._onWillExecuteCommand=new E.Emitter,this._onDidExecuteCommand=new E.Emitter,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this._instantiationService=Ve}executeCommand(Ve,...Ye){const Ze=a.CommandsRegistry.getCommand(Ve);if(!Ze)return Promise.reject(new Error(`command '${Ve}' not found`));try{this._onWillExecuteCommand.fire({commandId:Ve,args:Ye});const nt=this._instantiationService.invokeFunction.apply(this._instantiationService,[Ze.handler,...Ye]);return this._onDidExecuteCommand.fire({commandId:Ve,args:Ye}),Promise.resolve(nt)}catch(nt){return Promise.reject(nt)}}};e.StandaloneCommandService=Xe,e.StandaloneCommandService=Xe=ke([ce(0,h.IInstantiationService)],Xe);let et=class extends v.AbstractKeybindingService{constructor(Ve,Ye,Ze,nt,ct,ht){super(Ve,Ye,Ze,nt,ct),this._cachedResolver=null,this._dynamicKeybindings=[],this._domNodeListeners=[];const ft=wt=>{const kt=new m.DisposableStore;kt.add(k.addDisposableListener(wt,k.EventType.KEY_DOWN,Mt=>{const Tt=new I.StandardKeyboardEvent(Mt);this._dispatch(Tt,Tt.target)&&(Tt.preventDefault(),Tt.stopPropagation())})),kt.add(k.addDisposableListener(wt,k.EventType.KEY_UP,Mt=>{const Tt=new I.StandardKeyboardEvent(Mt);this._singleModifierDispatch(Tt,Tt.target)&&Tt.preventDefault()})),this._domNodeListeners.push(new dt(wt,kt))},gt=wt=>{for(let kt=0;kt{wt.getOption(61)||ft(wt.getContainerDomNode())},vt=wt=>{wt.getOption(61)||gt(wt.getContainerDomNode())};this._register(ht.onCodeEditorAdd(mt)),this._register(ht.onCodeEditorRemove(vt)),ht.listCodeEditors().forEach(mt);const Dt=wt=>{ft(wt.getContainerDomNode())},ui=wt=>{gt(wt.getContainerDomNode())};this._register(ht.onDiffEditorAdd(Dt)),this._register(ht.onDiffEditorRemove(ui)),ht.listDiffEditors().forEach(Dt)}addDynamicKeybinding(Ve,Ye,Ze,nt){return(0,m.combinedDisposable)(a.CommandsRegistry.registerCommand(Ve,Ze),this.addDynamicKeybindings([{keybinding:Ye,command:Ve,when:nt}]))}addDynamicKeybindings(Ve){const Ye=Ve.map(Ze=>({keybinding:(0,y.decodeKeybinding)(Ze.keybinding,_.OS),command:Ze.command??null,commandArgs:Ze.commandArgs,when:Ze.when,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}));return this._dynamicKeybindings=this._dynamicKeybindings.concat(Ye),this.updateResolver(),(0,m.toDisposable)(()=>{for(let Ze=0;Zethis._log(Ze))}return this._cachedResolver}_documentHasFocus(){return _e.mainWindow.document.hasFocus()}_toNormalizedKeybindingItems(Ve,Ye){const Ze=[];let nt=0;for(const ct of Ve){const ht=ct.when||void 0,ft=ct.keybinding;if(!ft)Ze[nt++]=new D.ResolvedKeybindingItem(void 0,ct.command,ct.commandArgs,ht,Ye,null,!1);else{const gt=T.USLayoutResolvedKeybinding.resolveKeybinding(ft,_.OS);for(const mt of gt)Ze[nt++]=new D.ResolvedKeybindingItem(mt,ct.command,ct.commandArgs,ht,Ye,null,!1)}}return Ze}resolveKeyboardEvent(Ve){const Ye=new y.KeyCodeChord(Ve.ctrlKey,Ve.shiftKey,Ve.altKey,Ve.metaKey,Ve.keyCode);return new T.USLayoutResolvedKeybinding([Ye],_.OS)}};e.StandaloneKeybindingService=et,e.StandaloneKeybindingService=et=ke([ce(0,C.IContextKeyService),ce(1,a.ICommandService),ce(2,N.ITelemetryService),ce(3,A.INotificationService),ce(4,q.ILogService),ce(5,V.ICodeEditorService)],et);class dt extends m.Disposable{constructor(Ve,Ye){super(),this.domNode=Ve,this._register(Ye)}}function at(ot){return ot&&typeof ot=="object"&&(!ot.overrideIdentifier||typeof ot.overrideIdentifier=="string")&&(!ot.resource||ot.resource instanceof p.URI)}let st=class{constructor(Ve){this.logService=Ve,this._onDidChangeConfiguration=new E.Emitter,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;const Ye=new Ne.DefaultConfiguration(Ve);this._configuration=new u.Configuration(Ye.reload(),u.ConfigurationModel.createEmptyModel(Ve),u.ConfigurationModel.createEmptyModel(Ve),u.ConfigurationModel.createEmptyModel(Ve),u.ConfigurationModel.createEmptyModel(Ve),u.ConfigurationModel.createEmptyModel(Ve),new xe.ResourceMap,u.ConfigurationModel.createEmptyModel(Ve),new xe.ResourceMap,Ve),Ye.dispose()}getValue(Ve,Ye){const Ze=typeof Ve=="string"?Ve:void 0,nt=at(Ve)?Ve:at(Ye)?Ye:{};return this._configuration.getValue(Ze,nt,void 0)}updateValues(Ve){const Ye={data:this._configuration.toData()},Ze=[];for(const nt of Ve){const[ct,ht]=nt;this.getValue(ct)!==ht&&(this._configuration.updateValue(ct,ht),Ze.push(ct))}if(Ze.length>0){const nt=new u.ConfigurationChangeEvent({keys:Ze,overrides:[]},Ye,this._configuration,void 0,this.logService);nt.source=8,this._onDidChangeConfiguration.fire(nt)}return Promise.resolve()}updateValue(Ve,Ye,Ze,nt){return this.updateValues([[Ve,Ye]])}inspect(Ve,Ye={}){return this._configuration.inspect(Ve,Ye,void 0)}};e.StandaloneConfigurationService=st,e.StandaloneConfigurationService=st=ke([ce(0,q.ILogService)],st);let pt=class{constructor(Ve,Ye,Ze){this.configurationService=Ve,this.modelService=Ye,this.languageService=Ze,this._onDidChangeConfiguration=new E.Emitter,this.configurationService.onDidChangeConfiguration(nt=>{this._onDidChangeConfiguration.fire({affectedKeys:nt.affectedKeys,affectsConfiguration:(ct,ht)=>nt.affectsConfiguration(ht)})})}getValue(Ve,Ye,Ze){const nt=i.Position.isIPosition(Ye)?Ye:null,ct=nt?typeof Ze=="string"?Ze:void 0:typeof Ye=="string"?Ye:void 0,ht=Ve?this.getLanguage(Ve,nt):void 0;return typeof ct>"u"?this.configurationService.getValue({resource:Ve,overrideIdentifier:ht}):this.configurationService.getValue(ct,{resource:Ve,overrideIdentifier:ht})}getLanguage(Ve,Ye){const Ze=this.modelService.getModel(Ve);return Ze?Ye?Ze.getLanguageIdAtPosition(Ye.lineNumber,Ye.column):Ze.getLanguageId():this.languageService.guessLanguageIdByFilepathOrFirstLine(Ve)}};pt=ke([ce(0,r.IConfigurationService),ce(1,g.IModelService),ce(2,ie.ILanguageService)],pt);let bt=class{constructor(Ve){this.configurationService=Ve}getEOL(Ve,Ye){const Ze=this.configurationService.getValue("files.eol",{overrideIdentifier:Ye,resource:Ve});return Ze&&typeof Ze=="string"&&Ze!=="auto"?Ze:_.isLinux||_.isMacintosh?` +`:`\r +`}};bt=ke([ce(0,r.IConfigurationService)],bt);class De{publicLog2(){}}class Ie{static{this.SCHEME="inmemory"}constructor(){const Ve=p.URI.from({scheme:Ie.SCHEME,authority:"model",path:"/"});this.workspace={id:O.STANDALONE_EDITOR_WORKSPACE_ID,folders:[new O.WorkspaceFolder({uri:Ve,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(Ve){return Ve&&Ve.scheme===Ie.SCHEME?this.workspace.folders[0]:null}}function Re(ot,Ve,Ye){if(!Ve||!(ot instanceof st))return;const Ze=[];Object.keys(Ve).forEach(nt=>{(0,o.isEditorConfigurationKey)(nt)&&Ze.push([`editor.${nt}`,Ve[nt]]),Ye&&(0,o.isDiffEditorConfigurationKey)(nt)&&Ze.push([`diffEditor.${nt}`,Ve[nt]])}),Ze.length>0&&ot.updateValues(Ze)}let Se=class{constructor(Ve){this._modelService=Ve}hasPreviewHandler(){return!1}async apply(Ve,Ye){const Ze=Array.isArray(Ve)?Ve:n.ResourceEdit.convert(Ve),nt=new Map;for(const ft of Ze){if(!(ft instanceof n.ResourceTextEdit))throw new Error("bad edit - only text edits are supported");const gt=this._modelService.getModel(ft.resource);if(!gt)throw new Error("bad edit - model not found");if(typeof ft.versionId=="number"&>.getVersionId()!==ft.versionId)throw new Error("bad state - model changed in the meantime");let mt=nt.get(gt);mt||(mt=[],nt.set(gt,mt)),mt.push(t.EditOperation.replaceMove(s.Range.lift(ft.textEdit.range),ft.textEdit.text))}let ct=0,ht=0;for(const[ft,gt]of nt)ft.pushStackElement(),ft.pushEditOperations([],gt,()=>[]),ft.pushStackElement(),ht+=1,ct+=gt.length;return{ariaSummary:d.format(x.StandaloneServicesNLS.bulkEditServiceSummary,ct,ht),isApplied:ct>0}}};Se=ke([ce(0,g.IModelService)],Se);class We{getUriLabel(Ve,Ye){return Ve.scheme==="file"?Ve.fsPath:Ve.path}getUriBasenameLabel(Ve){return(0,W.basename)(Ve)}}let qe=class extends U.ContextViewService{constructor(Ve,Ye){super(Ve),this._codeEditorService=Ye}showContextView(Ve,Ye,Ze){if(!Ye){const nt=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();nt&&(Ye=nt.getContainerDomNode())}return super.showContextView(Ve,Ye,Ze)}};qe=ke([ce(0,F.ILayoutService),ce(1,V.ICodeEditorService)],qe);class Ue{constructor(){this._neverEmitter=new E.Emitter,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}class Je extends j.LanguageService{constructor(){super()}}class tt extends it.LogService{constructor(){super(new q.ConsoleLogger)}}let Qe=class extends Y.ContextMenuService{constructor(Ve,Ye,Ze,nt,ct,ht){super(Ve,Ye,Ze,nt,ct,ht),this.configure({blockMouse:!1})}};Qe=ke([ce(0,N.ITelemetryService),ce(1,A.INotificationService),ce(2,z.IContextViewService),ce(3,w.IKeybindingService),ce(4,B.IMenuService),ce(5,C.IContextKeyService)],Qe),e.standaloneEditorWorkerDescriptor={amdModuleId:"vs/editor/common/services/editorSimpleWorker",esmModuleLocation:void 0,label:"editorWorkerService"};let rt=class extends J.EditorWorkerService{constructor(Ve,Ye,Ze,nt,ct){super(e.standaloneEditorWorkerDescriptor,Ve,Ye,Ze,nt,ct)}};rt=ke([ce(0,g.IModelService),ce(1,l.ITextResourceConfigurationService),ce(2,q.ILogService),ce(3,Ge.ILanguageConfigurationService),ce(4,ze.ILanguageFeaturesService)],rt);class Ct{async playSignal(Ve,Ye){}}(0,G.registerSingleton)(q.ILogService,tt,0),(0,G.registerSingleton)(r.IConfigurationService,st,0),(0,G.registerSingleton)(l.ITextResourceConfigurationService,pt,0),(0,G.registerSingleton)(l.ITextResourcePropertiesService,bt,0),(0,G.registerSingleton)(O.IWorkspaceContextService,Ie,0),(0,G.registerSingleton)(M.ILabelService,We,0),(0,G.registerSingleton)(N.ITelemetryService,De,0),(0,G.registerSingleton)(f.IDialogService,$e,0),(0,G.registerSingleton)(fe.IEnvironmentService,He,0),(0,G.registerSingleton)(A.INotificationService,je,0),(0,G.registerSingleton)(ye.IMarkerService,Le.MarkerService,0),(0,G.registerSingleton)(ie.ILanguageService,Je,0),(0,G.registerSingleton)(de.IStandaloneThemeService,ee.StandaloneThemeService,0),(0,G.registerSingleton)(g.IModelService,pe.ModelService,0),(0,G.registerSingleton)(he.IMarkerDecorationsService,ue.MarkerDecorationsService,0),(0,G.registerSingleton)(C.IContextKeyService,te.ContextKeyService,0),(0,G.registerSingleton)(P.IProgressService,Be,0),(0,G.registerSingleton)(P.IEditorProgressService,Pe,0),(0,G.registerSingleton)(Ae.IStorageService,Ae.InMemoryStorageService,0),(0,G.registerSingleton)(R.IEditorWorkerService,rt,0),(0,G.registerSingleton)(n.IBulkEditService,Se,0),(0,G.registerSingleton)(H.IWorkspaceTrustManagementService,Ue,0),(0,G.registerSingleton)(c.ITextModelService,Te,0),(0,G.registerSingleton)(X.IAccessibilityService,ge.AccessibilityService,0),(0,G.registerSingleton)(Ce.IListService,Ce.ListService,0),(0,G.registerSingleton)(a.ICommandService,Xe,0),(0,G.registerSingleton)(w.IKeybindingService,et,0),(0,G.registerSingleton)(Me.IQuickInputService,ae.StandaloneQuickInputService,0),(0,G.registerSingleton)(z.IContextViewService,qe,0),(0,G.registerSingleton)(Ee.IOpenerService,K.OpenerService,0),(0,G.registerSingleton)(Z.IClipboardService,Q.BrowserClipboardService,0),(0,G.registerSingleton)(z.IContextMenuService,Qe,0),(0,G.registerSingleton)(B.IMenuService,$.MenuService,0),(0,G.registerSingleton)(Ke.IAccessibilitySignalService,Ct,0),(0,G.registerSingleton)(be.ITreeSitterParserService,ve.StandaloneTreeSitterParserService,0);var ut;(function(ot){const Ve=new me.ServiceCollection;for(const[gt,mt]of(0,G.getSingletonServiceDescriptors)())Ve.set(gt,mt);const Ye=new le.InstantiationService(Ve,!0);Ve.set(h.IInstantiationService,Ye);function Ze(gt){nt||ht({});const mt=Ve.get(gt);if(!mt)throw new Error("Missing service "+gt);return mt instanceof re.SyncDescriptor?Ye.invokeFunction(vt=>vt.get(gt)):mt}ot.get=Ze;let nt=!1;const ct=new E.Emitter;function ht(gt){if(nt)return Ye;nt=!0;for(const[vt,Dt]of(0,G.getSingletonServiceDescriptors)())Ve.get(vt)||Ve.set(vt,Dt);for(const vt in gt)if(gt.hasOwnProperty(vt)){const Dt=(0,h.createDecorator)(vt);Ve.get(Dt)instanceof re.SyncDescriptor&&Ve.set(Dt,gt[vt])}const mt=(0,Oe.getEditorFeatures)();for(const vt of mt)try{Ye.createInstance(vt)}catch(Dt){(0,Fe.onUnexpectedError)(Dt)}return ct.fire(),Ye}ot.initialize=ht;function ft(gt){if(nt)return gt();const mt=new m.DisposableStore,vt=mt.add(ct.event(()=>{vt.dispose(),mt.add(gt())}));return mt}ot.withServices=ft})(ut||(e.StandaloneServices=ut={}))}),define(ne[871],se([1,0,46,2,34,219,318,222,153,29,24,28,12,58,7,31,50,25,61,107,117,96,51,43,418,70,36,17,286,137,52,44,118,81]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M,A,P){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.StandaloneDiffEditor2=e.StandaloneEditor=e.StandaloneCodeEditor=void 0,e.createTextModel=q;let N=0,O=!1;function F(z){if(!z){if(O)return;O=!0}d.setARIAContainer(z||T.mainWindow.document.body)}let x=class extends E.CodeEditorWidget{constructor(U,j,Y,G,K,R,J,ie,ue,he,pe,ae,ee){const de={...j};de.ariaLabel=de.ariaLabel||a.StandaloneCodeEditorNLS.editorViewAccessibleLabel,super(U,de,{},Y,G,K,R,ue,he,pe,ae,ee),ie instanceof m.StandaloneKeybindingService?this._standaloneKeybindingService=ie:this._standaloneKeybindingService=null,F(de.ariaContainerElement),(0,M.setHoverDelegateFactory)((ge,X)=>Y.createInstance(A.WorkbenchHoverDelegate,ge,X,{})),(0,P.setBaseLayerHoverDelegate)(J)}addCommand(U,j,Y){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const G="DYNAMIC_"+ ++N,K=o.ContextKeyExpr.deserialize(Y);return this._standaloneKeybindingService.addDynamicKeybinding(G,U,j,K),G}createContextKey(U,j){return this._contextKeyService.createKey(U,j)}addAction(U){if(typeof U.id!="string"||typeof U.label!="string"||typeof U.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),k.Disposable.None;const j=U.id,Y=U.label,G=o.ContextKeyExpr.and(o.ContextKeyExpr.equals("editorId",this.getId()),o.ContextKeyExpr.deserialize(U.precondition)),K=U.keybindings,R=o.ContextKeyExpr.and(G,o.ContextKeyExpr.deserialize(U.keybindingContext)),J=U.contextMenuGroupId||null,ie=U.contextMenuOrder||0,ue=(ee,...de)=>Promise.resolve(U.run(this,...de)),he=new k.DisposableStore,pe=this.getId()+":"+j;if(he.add(p.CommandsRegistry.registerCommand(pe,ue)),J){const ee={command:{id:pe,title:Y},when:G,group:J,order:ie};he.add(b.MenuRegistry.appendMenuItem(b.MenuId.EditorContext,ee))}if(Array.isArray(K))for(const ee of K)he.add(this._standaloneKeybindingService.addDynamicKeybinding(pe,ee,ue,R));const ae=new y.InternalEditorAction(pe,Y,Y,void 0,G,(...ee)=>Promise.resolve(U.run(this,...ee)),this._contextKeyService);return this._actions.set(j,ae),he.add((0,k.toDisposable)(()=>{this._actions.delete(j)})),he}_triggerCommand(U,j){if(this._codeEditorService instanceof h.StandaloneCodeEditorService)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(U,j)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(U,j)}};e.StandaloneCodeEditor=x,e.StandaloneCodeEditor=x=ke([ce(2,i.IInstantiationService),ce(3,I.ICodeEditorService),ce(4,p.ICommandService),ce(5,o.IContextKeyService),ce(6,A.IHoverService),ce(7,s.IKeybindingService),ce(8,c.IThemeService),ce(9,g.INotificationService),ce(10,l.IAccessibilityService),ce(11,w.ILanguageConfigurationService),ce(12,S.ILanguageFeaturesService)],x);let W=class extends x{constructor(U,j,Y,G,K,R,J,ie,ue,he,pe,ae,ee,de,ge,X){const B={...j};(0,m.updateConfigurationService)(pe,B,!1);const $=ue.registerEditorContainer(U);typeof B.theme=="string"&&ue.setTheme(B.theme),typeof B.autoDetectHighContrast<"u"&&ue.setAutoDetectHighContrast(!!B.autoDetectHighContrast);const Q=B.model;delete B.model,super(U,B,Y,G,K,R,J,ie,ue,he,ae,ge,X),this._configurationService=pe,this._standaloneThemeService=ue,this._register($);let Z;if(typeof Q>"u"){const te=de.getLanguageIdByMimeType(B.language)||B.language||v.PLAINTEXT_LANGUAGE_ID;Z=q(ee,de,B.value||"",te,void 0),this._ownsModel=!0}else Z=Q,this._ownsModel=!1;if(this._attachModel(Z),Z){const te={oldModelUrl:null,newModelUrl:Z.uri};this._onDidChangeModel.fire(te)}}dispose(){super.dispose()}updateOptions(U){(0,m.updateConfigurationService)(this._configurationService,U,!1),typeof U.theme=="string"&&this._standaloneThemeService.setTheme(U.theme),typeof U.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!U.autoDetectHighContrast),super.updateOptions(U)}_postDetachModelCleanup(U){super._postDetachModelCleanup(U),U&&this._ownsModel&&(U.dispose(),this._ownsModel=!1)}};e.StandaloneEditor=W,e.StandaloneEditor=W=ke([ce(2,i.IInstantiationService),ce(3,I.ICodeEditorService),ce(4,p.ICommandService),ce(5,o.IContextKeyService),ce(6,A.IHoverService),ce(7,s.IKeybindingService),ce(8,_.IStandaloneThemeService),ce(9,g.INotificationService),ce(10,n.IConfigurationService),ce(11,l.IAccessibilityService),ce(12,C.IModelService),ce(13,f.ILanguageService),ce(14,w.ILanguageConfigurationService),ce(15,S.ILanguageFeaturesService)],W);let V=class extends L.DiffEditorWidget{constructor(U,j,Y,G,K,R,J,ie,ue,he,pe,ae){const ee={...j};(0,m.updateConfigurationService)(ie,ee,!0);const de=R.registerEditorContainer(U);typeof ee.theme=="string"&&R.setTheme(ee.theme),typeof ee.autoDetectHighContrast<"u"&&R.setAutoDetectHighContrast(!!ee.autoDetectHighContrast),super(U,ee,{},G,Y,K,ae,he),this._configurationService=ie,this._standaloneThemeService=R,this._register(de)}dispose(){super.dispose()}updateOptions(U){(0,m.updateConfigurationService)(this._configurationService,U,!0),typeof U.theme=="string"&&this._standaloneThemeService.setTheme(U.theme),typeof U.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!U.autoDetectHighContrast),super.updateOptions(U)}_createInnerEditor(U,j,Y){return U.createInstance(x,j,Y)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(U,j,Y){return this.getModifiedEditor().addCommand(U,j,Y)}createContextKey(U,j){return this.getModifiedEditor().createContextKey(U,j)}addAction(U){return this.getModifiedEditor().addAction(U)}};e.StandaloneDiffEditor2=V,e.StandaloneDiffEditor2=V=ke([ce(2,i.IInstantiationService),ce(3,o.IContextKeyService),ce(4,I.ICodeEditorService),ce(5,_.IStandaloneThemeService),ce(6,g.INotificationService),ce(7,n.IConfigurationService),ce(8,t.IContextMenuService),ce(9,u.IEditorProgressService),ce(10,r.IClipboardService),ce(11,D.IAccessibilitySignalService)],V);function q(z,U,j,Y,G){if(j=j||"",!Y){const K=j.indexOf(` +`);let R=j;return K!==-1&&(R=j.substring(0,K)),H(z,j,U.createByFilepathOrFirstLine(G||null,R),G)}return H(z,j,U.createById(Y),G)}function H(z,U,j,Y){return z.createModel(U,j,Y)}}),define(ne[872],se([1,0,33,4,27,43,36,70,17,238,222,625,389,153,28,108]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.TokenizationSupportAdapter=e.EncodedTokenizationSupportAdapter=void 0,e.register=g,e.getLanguages=c,e.getEncodedLanguageId=l,e.onLanguage=a,e.onLanguageEncountered=r,e.setLanguageConfiguration=u,e.setColorMap=S,e.registerTokensProviderFactory=D,e.setTokensProvider=T,e.setMonarchTokensProvider=M,e.registerReferenceProvider=A,e.registerRenameProvider=P,e.registerNewSymbolNameProvider=N,e.registerSignatureHelpProvider=O,e.registerHoverProvider=F,e.registerDocumentSymbolProvider=x,e.registerDocumentHighlightProvider=W,e.registerLinkedEditingRangeProvider=V,e.registerDefinitionProvider=q,e.registerImplementationProvider=H,e.registerTypeDefinitionProvider=z,e.registerCodeLensProvider=U,e.registerCodeActionProvider=j,e.registerDocumentFormattingEditProvider=Y,e.registerDocumentRangeFormattingEditProvider=G,e.registerOnTypeFormattingEditProvider=K,e.registerLinkProvider=R,e.registerCompletionItemProvider=J,e.registerColorProvider=ie,e.registerFoldingRangeProvider=ue,e.registerDeclarationProvider=he,e.registerSelectionRangeProvider=pe,e.registerDocumentSemanticTokensProvider=ae,e.registerDocumentRangeSemanticTokensProvider=ee,e.registerInlineCompletionsProvider=de,e.registerInlineEditProvider=ge,e.registerInlayHintsProvider=X,e.createMonacoLanguagesAPI=B;function g($){m.ModesRegistry.registerLanguage($)}function c(){let $=[];return $=$.concat(m.ModesRegistry.getLanguages()),$}function l($){return p.StandaloneServices.get(E.ILanguageService).languageIdCodec.encodeLanguageId($)}function a($,Q){return p.StandaloneServices.withServices(()=>{const te=p.StandaloneServices.get(E.ILanguageService).onDidRequestRichLanguageFeatures(re=>{re===$&&(te.dispose(),Q())});return te})}function r($,Q){return p.StandaloneServices.withServices(()=>{const te=p.StandaloneServices.get(E.ILanguageService).onDidRequestBasicLanguageFeatures(re=>{re===$&&(te.dispose(),Q())});return te})}function u($,Q){if(!p.StandaloneServices.get(E.ILanguageService).isRegisteredLanguageId($))throw new Error(`Cannot set configuration for unknown language ${$}`);return p.StandaloneServices.get(y.ILanguageConfigurationService).register($,Q,100)}class C{constructor(Q,Z){this._languageId=Q,this._actual=Z}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(Q,Z,te){if(typeof this._actual.tokenize=="function")return f.adaptTokenize(this._languageId,this._actual,Q,te);throw new Error("Not supported!")}tokenizeEncoded(Q,Z,te){const re=this._actual.tokenizeEncoded(Q,te);return new I.EncodedTokenizationResult(re.tokens,re.endState)}}e.EncodedTokenizationSupportAdapter=C;class f{constructor(Q,Z,te,re){this._languageId=Q,this._actual=Z,this._languageService=te,this._standaloneThemeService=re}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(Q,Z){const te=[];let re=0;for(let le=0,me=Q.length;le0&&le[me-1]===Ae)continue;let Ne=Me.startIndex;Le===0?Ne=0:Ne{const te=await Promise.resolve(Q.create());return te?h(te)?L($,te):new o.MonarchTokenizer(p.StandaloneServices.get(E.ILanguageService),p.StandaloneServices.get(t.IStandaloneThemeService),$,(0,n.compile)($,te),p.StandaloneServices.get(i.IConfigurationService)):null});return I.TokenizationRegistry.registerFactory($,Z)}function T($,Q){if(!p.StandaloneServices.get(E.ILanguageService).isRegisteredLanguageId($))throw new Error(`Cannot set tokens provider for unknown language ${$}`);return w(Q)?D($,{create:()=>Q}):I.TokenizationRegistry.register($,L($,Q))}function M($,Q){const Z=te=>new o.MonarchTokenizer(p.StandaloneServices.get(E.ILanguageService),p.StandaloneServices.get(t.IStandaloneThemeService),$,(0,n.compile)($,te),p.StandaloneServices.get(i.IConfigurationService));return w(Q)?D($,{create:()=>Q}):I.TokenizationRegistry.register($,Z(Q))}function A($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).referenceProvider.register($,Q)}function P($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).renameProvider.register($,Q)}function N($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).newSymbolNamesProvider.register($,Q)}function O($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).signatureHelpProvider.register($,Q)}function F($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).hoverProvider.register($,{provideHover:async(te,re,le,me)=>{const Ce=te.getWordAtPosition(re);return Promise.resolve(Q.provideHover(te,re,le,me)).then(ye=>{if(ye)return!ye.range&&Ce&&(ye.range=new k.Range(re.lineNumber,Ce.startColumn,re.lineNumber,Ce.endColumn)),ye.range||(ye.range=new k.Range(re.lineNumber,re.column,re.lineNumber,re.column)),ye})}})}function x($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).documentSymbolProvider.register($,Q)}function W($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).documentHighlightProvider.register($,Q)}function V($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).linkedEditingRangeProvider.register($,Q)}function q($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).definitionProvider.register($,Q)}function H($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).implementationProvider.register($,Q)}function z($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).typeDefinitionProvider.register($,Q)}function U($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).codeLensProvider.register($,Q)}function j($,Q,Z){return p.StandaloneServices.get(_.ILanguageFeaturesService).codeActionProvider.register($,{providedCodeActionKinds:Z?.providedCodeActionKinds,documentation:Z?.documentation,provideCodeActions:(re,le,me,Ce)=>{const Le=p.StandaloneServices.get(s.IMarkerService).read({resource:re.uri}).filter(Ee=>k.Range.areIntersectingOrTouching(Ee,le));return Q.provideCodeActions(re,le,{markers:Le,only:me.only,trigger:me.trigger},Ce)},resolveCodeAction:Q.resolveCodeAction})}function Y($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).documentFormattingEditProvider.register($,Q)}function G($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).documentRangeFormattingEditProvider.register($,Q)}function K($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).onTypeFormattingEditProvider.register($,Q)}function R($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).linkProvider.register($,Q)}function J($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).completionProvider.register($,Q)}function ie($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).colorProvider.register($,Q)}function ue($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).foldingRangeProvider.register($,Q)}function he($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).declarationProvider.register($,Q)}function pe($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).selectionRangeProvider.register($,Q)}function ae($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).documentSemanticTokensProvider.register($,Q)}function ee($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).documentRangeSemanticTokensProvider.register($,Q)}function de($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).inlineCompletionsProvider.register($,Q)}function ge($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).inlineEditProvider.register($,Q)}function X($,Q){return p.StandaloneServices.get(_.ILanguageFeaturesService).inlayHintsProvider.register($,Q)}function B(){return{register:g,getLanguages:c,onLanguage:a,onLanguageEncountered:r,getEncodedLanguageId:l,setLanguageConfiguration:u,setColorMap:S,registerTokensProviderFactory:D,setTokensProvider:T,setMonarchTokensProvider:M,registerReferenceProvider:A,registerRenameProvider:P,registerNewSymbolNameProvider:N,registerCompletionItemProvider:J,registerSignatureHelpProvider:O,registerHoverProvider:F,registerDocumentSymbolProvider:x,registerDocumentHighlightProvider:W,registerLinkedEditingRangeProvider:V,registerDefinitionProvider:q,registerImplementationProvider:H,registerTypeDefinitionProvider:z,registerCodeLensProvider:U,registerCodeActionProvider:j,registerDocumentFormattingEditProvider:Y,registerDocumentRangeFormattingEditProvider:G,registerOnTypeFormattingEditProvider:K,registerLinkProvider:R,registerColorProvider:ie,registerFoldingRangeProvider:ue,registerDeclarationProvider:he,registerSelectionRangeProvider:pe,registerDocumentSemanticTokensProvider:ae,registerDocumentRangeSemanticTokensProvider:ee,registerInlineCompletionsProvider:de,registerInlineEditProvider:ge,registerInlayHintsProvider:X,DocumentHighlightKind:b.DocumentHighlightKind,CompletionItemKind:b.CompletionItemKind,CompletionItemTag:b.CompletionItemTag,CompletionItemInsertTextRule:b.CompletionItemInsertTextRule,SymbolKind:b.SymbolKind,SymbolTag:b.SymbolTag,IndentAction:b.IndentAction,CompletionTriggerKind:b.CompletionTriggerKind,SignatureHelpTriggerKind:b.SignatureHelpTriggerKind,InlayHintKind:b.InlayHintKind,InlineCompletionTriggerKind:b.InlineCompletionTriggerKind,InlineEditTriggerKind:b.InlineEditTriggerKind,CodeActionTriggerType:b.CodeActionTriggerType,NewSymbolNameTag:b.NewSymbolNameTag,NewSymbolNameTriggerKind:b.NewSymbolNameTriggerKind,PartialAcceptTriggerKind:b.PartialAcceptTriggerKind,HoverVerbosityAction:b.HoverVerbosityAction,FoldingRangeKind:I.FoldingRangeKind,SelectedSuggestionInfo:I.SelectedSuggestionInfo}}}),define(ne[873],se([1,0,60,401,222]),function(oe,e,d,k,I){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.createWebWorker=E;function E(m,_){return new y(m,_)}class y extends k.EditorWorkerClient{constructor(_,b){const p={amdModuleId:I.standaloneEditorWorkerDescriptor.amdModuleId,esmModuleLocation:I.standaloneEditorWorkerDescriptor.esmModuleLocation,label:b.label};super(p,b.keepIdleModels||!1,_),this._foreignModuleId=b.moduleId,this._foreignModuleCreateData=b.createData||null,this._foreignModuleHost=b.host||null,this._foreignProxy=null}fhr(_,b){if(!this._foreignModuleHost||typeof this._foreignModuleHost[_]!="function")return Promise.reject(new Error("Missing method "+_+" or missing main thread foreign host."));try{return Promise.resolve(this._foreignModuleHost[_].apply(this._foreignModuleHost,b))}catch(p){return Promise.reject(p)}}_getForeignProxy(){return this._foreignProxy||(this._foreignProxy=this._getProxy().then(_=>{const b=this._foreignModuleHost?(0,d.getAllMethodNames)(this._foreignModuleHost):[];return _.$loadForeignModule(this._foreignModuleId,this._foreignModuleCreateData,b).then(p=>{this._foreignModuleCreateData=null;const n=(i,s)=>_.$fmr(i,s),o=(i,s)=>function(){const g=Array.prototype.slice.call(arguments,0);return s(i,g)},t={};for(const i of p)t[i]=o(i,n);return t})})),this._foreignProxy}getProxy(){return this._getForeignProxy()}withSyncedResources(_){return this.workerWithSyncedResources(_).then(b=>this.getProxy())}}}),define(ne[874],se([1,0,52,2,11,22,366,15,34,873,37,165,261,198,27,43,70,177,40,51,238,682,871,222,153,29,24,12,31,108,59,814,541]),function(oe,e,d,k,I,E,y,m,_,b,p,n,o,t,i,s,g,c,l,a,r,u,C,f,h,v,w,S,L,D,T,M){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.create=A,e.onDidCreateEditor=P,e.onDidCreateDiffEditor=N,e.getEditors=O,e.getDiffEditors=F,e.createDiffEditor=x,e.createMultiFileDiffEditor=W,e.addCommand=V,e.addEditorAction=q,e.addKeybindingRule=H,e.addKeybindingRules=z,e.createModel=U,e.setModelLanguage=j,e.setModelMarkers=Y,e.removeAllMarkers=G,e.getModelMarkers=K,e.onDidChangeMarkers=R,e.getModel=J,e.getModels=ie,e.onDidCreateModel=ue,e.onWillDisposeModel=he,e.onDidChangeModelLanguage=pe,e.createWebWorker=ae,e.colorizeElement=ee,e.colorize=de,e.colorizeModelLine=ge,e.tokenize=B,e.defineTheme=$,e.setTheme=Q,e.remeasureFonts=Z,e.registerCommand=te,e.registerLinkOpener=re,e.registerEditorOpener=le,e.createMonacoEditorAPI=me;function A(Ce,ye,Le){return f.StandaloneServices.initialize(Le||{}).createInstance(C.StandaloneEditor,Ce,ye)}function P(Ce){return f.StandaloneServices.get(_.ICodeEditorService).onCodeEditorAdd(Le=>{Ce(Le)})}function N(Ce){return f.StandaloneServices.get(_.ICodeEditorService).onDiffEditorAdd(Le=>{Ce(Le)})}function O(){return f.StandaloneServices.get(_.ICodeEditorService).listCodeEditors()}function F(){return f.StandaloneServices.get(_.ICodeEditorService).listDiffEditors()}function x(Ce,ye,Le){return f.StandaloneServices.initialize(Le||{}).createInstance(C.StandaloneDiffEditor2,Ce,ye)}function W(Ce,ye){const Le=f.StandaloneServices.initialize(ye||{});return new M.MultiDiffEditorWidget(Ce,{},Le)}function V(Ce){if(typeof Ce.id!="string"||typeof Ce.run!="function")throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return w.CommandsRegistry.registerCommand(Ce.id,Ce.run)}function q(Ce){if(typeof Ce.id!="string"||typeof Ce.label!="string"||typeof Ce.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");const ye=S.ContextKeyExpr.deserialize(Ce.precondition),Le=(Me,...Ae)=>m.EditorCommand.runEditorCommand(Me,Ae,ye,(Ne,Ke,ze)=>Promise.resolve(Ce.run(Ke,...ze))),Ee=new k.DisposableStore;if(Ee.add(w.CommandsRegistry.registerCommand(Ce.id,Le)),Ce.contextMenuGroupId){const Me={command:{id:Ce.id,title:Ce.label},when:ye,group:Ce.contextMenuGroupId,order:Ce.contextMenuOrder||0};Ee.add(v.MenuRegistry.appendMenuItem(v.MenuId.EditorContext,Me))}if(Array.isArray(Ce.keybindings)){const Me=f.StandaloneServices.get(L.IKeybindingService);if(!(Me instanceof f.StandaloneKeybindingService))console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService");else{const Ae=S.ContextKeyExpr.and(ye,S.ContextKeyExpr.deserialize(Ce.keybindingContext));Ee.add(Me.addDynamicKeybindings(Ce.keybindings.map(Ne=>({keybinding:Ne,command:Ce.id,when:Ae}))))}}return Ee}function H(Ce){return z([Ce])}function z(Ce){const ye=f.StandaloneServices.get(L.IKeybindingService);return ye instanceof f.StandaloneKeybindingService?ye.addDynamicKeybindings(Ce.map(Le=>({keybinding:Le.keybinding,command:Le.command,commandArgs:Le.commandArgs,when:S.ContextKeyExpr.deserialize(Le.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),k.Disposable.None)}function U(Ce,ye,Le){const Ee=f.StandaloneServices.get(s.ILanguageService),Me=Ee.getLanguageIdByMimeType(ye)||ye;return(0,C.createTextModel)(f.StandaloneServices.get(a.IModelService),Ee,Ce,Me,Le)}function j(Ce,ye){const Le=f.StandaloneServices.get(s.ILanguageService),Ee=Le.getLanguageIdByMimeType(ye)||ye||g.PLAINTEXT_LANGUAGE_ID;Ce.setLanguage(Le.createById(Ee))}function Y(Ce,ye,Le){Ce&&f.StandaloneServices.get(D.IMarkerService).changeOne(ye,Ce.uri,Le)}function G(Ce){f.StandaloneServices.get(D.IMarkerService).changeAll(Ce,[])}function K(Ce){return f.StandaloneServices.get(D.IMarkerService).read(Ce)}function R(Ce){return f.StandaloneServices.get(D.IMarkerService).onMarkerChanged(Ce)}function J(Ce){return f.StandaloneServices.get(a.IModelService).getModel(Ce)}function ie(){return f.StandaloneServices.get(a.IModelService).getModels()}function ue(Ce){return f.StandaloneServices.get(a.IModelService).onModelAdded(Ce)}function he(Ce){return f.StandaloneServices.get(a.IModelService).onModelRemoved(Ce)}function pe(Ce){return f.StandaloneServices.get(a.IModelService).onModelLanguageChanged(Le=>{Ce({model:Le.model,oldLanguage:Le.oldLanguageId})})}function ae(Ce){return(0,b.createWebWorker)(f.StandaloneServices.get(a.IModelService),Ce)}function ee(Ce,ye){const Le=f.StandaloneServices.get(s.ILanguageService),Ee=f.StandaloneServices.get(h.IStandaloneThemeService);return u.Colorizer.colorizeElement(Ee,Le,Ce,ye).then(()=>{Ee.registerEditorContainer(Ce)})}function de(Ce,ye,Le){const Ee=f.StandaloneServices.get(s.ILanguageService);return f.StandaloneServices.get(h.IStandaloneThemeService).registerEditorContainer(d.mainWindow.document.body),u.Colorizer.colorize(Ee,Ce,ye,Le)}function ge(Ce,ye,Le=4){return f.StandaloneServices.get(h.IStandaloneThemeService).registerEditorContainer(d.mainWindow.document.body),u.Colorizer.colorizeModelLine(Ce,ye,Le)}function X(Ce){const ye=i.TokenizationRegistry.get(Ce);return ye||{getInitialState:()=>c.NullState,tokenize:(Le,Ee,Me)=>(0,c.nullTokenize)(Ce,Me)}}function B(Ce,ye){i.TokenizationRegistry.getOrCreate(ye);const Le=X(ye),Ee=(0,I.splitLines)(Ce),Me=[];let Ae=Le.getInitialState();for(let Ne=0,Ke=Ee.length;Ne{if(!Ee)return null;const Ae=Le.options?.selection;let Ne;return Ae&&typeof Ae.endLineNumber=="number"&&typeof Ae.endColumn=="number"?Ne=Ae:Ae&&(Ne={lineNumber:Ae.startLineNumber,column:Ae.startColumn}),await Ce.openCodeEditor(Ee,Le.resource,Ne)?Ee:null})}function me(){return{create:A,getEditors:O,getDiffEditors:F,onDidCreateEditor:P,onDidCreateDiffEditor:N,createDiffEditor:x,addCommand:V,addEditorAction:q,addKeybindingRule:H,addKeybindingRules:z,createModel:U,setModelLanguage:j,setModelMarkers:Y,getModelMarkers:K,removeAllMarkers:G,onDidChangeMarkers:R,getModels:ie,getModel:J,onDidCreateModel:ue,onWillDisposeModel:he,onDidChangeModelLanguage:pe,createWebWorker:ae,colorizeElement:ee,colorize:de,colorizeModelLine:ge,tokenize:B,defineTheme:$,setTheme:Q,remeasureFonts:Z,registerCommand:te,registerLinkOpener:re,registerEditorOpener:le,AccessibilitySupport:r.AccessibilitySupport,ContentWidgetPositionPreference:r.ContentWidgetPositionPreference,CursorChangeReason:r.CursorChangeReason,DefaultEndOfLine:r.DefaultEndOfLine,EditorAutoIndentStrategy:r.EditorAutoIndentStrategy,EditorOption:r.EditorOption,EndOfLinePreference:r.EndOfLinePreference,EndOfLineSequence:r.EndOfLineSequence,MinimapPosition:r.MinimapPosition,MinimapSectionHeaderStyle:r.MinimapSectionHeaderStyle,MouseTargetType:r.MouseTargetType,OverlayWidgetPositionPreference:r.OverlayWidgetPositionPreference,OverviewRulerLane:r.OverviewRulerLane,GlyphMarginLane:r.GlyphMarginLane,RenderLineNumbersType:r.RenderLineNumbersType,RenderMinimap:r.RenderMinimap,ScrollbarVisibility:r.ScrollbarVisibility,ScrollType:r.ScrollType,TextEditorCursorBlinkingStyle:r.TextEditorCursorBlinkingStyle,TextEditorCursorStyle:r.TextEditorCursorStyle,TrackedRangeStickiness:r.TrackedRangeStickiness,WrappingIndent:r.WrappingIndent,InjectedTextCursorStops:r.InjectedTextCursorStops,PositionAffinity:r.PositionAffinity,ShowLightbulbIconMode:r.ShowLightbulbIconMode,ConfigurationChangedEvent:p.ConfigurationChangedEvent,BareFontInfo:o.BareFontInfo,FontInfo:o.FontInfo,TextModelResolvedOptions:l.TextModelResolvedOptions,FindMatch:l.FindMatch,ApplyUpdateResult:p.ApplyUpdateResult,EditorZoom:n.EditorZoom,createMultiFileDiffEditor:W,EditorType:t.EditorType,EditorOptions:p.EditorOptions}}}),define(ne[875],se([1,0,37,372,874,872,409]),function(oe,e,d,k,I,E,y){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.languages=e.editor=e.Token=e.Uri=e.MarkerTag=e.MarkerSeverity=e.SelectionDirection=e.Selection=e.Range=e.Position=e.KeyMod=e.KeyCode=e.Emitter=e.CancellationTokenSource=void 0,d.EditorOptions.wrappingIndent.defaultValue=0,d.EditorOptions.glyphMargin.defaultValue=!1,d.EditorOptions.autoIndent.defaultValue=3,d.EditorOptions.overviewRulerLanes.defaultValue=2,y.FormattingConflicts.setFormatterSelector((b,p,n)=>Promise.resolve(b[0]));const m=(0,k.createMonacoBaseAPI)();m.editor=(0,I.createMonacoEditorAPI)(),m.languages=(0,E.createMonacoLanguagesAPI)(),e.CancellationTokenSource=m.CancellationTokenSource,e.Emitter=m.Emitter,e.KeyCode=m.KeyCode,e.KeyMod=m.KeyMod,e.Position=m.Position,e.Range=m.Range,e.Selection=m.Selection,e.SelectionDirection=m.SelectionDirection,e.MarkerSeverity=m.MarkerSeverity,e.MarkerTag=m.MarkerTag,e.Uri=m.Uri,e.Token=m.Token,e.editor=m.editor,e.languages=m.languages,(globalThis.MonacoEnvironment?.globalAPI||typeof define=="function"&&define.amd)&&(globalThis.monaco=m),typeof globalThis.require<"u"&&typeof globalThis.require.config=="function"&&globalThis.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]})});var Lt=this&&this.__exportStar||function(oe,e){for(var d in oe)d!=="default"&&!Object.prototype.hasOwnProperty.call(e,d)&&ci(e,oe,d)};define(ne[877],se([1,0,875,870,746,747,721,794,795,750,854,797]),function(oe,e,d){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),Lt(d,e)})}).call(this); + + +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/basic-languages/monaco.contribution", ["require","require","vs/editor/editor.api"],(require)=>{ +"use strict";var moduleExports=(()=>{var y=Object.create;var g=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var A=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var a=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,s)=>(typeof require<"u"?require:r)[s]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var D=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var l=(e,r,s,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of q(r))!M.call(e,o)&&o!==s&&g(e,o,{get:()=>r[o],enumerable:!(n=x(r,o))||n.enumerable});return e},p=(e,r,s)=>(l(e,r,"default"),s&&l(s,r,"default")),c=(e,r,s)=>(s=e!=null?y(A(e)):{},l(r||!e||!e.__esModule?g(s,"default",{value:e,enumerable:!0}):s,e));var v=D((w,d)=>{var b=c(a("vs/editor/editor.api"));d.exports=b});var t={};p(t,c(v()));var f={},m={},u=class e{static getOrCreate(r){return m[r]||(m[r]=new e(r)),m[r]}constructor(r){this._languageId=r,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((s,n)=>{this._lazyLoadPromiseResolve=s,this._lazyLoadPromiseReject=n})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,f[this._languageId].loader().then(r=>this._lazyLoadPromiseResolve(r),r=>this._lazyLoadPromiseReject(r))),this._lazyLoadPromise}};function i(e){let r=e.id;f[r]=e,t.languages.register(e);let s=u.getOrCreate(r);t.languages.registerTokensProviderFactory(r,{create:async()=>(await s.load()).language}),t.languages.onLanguageEncountered(r,async()=>{let n=await s.load();t.languages.setLanguageConfiguration(r,n.conf)})}i({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/abap/abap"],e,r)})});i({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/apex/apex"],e,r)})});i({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/azcli/azcli"],e,r)})});i({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/bat/bat"],e,r)})});i({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/bicep/bicep"],e,r)})});i({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/cameligo/cameligo"],e,r)})});i({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/clojure/clojure"],e,r)})});i({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/coffee/coffee"],e,r)})});i({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/cpp/cpp"],e,r)})});i({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/cpp/cpp"],e,r)})});i({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/csharp/csharp"],e,r)})});i({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/csp/csp"],e,r)})});i({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/css/css"],e,r)})});i({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/cypher/cypher"],e,r)})});i({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/dart/dart"],e,r)})});i({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/dockerfile/dockerfile"],e,r)})});i({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/ecl/ecl"],e,r)})});i({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/elixir/elixir"],e,r)})});i({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/flow9/flow9"],e,r)})});i({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/fsharp/fsharp"],e,r)})});i({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagAngleInterpolationDollar)});i({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagAngleInterpolationDollar)});i({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagBracketInterpolationDollar)});i({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagAngleInterpolationBracket)});i({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagBracketInterpolationBracket)});i({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagAutoInterpolationDollar)});i({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/freemarker2/freemarker2"],e,r)}).then(e=>e.TagAutoInterpolationBracket)});i({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/go/go"],e,r)})});i({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/graphql/graphql"],e,r)})});i({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/handlebars/handlebars"],e,r)})});i({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/hcl/hcl"],e,r)})});i({id:"html",extensions:[".html",".htm",".shtml",".xhtml",".mdoc",".jsp",".asp",".aspx",".jshtm"],aliases:["HTML","htm","html","xhtml"],mimetypes:["text/html","text/x-jshtm","text/template","text/ng-template"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/html/html"],e,r)})});i({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/ini/ini"],e,r)})});i({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/java/java"],e,r)})});i({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/javascript/javascript"],e,r)})});i({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/julia/julia"],e,r)})});i({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/kotlin/kotlin"],e,r)})});i({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/less/less"],e,r)})});i({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/lexon/lexon"],e,r)})});i({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/lua/lua"],e,r)})});i({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/liquid/liquid"],e,r)})});i({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/m3/m3"],e,r)})});i({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/markdown/markdown"],e,r)})});i({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/mdx/mdx"],e,r)})});i({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/mips/mips"],e,r)})});i({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/msdax/msdax"],e,r)})});i({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/mysql/mysql"],e,r)})});i({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/objective-c/objective-c"],e,r)})});i({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/pascal/pascal"],e,r)})});i({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/pascaligo/pascaligo"],e,r)})});i({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/perl/perl"],e,r)})});i({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/pgsql/pgsql"],e,r)})});i({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/php/php"],e,r)})});i({id:"pla",extensions:[".pla"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/pla/pla"],e,r)})});i({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/postiats/postiats"],e,r)})});i({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/powerquery/powerquery"],e,r)})});i({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/powershell/powershell"],e,r)})});i({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/protobuf/protobuf"],e,r)})});i({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/pug/pug"],e,r)})});i({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/python/python"],e,r)})});i({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/qsharp/qsharp"],e,r)})});i({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/r/r"],e,r)})});i({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/razor/razor"],e,r)})});i({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/redis/redis"],e,r)})});i({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/redshift/redshift"],e,r)})});i({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/restructuredtext/restructuredtext"],e,r)})});i({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/ruby/ruby"],e,r)})});i({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/rust/rust"],e,r)})});i({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/sb/sb"],e,r)})});i({id:"scala",extensions:[".scala",".sc",".sbt"],aliases:["Scala","scala","SBT","Sbt","sbt","Dotty","dotty"],mimetypes:["text/x-scala-source","text/x-scala","text/x-sbt","text/x-dotty"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/scala/scala"],e,r)})});i({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/scheme/scheme"],e,r)})});i({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/scss/scss"],e,r)})});i({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/shell/shell"],e,r)})});i({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/solidity/solidity"],e,r)})});i({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/sophia/sophia"],e,r)})});i({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/sparql/sparql"],e,r)})});i({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/sql/sql"],e,r)})});i({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/st/st"],e,r)})});i({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/swift/swift"],e,r)})});i({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/systemverilog/systemverilog"],e,r)})});i({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/systemverilog/systemverilog"],e,r)})});i({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/tcl/tcl"],e,r)})});i({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/twig/twig"],e,r)})});i({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/typescript/typescript"],e,r)})});i({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/typespec/typespec"],e,r)})});i({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/vb/vb"],e,r)})});i({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/wgsl/wgsl"],e,r)})});i({id:"xml",extensions:[".xml",".xsd",".dtd",".ascx",".csproj",".config",".props",".targets",".wxi",".wxl",".wxs",".xaml",".svg",".svgz",".opf",".xslt",".xsl"],firstLine:"(\\<\\?xml.*)|(\\new Promise((e,r)=>{a(["vs/basic-languages/xml/xml"],e,r)})});i({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>new Promise((e,r)=>{a(["vs/basic-languages/yaml/yaml"],e,r)})});})(); +return moduleExports; +}); + +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/language/css/monaco.contribution", ["require","require","vs/editor/editor.api"],(require)=>{ +"use strict";var moduleExports=(()=>{var C=Object.create;var g=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,h=Object.prototype.hasOwnProperty;var l=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,r)=>(typeof require<"u"?require:n)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var I=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),M=(e,n)=>{for(var r in n)g(e,r,{get:n[r],enumerable:!0})},s=(e,n,r,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of b(n))!h.call(e,t)&&t!==r&&g(e,t,{get:()=>n[t],enumerable:!(a=S(n,t))||a.enumerable});return e},y=(e,n,r)=>(s(e,n,"default"),r&&s(r,n,"default")),w=(e,n,r)=>(r=e!=null?C(x(e)):{},s(n||!e||!e.__esModule?g(r,"default",{value:e,enumerable:!0}):r,e)),P=e=>s(g({},"__esModule",{value:!0}),e);var v=I((k,D)=>{var O=w(l("vs/editor/editor.api"));D.exports=O});var R={};M(R,{cssDefaults:()=>p,lessDefaults:()=>f,scssDefaults:()=>c});var o={};y(o,w(v()));var i=class{constructor(n,r,a){this._onDidChange=new o.Emitter;this._languageId=n,this.setOptions(r),this.setModeConfiguration(a)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(n){this._options=n||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(n){this.setOptions(n)}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(this)}},d={validate:!0,lint:{compatibleVendorPrefixes:"ignore",vendorPrefix:"warning",duplicateProperties:"warning",emptyRules:"warning",importStatement:"ignore",boxModel:"ignore",universalSelector:"ignore",zeroUnits:"ignore",fontFaceProperties:"warning",hexColorLength:"error",argumentsInColorFunction:"error",unknownProperties:"warning",ieHack:"ignore",unknownVendorSpecificProperties:"ignore",propertyIgnoredDueToDisplay:"warning",important:"ignore",float:"ignore",idSelector:"ignore"},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:"collapse",maxPreserveNewLines:void 0,preserveNewLines:!0}},u={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},p=new i("css",d,u),c=new i("scss",d,u),f=new i("less",d,u);o.languages.css={cssDefaults:p,lessDefaults:f,scssDefaults:c};function m(){return new Promise((e,n)=>{l(["vs/language/css/cssMode"],e,n)})}o.languages.onLanguage("less",()=>{m().then(e=>e.setupMode(f))});o.languages.onLanguage("scss",()=>{m().then(e=>e.setupMode(c))});o.languages.onLanguage("css",()=>{m().then(e=>e.setupMode(p))});return P(R);})(); +return moduleExports; +}); + +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/language/html/monaco.contribution", ["require","require","vs/editor/editor.api"],(require)=>{ +"use strict";var moduleExports=(()=>{var w=Object.create;var l=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var O=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var f=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,t)=>(typeof require<"u"?require:n)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var k=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),T=(e,n)=>{for(var t in n)l(e,t,{get:n[t],enumerable:!0})},d=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of H(n))!_.call(e,o)&&o!==t&&l(e,o,{get:()=>n[o],enumerable:!(r=R(n,o))||r.enumerable});return e},b=(e,n,t)=>(d(e,n,"default"),t&&d(t,n,"default")),v=(e,n,t)=>(t=e!=null?w(O(e)):{},d(n||!e||!e.__esModule?l(t,"default",{value:e,enumerable:!0}):t,e)),A=e=>d(l({},"__esModule",{value:!0}),e);var C=k((z,h)=>{var E=v(f("vs/editor/editor.api"));h.exports=E});var V={};T(V,{handlebarDefaults:()=>M,handlebarLanguageService:()=>m,htmlDefaults:()=>x,htmlLanguageService:()=>c,razorDefaults:()=>I,razorLanguageService:()=>y,registerHTMLLanguageService:()=>s});var a={};b(a,v(C()));var p=class{constructor(n,t,r){this._onDidChange=new a.Emitter;this._languageId=n,this.setOptions(t),this.setModeConfiguration(r)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(n){this._options=n||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(this)}},F={tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',contentUnformatted:"pre",indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:"head, body, /html",wrapAttributes:"auto"},u={format:F,suggest:{},data:{useDefaultDataProvider:!0}};function g(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===i,documentFormattingEdits:e===i,documentRangeFormattingEdits:e===i}}var i="html",D="handlebars",L="razor",c=s(i,u,g(i)),x=c.defaults,m=s(D,u,g(D)),M=m.defaults,y=s(L,u,g(L)),I=y.defaults;a.languages.html={htmlDefaults:x,razorDefaults:I,handlebarDefaults:M,htmlLanguageService:c,handlebarLanguageService:m,razorLanguageService:y,registerHTMLLanguageService:s};function P(){return new Promise((e,n)=>{f(["vs/language/html/htmlMode"],e,n)})}function s(e,n=u,t=g(e)){let r=new p(e,n,t),o,S=a.languages.onLanguage(e,async()=>{o=(await P()).setupMode(r)});return{defaults:r,dispose(){S.dispose(),o?.dispose(),o=void 0}}}return A(V);})(); +return moduleExports; +}); + +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/language/json/monaco.contribution", ["require","require","vs/editor/editor.api"],(require)=>{ +"use strict";var moduleExports=(()=>{var f=Object.create;var s=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var d=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,o)=>(typeof require<"u"?require:n)[o]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var v=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),x=(e,n)=>{for(var o in n)s(e,o,{get:n[o],enumerable:!0})},i=(e,n,o,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of N(n))!O.call(e,r)&&r!==o&&s(e,r,{get:()=>n[r],enumerable:!(a=h(n,r))||a.enumerable});return e},g=(e,n,o)=>(i(e,n,"default"),o&&i(o,n,"default")),c=(e,n,o)=>(o=e!=null?f(b(e)):{},i(n||!e||!e.__esModule?s(o,"default",{value:e,enumerable:!0}):o,e)),A=e=>i(s({},"__esModule",{value:!0}),e);var S=v((R,u)=>{var T=c(d("vs/editor/editor.api"));u.exports=T});var M={};x(M,{getWorker:()=>p,jsonDefaults:()=>m});var t={};g(t,c(S()));var l=class{constructor(n,o,a){this._onDidChange=new t.Emitter;this._languageId=n,this.setDiagnosticsOptions(o),this.setModeConfiguration(a)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(n){this._diagnosticsOptions=n||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(this)}},D={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},C={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},m=new l("json",D,C),p=()=>y().then(e=>e.getWorker());t.languages.json={jsonDefaults:m,getWorker:p};function y(){return new Promise((e,n)=>{d(["vs/language/json/jsonMode"],e,n)})}t.languages.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});t.languages.onLanguage("json",()=>{y().then(e=>e.setupMode(m))});return A(M);})(); +return moduleExports; +}); + +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/language/typescript/monaco.contribution", ["require","require","vs/editor/editor.api"],(require)=>{ +"use strict";var moduleExports=(()=>{var N=Object.create;var m=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,F=Object.prototype.hasOwnProperty;var c=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var w=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),A=(n,e)=>{for(var t in e)m(n,t,{get:e[t],enumerable:!0})},g=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of M(e))!F.call(n,r)&&r!==t&&m(n,r,{get:()=>e[r],enumerable:!(i=H(e,r))||i.enumerable});return n},v=(n,e,t)=>(g(n,e,"default"),t&&g(t,e,"default")),C=(n,e,t)=>(t=n!=null?N(R(n)):{},g(e||!n||!n.__esModule?m(t,"default",{value:n,enumerable:!0}):t,n)),W=n=>g(m({},"__esModule",{value:!0}),n);var _=w((B,L)=>{var V=C(c("vs/editor/editor.api"));L.exports=V});var T={};A(T,{JsxEmit:()=>f,ModuleKind:()=>b,ModuleResolutionKind:()=>O,NewLineKind:()=>y,ScriptTarget:()=>h,getJavaScriptWorker:()=>k,getTypeScriptWorker:()=>P,javascriptDefaults:()=>D,typescriptDefaults:()=>x,typescriptVersion:()=>I});var E="5.4.5";var l={};v(l,C(_()));var b=(s=>(s[s.None=0]="None",s[s.CommonJS=1]="CommonJS",s[s.AMD=2]="AMD",s[s.UMD=3]="UMD",s[s.System=4]="System",s[s.ES2015=5]="ES2015",s[s.ESNext=99]="ESNext",s))(b||{}),f=(a=>(a[a.None=0]="None",a[a.Preserve=1]="Preserve",a[a.React=2]="React",a[a.ReactNative=3]="ReactNative",a[a.ReactJSX=4]="ReactJSX",a[a.ReactJSXDev=5]="ReactJSXDev",a))(f||{}),y=(t=>(t[t.CarriageReturnLineFeed=0]="CarriageReturnLineFeed",t[t.LineFeed=1]="LineFeed",t))(y||{}),h=(o=>(o[o.ES3=0]="ES3",o[o.ES5=1]="ES5",o[o.ES2015=2]="ES2015",o[o.ES2016=3]="ES2016",o[o.ES2017=4]="ES2017",o[o.ES2018=5]="ES2018",o[o.ES2019=6]="ES2019",o[o.ES2020=7]="ES2020",o[o.ESNext=99]="ESNext",o[o.JSON=100]="JSON",o[o.Latest=99]="Latest",o))(h||{}),O=(t=>(t[t.Classic=1]="Classic",t[t.NodeJs=2]="NodeJs",t))(O||{}),d=class{constructor(e,t,i,r,p){this._onDidChange=new l.Emitter;this._onDidExtraLibsChange=new l.Emitter;this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(i),this.setInlayHintsOptions(r),this.setModeConfiguration(p),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let i;if(typeof t>"u"?i=`ts:extralib-${Math.random().toString(36).substring(2,15)}`:i=t,this._extraLibs[i]&&this._extraLibs[i].content===e)return{dispose:()=>{}};let r=1;return this._removedExtraLibs[i]&&(r=this._removedExtraLibs[i]+1),this._extraLibs[i]&&(r=this._extraLibs[i].version+1),this._extraLibs[i]={content:e,version:r},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let p=this._extraLibs[i];p&&p.version===r&&(delete this._extraLibs[i],this._removedExtraLibs[i]=r,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(let t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(let t of e){let i=t.filePath||`ts:extralib-${Math.random().toString(36).substring(2,15)}`,r=t.content,p=1;this._removedExtraLibs[i]&&(p=this._removedExtraLibs[i]+1),this._extraLibs[i]={content:r,version:p}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(void 0)}},I=E,S={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,diagnostics:!0,documentRangeFormattingEdits:!0,signatureHelp:!0,onTypeFormattingEdits:!0,codeActions:!0,inlayHints:!0},x=new d({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},S),D=new d({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},S),P=()=>u().then(n=>n.getTypeScriptWorker()),k=()=>u().then(n=>n.getJavaScriptWorker());l.languages.typescript={ModuleKind:b,JsxEmit:f,NewLineKind:y,ScriptTarget:h,ModuleResolutionKind:O,typescriptVersion:I,typescriptDefaults:x,javascriptDefaults:D,getTypeScriptWorker:P,getJavaScriptWorker:k};function u(){return new Promise((n,e)=>{c(["vs/language/typescript/tsMode"],n,e)})}l.languages.onLanguage("typescript",()=>u().then(n=>n.setupTypeScript(x)));l.languages.onLanguage("javascript",()=>u().then(n=>n.setupJavaScript(D)));return W(T);})(); +return moduleExports; +}); + +define("vs/editor/editor.main", ["vs/editor/edcore.main","vs/basic-languages/monaco.contribution","vs/language/css/monaco.contribution","vs/language/html/monaco.contribution","vs/language/json/monaco.contribution","vs/language/typescript/monaco.contribution"], function(api) { return api; }); +//# sourceMappingURL=../../../min-maps/vs/editor/editor.main.js.map \ No newline at end of file diff --git a/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/language/css/cssMode.js b/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/language/css/cssMode.js new file mode 100644 index 00000000000..8e46120c735 --- /dev/null +++ b/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/language/css/cssMode.js @@ -0,0 +1,13 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/language/css/cssMode", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var Tt=Object.create;var X=Object.defineProperty;var _t=Object.getOwnPropertyDescriptor;var Ct=Object.getOwnPropertyNames;var bt=Object.getPrototypeOf,wt=Object.prototype.hasOwnProperty;var Et=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(n,i)=>(typeof require<"u"?require:n)[i]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Rt=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),Pt=(e,n)=>{for(var i in n)X(e,i,{get:n[i],enumerable:!0})},z=(e,n,i,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of Ct(n))!wt.call(e,t)&&t!==i&&X(e,t,{get:()=>n[t],enumerable:!(r=_t(n,t))||r.enumerable});return e},he=(e,n,i)=>(z(e,n,"default"),i&&z(i,n,"default")),me=(e,n,i)=>(i=e!=null?Tt(bt(e)):{},z(n||!e||!e.__esModule?X(i,"default",{value:e,enumerable:!0}):i,e)),Lt=e=>z(X({},"__esModule",{value:!0}),e);var ye=Rt((Qt,xe)=>{var Wt=me(Et("vs/editor/editor.api"));xe.exports=Wt});var Bt={};Pt(Bt,{CompletionAdapter:()=>D,DefinitionAdapter:()=>A,DiagnosticsAdapter:()=>W,DocumentColorAdapter:()=>N,DocumentFormattingEditProvider:()=>U,DocumentHighlightAdapter:()=>F,DocumentLinkAdapter:()=>fe,DocumentRangeFormattingEditProvider:()=>H,DocumentSymbolAdapter:()=>j,FoldingRangeAdapter:()=>O,HoverAdapter:()=>S,ReferenceAdapter:()=>M,RenameAdapter:()=>K,SelectionRangeAdapter:()=>V,WorkerManager:()=>_,fromPosition:()=>k,fromRange:()=>pe,setupMode:()=>$t,toRange:()=>y,toTextEdit:()=>P});var d={};he(d,me(ye()));var Dt=2*60*1e3,_=class{constructor(n){this._defaults=n,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>Dt&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=d.editor.createWebWorker({moduleId:"vs/language/css/cssWorker",label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...n){let i;return this._getClient().then(r=>{i=r}).then(r=>{if(this._worker)return this._worker.withSyncedResources(n)}).then(r=>i)}};var ve;(function(e){function n(i){return typeof i=="string"}e.is=n})(ve||(ve={}));var Z;(function(e){function n(i){return typeof i=="string"}e.is=n})(Z||(Z={}));var Ie;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function n(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})(Ie||(Ie={}));var $;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function n(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})($||($={}));var I;(function(e){function n(r,t){return r===Number.MAX_VALUE&&(r=$.MAX_VALUE),t===Number.MAX_VALUE&&(t=$.MAX_VALUE),{line:r,character:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&a.uinteger(t.line)&&a.uinteger(t.character)}e.is=i})(I||(I={}));var h;(function(e){function n(r,t,o,s){if(a.uinteger(r)&&a.uinteger(t)&&a.uinteger(o)&&a.uinteger(s))return{start:I.create(r,t),end:I.create(o,s)};if(I.is(r)&&I.is(t))return{start:r,end:t};throw new Error(`Range#create called with invalid arguments[${r}, ${t}, ${o}, ${s}]`)}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&I.is(t.start)&&I.is(t.end)}e.is=i})(h||(h={}));var B;(function(e){function n(r,t){return{uri:r,range:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&(a.string(t.uri)||a.undefined(t.uri))}e.is=i})(B||(B={}));var ke;(function(e){function n(r,t,o,s){return{targetUri:r,targetRange:t,targetSelectionRange:o,originSelectionRange:s}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.targetRange)&&a.string(t.targetUri)&&h.is(t.targetSelectionRange)&&(h.is(t.originSelectionRange)||a.undefined(t.originSelectionRange))}e.is=i})(ke||(ke={}));var ee;(function(e){function n(r,t,o,s){return{red:r,green:t,blue:o,alpha:s}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&a.numberRange(t.red,0,1)&&a.numberRange(t.green,0,1)&&a.numberRange(t.blue,0,1)&&a.numberRange(t.alpha,0,1)}e.is=i})(ee||(ee={}));var Te;(function(e){function n(r,t){return{range:r,color:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&ee.is(t.color)}e.is=i})(Te||(Te={}));var _e;(function(e){function n(r,t,o){return{label:r,textEdit:t,additionalTextEdits:o}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&a.string(t.label)&&(a.undefined(t.textEdit)||w.is(t))&&(a.undefined(t.additionalTextEdits)||a.typedArray(t.additionalTextEdits,w.is))}e.is=i})(_e||(_e={}));var C;(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(C||(C={}));var Ce;(function(e){function n(r,t,o,s,u,g){let f={startLine:r,endLine:t};return a.defined(o)&&(f.startCharacter=o),a.defined(s)&&(f.endCharacter=s),a.defined(u)&&(f.kind=u),a.defined(g)&&(f.collapsedText=g),f}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&a.uinteger(t.startLine)&&a.uinteger(t.startLine)&&(a.undefined(t.startCharacter)||a.uinteger(t.startCharacter))&&(a.undefined(t.endCharacter)||a.uinteger(t.endCharacter))&&(a.undefined(t.kind)||a.string(t.kind))}e.is=i})(Ce||(Ce={}));var te;(function(e){function n(r,t){return{location:r,message:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&B.is(t.location)&&a.string(t.message)}e.is=i})(te||(te={}));var T;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(T||(T={}));var be;(function(e){e.Unnecessary=1,e.Deprecated=2})(be||(be={}));var we;(function(e){function n(i){let r=i;return a.objectLiteral(r)&&a.string(r.href)}e.is=n})(we||(we={}));var q;(function(e){function n(r,t,o,s,u,g){let f={range:r,message:t};return a.defined(o)&&(f.severity=o),a.defined(s)&&(f.code=s),a.defined(u)&&(f.source=u),a.defined(g)&&(f.relatedInformation=g),f}e.create=n;function i(r){var t;let o=r;return a.defined(o)&&h.is(o.range)&&a.string(o.message)&&(a.number(o.severity)||a.undefined(o.severity))&&(a.integer(o.code)||a.string(o.code)||a.undefined(o.code))&&(a.undefined(o.codeDescription)||a.string((t=o.codeDescription)===null||t===void 0?void 0:t.href))&&(a.string(o.source)||a.undefined(o.source))&&(a.undefined(o.relatedInformation)||a.typedArray(o.relatedInformation,te.is))}e.is=i})(q||(q={}));var b;(function(e){function n(r,t,...o){let s={title:r,command:t};return a.defined(o)&&o.length>0&&(s.arguments=o),s}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.title)&&a.string(t.command)}e.is=i})(b||(b={}));var w;(function(e){function n(o,s){return{range:o,newText:s}}e.replace=n;function i(o,s){return{range:{start:o,end:o},newText:s}}e.insert=i;function r(o){return{range:o,newText:""}}e.del=r;function t(o){let s=o;return a.objectLiteral(s)&&a.string(s.newText)&&h.is(s.range)}e.is=t})(w||(w={}));var ne;(function(e){function n(r,t,o){let s={label:r};return t!==void 0&&(s.needsConfirmation=t),o!==void 0&&(s.description=o),s}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&a.string(t.label)&&(a.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(a.string(t.description)||t.description===void 0)}e.is=i})(ne||(ne={}));var E;(function(e){function n(i){let r=i;return a.string(r)}e.is=n})(E||(E={}));var Ee;(function(e){function n(o,s,u){return{range:o,newText:s,annotationId:u}}e.replace=n;function i(o,s,u){return{range:{start:o,end:o},newText:s,annotationId:u}}e.insert=i;function r(o,s){return{range:o,newText:"",annotationId:s}}e.del=r;function t(o){let s=o;return w.is(s)&&(ne.is(s.annotationId)||E.is(s.annotationId))}e.is=t})(Ee||(Ee={}));var re;(function(e){function n(r,t){return{textDocument:r,edits:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&ue.is(t.textDocument)&&Array.isArray(t.edits)}e.is=i})(re||(re={}));var ie;(function(e){function n(r,t,o){let s={kind:"create",uri:r};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=n;function i(r){let t=r;return t&&t.kind==="create"&&a.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||E.is(t.annotationId))}e.is=i})(ie||(ie={}));var oe;(function(e){function n(r,t,o,s){let u={kind:"rename",oldUri:r,newUri:t};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(u.options=o),s!==void 0&&(u.annotationId=s),u}e.create=n;function i(r){let t=r;return t&&t.kind==="rename"&&a.string(t.oldUri)&&a.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||E.is(t.annotationId))}e.is=i})(oe||(oe={}));var se;(function(e){function n(r,t,o){let s={kind:"delete",uri:r};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=n;function i(r){let t=r;return t&&t.kind==="delete"&&a.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||a.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||a.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||E.is(t.annotationId))}e.is=i})(se||(se={}));var ae;(function(e){function n(i){let r=i;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(t=>a.string(t.kind)?ie.is(t)||oe.is(t)||se.is(t):re.is(t)))}e.is=n})(ae||(ae={}));var Re;(function(e){function n(r){return{uri:r}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)}e.is=i})(Re||(Re={}));var Pe;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&a.integer(t.version)}e.is=i})(Pe||(Pe={}));var ue;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&(t.version===null||a.integer(t.version))}e.is=i})(ue||(ue={}));var Le;(function(e){function n(r,t,o,s){return{uri:r,languageId:t,version:o,text:s}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&a.string(t.languageId)&&a.integer(t.version)&&a.string(t.text)}e.is=i})(Le||(Le={}));var de;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function n(i){let r=i;return r===e.PlainText||r===e.Markdown}e.is=n})(de||(de={}));var L;(function(e){function n(i){let r=i;return a.objectLiteral(i)&&de.is(r.kind)&&a.string(r.value)}e.is=n})(L||(L={}));var m;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(m||(m={}));var Q;(function(e){e.PlainText=1,e.Snippet=2})(Q||(Q={}));var We;(function(e){e.Deprecated=1})(We||(We={}));var De;(function(e){function n(r,t,o){return{newText:r,insert:t,replace:o}}e.create=n;function i(r){let t=r;return t&&a.string(t.newText)&&h.is(t.insert)&&h.is(t.replace)}e.is=i})(De||(De={}));var Se;(function(e){e.asIs=1,e.adjustIndentation=2})(Se||(Se={}));var Fe;(function(e){function n(i){let r=i;return r&&(a.string(r.detail)||r.detail===void 0)&&(a.string(r.description)||r.description===void 0)}e.is=n})(Fe||(Fe={}));var Ae;(function(e){function n(i){return{label:i}}e.create=n})(Ae||(Ae={}));var Me;(function(e){function n(i,r){return{items:i||[],isIncomplete:!!r}}e.create=n})(Me||(Me={}));var G;(function(e){function n(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=n;function i(r){let t=r;return a.string(t)||a.objectLiteral(t)&&a.string(t.language)&&a.string(t.value)}e.is=i})(G||(G={}));var Ke;(function(e){function n(i){let r=i;return!!r&&a.objectLiteral(r)&&(L.is(r.contents)||G.is(r.contents)||a.typedArray(r.contents,G.is))&&(i.range===void 0||h.is(i.range))}e.is=n})(Ke||(Ke={}));var je;(function(e){function n(i,r){return r?{label:i,documentation:r}:{label:i}}e.create=n})(je||(je={}));var Ue;(function(e){function n(i,r,...t){let o={label:i};return a.defined(r)&&(o.documentation=r),a.defined(t)?o.parameters=t:o.parameters=[],o}e.create=n})(Ue||(Ue={}));var R;(function(e){e.Text=1,e.Read=2,e.Write=3})(R||(R={}));var He;(function(e){function n(i,r){let t={range:i};return a.number(r)&&(t.kind=r),t}e.create=n})(He||(He={}));var x;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(x||(x={}));var Ne;(function(e){e.Deprecated=1})(Ne||(Ne={}));var Oe;(function(e){function n(i,r,t,o,s){let u={name:i,kind:r,location:{uri:o,range:t}};return s&&(u.containerName=s),u}e.create=n})(Oe||(Oe={}));var Ve;(function(e){function n(i,r,t,o){return o!==void 0?{name:i,kind:r,location:{uri:t,range:o}}:{name:i,kind:r,location:{uri:t}}}e.create=n})(Ve||(Ve={}));var ze;(function(e){function n(r,t,o,s,u,g){let f={name:r,detail:t,kind:o,range:s,selectionRange:u};return g!==void 0&&(f.children=g),f}e.create=n;function i(r){let t=r;return t&&a.string(t.name)&&a.number(t.kind)&&h.is(t.range)&&h.is(t.selectionRange)&&(t.detail===void 0||a.string(t.detail))&&(t.deprecated===void 0||a.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=i})(ze||(ze={}));var Xe;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"})(Xe||(Xe={}));var J;(function(e){e.Invoked=1,e.Automatic=2})(J||(J={}));var $e;(function(e){function n(r,t,o){let s={diagnostics:r};return t!=null&&(s.only=t),o!=null&&(s.triggerKind=o),s}e.create=n;function i(r){let t=r;return a.defined(t)&&a.typedArray(t.diagnostics,q.is)&&(t.only===void 0||a.typedArray(t.only,a.string))&&(t.triggerKind===void 0||t.triggerKind===J.Invoked||t.triggerKind===J.Automatic)}e.is=i})($e||($e={}));var Be;(function(e){function n(r,t,o){let s={title:r},u=!0;return typeof t=="string"?(u=!1,s.kind=t):b.is(t)?s.command=t:s.edit=t,u&&o!==void 0&&(s.kind=o),s}e.create=n;function i(r){let t=r;return t&&a.string(t.title)&&(t.diagnostics===void 0||a.typedArray(t.diagnostics,q.is))&&(t.kind===void 0||a.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||b.is(t.command))&&(t.isPreferred===void 0||a.boolean(t.isPreferred))&&(t.edit===void 0||ae.is(t.edit))}e.is=i})(Be||(Be={}));var qe;(function(e){function n(r,t){let o={range:r};return a.defined(t)&&(o.data=t),o}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(t.range)&&(a.undefined(t.command)||b.is(t.command))}e.is=i})(qe||(qe={}));var Qe;(function(e){function n(r,t){return{tabSize:r,insertSpaces:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.uinteger(t.tabSize)&&a.boolean(t.insertSpaces)}e.is=i})(Qe||(Qe={}));var Ge;(function(e){function n(r,t,o){return{range:r,target:t,data:o}}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(t.range)&&(a.undefined(t.target)||a.string(t.target))}e.is=i})(Ge||(Ge={}));var Je;(function(e){function n(r,t){return{range:r,parent:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&(t.parent===void 0||e.is(t.parent))}e.is=i})(Je||(Je={}));var Ye;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"})(Ye||(Ye={}));var Ze;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(Ze||(Ze={}));var et;(function(e){function n(i){let r=i;return a.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}e.is=n})(et||(et={}));var tt;(function(e){function n(r,t){return{range:r,text:t}}e.create=n;function i(r){let t=r;return t!=null&&h.is(t.range)&&a.string(t.text)}e.is=i})(tt||(tt={}));var nt;(function(e){function n(r,t,o){return{range:r,variableName:t,caseSensitiveLookup:o}}e.create=n;function i(r){let t=r;return t!=null&&h.is(t.range)&&a.boolean(t.caseSensitiveLookup)&&(a.string(t.variableName)||t.variableName===void 0)}e.is=i})(nt||(nt={}));var rt;(function(e){function n(r,t){return{range:r,expression:t}}e.create=n;function i(r){let t=r;return t!=null&&h.is(t.range)&&(a.string(t.expression)||t.expression===void 0)}e.is=i})(rt||(rt={}));var it;(function(e){function n(r,t){return{frameId:r,stoppedLocation:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(r.stoppedLocation)}e.is=i})(it||(it={}));var ce;(function(e){e.Type=1,e.Parameter=2;function n(i){return i===1||i===2}e.is=n})(ce||(ce={}));var le;(function(e){function n(r){return{value:r}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&(t.tooltip===void 0||a.string(t.tooltip)||L.is(t.tooltip))&&(t.location===void 0||B.is(t.location))&&(t.command===void 0||b.is(t.command))}e.is=i})(le||(le={}));var ot;(function(e){function n(r,t,o){let s={position:r,label:t};return o!==void 0&&(s.kind=o),s}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&I.is(t.position)&&(a.string(t.label)||a.typedArray(t.label,le.is))&&(t.kind===void 0||ce.is(t.kind))&&t.textEdits===void 0||a.typedArray(t.textEdits,w.is)&&(t.tooltip===void 0||a.string(t.tooltip)||L.is(t.tooltip))&&(t.paddingLeft===void 0||a.boolean(t.paddingLeft))&&(t.paddingRight===void 0||a.boolean(t.paddingRight))}e.is=i})(ot||(ot={}));var st;(function(e){function n(i){return{kind:"snippet",value:i}}e.createSnippet=n})(st||(st={}));var at;(function(e){function n(i,r,t,o){return{insertText:i,filterText:r,range:t,command:o}}e.create=n})(at||(at={}));var ut;(function(e){function n(i){return{items:i}}e.create=n})(ut||(ut={}));var dt;(function(e){e.Invoked=0,e.Automatic=1})(dt||(dt={}));var ct;(function(e){function n(i,r){return{range:i,text:r}}e.create=n})(ct||(ct={}));var lt;(function(e){function n(i,r){return{triggerKind:i,selectedCompletionInfo:r}}e.create=n})(lt||(lt={}));var gt;(function(e){function n(i){let r=i;return a.objectLiteral(r)&&Z.is(r.uri)&&a.string(r.name)}e.is=n})(gt||(gt={}));var ft;(function(e){function n(o,s,u,g){return new ge(o,s,u,g)}e.create=n;function i(o){let s=o;return!!(a.defined(s)&&a.string(s.uri)&&(a.undefined(s.languageId)||a.string(s.languageId))&&a.uinteger(s.lineCount)&&a.func(s.getText)&&a.func(s.positionAt)&&a.func(s.offsetAt))}e.is=i;function r(o,s){let u=o.getText(),g=t(s,(l,p)=>{let v=l.range.start.line-p.range.start.line;return v===0?l.range.start.character-p.range.start.character:v}),f=u.length;for(let l=g.length-1;l>=0;l--){let p=g[l],v=o.offsetAt(p.range.start),c=o.offsetAt(p.range.end);if(c<=f)u=u.substring(0,v)+p.newText+u.substring(c,u.length);else throw new Error("Overlapping edit");f=v}return u}e.applyEdits=r;function t(o,s){if(o.length<=1)return o;let u=o.length/2|0,g=o.slice(0,u),f=o.slice(u);t(g,s),t(f,s);let l=0,p=0,v=0;for(;l0&&n.push(i.length),this._lineOffsets=n}return this._lineOffsets}positionAt(n){n=Math.max(Math.min(n,this._content.length),0);let i=this.getLineOffsets(),r=0,t=i.length;if(t===0)return I.create(0,n);for(;rn?t=s:r=s+1}let o=r-1;return I.create(o,n-i[o])}offsetAt(n){let i=this.getLineOffsets();if(n.line>=i.length)return this._content.length;if(n.line<0)return 0;let r=i[n.line],t=n.line+1"u"}e.undefined=r;function t(c){return c===!0||c===!1}e.boolean=t;function o(c){return n.call(c)==="[object String]"}e.string=o;function s(c){return n.call(c)==="[object Number]"}e.number=s;function u(c,Y,kt){return n.call(c)==="[object Number]"&&Y<=c&&c<=kt}e.numberRange=u;function g(c){return n.call(c)==="[object Number]"&&-2147483648<=c&&c<=2147483647}e.integer=g;function f(c){return n.call(c)==="[object Number]"&&0<=c&&c<=2147483647}e.uinteger=f;function l(c){return n.call(c)==="[object Function]"}e.func=l;function p(c){return c!==null&&typeof c=="object"}e.objectLiteral=p;function v(c,Y){return Array.isArray(c)&&c.every(Y)}e.typedArray=v})(a||(a={}));var W=class{constructor(n,i,r){this._languageId=n;this._worker=i;this._disposables=[];this._listener=Object.create(null);let t=s=>{let u=s.getLanguageId();if(u!==this._languageId)return;let g;this._listener[s.uri.toString()]=s.onDidChangeContent(()=>{window.clearTimeout(g),g=window.setTimeout(()=>this._doValidate(s.uri,u),500)}),this._doValidate(s.uri,u)},o=s=>{d.editor.setModelMarkers(s,this._languageId,[]);let u=s.uri.toString(),g=this._listener[u];g&&(g.dispose(),delete this._listener[u])};this._disposables.push(d.editor.onDidCreateModel(t)),this._disposables.push(d.editor.onWillDisposeModel(o)),this._disposables.push(d.editor.onDidChangeModelLanguage(s=>{o(s.model),t(s.model)})),this._disposables.push(r(s=>{d.editor.getModels().forEach(u=>{u.getLanguageId()===this._languageId&&(o(u),t(u))})})),this._disposables.push({dispose:()=>{d.editor.getModels().forEach(o);for(let s in this._listener)this._listener[s].dispose()}}),d.editor.getModels().forEach(t)}dispose(){this._disposables.forEach(n=>n&&n.dispose()),this._disposables.length=0}_doValidate(n,i){this._worker(n).then(r=>r.doValidation(n.toString())).then(r=>{let t=r.map(s=>At(n,s)),o=d.editor.getModel(n);o&&o.getLanguageId()===i&&d.editor.setModelMarkers(o,i,t)}).then(void 0,r=>{console.error(r)})}};function Ft(e){switch(e){case T.Error:return d.MarkerSeverity.Error;case T.Warning:return d.MarkerSeverity.Warning;case T.Information:return d.MarkerSeverity.Info;case T.Hint:return d.MarkerSeverity.Hint;default:return d.MarkerSeverity.Info}}function At(e,n){let i=typeof n.code=="number"?String(n.code):n.code;return{severity:Ft(n.severity),startLineNumber:n.range.start.line+1,startColumn:n.range.start.character+1,endLineNumber:n.range.end.line+1,endColumn:n.range.end.character+1,message:n.message,code:i,source:n.source}}var D=class{constructor(n,i){this._worker=n;this._triggerCharacters=i}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(n,i,r,t){let o=n.uri;return this._worker(o).then(s=>s.doComplete(o.toString(),k(i))).then(s=>{if(!s)return;let u=n.getWordUntilPosition(i),g=new d.Range(i.lineNumber,u.startColumn,i.lineNumber,u.endColumn),f=s.items.map(l=>{let p={label:l.label,insertText:l.insertText||l.label,sortText:l.sortText,filterText:l.filterText,documentation:l.documentation,detail:l.detail,command:jt(l.command),range:g,kind:Kt(l.kind)};return l.textEdit&&(Mt(l.textEdit)?p.range={insert:y(l.textEdit.insert),replace:y(l.textEdit.replace)}:p.range=y(l.textEdit.range),p.insertText=l.textEdit.newText),l.additionalTextEdits&&(p.additionalTextEdits=l.additionalTextEdits.map(P)),l.insertTextFormat===Q.Snippet&&(p.insertTextRules=d.languages.CompletionItemInsertTextRule.InsertAsSnippet),p});return{isIncomplete:s.isIncomplete,suggestions:f}})}};function k(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function pe(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function y(e){if(e)return new d.Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function Mt(e){return typeof e.insert<"u"&&typeof e.replace<"u"}function Kt(e){let n=d.languages.CompletionItemKind;switch(e){case m.Text:return n.Text;case m.Method:return n.Method;case m.Function:return n.Function;case m.Constructor:return n.Constructor;case m.Field:return n.Field;case m.Variable:return n.Variable;case m.Class:return n.Class;case m.Interface:return n.Interface;case m.Module:return n.Module;case m.Property:return n.Property;case m.Unit:return n.Unit;case m.Value:return n.Value;case m.Enum:return n.Enum;case m.Keyword:return n.Keyword;case m.Snippet:return n.Snippet;case m.Color:return n.Color;case m.File:return n.File;case m.Reference:return n.Reference}return n.Property}function P(e){if(e)return{range:y(e.range),text:e.newText}}function jt(e){return e&&e.command==="editor.action.triggerSuggest"?{id:e.command,title:e.title,arguments:e.arguments}:void 0}var S=class{constructor(n){this._worker=n}provideHover(n,i,r){let t=n.uri;return this._worker(t).then(o=>o.doHover(t.toString(),k(i))).then(o=>{if(o)return{range:y(o.range),contents:Ht(o.contents)}})}};function Ut(e){return e&&typeof e=="object"&&typeof e.kind=="string"}function pt(e){return typeof e=="string"?{value:e}:Ut(e)?e.kind==="plaintext"?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:e.value}:{value:"```"+e.language+` +`+e.value+"\n```\n"}}function Ht(e){if(e)return Array.isArray(e)?e.map(pt):[pt(e)]}var F=class{constructor(n){this._worker=n}provideDocumentHighlights(n,i,r){let t=n.uri;return this._worker(t).then(o=>o.findDocumentHighlights(t.toString(),k(i))).then(o=>{if(o)return o.map(s=>({range:y(s.range),kind:Nt(s.kind)}))})}};function Nt(e){switch(e){case R.Read:return d.languages.DocumentHighlightKind.Read;case R.Write:return d.languages.DocumentHighlightKind.Write;case R.Text:return d.languages.DocumentHighlightKind.Text}return d.languages.DocumentHighlightKind.Text}var A=class{constructor(n){this._worker=n}provideDefinition(n,i,r){let t=n.uri;return this._worker(t).then(o=>o.findDefinition(t.toString(),k(i))).then(o=>{if(o)return[ht(o)]})}};function ht(e){return{uri:d.Uri.parse(e.uri),range:y(e.range)}}var M=class{constructor(n){this._worker=n}provideReferences(n,i,r,t){let o=n.uri;return this._worker(o).then(s=>s.findReferences(o.toString(),k(i))).then(s=>{if(s)return s.map(ht)})}},K=class{constructor(n){this._worker=n}provideRenameEdits(n,i,r,t){let o=n.uri;return this._worker(o).then(s=>s.doRename(o.toString(),k(i),r)).then(s=>Ot(s))}};function Ot(e){if(!e||!e.changes)return;let n=[];for(let i in e.changes){let r=d.Uri.parse(i);for(let t of e.changes[i])n.push({resource:r,versionId:void 0,textEdit:{range:y(t.range),text:t.newText}})}return{edits:n}}var j=class{constructor(n){this._worker=n}provideDocumentSymbols(n,i){let r=n.uri;return this._worker(r).then(t=>t.findDocumentSymbols(r.toString())).then(t=>{if(t)return t.map(o=>Vt(o)?mt(o):{name:o.name,detail:"",containerName:o.containerName,kind:xt(o.kind),range:y(o.location.range),selectionRange:y(o.location.range),tags:[]})})}};function Vt(e){return"children"in e}function mt(e){return{name:e.name,detail:e.detail??"",kind:xt(e.kind),range:y(e.range),selectionRange:y(e.selectionRange),tags:e.tags??[],children:(e.children??[]).map(n=>mt(n))}}function xt(e){let n=d.languages.SymbolKind;switch(e){case x.File:return n.File;case x.Module:return n.Module;case x.Namespace:return n.Namespace;case x.Package:return n.Package;case x.Class:return n.Class;case x.Method:return n.Method;case x.Property:return n.Property;case x.Field:return n.Field;case x.Constructor:return n.Constructor;case x.Enum:return n.Enum;case x.Interface:return n.Interface;case x.Function:return n.Function;case x.Variable:return n.Variable;case x.Constant:return n.Constant;case x.String:return n.String;case x.Number:return n.Number;case x.Boolean:return n.Boolean;case x.Array:return n.Array}return n.Function}var fe=class{constructor(n){this._worker=n}provideLinks(n,i){let r=n.uri;return this._worker(r).then(t=>t.findDocumentLinks(r.toString())).then(t=>{if(t)return{links:t.map(o=>({range:y(o.range),url:o.target}))}})}},U=class{constructor(n){this._worker=n}provideDocumentFormattingEdits(n,i,r){let t=n.uri;return this._worker(t).then(o=>o.format(t.toString(),null,yt(i)).then(s=>{if(!(!s||s.length===0))return s.map(P)}))}},H=class{constructor(n){this._worker=n;this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(n,i,r,t){let o=n.uri;return this._worker(o).then(s=>s.format(o.toString(),pe(i),yt(r)).then(u=>{if(!(!u||u.length===0))return u.map(P)}))}};function yt(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var N=class{constructor(n){this._worker=n}provideDocumentColors(n,i){let r=n.uri;return this._worker(r).then(t=>t.findDocumentColors(r.toString())).then(t=>{if(t)return t.map(o=>({color:o.color,range:y(o.range)}))})}provideColorPresentations(n,i,r){let t=n.uri;return this._worker(t).then(o=>o.getColorPresentations(t.toString(),i.color,pe(i.range))).then(o=>{if(o)return o.map(s=>{let u={label:s.label};return s.textEdit&&(u.textEdit=P(s.textEdit)),s.additionalTextEdits&&(u.additionalTextEdits=s.additionalTextEdits.map(P)),u})})}},O=class{constructor(n){this._worker=n}provideFoldingRanges(n,i,r){let t=n.uri;return this._worker(t).then(o=>o.getFoldingRanges(t.toString(),i)).then(o=>{if(o)return o.map(s=>{let u={start:s.startLine+1,end:s.endLine+1};return typeof s.kind<"u"&&(u.kind=zt(s.kind)),u})})}};function zt(e){switch(e){case C.Comment:return d.languages.FoldingRangeKind.Comment;case C.Imports:return d.languages.FoldingRangeKind.Imports;case C.Region:return d.languages.FoldingRangeKind.Region}}var V=class{constructor(n){this._worker=n}provideSelectionRanges(n,i,r){let t=n.uri;return this._worker(t).then(o=>o.getSelectionRanges(t.toString(),i.map(k))).then(o=>{if(o)return o.map(s=>{let u=[];for(;s;)u.push({range:y(s.range)}),s=s.parent;return u})})}};function $t(e){let n=[],i=[],r=new _(e);n.push(r);let t=(...s)=>r.getLanguageServiceWorker(...s);function o(){let{languageId:s,modeConfiguration:u}=e;It(i),u.completionItems&&i.push(d.languages.registerCompletionItemProvider(s,new D(t,["/","-",":"]))),u.hovers&&i.push(d.languages.registerHoverProvider(s,new S(t))),u.documentHighlights&&i.push(d.languages.registerDocumentHighlightProvider(s,new F(t))),u.definitions&&i.push(d.languages.registerDefinitionProvider(s,new A(t))),u.references&&i.push(d.languages.registerReferenceProvider(s,new M(t))),u.documentSymbols&&i.push(d.languages.registerDocumentSymbolProvider(s,new j(t))),u.rename&&i.push(d.languages.registerRenameProvider(s,new K(t))),u.colors&&i.push(d.languages.registerColorProvider(s,new N(t))),u.foldingRanges&&i.push(d.languages.registerFoldingRangeProvider(s,new O(t))),u.diagnostics&&i.push(new W(s,t,e.onDidChange)),u.selectionRanges&&i.push(d.languages.registerSelectionRangeProvider(s,new V(t))),u.documentFormattingEdits&&i.push(d.languages.registerDocumentFormattingEditProvider(s,new U(t))),u.documentRangeFormattingEdits&&i.push(d.languages.registerDocumentRangeFormattingEditProvider(s,new H(t)))}return o(),n.push(vt(i)),vt(n)}function vt(e){return{dispose:()=>It(e)}}function It(e){for(;e.length;)e.pop().dispose()}return Lt(Bt);})(); +return moduleExports; +}); diff --git a/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/language/css/cssWorker.js b/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/language/css/cssWorker.js new file mode 100644 index 00000000000..920ea726349 --- /dev/null +++ b/scripts/cn1playground/src/html/playground-editor/monaco/min/vs/language/css/cssWorker.js @@ -0,0 +1,77 @@ +/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/ +define("vs/language/css/cssWorker", ["require","require"],(require)=>{ +"use strict";var moduleExports=(()=>{var Er=Object.defineProperty;var Fo=Object.getOwnPropertyDescriptor;var Eo=Object.getOwnPropertyNames;var _o=Object.prototype.hasOwnProperty;var Io=(n,e)=>{for(var t in e)Er(n,t,{get:e[t],enumerable:!0})},Do=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Eo(e))!_o.call(n,i)&&i!==t&&Er(n,i,{get:()=>e[i],enumerable:!(r=Fo(e,i))||r.enumerable});return n};var Ro=n=>Do(Er({},"__esModule",{value:!0}),n);var nl={};Io(nl,{CSSWorker:()=>Fr,create:()=>tl});var c;(function(n){n[n.Ident=0]="Ident",n[n.AtKeyword=1]="AtKeyword",n[n.String=2]="String",n[n.BadString=3]="BadString",n[n.UnquotedString=4]="UnquotedString",n[n.Hash=5]="Hash",n[n.Num=6]="Num",n[n.Percentage=7]="Percentage",n[n.Dimension=8]="Dimension",n[n.UnicodeRange=9]="UnicodeRange",n[n.CDO=10]="CDO",n[n.CDC=11]="CDC",n[n.Colon=12]="Colon",n[n.SemiColon=13]="SemiColon",n[n.CurlyL=14]="CurlyL",n[n.CurlyR=15]="CurlyR",n[n.ParenthesisL=16]="ParenthesisL",n[n.ParenthesisR=17]="ParenthesisR",n[n.BracketL=18]="BracketL",n[n.BracketR=19]="BracketR",n[n.Whitespace=20]="Whitespace",n[n.Includes=21]="Includes",n[n.Dashmatch=22]="Dashmatch",n[n.SubstringOperator=23]="SubstringOperator",n[n.PrefixOperator=24]="PrefixOperator",n[n.SuffixOperator=25]="SuffixOperator",n[n.Delim=26]="Delim",n[n.EMS=27]="EMS",n[n.EXS=28]="EXS",n[n.Length=29]="Length",n[n.Angle=30]="Angle",n[n.Time=31]="Time",n[n.Freq=32]="Freq",n[n.Exclamation=33]="Exclamation",n[n.Resolution=34]="Resolution",n[n.Comma=35]="Comma",n[n.Charset=36]="Charset",n[n.EscapedJavaScript=37]="EscapedJavaScript",n[n.BadEscapedJavaScript=38]="BadEscapedJavaScript",n[n.Comment=39]="Comment",n[n.SingleLineComment=40]="SingleLineComment",n[n.EOF=41]="EOF",n[n.ContainerQueryLength=42]="ContainerQueryLength",n[n.CustomToken=43]="CustomToken"})(c||(c={}));var un=class{constructor(e){this.source=e,this.len=e.length,this.position=0}substring(e,t=this.position){return this.source.substring(e,t)}eos(){return this.len<=this.position}pos(){return this.position}goBackTo(e){this.position=e}goBack(e){this.position-=e}advance(e){this.position+=e}nextChar(){return this.source.charCodeAt(this.position++)||0}peekChar(e=0){return this.source.charCodeAt(this.position+e)||0}lookbackChar(e=0){return this.source.charCodeAt(this.position-e)||0}advanceIfChar(e){return e===this.source.charCodeAt(this.position)?(this.position++,!0):!1}advanceIfChars(e){if(this.position+e.length>this.source.length)return!1;let t=0;for(;tt&&r===Ui?(e=!0,!1):(t=r===_r,!0)),e&&this.stream.advance(1),!0}return!1}_number(){let e=0,t;return this.stream.peekChar()===Bi&&(e=1),t=this.stream.peekChar(e),t>=At&&t<=Wt?(this.stream.advance(e+1),this.stream.advanceWhileChar(r=>r>=At&&r<=Wt||e===0&&r===Bi),!0):!1}_newline(e){let t=this.stream.peekChar();switch(t){case dt:case $t:case ct:return this.stream.advance(1),e.push(String.fromCharCode(t)),t===dt&&this.stream.advanceIfChar(ct)&&e.push(` +`),!0}return!1}_escape(e,t){let r=this.stream.peekChar();if(r===Ir){this.stream.advance(1),r=this.stream.peekChar();let i=0;for(;i<6&&(r>=At&&r<=Wt||r>=pn&&r<=Pi||r>=mn&&r<=Wi);)this.stream.advance(1),r=this.stream.peekChar(),i++;if(i>0){try{let s=parseInt(this.stream.substring(this.stream.pos()-i),16);s&&e.push(String.fromCharCode(s))}catch{}return r===Dr||r===Rr?this.stream.advance(1):this._newline([]),!0}if(r!==dt&&r!==$t&&r!==ct)return this.stream.advance(1),e.push(String.fromCharCode(r)),!0;if(t)return this._newline(e)}return!1}_stringChar(e,t){let r=this.stream.peekChar();return r!==0&&r!==e&&r!==Ir&&r!==dt&&r!==$t&&r!==ct?(this.stream.advance(1),t.push(String.fromCharCode(r)),!0):!1}_string(e){if(this.stream.peekChar()===ji||this.stream.peekChar()===Vi){let t=this.stream.nextChar();for(e.push(String.fromCharCode(t));this._stringChar(t,e)||this._escape(e,!0););return this.stream.peekChar()===t?(this.stream.nextChar(),e.push(String.fromCharCode(t)),c.String):c.BadString}return null}_unquotedChar(e){let t=this.stream.peekChar();return t!==0&&t!==Ir&&t!==ji&&t!==Vi&&t!==Ki&&t!==Gi&&t!==Dr&&t!==Rr&&t!==ct&&t!==$t&&t!==dt?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1}_unquotedString(e){let t=!1;for(;this._unquotedChar(e)||this._escape(e);)t=!0;return t}_whitespace(){return this.stream.advanceWhileChar(t=>t===Dr||t===Rr||t===ct||t===$t||t===dt)>0}_name(e){let t=!1;for(;this._identChar(e)||this._escape(e);)t=!0;return t}ident(e){let t=this.stream.pos();if(this._minus(e)){if(this._minus(e)||this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}}else if(this._identFirstChar(e)||this._escape(e)){for(;this._identChar(e)||this._escape(e););return!0}return this.stream.goBackTo(t),!1}_identFirstChar(e){let t=this.stream.peekChar();return t===$i||t>=pn&&t<=Ai||t>=mn&&t<=Li||t>=128&&t<=65535?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1}_minus(e){let t=this.stream.peekChar();return t===Qe?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1}_identChar(e){let t=this.stream.peekChar();return t===$i||t===Qe||t>=pn&&t<=Ai||t>=mn&&t<=Li||t>=At&&t<=Wt||t>=128&&t<=65535?(this.stream.advance(1),e.push(String.fromCharCode(t)),!0):!1}_unicodeRange(){if(this.stream.advanceIfChar(Ho)){let e=r=>r>=At&&r<=Wt||r>=pn&&r<=Pi||r>=mn&&r<=Wi,t=this.stream.advanceWhileChar(e)+this.stream.advanceWhileChar(r=>r===Go);if(t>=1&&t<=6)if(this.stream.advanceIfChar(Qe)){let r=this.stream.advanceWhileChar(e);if(r>=1&&r<=6)return!0}else return!0}return!1}};function V(n,e){if(n.length0?n.lastIndexOf(e)===t:t===0?n===e:!1}function Hi(n,e,t=4){let r=Math.abs(n.length-e.length);if(r>t)return 0;let i=[],s=[],a,l;for(a=0;a0;)(e&1)===1&&(t+=n),n+=n,e=e>>>1;return t}var m;(function(n){n[n.Undefined=0]="Undefined",n[n.Identifier=1]="Identifier",n[n.Stylesheet=2]="Stylesheet",n[n.Ruleset=3]="Ruleset",n[n.Selector=4]="Selector",n[n.SimpleSelector=5]="SimpleSelector",n[n.SelectorInterpolation=6]="SelectorInterpolation",n[n.SelectorCombinator=7]="SelectorCombinator",n[n.SelectorCombinatorParent=8]="SelectorCombinatorParent",n[n.SelectorCombinatorSibling=9]="SelectorCombinatorSibling",n[n.SelectorCombinatorAllSiblings=10]="SelectorCombinatorAllSiblings",n[n.SelectorCombinatorShadowPiercingDescendant=11]="SelectorCombinatorShadowPiercingDescendant",n[n.Page=12]="Page",n[n.PageBoxMarginBox=13]="PageBoxMarginBox",n[n.ClassSelector=14]="ClassSelector",n[n.IdentifierSelector=15]="IdentifierSelector",n[n.ElementNameSelector=16]="ElementNameSelector",n[n.PseudoSelector=17]="PseudoSelector",n[n.AttributeSelector=18]="AttributeSelector",n[n.Declaration=19]="Declaration",n[n.Declarations=20]="Declarations",n[n.Property=21]="Property",n[n.Expression=22]="Expression",n[n.BinaryExpression=23]="BinaryExpression",n[n.Term=24]="Term",n[n.Operator=25]="Operator",n[n.Value=26]="Value",n[n.StringLiteral=27]="StringLiteral",n[n.URILiteral=28]="URILiteral",n[n.EscapedValue=29]="EscapedValue",n[n.Function=30]="Function",n[n.NumericValue=31]="NumericValue",n[n.HexColorValue=32]="HexColorValue",n[n.RatioValue=33]="RatioValue",n[n.MixinDeclaration=34]="MixinDeclaration",n[n.MixinReference=35]="MixinReference",n[n.VariableName=36]="VariableName",n[n.VariableDeclaration=37]="VariableDeclaration",n[n.Prio=38]="Prio",n[n.Interpolation=39]="Interpolation",n[n.NestedProperties=40]="NestedProperties",n[n.ExtendsReference=41]="ExtendsReference",n[n.SelectorPlaceholder=42]="SelectorPlaceholder",n[n.Debug=43]="Debug",n[n.If=44]="If",n[n.Else=45]="Else",n[n.For=46]="For",n[n.Each=47]="Each",n[n.While=48]="While",n[n.MixinContentReference=49]="MixinContentReference",n[n.MixinContentDeclaration=50]="MixinContentDeclaration",n[n.Media=51]="Media",n[n.Keyframe=52]="Keyframe",n[n.FontFace=53]="FontFace",n[n.Import=54]="Import",n[n.Namespace=55]="Namespace",n[n.Invocation=56]="Invocation",n[n.FunctionDeclaration=57]="FunctionDeclaration",n[n.ReturnStatement=58]="ReturnStatement",n[n.MediaQuery=59]="MediaQuery",n[n.MediaCondition=60]="MediaCondition",n[n.MediaFeature=61]="MediaFeature",n[n.FunctionParameter=62]="FunctionParameter",n[n.FunctionArgument=63]="FunctionArgument",n[n.KeyframeSelector=64]="KeyframeSelector",n[n.ViewPort=65]="ViewPort",n[n.Document=66]="Document",n[n.AtApplyRule=67]="AtApplyRule",n[n.CustomPropertyDeclaration=68]="CustomPropertyDeclaration",n[n.CustomPropertySet=69]="CustomPropertySet",n[n.ListEntry=70]="ListEntry",n[n.Supports=71]="Supports",n[n.SupportsCondition=72]="SupportsCondition",n[n.NamespacePrefix=73]="NamespacePrefix",n[n.GridLine=74]="GridLine",n[n.Plugin=75]="Plugin",n[n.UnknownAtRule=76]="UnknownAtRule",n[n.Use=77]="Use",n[n.ModuleConfiguration=78]="ModuleConfiguration",n[n.Forward=79]="Forward",n[n.ForwardVisibility=80]="ForwardVisibility",n[n.Module=81]="Module",n[n.UnicodeRange=82]="UnicodeRange",n[n.Layer=83]="Layer",n[n.LayerNameList=84]="LayerNameList",n[n.LayerName=85]="LayerName",n[n.PropertyAtRule=86]="PropertyAtRule",n[n.Container=87]="Container"})(m||(m={}));var z;(function(n){n[n.Mixin=0]="Mixin",n[n.Rule=1]="Rule",n[n.Variable=2]="Variable",n[n.Function=3]="Function",n[n.Keyframe=4]="Keyframe",n[n.Unknown=5]="Unknown",n[n.Module=6]="Module",n[n.Forward=7]="Forward",n[n.ForwardVisibility=8]="ForwardVisibility",n[n.Property=9]="Property"})(z||(z={}));function Hn(n,e){let t=null;return!n||en.end?null:(n.accept(r=>r.offset===-1&&r.length===-1?!0:r.offset<=e&&r.end>=e?(t?r.length<=t.length&&(t=r):t=r,!0):!1),t)}function vt(n,e){let t=Hn(n,e),r=[];for(;t;)r.unshift(t),t=t.parent;return r}function Xi(n){let e=n.findParent(m.Declaration),t=e&&e.getValue();return t&&t.encloses(n)?e:null}var x=class{get end(){return this.offset+this.length}constructor(e=-1,t=-1,r){this.parent=null,this.offset=e,this.length=t,r&&(this.nodeType=r)}set type(e){this.nodeType=e}get type(){return this.nodeType||m.Undefined}getTextProvider(){let e=this;for(;e&&!e.textProvider;)e=e.parent;return e?e.textProvider:()=>"unknown"}getText(){return this.getTextProvider()(this.offset,this.length)}matches(e){return this.length===e.length&&this.getTextProvider()(this.offset,this.length)===e}startsWith(e){return this.length>=e.length&&this.getTextProvider()(this.offset,e.length)===e}endsWith(e){return this.length>=e.length&&this.getTextProvider()(this.end-e.length,e.length)===e}accept(e){if(e(this)&&this.children)for(let t of this.children)t.accept(e)}acceptVisitor(e){this.accept(e.visitNode.bind(e))}adoptChild(e,t=-1){if(e.parent&&e.parent.children){let i=e.parent.children.indexOf(e);i>=0&&e.parent.children.splice(i,1)}e.parent=this;let r=this.children;return r||(r=this.children=[]),t!==-1?r.splice(t,0,e):r.push(e),e}attachTo(e,t=-1){return e&&e.adoptChild(this,t),this}collectIssues(e){this.issues&&e.push.apply(e,this.issues)}addIssue(e){this.issues||(this.issues=[]),this.issues.push(e)}hasIssue(e){return Array.isArray(this.issues)&&this.issues.some(t=>t.getRule()===e)}isErroneous(e=!1){return this.issues&&this.issues.length>0?!0:e&&Array.isArray(this.children)&&this.children.some(t=>t.isErroneous(!0))}setNode(e,t,r=-1){return t?(t.attachTo(this,r),this[e]=t,!0):!1}addChild(e){return e?(this.children||(this.children=[]),e.attachTo(this),this.updateOffsetAndLength(e),!0):!1}updateOffsetAndLength(e){(e.offsetthis.end||this.length===-1)&&(this.length=t-this.offset)}hasChildren(){return!!this.children&&this.children.length>0}getChildren(){return this.children?this.children.slice(0):[]}getChild(e){return this.children&&e=0;r--)if(t=this.children[r],t.offset<=e)return t}return null}findChildAtOffset(e,t){let r=this.findFirstChildBeforeOffset(e);return r&&r.end>=e?t&&r.findChildAtOffset(e,!0)||r:null}encloses(e){return this.offset<=e.offset&&this.offset+this.length>=e.offset+e.length}getParent(){let e=this.parent;for(;e instanceof J;)e=e.parent;return e}findParent(e){let t=this;for(;t&&t.type!==e;)t=t.parent;return t}findAParent(...e){let t=this;for(;t&&!e.some(r=>t.type===r);)t=t.parent;return t}setData(e,t){this.options||(this.options={}),this.options[e]=t}getData(e){return!this.options||!this.options.hasOwnProperty(e)?null:this.options[e]}},J=class extends x{constructor(e,t=-1){super(-1,-1),this.attachTo(e,t),this.offset=-1,this.length=-1}},gn=class extends x{constructor(e,t){super(e,t)}get type(){return m.UnicodeRange}setRangeStart(e){return this.setNode("rangeStart",e)}getRangeStart(){return this.rangeStart}setRangeEnd(e){return this.setNode("rangeEnd",e)}getRangeEnd(){return this.rangeEnd}},G=class extends x{constructor(e,t){super(e,t),this.isCustomProperty=!1}get type(){return m.Identifier}containsInterpolation(){return this.hasChildren()}},bn=class extends x{constructor(e,t){super(e,t)}get type(){return m.Stylesheet}},Ze=class extends x{constructor(e,t){super(e,t)}get type(){return m.Declarations}},L=class extends x{constructor(e,t){super(e,t)}getDeclarations(){return this.declarations}setDeclarations(e){return this.setNode("declarations",e)}},ae=class extends L{constructor(e,t){super(e,t)}get type(){return m.Ruleset}getSelectors(){return this.selectors||(this.selectors=new J(this)),this.selectors}isNested(){return!!this.parent&&this.parent.findParent(m.Declarations)!==null}},de=class extends x{constructor(e,t){super(e,t)}get type(){return m.Selector}},he=class extends x{constructor(e,t){super(e,t)}get type(){return m.SimpleSelector}};var ht=class extends x{constructor(e,t){super(e,t)}},wn=class extends L{constructor(e,t){super(e,t)}get type(){return m.CustomPropertySet}},Q=class n extends ht{constructor(e,t){super(e,t),this.property=null}get type(){return m.Declaration}setProperty(e){return this.setNode("property",e)}getProperty(){return this.property}getFullPropertyName(){let e=this.property?this.property.getName():"unknown";if(this.parent instanceof Ze&&this.parent.getParent()instanceof Ut){let t=this.parent.getParent().getParent();if(t instanceof n)return t.getFullPropertyName()+e}return e}getNonPrefixedPropertyName(){let e=this.getFullPropertyName();if(e&&e.charAt(0)==="-"){let t=e.indexOf("-",1);if(t!==-1)return e.substring(t+1)}return e}setValue(e){return this.setNode("value",e)}getValue(){return this.value}setNestedProperties(e){return this.setNode("nestedProperties",e)}getNestedProperties(){return this.nestedProperties}},vn=class extends Q{constructor(e,t){super(e,t)}get type(){return m.CustomPropertyDeclaration}setPropertySet(e){return this.setNode("propertySet",e)}getPropertySet(){return this.propertySet}},Ve=class extends x{constructor(e,t){super(e,t)}get type(){return m.Property}setIdentifier(e){return this.setNode("identifier",e)}getIdentifier(){return this.identifier}getName(){return Ji(this.getText(),/[_\+]+$/)}isCustomProperty(){return!!this.identifier&&this.identifier.isCustomProperty}},Tr=class extends x{constructor(e,t){super(e,t)}get type(){return m.Invocation}getArguments(){return this.arguments||(this.arguments=new J(this)),this.arguments}},me=class extends Tr{constructor(e,t){super(e,t)}get type(){return m.Function}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}getName(){return this.identifier?this.identifier.getText():""}},ye=class extends x{constructor(e,t){super(e,t)}get type(){return m.FunctionParameter}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}getName(){return this.identifier?this.identifier.getText():""}setDefaultValue(e){return this.setNode("defaultValue",e,0)}getDefaultValue(){return this.defaultValue}},le=class extends x{constructor(e,t){super(e,t)}get type(){return m.FunctionArgument}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}getName(){return this.identifier?this.identifier.getText():""}setValue(e){return this.setNode("value",e,0)}getValue(){return this.value}},yn=class extends L{constructor(e,t){super(e,t)}get type(){return m.If}setExpression(e){return this.setNode("expression",e,0)}setElseClause(e){return this.setNode("elseClause",e)}},xn=class extends L{constructor(e,t){super(e,t)}get type(){return m.For}setVariable(e){return this.setNode("variable",e,0)}},Sn=class extends L{constructor(e,t){super(e,t)}get type(){return m.Each}getVariables(){return this.variables||(this.variables=new J(this)),this.variables}},Cn=class extends L{constructor(e,t){super(e,t)}get type(){return m.While}},kn=class extends L{constructor(e,t){super(e,t)}get type(){return m.Else}},De=class extends L{constructor(e,t){super(e,t)}get type(){return m.FunctionDeclaration}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}getName(){return this.identifier?this.identifier.getText():""}getParameters(){return this.parameters||(this.parameters=new J(this)),this.parameters}},Fn=class extends L{constructor(e,t){super(e,t)}get type(){return m.ViewPort}},pt=class extends L{constructor(e,t){super(e,t)}get type(){return m.FontFace}},Ut=class extends L{constructor(e,t){super(e,t)}get type(){return m.NestedProperties}},mt=class extends L{constructor(e,t){super(e,t)}get type(){return m.Keyframe}setKeyword(e){return this.setNode("keyword",e,0)}getKeyword(){return this.keyword}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}getName(){return this.identifier?this.identifier.getText():""}},Vt=class extends L{constructor(e,t){super(e,t)}get type(){return m.KeyframeSelector}},je=class extends x{constructor(e,t){super(e,t)}get type(){return m.Import}setMedialist(e){return e?(e.attachTo(this),!0):!1}},En=class extends x{get type(){return m.Use}getParameters(){return this.parameters||(this.parameters=new J(this)),this.parameters}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}},_n=class extends x{get type(){return m.ModuleConfiguration}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}getName(){return this.identifier?this.identifier.getText():""}setValue(e){return this.setNode("value",e,0)}getValue(){return this.value}},In=class extends x{get type(){return m.Forward}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}getMembers(){return this.members||(this.members=new J(this)),this.members}getParameters(){return this.parameters||(this.parameters=new J(this)),this.parameters}},Dn=class extends x{get type(){return m.ForwardVisibility}setIdentifier(e){return this.setNode("identifier",e,0)}getIdentifier(){return this.identifier}},Rn=class extends x{constructor(e,t){super(e,t)}get type(){return m.Namespace}},Be=class extends L{constructor(e,t){super(e,t)}get type(){return m.Media}},et=class extends L{constructor(e,t){super(e,t)}get type(){return m.Supports}},zn=class extends L{constructor(e,t){super(e,t)}get type(){return m.Layer}setNames(e){return this.setNode("names",e)}getNames(){return this.names}},Mn=class extends L{constructor(e,t){super(e,t)}get type(){return m.PropertyAtRule}setName(e){return e?(e.attachTo(this),this.name=e,!0):!1}getName(){return this.name}},Tn=class extends L{constructor(e,t){super(e,t)}get type(){return m.Document}},Nn=class extends L{constructor(e,t){super(e,t)}get type(){return m.Container}},ut=class extends x{constructor(e,t){super(e,t)}},ft=class extends x{constructor(e,t){super(e,t)}get type(){return m.MediaQuery}},On=class extends x{constructor(e,t){super(e,t)}get type(){return m.MediaCondition}},Pn=class extends x{constructor(e,t){super(e,t)}get type(){return m.MediaFeature}},Re=class extends x{constructor(e,t){super(e,t)}get type(){return m.SupportsCondition}},An=class extends L{constructor(e,t){super(e,t)}get type(){return m.Page}},Wn=class extends L{constructor(e,t){super(e,t)}get type(){return m.PageBoxMarginBox}},gt=class extends x{constructor(e,t){super(e,t)}get type(){return m.Expression}},qe=class extends x{constructor(e,t){super(e,t)}get type(){return m.BinaryExpression}setLeft(e){return this.setNode("left",e)}getLeft(){return this.left}setRight(e){return this.setNode("right",e)}getRight(){return this.right}setOperator(e){return this.setNode("operator",e)}getOperator(){return this.operator}},Ln=class extends x{constructor(e,t){super(e,t)}get type(){return m.Term}setOperator(e){return this.setNode("operator",e)}getOperator(){return this.operator}setExpression(e){return this.setNode("expression",e)}getExpression(){return this.expression}},$n=class extends x{constructor(e,t){super(e,t)}get type(){return m.AttributeSelector}setNamespacePrefix(e){return this.setNode("namespacePrefix",e)}getNamespacePrefix(){return this.namespacePrefix}setIdentifier(e){return this.setNode("identifier",e)}getIdentifier(){return this.identifier}setOperator(e){return this.setNode("operator",e)}getOperator(){return this.operator}setValue(e){return this.setNode("value",e)}getValue(){return this.value}};var tt=class extends x{constructor(e,t){super(e,t)}get type(){return m.HexColorValue}},Un=class extends x{constructor(e,t){super(e,t)}get type(){return m.RatioValue}},Yo=46,Qo=48,Zo=57,nt=class extends x{constructor(e,t){super(e,t)}get type(){return m.NumericValue}getValue(){let e=this.getText(),t=0,r;for(let i=0,s=e.length;i0&&(t+=`/${Array.isArray(e.comment)?e.comment.join(""):e.comment}`),i=e.args??{};let s=ea?.[t];return s?typeof s=="string"?Jn(s,i):s.comment?Jn(s.message,i):Jn(r,i):Jn(r,i)}var ta=/{([^}]+)}/g;function Jn(n,e){return Object.keys(e).length===0?n:n.replace(ta,(t,r)=>e[r]??t)}var O=class{constructor(e,t){this.id=e,this.message=t}},f={NumberExpected:new O("css-numberexpected",p("number expected")),ConditionExpected:new O("css-conditionexpected",p("condition expected")),RuleOrSelectorExpected:new O("css-ruleorselectorexpected",p("at-rule or selector expected")),DotExpected:new O("css-dotexpected",p("dot expected")),ColonExpected:new O("css-colonexpected",p("colon expected")),SemiColonExpected:new O("css-semicolonexpected",p("semi-colon expected")),TermExpected:new O("css-termexpected",p("term expected")),ExpressionExpected:new O("css-expressionexpected",p("expression expected")),OperatorExpected:new O("css-operatorexpected",p("operator expected")),IdentifierExpected:new O("css-identifierexpected",p("identifier expected")),PercentageExpected:new O("css-percentageexpected",p("percentage expected")),URIOrStringExpected:new O("css-uriorstringexpected",p("uri or string expected")),URIExpected:new O("css-uriexpected",p("URI expected")),VariableNameExpected:new O("css-varnameexpected",p("variable name expected")),VariableValueExpected:new O("css-varvalueexpected",p("variable value expected")),PropertyValueExpected:new O("css-propertyvalueexpected",p("property value expected")),LeftCurlyExpected:new O("css-lcurlyexpected",p("{ expected")),RightCurlyExpected:new O("css-rcurlyexpected",p("} expected")),LeftSquareBracketExpected:new O("css-rbracketexpected",p("[ expected")),RightSquareBracketExpected:new O("css-lbracketexpected",p("] expected")),LeftParenthesisExpected:new O("css-lparentexpected",p("( expected")),RightParenthesisExpected:new O("css-rparentexpected",p(") expected")),CommaExpected:new O("css-commaexpected",p("comma expected")),PageDirectiveOrDeclarationExpected:new O("css-pagedirordeclexpected",p("page directive or declaraton expected")),UnknownAtRule:new O("css-unknownatrule",p("at-rule unknown")),UnknownKeyword:new O("css-unknownkeyword",p("unknown keyword")),SelectorExpected:new O("css-selectorexpected",p("selector expected")),StringLiteralExpected:new O("css-stringliteralexpected",p("string literal expected")),WhitespaceExpected:new O("css-whitespaceexpected",p("whitespace expected")),MediaQueryExpected:new O("css-mediaqueryexpected",p("media query expected")),IdentifierOrWildcardExpected:new O("css-idorwildcardexpected",p("identifier or wildcard expected")),WildcardExpected:new O("css-wildcardexpected",p("wildcard expected")),IdentifierOrVariableExpected:new O("css-idorvarexpected",p("identifier or variable expected"))};var Nr;(function(n){function e(t){return typeof t=="string"}n.is=e})(Nr||(Nr={}));var Or;(function(n){function e(t){return typeof t=="string"}n.is=e})(Or||(Or={}));var Yi;(function(n){n.MIN_VALUE=-2147483648,n.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}n.is=e})(Yi||(Yi={}));var Xn;(function(n){n.MIN_VALUE=0,n.MAX_VALUE=2147483647;function e(t){return typeof t=="number"&&n.MIN_VALUE<=t&&t<=n.MAX_VALUE}n.is=e})(Xn||(Xn={}));var H;(function(n){function e(r,i){return r===Number.MAX_VALUE&&(r=Xn.MAX_VALUE),i===Number.MAX_VALUE&&(i=Xn.MAX_VALUE),{line:r,character:i}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&g.uinteger(i.line)&&g.uinteger(i.character)}n.is=t})(H||(H={}));var R;(function(n){function e(r,i,s,a){if(g.uinteger(r)&&g.uinteger(i)&&g.uinteger(s)&&g.uinteger(a))return{start:H.create(r,i),end:H.create(s,a)};if(H.is(r)&&H.is(i))return{start:r,end:i};throw new Error(`Range#create called with invalid arguments[${r}, ${i}, ${s}, ${a}]`)}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&H.is(i.start)&&H.is(i.end)}n.is=t})(R||(R={}));var it;(function(n){function e(r,i){return{uri:r,range:i}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&R.is(i.range)&&(g.string(i.uri)||g.undefined(i.uri))}n.is=t})(it||(it={}));var Qi;(function(n){function e(r,i,s,a){return{targetUri:r,targetRange:i,targetSelectionRange:s,originSelectionRange:a}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&R.is(i.targetRange)&&g.string(i.targetUri)&&R.is(i.targetSelectionRange)&&(R.is(i.originSelectionRange)||g.undefined(i.originSelectionRange))}n.is=t})(Qi||(Qi={}));var Yn;(function(n){function e(r,i,s,a){return{red:r,green:i,blue:s,alpha:a}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&g.numberRange(i.red,0,1)&&g.numberRange(i.green,0,1)&&g.numberRange(i.blue,0,1)&&g.numberRange(i.alpha,0,1)}n.is=t})(Yn||(Yn={}));var Pr;(function(n){function e(r,i){return{range:r,color:i}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&R.is(i.range)&&Yn.is(i.color)}n.is=t})(Pr||(Pr={}));var Ar;(function(n){function e(r,i,s){return{label:r,textEdit:i,additionalTextEdits:s}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&g.string(i.label)&&(g.undefined(i.textEdit)||_.is(i))&&(g.undefined(i.additionalTextEdits)||g.typedArray(i.additionalTextEdits,_.is))}n.is=t})(Ar||(Ar={}));var Wr;(function(n){n.Comment="comment",n.Imports="imports",n.Region="region"})(Wr||(Wr={}));var Lr;(function(n){function e(r,i,s,a,l,o){let d={startLine:r,endLine:i};return g.defined(s)&&(d.startCharacter=s),g.defined(a)&&(d.endCharacter=a),g.defined(l)&&(d.kind=l),g.defined(o)&&(d.collapsedText=o),d}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&g.uinteger(i.startLine)&&g.uinteger(i.startLine)&&(g.undefined(i.startCharacter)||g.uinteger(i.startCharacter))&&(g.undefined(i.endCharacter)||g.uinteger(i.endCharacter))&&(g.undefined(i.kind)||g.string(i.kind))}n.is=t})(Lr||(Lr={}));var $r;(function(n){function e(r,i){return{location:r,message:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&it.is(i.location)&&g.string(i.message)}n.is=t})($r||($r={}));var yt;(function(n){n.Error=1,n.Warning=2,n.Information=3,n.Hint=4})(yt||(yt={}));var Zi;(function(n){n.Unnecessary=1,n.Deprecated=2})(Zi||(Zi={}));var es;(function(n){function e(t){let r=t;return g.objectLiteral(r)&&g.string(r.href)}n.is=e})(es||(es={}));var Bt;(function(n){function e(r,i,s,a,l,o){let d={range:r,message:i};return g.defined(s)&&(d.severity=s),g.defined(a)&&(d.code=a),g.defined(l)&&(d.source=l),g.defined(o)&&(d.relatedInformation=o),d}n.create=e;function t(r){var i;let s=r;return g.defined(s)&&R.is(s.range)&&g.string(s.message)&&(g.number(s.severity)||g.undefined(s.severity))&&(g.integer(s.code)||g.string(s.code)||g.undefined(s.code))&&(g.undefined(s.codeDescription)||g.string((i=s.codeDescription)===null||i===void 0?void 0:i.href))&&(g.string(s.source)||g.undefined(s.source))&&(g.undefined(s.relatedInformation)||g.typedArray(s.relatedInformation,$r.is))}n.is=t})(Bt||(Bt={}));var Me;(function(n){function e(r,i,...s){let a={title:r,command:i};return g.defined(s)&&s.length>0&&(a.arguments=s),a}n.create=e;function t(r){let i=r;return g.defined(i)&&g.string(i.title)&&g.string(i.command)}n.is=t})(Me||(Me={}));var _;(function(n){function e(s,a){return{range:s,newText:a}}n.replace=e;function t(s,a){return{range:{start:s,end:s},newText:a}}n.insert=t;function r(s){return{range:s,newText:""}}n.del=r;function i(s){let a=s;return g.objectLiteral(a)&&g.string(a.newText)&&R.is(a.range)}n.is=i})(_||(_={}));var Ur;(function(n){function e(r,i,s){let a={label:r};return i!==void 0&&(a.needsConfirmation=i),s!==void 0&&(a.description=s),a}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&g.string(i.label)&&(g.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(g.string(i.description)||i.description===void 0)}n.is=t})(Ur||(Ur={}));var xt;(function(n){function e(t){let r=t;return g.string(r)}n.is=e})(xt||(xt={}));var ts;(function(n){function e(s,a,l){return{range:s,newText:a,annotationId:l}}n.replace=e;function t(s,a,l){return{range:{start:s,end:s},newText:a,annotationId:l}}n.insert=t;function r(s,a){return{range:s,newText:"",annotationId:a}}n.del=r;function i(s){let a=s;return _.is(a)&&(Ur.is(a.annotationId)||xt.is(a.annotationId))}n.is=i})(ts||(ts={}));var St;(function(n){function e(r,i){return{textDocument:r,edits:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&qr.is(i.textDocument)&&Array.isArray(i.edits)}n.is=t})(St||(St={}));var Vr;(function(n){function e(r,i,s){let a={kind:"create",uri:r};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(r){let i=r;return i&&i.kind==="create"&&g.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||g.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||g.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||xt.is(i.annotationId))}n.is=t})(Vr||(Vr={}));var jr;(function(n){function e(r,i,s,a){let l={kind:"rename",oldUri:r,newUri:i};return s!==void 0&&(s.overwrite!==void 0||s.ignoreIfExists!==void 0)&&(l.options=s),a!==void 0&&(l.annotationId=a),l}n.create=e;function t(r){let i=r;return i&&i.kind==="rename"&&g.string(i.oldUri)&&g.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||g.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||g.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||xt.is(i.annotationId))}n.is=t})(jr||(jr={}));var Br;(function(n){function e(r,i,s){let a={kind:"delete",uri:r};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(a.options=i),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(r){let i=r;return i&&i.kind==="delete"&&g.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||g.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||g.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||xt.is(i.annotationId))}n.is=t})(Br||(Br={}));var Qn;(function(n){function e(t){let r=t;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(i=>g.string(i.kind)?Vr.is(i)||jr.is(i)||Br.is(i):St.is(i)))}n.is=e})(Qn||(Qn={}));var ns;(function(n){function e(r){return{uri:r}}n.create=e;function t(r){let i=r;return g.defined(i)&&g.string(i.uri)}n.is=t})(ns||(ns={}));var qt;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&g.string(i.uri)&&g.integer(i.version)}n.is=t})(qt||(qt={}));var qr;(function(n){function e(r,i){return{uri:r,version:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&g.string(i.uri)&&(i.version===null||g.integer(i.version))}n.is=t})(qr||(qr={}));var rs;(function(n){function e(r,i,s,a){return{uri:r,languageId:i,version:s,text:a}}n.create=e;function t(r){let i=r;return g.defined(i)&&g.string(i.uri)&&g.string(i.languageId)&&g.integer(i.version)&&g.string(i.text)}n.is=t})(rs||(rs={}));var se;(function(n){n.PlainText="plaintext",n.Markdown="markdown";function e(t){let r=t;return r===n.PlainText||r===n.Markdown}n.is=e})(se||(se={}));var Ct;(function(n){function e(t){let r=t;return g.objectLiteral(t)&&se.is(r.kind)&&g.string(r.value)}n.is=e})(Ct||(Ct={}));var k;(function(n){n.Text=1,n.Method=2,n.Function=3,n.Constructor=4,n.Field=5,n.Variable=6,n.Class=7,n.Interface=8,n.Module=9,n.Property=10,n.Unit=11,n.Value=12,n.Enum=13,n.Keyword=14,n.Snippet=15,n.Color=16,n.File=17,n.Reference=18,n.Folder=19,n.EnumMember=20,n.Constant=21,n.Struct=22,n.Event=23,n.Operator=24,n.TypeParameter=25})(k||(k={}));var te;(function(n){n.PlainText=1,n.Snippet=2})(te||(te={}));var Te;(function(n){n.Deprecated=1})(Te||(Te={}));var is;(function(n){function e(r,i,s){return{newText:r,insert:i,replace:s}}n.create=e;function t(r){let i=r;return i&&g.string(i.newText)&&R.is(i.insert)&&R.is(i.replace)}n.is=t})(is||(is={}));var ss;(function(n){n.asIs=1,n.adjustIndentation=2})(ss||(ss={}));var os;(function(n){function e(t){let r=t;return r&&(g.string(r.detail)||r.detail===void 0)&&(g.string(r.description)||r.description===void 0)}n.is=e})(os||(os={}));var Kr;(function(n){function e(t){return{label:t}}n.create=e})(Kr||(Kr={}));var Gr;(function(n){function e(t,r){return{items:t||[],isIncomplete:!!r}}n.create=e})(Gr||(Gr={}));var Kt;(function(n){function e(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}n.fromPlainText=e;function t(r){let i=r;return g.string(i)||g.objectLiteral(i)&&g.string(i.language)&&g.string(i.value)}n.is=t})(Kt||(Kt={}));var Hr;(function(n){function e(t){let r=t;return!!r&&g.objectLiteral(r)&&(Ct.is(r.contents)||Kt.is(r.contents)||g.typedArray(r.contents,Kt.is))&&(t.range===void 0||R.is(t.range))}n.is=e})(Hr||(Hr={}));var as;(function(n){function e(t,r){return r?{label:t,documentation:r}:{label:t}}n.create=e})(as||(as={}));var ls;(function(n){function e(t,r,...i){let s={label:t};return g.defined(r)&&(s.documentation=r),g.defined(i)?s.parameters=i:s.parameters=[],s}n.create=e})(ls||(ls={}));var Ge;(function(n){n.Text=1,n.Read=2,n.Write=3})(Ge||(Ge={}));var Jr;(function(n){function e(t,r){let i={range:t};return g.number(r)&&(i.kind=r),i}n.create=e})(Jr||(Jr={}));var ge;(function(n){n.File=1,n.Module=2,n.Namespace=3,n.Package=4,n.Class=5,n.Method=6,n.Property=7,n.Field=8,n.Constructor=9,n.Enum=10,n.Interface=11,n.Function=12,n.Variable=13,n.Constant=14,n.String=15,n.Number=16,n.Boolean=17,n.Array=18,n.Object=19,n.Key=20,n.Null=21,n.EnumMember=22,n.Struct=23,n.Event=24,n.Operator=25,n.TypeParameter=26})(ge||(ge={}));var cs;(function(n){n.Deprecated=1})(cs||(cs={}));var Xr;(function(n){function e(t,r,i,s,a){let l={name:t,kind:r,location:{uri:s,range:i}};return a&&(l.containerName=a),l}n.create=e})(Xr||(Xr={}));var ds;(function(n){function e(t,r,i,s){return s!==void 0?{name:t,kind:r,location:{uri:i,range:s}}:{name:t,kind:r,location:{uri:i}}}n.create=e})(ds||(ds={}));var Yr;(function(n){function e(r,i,s,a,l,o){let d={name:r,detail:i,kind:s,range:a,selectionRange:l};return o!==void 0&&(d.children=o),d}n.create=e;function t(r){let i=r;return i&&g.string(i.name)&&g.number(i.kind)&&R.is(i.range)&&R.is(i.selectionRange)&&(i.detail===void 0||g.string(i.detail))&&(i.deprecated===void 0||g.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}n.is=t})(Yr||(Yr={}));var Gt;(function(n){n.Empty="",n.QuickFix="quickfix",n.Refactor="refactor",n.RefactorExtract="refactor.extract",n.RefactorInline="refactor.inline",n.RefactorRewrite="refactor.rewrite",n.Source="source",n.SourceOrganizeImports="source.organizeImports",n.SourceFixAll="source.fixAll"})(Gt||(Gt={}));var Zn;(function(n){n.Invoked=1,n.Automatic=2})(Zn||(Zn={}));var Qr;(function(n){function e(r,i,s){let a={diagnostics:r};return i!=null&&(a.only=i),s!=null&&(a.triggerKind=s),a}n.create=e;function t(r){let i=r;return g.defined(i)&&g.typedArray(i.diagnostics,Bt.is)&&(i.only===void 0||g.typedArray(i.only,g.string))&&(i.triggerKind===void 0||i.triggerKind===Zn.Invoked||i.triggerKind===Zn.Automatic)}n.is=t})(Qr||(Qr={}));var Ht;(function(n){function e(r,i,s){let a={title:r},l=!0;return typeof i=="string"?(l=!1,a.kind=i):Me.is(i)?a.command=i:a.edit=i,l&&s!==void 0&&(a.kind=s),a}n.create=e;function t(r){let i=r;return i&&g.string(i.title)&&(i.diagnostics===void 0||g.typedArray(i.diagnostics,Bt.is))&&(i.kind===void 0||g.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Me.is(i.command))&&(i.isPreferred===void 0||g.boolean(i.isPreferred))&&(i.edit===void 0||Qn.is(i.edit))}n.is=t})(Ht||(Ht={}));var hs;(function(n){function e(r,i){let s={range:r};return g.defined(i)&&(s.data=i),s}n.create=e;function t(r){let i=r;return g.defined(i)&&R.is(i.range)&&(g.undefined(i.command)||Me.is(i.command))}n.is=t})(hs||(hs={}));var ps;(function(n){function e(r,i){return{tabSize:r,insertSpaces:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&g.uinteger(i.tabSize)&&g.boolean(i.insertSpaces)}n.is=t})(ps||(ps={}));var Zr;(function(n){function e(r,i,s){return{range:r,target:i,data:s}}n.create=e;function t(r){let i=r;return g.defined(i)&&R.is(i.range)&&(g.undefined(i.target)||g.string(i.target))}n.is=t})(Zr||(Zr={}));var kt;(function(n){function e(r,i){return{range:r,parent:i}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&R.is(i.range)&&(i.parent===void 0||n.is(i.parent))}n.is=t})(kt||(kt={}));var ms;(function(n){n.namespace="namespace",n.type="type",n.class="class",n.enum="enum",n.interface="interface",n.struct="struct",n.typeParameter="typeParameter",n.parameter="parameter",n.variable="variable",n.property="property",n.enumMember="enumMember",n.event="event",n.function="function",n.method="method",n.macro="macro",n.keyword="keyword",n.modifier="modifier",n.comment="comment",n.string="string",n.number="number",n.regexp="regexp",n.operator="operator",n.decorator="decorator"})(ms||(ms={}));var us;(function(n){n.declaration="declaration",n.definition="definition",n.readonly="readonly",n.static="static",n.deprecated="deprecated",n.abstract="abstract",n.async="async",n.modification="modification",n.documentation="documentation",n.defaultLibrary="defaultLibrary"})(us||(us={}));var fs;(function(n){function e(t){let r=t;return g.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}n.is=e})(fs||(fs={}));var gs;(function(n){function e(r,i){return{range:r,text:i}}n.create=e;function t(r){let i=r;return i!=null&&R.is(i.range)&&g.string(i.text)}n.is=t})(gs||(gs={}));var bs;(function(n){function e(r,i,s){return{range:r,variableName:i,caseSensitiveLookup:s}}n.create=e;function t(r){let i=r;return i!=null&&R.is(i.range)&&g.boolean(i.caseSensitiveLookup)&&(g.string(i.variableName)||i.variableName===void 0)}n.is=t})(bs||(bs={}));var ws;(function(n){function e(r,i){return{range:r,expression:i}}n.create=e;function t(r){let i=r;return i!=null&&R.is(i.range)&&(g.string(i.expression)||i.expression===void 0)}n.is=t})(ws||(ws={}));var vs;(function(n){function e(r,i){return{frameId:r,stoppedLocation:i}}n.create=e;function t(r){let i=r;return g.defined(i)&&R.is(r.stoppedLocation)}n.is=t})(vs||(vs={}));var ei;(function(n){n.Type=1,n.Parameter=2;function e(t){return t===1||t===2}n.is=e})(ei||(ei={}));var ti;(function(n){function e(r){return{value:r}}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&(i.tooltip===void 0||g.string(i.tooltip)||Ct.is(i.tooltip))&&(i.location===void 0||it.is(i.location))&&(i.command===void 0||Me.is(i.command))}n.is=t})(ti||(ti={}));var ys;(function(n){function e(r,i,s){let a={position:r,label:i};return s!==void 0&&(a.kind=s),a}n.create=e;function t(r){let i=r;return g.objectLiteral(i)&&H.is(i.position)&&(g.string(i.label)||g.typedArray(i.label,ti.is))&&(i.kind===void 0||ei.is(i.kind))&&i.textEdits===void 0||g.typedArray(i.textEdits,_.is)&&(i.tooltip===void 0||g.string(i.tooltip)||Ct.is(i.tooltip))&&(i.paddingLeft===void 0||g.boolean(i.paddingLeft))&&(i.paddingRight===void 0||g.boolean(i.paddingRight))}n.is=t})(ys||(ys={}));var xs;(function(n){function e(t){return{kind:"snippet",value:t}}n.createSnippet=e})(xs||(xs={}));var Ss;(function(n){function e(t,r,i,s){return{insertText:t,filterText:r,range:i,command:s}}n.create=e})(Ss||(Ss={}));var Cs;(function(n){function e(t){return{items:t}}n.create=e})(Cs||(Cs={}));var ks;(function(n){n.Invoked=0,n.Automatic=1})(ks||(ks={}));var Fs;(function(n){function e(t,r){return{range:t,text:r}}n.create=e})(Fs||(Fs={}));var Es;(function(n){function e(t,r){return{triggerKind:t,selectedCompletionInfo:r}}n.create=e})(Es||(Es={}));var _s;(function(n){function e(t){let r=t;return g.objectLiteral(r)&&Or.is(r.uri)&&g.string(r.name)}n.is=e})(_s||(_s={}));var Is;(function(n){function e(s,a,l,o){return new ni(s,a,l,o)}n.create=e;function t(s){let a=s;return!!(g.defined(a)&&g.string(a.uri)&&(g.undefined(a.languageId)||g.string(a.languageId))&&g.uinteger(a.lineCount)&&g.func(a.getText)&&g.func(a.positionAt)&&g.func(a.offsetAt))}n.is=t;function r(s,a){let l=s.getText(),o=i(a,(h,u)=>{let w=h.range.start.line-u.range.start.line;return w===0?h.range.start.character-u.range.start.character:w}),d=l.length;for(let h=o.length-1;h>=0;h--){let u=o[h],w=s.offsetAt(u.range.start),b=s.offsetAt(u.range.end);if(b<=d)l=l.substring(0,w)+u.newText+l.substring(b,l.length);else throw new Error("Overlapping edit");d=w}return l}n.applyEdits=r;function i(s,a){if(s.length<=1)return s;let l=s.length/2|0,o=s.slice(0,l),d=s.slice(l);i(o,a),i(d,a);let h=0,u=0,w=0;for(;h0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,i=t.length;if(i===0)return H.create(0,e);for(;re?i=a:r=a+1}let s=r-1;return H.create(s,e-t[s])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],i=e.line+1"u"}n.undefined=r;function i(b){return b===!0||b===!1}n.boolean=i;function s(b){return e.call(b)==="[object String]"}n.string=s;function a(b){return e.call(b)==="[object Number]"}n.number=a;function l(b,y,E){return e.call(b)==="[object Number]"&&y<=b&&b<=E}n.numberRange=l;function o(b){return e.call(b)==="[object Number]"&&-2147483648<=b&&b<=2147483647}n.integer=o;function d(b){return e.call(b)==="[object Number]"&&0<=b&&b<=2147483647}n.uinteger=d;function h(b){return e.call(b)==="[object Function]"}n.func=h;function u(b){return b!==null&&typeof b=="object"}n.objectLiteral=u;function w(b,y){return Array.isArray(b)&&b.every(y)}n.typedArray=w})(g||(g={}));var er=class n{constructor(e,t,r,i){this._uri=e,this._languageId=t,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}update(e,t){for(let r of e)if(n.isIncremental(r)){let i=Rs(r.range),s=this.offsetAt(i.start),a=this.offsetAt(i.end);this._content=this._content.substring(0,s)+r.text+this._content.substring(a,this._content.length);let l=Math.max(i.start.line,0),o=Math.max(i.end.line,0),d=this._lineOffsets,h=Ds(r.text,!1,s);if(o-l===h.length)for(let w=0,b=h.length;we?i=a:r=a+1}let s=r-1;return{line:s,character:e-t[s]}}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],i=e.line+1{let w=h.range.start.line-u.range.start.line;return w===0?h.range.start.character-u.range.start.character:w}),o=0,d=[];for(let h of l){let u=i.offsetAt(h.range.start);if(uo&&d.push(a.substring(o,u)),h.newText.length&&d.push(h.newText),o=i.offsetAt(h.range.end)}return d.push(a.substr(o)),d.join("")}n.applyEdits=r})(Jt||(Jt={}));function ri(n,e){if(n.length<=1)return n;let t=n.length/2|0,r=n.slice(0,t),i=n.slice(t);ri(r,e),ri(i,e);let s=0,a=0,l=0;for(;st.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:n}function na(n){let e=Rs(n.range);return e!==n.range?{newText:n.newText,range:e}:n}var zs;(function(n){n.LATEST={textDocument:{completion:{completionItem:{documentationFormat:[se.Markdown,se.PlainText]}},hover:{contentFormat:[se.Markdown,se.PlainText]}}}})(zs||(zs={}));var st;(function(n){n[n.Unknown=0]="Unknown",n[n.File=1]="File",n[n.Directory=2]="Directory",n[n.SymbolicLink=64]="SymbolicLink"})(st||(st={}));var Ms={E:"Edge",FF:"Firefox",S:"Safari",C:"Chrome",IE:"IE",O:"Opera"};function Ts(n){switch(n){case"experimental":return`\u26A0\uFE0F Property is experimental. Be cautious when using it.\uFE0F + +`;case"nonstandard":return`\u{1F6A8}\uFE0F Property is nonstandard. Avoid using it. + +`;case"obsolete":return`\u{1F6A8}\uFE0F\uFE0F\uFE0F Property is obsolete. Avoid using it. + +`;default:return""}}function Ce(n,e,t){let r;if(e?r={kind:"markdown",value:ia(n,t)}:r={kind:"plaintext",value:ra(n,t)},r.value!=="")return r}function tr(n){return n=n.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&"),n.replace(//g,">")}function ra(n,e){if(!n.description||n.description==="")return"";if(typeof n.description!="string")return n.description.value;let t="";if(e?.documentation!==!1){n.status&&(t+=Ts(n.status)),t+=n.description;let r=Ns(n.browsers);r&&(t+=` +(`+r+")"),"syntax"in n&&(t+=` + +Syntax: ${n.syntax}`)}return n.references&&n.references.length>0&&e?.references!==!1&&(t.length>0&&(t+=` + +`),t+=n.references.map(r=>`${r.name}: ${r.url}`).join(" | ")),t}function ia(n,e){if(!n.description||n.description==="")return"";let t="";if(e?.documentation!==!1){n.status&&(t+=Ts(n.status)),typeof n.description=="string"?t+=tr(n.description):t+=n.description.kind===se.Markdown?n.description.value:tr(n.description.value);let r=Ns(n.browsers);r&&(t+=` + +(`+tr(r)+")"),"syntax"in n&&n.syntax&&(t+=` + +Syntax: ${tr(n.syntax)}`)}return n.references&&n.references.length>0&&e?.references!==!1&&(t.length>0&&(t+=` + +`),t+=n.references.map(r=>`[${r.name}](${r.url})`).join(" | ")),t}function Ns(n=[]){return n.length===0?null:n.map(e=>{let t="",r=e.match(/([A-Z]+)(\d+)?/),i=r[1],s=r[2];return i in Ms&&(t+=Ms[i]),s&&(t+=" "+s),t}).join(", ")}var sa=/(^#([0-9A-F]{3}){1,2}$)|(^#([0-9A-F]{4}){1,2}$)/i,Ws=[{label:"rgb",func:"rgb($red, $green, $blue)",insertText:"rgb(${1:red}, ${2:green}, ${3:blue})",desc:p("Creates a Color from red, green, and blue values.")},{label:"rgba",func:"rgba($red, $green, $blue, $alpha)",insertText:"rgba(${1:red}, ${2:green}, ${3:blue}, ${4:alpha})",desc:p("Creates a Color from red, green, blue, and alpha values.")},{label:"rgb relative",func:"rgb(from $color $red $green $blue)",insertText:"rgb(from ${1:color} ${2:r} ${3:g} ${4:b})",desc:p("Creates a Color from the red, green, and blue values of another Color.")},{label:"hsl",func:"hsl($hue, $saturation, $lightness)",insertText:"hsl(${1:hue}, ${2:saturation}, ${3:lightness})",desc:p("Creates a Color from hue, saturation, and lightness values.")},{label:"hsla",func:"hsla($hue, $saturation, $lightness, $alpha)",insertText:"hsla(${1:hue}, ${2:saturation}, ${3:lightness}, ${4:alpha})",desc:p("Creates a Color from hue, saturation, lightness, and alpha values.")},{label:"hsl relative",func:"hsl(from $color $hue $saturation $lightness)",insertText:"hsl(from ${1:color} ${2:h} ${3:s} ${4:l})",desc:p("Creates a Color from the hue, saturation, and lightness values of another Color.")},{label:"hwb",func:"hwb($hue $white $black)",insertText:"hwb(${1:hue} ${2:white} ${3:black})",desc:p("Creates a Color from hue, white, and black values.")},{label:"hwb relative",func:"hwb(from $color $hue $white $black)",insertText:"hwb(from ${1:color} ${2:h} ${3:w} ${4:b})",desc:p("Creates a Color from the hue, white, and black values of another Color.")},{label:"lab",func:"lab($lightness $a $b)",insertText:"lab(${1:lightness} ${2:a} ${3:b})",desc:p("Creates a Color from lightness, a, and b values.")},{label:"lab relative",func:"lab(from $color $lightness $a $b)",insertText:"lab(from ${1:color} ${2:l} ${3:a} ${4:b})",desc:p("Creates a Color from the lightness, a, and b values of another Color.")},{label:"oklab",func:"oklab($lightness $a $b)",insertText:"oklab(${1:lightness} ${2:a} ${3:b})",desc:p("Creates a Color from lightness, a, and b values.")},{label:"oklab relative",func:"oklab(from $color $lightness $a $b)",insertText:"oklab(from ${1:color} ${2:l} ${3:a} ${4:b})",desc:p("Creates a Color from the lightness, a, and b values of another Color.")},{label:"lch",func:"lch($lightness $chroma $hue)",insertText:"lch(${1:lightness} ${2:chroma} ${3:hue})",desc:p("Creates a Color from lightness, chroma, and hue values.")},{label:"lch relative",func:"lch(from $color $lightness $chroma $hue)",insertText:"lch(from ${1:color} ${2:l} ${3:c} ${4:h})",desc:p("Creates a Color from the lightness, chroma, and hue values of another Color.")},{label:"oklch",func:"oklch($lightness $chroma $hue)",insertText:"oklch(${1:lightness} ${2:chroma} ${3:hue})",desc:p("Creates a Color from lightness, chroma, and hue values.")},{label:"oklch relative",func:"oklch(from $color $lightness $chroma $hue)",insertText:"oklch(from ${1:color} ${2:l} ${3:c} ${4:h})",desc:p("Creates a Color from the lightness, chroma, and hue values of another Color.")},{label:"color",func:"color($color-space $red $green $blue)",insertText:"color(${1|srgb,srgb-linear,display-p3,a98-rgb,prophoto-rgb,rec2020,xyx,xyz-d50,xyz-d65|} ${2:red} ${3:green} ${4:blue})",desc:p("Creates a Color in a specific color space from red, green, and blue values.")},{label:"color relative",func:"color(from $color $color-space $red $green $blue)",insertText:"color(from ${1:color} ${2|srgb,srgb-linear,display-p3,a98-rgb,prophoto-rgb,rec2020,xyx,xyz-d50,xyz-d65|} ${3:r} ${4:g} ${5:b})",desc:p("Creates a Color in a specific color space from the red, green, and blue values of another Color.")},{label:"color-mix",func:"color-mix(in $color-space, $color $percentage, $color $percentage)",insertText:"color-mix(in ${1|srgb,srgb-linear,lab,oklab,xyz,xyz-d50,xyz-d65|}, ${3:color} ${4:percentage}, ${5:color} ${6:percentage})",desc:p("Mix two colors together in a rectangular color space.")},{label:"color-mix hue",func:"color-mix(in $color-space $interpolation-method hue, $color $percentage, $color $percentage)",insertText:"color-mix(in ${1|hsl,hwb,lch,oklch|} ${2|shorter hue,longer hue,increasing hue,decreasing hue|}, ${3:color} ${4:percentage}, ${5:color} ${6:percentage})",desc:p("Mix two colors together in a polar color space.")}],oa=/^(rgb|rgba|hsl|hsla|hwb)$/i,Xt={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rebeccapurple:"#663399",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},aa=new RegExp(`^(${Object.keys(Xt).join("|")})$`,"i"),rr={currentColor:"The value of the 'color' property. The computed value of the 'currentColor' keyword is the computed value of the 'color' property. If the 'currentColor' keyword is set on the 'color' property itself, it is treated as 'color:inherit' at parse time.",transparent:"Fully transparent. This keyword can be considered a shorthand for rgba(0,0,0,0) which is its computed value."},la=new RegExp(`^(${Object.keys(rr).join("|")})$`,"i");function He(n,e){let r=n.getText().match(/^([-+]?[0-9]*\.?[0-9]+)(%?)$/);if(r){r[2]&&(e=100);let i=parseFloat(r[1])/e;if(i>=0&&i<=1)return i}throw new Error}function Os(n){let e=n.getText(),t=e.match(/^([-+]?[0-9]*\.?[0-9]+)(deg|rad|grad|turn)?$/);if(t)switch(t[2]){case"deg":return parseFloat(e)%360;case"rad":return parseFloat(e)*180/Math.PI%360;case"grad":return parseFloat(e)*.9%360;case"turn":return parseFloat(e)*360%360;default:if(typeof t[2]>"u")return parseFloat(e)%360}throw new Error}function Ls(n){let e=n.getName();return e?oa.test(e):!1}function ii(n){return sa.test(n)||aa.test(n)||la.test(n)}var Ps=48,ca=57,da=65;var nr=97,ha=102;function B(n){return n=nr&&n<=ha?n-nr+10:0)}function As(n){if(n[0]!=="#")return null;switch(n.length){case 4:return{red:B(n.charCodeAt(1))*17/255,green:B(n.charCodeAt(2))*17/255,blue:B(n.charCodeAt(3))*17/255,alpha:1};case 5:return{red:B(n.charCodeAt(1))*17/255,green:B(n.charCodeAt(2))*17/255,blue:B(n.charCodeAt(3))*17/255,alpha:B(n.charCodeAt(4))*17/255};case 7:return{red:(B(n.charCodeAt(1))*16+B(n.charCodeAt(2)))/255,green:(B(n.charCodeAt(3))*16+B(n.charCodeAt(4)))/255,blue:(B(n.charCodeAt(5))*16+B(n.charCodeAt(6)))/255,alpha:1};case 9:return{red:(B(n.charCodeAt(1))*16+B(n.charCodeAt(2)))/255,green:(B(n.charCodeAt(3))*16+B(n.charCodeAt(4)))/255,blue:(B(n.charCodeAt(5))*16+B(n.charCodeAt(6)))/255,alpha:(B(n.charCodeAt(7))*16+B(n.charCodeAt(8)))/255}}return null}function $s(n,e,t,r=1){if(n=n/60,e===0)return{red:t,green:t,blue:t,alpha:r};{let i=(l,o,d)=>{for(;d<0;)d+=6;for(;d>=6;)d-=6;return d<1?(o-l)*d+l:d<3?o:d<4?(o-l)*(4-d)+l:l},s=t<=.5?t*(e+1):t+e-t*e,a=t*2-s;return{red:i(a,s,n+2),green:i(a,s,n),blue:i(a,s,n-2),alpha:r}}}function si(n){let e=n.red,t=n.green,r=n.blue,i=n.alpha,s=Math.max(e,t,r),a=Math.min(e,t,r),l=0,o=0,d=(a+s)/2,h=s-a;if(h>0){switch(o=Math.min(d<=.5?h/(2*d):h/(2-2*d),1),s){case e:l=(t-r)/h+(t=1){let o=e/(e+t);return{red:o,green:o,blue:o,alpha:r}}let i=$s(n,1,.5,r),s=i.red;s*=1-e-t,s+=e;let a=i.green;a*=1-e-t,a+=e;let l=i.blue;return l*=1-e-t,l+=e,{red:s,green:a,blue:l,alpha:r}}function Us(n){let e=si(n),t=Math.min(n.red,n.green,n.blue),r=1-Math.max(n.red,n.green,n.blue);return{h:e.h,w:t,b:r,a:e.a}}function Vs(n){if(n.type===m.HexColorValue){let e=n.getText();return As(e)}else if(n.type===m.Function){let e=n,t=e.getName(),r=e.getArguments().getChildren();if(r.length===1){let i=r[0].getChildren();if(i.length===1&&i[0].type===m.Expression&&(r=i[0].getChildren(),r.length===3)){let s=r[2];if(s instanceof qe){let a=s.getLeft(),l=s.getRight(),o=s.getOperator();a&&l&&o&&o.matches("/")&&(r=[r[0],r[1],a,l])}}}if(!t||r.length<3||r.length>4)return null;try{let i=r.length===4?He(r[3],1):1;if(t==="rgb"||t==="rgba")return{red:He(r[0],255),green:He(r[1],255),blue:He(r[2],255),alpha:i};if(t==="hsl"||t==="hsla"){let s=Os(r[0]),a=He(r[1],100),l=He(r[2],100);return $s(s,a,l,i)}else if(t==="hwb"){let s=Os(r[0]),a=He(r[1],100),l=He(r[2],100);return pa(s,a,l,i)}}catch{return null}}else if(n.type===m.Identifier){if(n.parent&&n.parent.type!==m.Term)return null;let e=n.parent;if(e&&e.parent&&e.parent.type===m.BinaryExpression){let i=e.parent;if(i.parent&&i.parent.type===m.ListEntry&&i.parent.key===i)return null}let t=n.getText().toLowerCase();if(t==="none")return null;let r=Xt[t];if(r)return As(r)}return null}var oi={bottom:"Computes to \u2018100%\u2019 for the vertical position if one or two values are given, otherwise specifies the bottom edge as the origin for the next offset.",center:"Computes to \u201850%\u2019 (\u2018left 50%\u2019) for the horizontal position if the horizontal position is not otherwise specified, or \u201850%\u2019 (\u2018top 50%\u2019) for the vertical position if it is.",left:"Computes to \u20180%\u2019 for the horizontal position if one or two values are given, otherwise specifies the left edge as the origin for the next offset.",right:"Computes to \u2018100%\u2019 for the horizontal position if one or two values are given, otherwise specifies the right edge as the origin for the next offset.",top:"Computes to \u20180%\u2019 for the vertical position if one or two values are given, otherwise specifies the top edge as the origin for the next offset."},ai={"no-repeat":"Placed once and not repeated in this direction.",repeat:"Repeated in this direction as often as needed to cover the background painting area.","repeat-x":"Computes to \u2018repeat no-repeat\u2019.","repeat-y":"Computes to \u2018no-repeat repeat\u2019.",round:"Repeated as often as will fit within the background positioning area. If it doesn\u2019t fit a whole number of times, it is rescaled so that it does.",space:"Repeated as often as will fit within the background positioning area without being clipped and then the images are spaced out to fill the area."},li={dashed:"A series of square-ended dashes.",dotted:"A series of round dots.",double:"Two parallel solid lines with some space between them.",groove:"Looks as if it were carved in the canvas.",hidden:"Same as \u2018none\u2019, but has different behavior in the border conflict resolution rules for border-collapsed tables.",inset:"Looks as if the content on the inside of the border is sunken into the canvas.",none:"No border. Color and width are ignored.",outset:"Looks as if the content on the inside of the border is coming out of the canvas.",ridge:"Looks as if it were coming out of the canvas.",solid:"A single line segment."},js=["medium","thick","thin"],ci={"border-box":"The background is painted within (clipped to) the border box.","content-box":"The background is painted within (clipped to) the content box.","padding-box":"The background is painted within (clipped to) the padding box."},di={"margin-box":"Uses the margin box as reference box.","fill-box":"Uses the object bounding box as reference box.","stroke-box":"Uses the stroke bounding box as reference box.","view-box":"Uses the nearest SVG viewport as reference box."},hi={initial:"Represents the value specified as the property\u2019s initial value.",inherit:"Represents the computed value of the property on the element\u2019s parent.",unset:"Acts as either `inherit` or `initial`, depending on whether the property is inherited or not."},pi={"var()":"Evaluates the value of a custom variable.","calc()":"Evaluates an mathematical expression. The following operators can be used: + - * /."},mi={"url()":"Reference an image file by URL","image()":"Provide image fallbacks and annotations.","-webkit-image-set()":"Provide multiple resolutions. Remember to use unprefixed image-set() in addition.","image-set()":"Provide multiple resolutions of an image and const the UA decide which is most appropriate in a given situation.","-moz-element()":"Use an element in the document as an image. Remember to use unprefixed element() in addition.","element()":"Use an element in the document as an image.","cross-fade()":"Indicates the two images to be combined and how far along in the transition the combination is.","-webkit-gradient()":"Deprecated. Use modern linear-gradient() or radial-gradient() instead.","-webkit-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","-moz-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","-o-linear-gradient()":"Linear gradient. Remember to use unprefixed version in addition.","linear-gradient()":"A linear gradient is created by specifying a straight gradient line, and then several colors placed along that line.","-webkit-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","-moz-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","-o-repeating-linear-gradient()":"Repeating Linear gradient. Remember to use unprefixed version in addition.","repeating-linear-gradient()":"Same as linear-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop\u2019s position and the first specified color-stop\u2019s position.","-webkit-radial-gradient()":"Radial gradient. Remember to use unprefixed version in addition.","-moz-radial-gradient()":"Radial gradient. Remember to use unprefixed version in addition.","radial-gradient()":"Colors emerge from a single point and smoothly spread outward in a circular or elliptical shape.","-webkit-repeating-radial-gradient()":"Repeating radial gradient. Remember to use unprefixed version in addition.","-moz-repeating-radial-gradient()":"Repeating radial gradient. Remember to use unprefixed version in addition.","repeating-radial-gradient()":"Same as radial-gradient, except the color-stops are repeated infinitely in both directions, with their positions shifted by multiples of the difference between the last specified color-stop\u2019s position and the first specified color-stop\u2019s position."},ui={ease:"Equivalent to cubic-bezier(0.25, 0.1, 0.25, 1.0).","ease-in":"Equivalent to cubic-bezier(0.42, 0, 1.0, 1.0).","ease-in-out":"Equivalent to cubic-bezier(0.42, 0, 0.58, 1.0).","ease-out":"Equivalent to cubic-bezier(0, 0, 0.58, 1.0).",linear:"Equivalent to cubic-bezier(0.0, 0.0, 1.0, 1.0).","step-end":"Equivalent to steps(1, end).","step-start":"Equivalent to steps(1, start).","steps()":"The first parameter specifies the number of intervals in the function. The second parameter, which is optional, is either the value \u201Cstart\u201D or \u201Cend\u201D.","cubic-bezier()":"Specifies a cubic-bezier curve. The four values specify points P1 and P2 of the curve as (x1, y1, x2, y2).","cubic-bezier(0.6, -0.28, 0.735, 0.045)":"Ease-in Back. Overshoots.","cubic-bezier(0.68, -0.55, 0.265, 1.55)":"Ease-in-out Back. Overshoots.","cubic-bezier(0.175, 0.885, 0.32, 1.275)":"Ease-out Back. Overshoots.","cubic-bezier(0.6, 0.04, 0.98, 0.335)":"Ease-in Circular. Based on half circle.","cubic-bezier(0.785, 0.135, 0.15, 0.86)":"Ease-in-out Circular. Based on half circle.","cubic-bezier(0.075, 0.82, 0.165, 1)":"Ease-out Circular. Based on half circle.","cubic-bezier(0.55, 0.055, 0.675, 0.19)":"Ease-in Cubic. Based on power of three.","cubic-bezier(0.645, 0.045, 0.355, 1)":"Ease-in-out Cubic. Based on power of three.","cubic-bezier(0.215, 0.610, 0.355, 1)":"Ease-out Cubic. Based on power of three.","cubic-bezier(0.95, 0.05, 0.795, 0.035)":"Ease-in Exponential. Based on two to the power ten.","cubic-bezier(1, 0, 0, 1)":"Ease-in-out Exponential. Based on two to the power ten.","cubic-bezier(0.19, 1, 0.22, 1)":"Ease-out Exponential. Based on two to the power ten.","cubic-bezier(0.47, 0, 0.745, 0.715)":"Ease-in Sine.","cubic-bezier(0.445, 0.05, 0.55, 0.95)":"Ease-in-out Sine.","cubic-bezier(0.39, 0.575, 0.565, 1)":"Ease-out Sine.","cubic-bezier(0.55, 0.085, 0.68, 0.53)":"Ease-in Quadratic. Based on power of two.","cubic-bezier(0.455, 0.03, 0.515, 0.955)":"Ease-in-out Quadratic. Based on power of two.","cubic-bezier(0.25, 0.46, 0.45, 0.94)":"Ease-out Quadratic. Based on power of two.","cubic-bezier(0.895, 0.03, 0.685, 0.22)":"Ease-in Quartic. Based on power of four.","cubic-bezier(0.77, 0, 0.175, 1)":"Ease-in-out Quartic. Based on power of four.","cubic-bezier(0.165, 0.84, 0.44, 1)":"Ease-out Quartic. Based on power of four.","cubic-bezier(0.755, 0.05, 0.855, 0.06)":"Ease-in Quintic. Based on power of five.","cubic-bezier(0.86, 0, 0.07, 1)":"Ease-in-out Quintic. Based on power of five.","cubic-bezier(0.23, 1, 0.320, 1)":"Ease-out Quintic. Based on power of five."},fi={"circle()":"Defines a circle.","ellipse()":"Defines an ellipse.","inset()":"Defines an inset rectangle.","polygon()":"Defines a polygon."},ir={length:["cap","ch","cm","cqb","cqh","cqi","cqmax","cqmin","cqw","dvb","dvh","dvi","dvw","em","ex","ic","in","lh","lvb","lvh","lvi","lvw","mm","pc","pt","px","q","rcap","rch","rem","rex","ric","rlh","svb","svh","svi","svw","vb","vh","vi","vmax","vmin","vw"],angle:["deg","rad","grad","turn"],time:["ms","s"],frequency:["Hz","kHz"],resolution:["dpi","dpcm","dppx"],percentage:["%","fr"]},Bs=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","const","video","wbr"],qs=["circle","clipPath","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","hatch","hatchpath","image","line","linearGradient","marker","mask","mesh","meshpatch","meshrow","metadata","mpath","path","pattern","polygon","polyline","radialGradient","rect","set","solidcolor","stop","svg","switch","symbol","text","textPath","tspan","use","view"],Ks=["@bottom-center","@bottom-left","@bottom-left-corner","@bottom-right","@bottom-right-corner","@left-bottom","@left-middle","@left-top","@right-bottom","@right-middle","@right-top","@top-center","@top-left","@top-left-corner","@top-right","@top-right-corner"];function Yt(n){return Object.keys(n).map(e=>n[e])}function ie(n){return typeof n<"u"}var ke=class{constructor(e=new ce){this.keyframeRegex=/^@(\-(webkit|ms|moz|o)\-)?keyframes$/i,this.scanner=e,this.token={type:c.EOF,offset:-1,len:0,text:""},this.prevToken=void 0}peekIdent(e){return c.Ident===this.token.type&&e.length===this.token.text.length&&e===this.token.text.toLowerCase()}peekKeyword(e){return c.AtKeyword===this.token.type&&e.length===this.token.text.length&&e===this.token.text.toLowerCase()}peekDelim(e){return c.Delim===this.token.type&&e===this.token.text}peek(e){return e===this.token.type}peekOne(...e){return e.indexOf(this.token.type)!==-1}peekRegExp(e,t){return e!==this.token.type?!1:t.test(this.token.text)}hasWhitespace(){return!!this.prevToken&&this.prevToken.offset+this.prevToken.len!==this.token.offset}consumeToken(){this.prevToken=this.token,this.token=this.scanner.scan()}acceptUnicodeRange(){let e=this.scanner.tryScanUnicode();return e?(this.prevToken=e,this.token=this.scanner.scan(),!0):!1}mark(){return{prev:this.prevToken,curr:this.token,pos:this.scanner.pos()}}restoreAtMark(e){this.prevToken=e.prev,this.token=e.curr,this.scanner.goBackTo(e.pos)}try(e){let t=this.mark(),r=e();return r||(this.restoreAtMark(t),null)}acceptOneKeyword(e){if(c.AtKeyword===this.token.type){for(let t of e)if(t.length===this.token.text.length&&t===this.token.text.toLowerCase())return this.consumeToken(),!0}return!1}accept(e){return e===this.token.type?(this.consumeToken(),!0):!1}acceptIdent(e){return this.peekIdent(e)?(this.consumeToken(),!0):!1}acceptKeyword(e){return this.peekKeyword(e)?(this.consumeToken(),!0):!1}acceptDelim(e){return this.peekDelim(e)?(this.consumeToken(),!0):!1}acceptRegexp(e){return e.test(this.token.text)?(this.consumeToken(),!0):!1}_parseRegexp(e){let t=this.createNode(m.Identifier);do;while(this.acceptRegexp(e));return this.finish(t)}acceptUnquotedString(){let e=this.scanner.pos();this.scanner.goBackTo(this.token.offset);let t=this.scanner.scanUnquotedString();return t?(this.token=t,this.consumeToken(),!0):(this.scanner.goBackTo(e),!1)}resync(e,t){for(;;){if(e&&e.indexOf(this.token.type)!==-1)return this.consumeToken(),!0;if(t&&t.indexOf(this.token.type)!==-1)return!0;if(this.token.type===c.EOF)return!1;this.token=this.scanner.scan()}}createNode(e){return new x(this.token.offset,this.token.len,e)}create(e){return new e(this.token.offset,this.token.len)}finish(e,t,r,i){if(!(e instanceof J)&&(t&&this.markError(e,t,r,i),this.prevToken)){let s=this.prevToken.offset+this.prevToken.len;e.length=s>e.offset?s-e.offset:0}return e}markError(e,t,r,i){this.token!==this.lastErrorToken&&(e.addIssue(new wt(e,t,ee.Error,void 0,this.token.offset,this.token.len)),this.lastErrorToken=this.token),(r||i)&&this.resync(r,i)}parseStylesheet(e){let t=e.version,r=e.getText(),i=(s,a)=>{if(e.version!==t)throw new Error("Underlying model has changed, AST is no longer valid");return r.substr(s,a)};return this.internalParse(r,this._parseStylesheet,i)}internalParse(e,t,r){this.scanner.setSource(e),this.token=this.scanner.scan();let i=t.bind(this)();return i&&(r?i.textProvider=r:i.textProvider=(s,a)=>e.substr(s,a)),i}_parseStylesheet(){let e=this.create(bn);for(;e.addChild(this._parseStylesheetStart()););let t=!1;do{let r=!1;do{r=!1;let i=this._parseStylesheetStatement();for(i&&(e.addChild(i),r=!0,t=!1,!this.peek(c.EOF)&&this._needsSemicolonAfter(i)&&!this.accept(c.SemiColon)&&this.markError(e,f.SemiColonExpected));this.accept(c.SemiColon)||this.accept(c.CDO)||this.accept(c.CDC);)r=!0,t=!1}while(r);if(this.peek(c.EOF))break;t||(this.peek(c.AtKeyword)?this.markError(e,f.UnknownAtRule):this.markError(e,f.RuleOrSelectorExpected),t=!0),this.consumeToken()}while(!this.peek(c.EOF));return this.finish(e)}_parseStylesheetStart(){return this._parseCharset()}_parseStylesheetStatement(e=!1){return this.peek(c.AtKeyword)?this._parseStylesheetAtStatement(e):this._parseRuleset(e)}_parseStylesheetAtStatement(e=!1){return this._parseImport()||this._parseMedia(e)||this._parsePage()||this._parseFontFace()||this._parseKeyframe()||this._parseSupports(e)||this._parseLayer(e)||this._parsePropertyAtRule()||this._parseViewPort()||this._parseNamespace()||this._parseDocument()||this._parseContainer(e)||this._parseUnknownAtRule()}_tryParseRuleset(e){let t=this.mark();if(this._parseSelector(e)){for(;this.accept(c.Comma)&&this._parseSelector(e););if(this.accept(c.CurlyL))return this.restoreAtMark(t),this._parseRuleset(e)}return this.restoreAtMark(t),null}_parseRuleset(e=!1){let t=this.create(ae),r=t.getSelectors();if(!r.addChild(this._parseSelector(e)))return null;for(;this.accept(c.Comma);)if(!r.addChild(this._parseSelector(e)))return this.finish(t,f.SelectorExpected);return this._parseBody(t,this._parseRuleSetDeclaration.bind(this))}_parseRuleSetDeclarationAtStatement(){return this._parseMedia(!0)||this._parseSupports(!0)||this._parseLayer(!0)||this._parseContainer(!0)||this._parseUnknownAtRule()}_parseRuleSetDeclaration(){return this.peek(c.AtKeyword)?this._parseRuleSetDeclarationAtStatement():this.peek(c.Ident)?this._tryParseRuleset(!0)||this._parseDeclaration():this._parseRuleset(!0)}_needsSemicolonAfter(e){switch(e.type){case m.Keyframe:case m.ViewPort:case m.Media:case m.Ruleset:case m.Namespace:case m.If:case m.For:case m.Each:case m.While:case m.MixinDeclaration:case m.FunctionDeclaration:case m.MixinContentDeclaration:return!1;case m.ExtendsReference:case m.MixinContentReference:case m.ReturnStatement:case m.MediaQuery:case m.Debug:case m.Import:case m.AtApplyRule:case m.CustomPropertyDeclaration:return!0;case m.VariableDeclaration:return e.needsSemicolon;case m.MixinReference:return!e.getContent();case m.Declaration:return!e.getNestedProperties()}return!1}_parseDeclarations(e){let t=this.create(Ze);if(!this.accept(c.CurlyL))return null;let r=e();for(;t.addChild(r)&&!this.peek(c.CurlyR);){if(this._needsSemicolonAfter(r)&&!this.accept(c.SemiColon))return this.finish(t,f.SemiColonExpected,[c.SemiColon,c.CurlyR]);for(r&&this.prevToken&&this.prevToken.type===c.SemiColon&&(r.semicolonPosition=this.prevToken.offset);this.accept(c.SemiColon););r=e()}return this.accept(c.CurlyR)?this.finish(t):this.finish(t,f.RightCurlyExpected,[c.CurlyR,c.SemiColon])}_parseBody(e,t){return e.setDeclarations(this._parseDeclarations(t))?this.finish(e):this.finish(e,f.LeftCurlyExpected,[c.CurlyR,c.SemiColon])}_parseSelector(e){let t=this.create(de),r=!1;for(e&&(r=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());)r=!0,t.addChild(this._parseCombinator());return r?this.finish(t):null}_parseDeclaration(e){let t=this._tryParseCustomPropertyDeclaration(e);if(t)return t;let r=this.create(Q);return r.setProperty(this._parseProperty())?this.accept(c.Colon)?(this.prevToken&&(r.colonPosition=this.prevToken.offset),r.setValue(this._parseExpr())?(r.addChild(this._parsePrio()),this.peek(c.SemiColon)&&(r.semicolonPosition=this.token.offset),this.finish(r)):this.finish(r,f.PropertyValueExpected)):this.finish(r,f.ColonExpected,[c.Colon],e||[c.SemiColon]):null}_tryParseCustomPropertyDeclaration(e){if(!this.peekRegExp(c.Ident,/^--/))return null;let t=this.create(vn);if(!t.setProperty(this._parseProperty()))return null;if(!this.accept(c.Colon))return this.finish(t,f.ColonExpected,[c.Colon]);this.prevToken&&(t.colonPosition=this.prevToken.offset);let r=this.mark();if(this.peek(c.CurlyL)){let s=this.create(wn),a=this._parseDeclarations(this._parseRuleSetDeclaration.bind(this));if(s.setDeclarations(a)&&!a.isErroneous(!0)&&(s.addChild(this._parsePrio()),this.peek(c.SemiColon)))return this.finish(s),t.setPropertySet(s),t.semicolonPosition=this.token.offset,this.finish(t);this.restoreAtMark(r)}let i=this._parseExpr();return i&&!i.isErroneous(!0)&&(this._parsePrio(),this.peekOne(...e||[],c.SemiColon,c.EOF))?(t.setValue(i),this.peek(c.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)):(this.restoreAtMark(r),t.addChild(this._parseCustomPropertyValue(e)),t.addChild(this._parsePrio()),ie(t.colonPosition)&&this.token.offset===t.colonPosition+1?this.finish(t,f.PropertyValueExpected):this.finish(t))}_parseCustomPropertyValue(e=[c.CurlyR]){let t=this.create(x),r=()=>s===0&&a===0&&l===0,i=()=>e.indexOf(this.token.type)!==-1,s=0,a=0,l=0;e:for(;;){switch(this.token.type){case c.SemiColon:if(r())break e;break;case c.Exclamation:if(r())break e;break;case c.CurlyL:s++;break;case c.CurlyR:if(s--,s<0){if(i()&&a===0&&l===0)break e;return this.finish(t,f.LeftCurlyExpected)}break;case c.ParenthesisL:a++;break;case c.ParenthesisR:if(a--,a<0){if(i()&&l===0&&s===0)break e;return this.finish(t,f.LeftParenthesisExpected)}break;case c.BracketL:l++;break;case c.BracketR:if(l--,l<0)return this.finish(t,f.LeftSquareBracketExpected);break;case c.BadString:break e;case c.EOF:let o=f.RightCurlyExpected;return l>0?o=f.RightSquareBracketExpected:a>0&&(o=f.RightParenthesisExpected),this.finish(t,o)}this.consumeToken()}return this.finish(t)}_tryToParseDeclaration(e){let t=this.mark();return this._parseProperty()&&this.accept(c.Colon)?(this.restoreAtMark(t),this._parseDeclaration(e)):(this.restoreAtMark(t),null)}_parseProperty(){let e=this.create(Ve),t=this.mark();return(this.acceptDelim("*")||this.acceptDelim("_"))&&this.hasWhitespace()?(this.restoreAtMark(t),null):e.setIdentifier(this._parsePropertyIdentifier())?this.finish(e):null}_parsePropertyIdentifier(){return this._parseIdent()}_parseCharset(){if(!this.peek(c.Charset))return null;let e=this.create(x);return this.consumeToken(),this.accept(c.String)?this.accept(c.SemiColon)?this.finish(e):this.finish(e,f.SemiColonExpected):this.finish(e,f.IdentifierExpected)}_parseImport(){if(!this.peekKeyword("@import"))return null;let e=this.create(je);return this.consumeToken(),!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral())?this.finish(e,f.URIOrStringExpected):this._completeParseImport(e)}_completeParseImport(e){if(this.acceptIdent("layer")&&this.accept(c.ParenthesisL)){if(!e.addChild(this._parseLayerName()))return this.finish(e,f.IdentifierExpected,[c.SemiColon]);if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[c.ParenthesisR],[])}return this.acceptIdent("supports")&&this.accept(c.ParenthesisL)&&(e.addChild(this._tryToParseDeclaration()||this._parseSupportsCondition()),!this.accept(c.ParenthesisR))?this.finish(e,f.RightParenthesisExpected,[c.ParenthesisR],[]):(!this.peek(c.SemiColon)&&!this.peek(c.EOF)&&e.setMedialist(this._parseMediaQueryList()),this.finish(e))}_parseNamespace(){if(!this.peekKeyword("@namespace"))return null;let e=this.create(Rn);return this.consumeToken(),!e.addChild(this._parseURILiteral())&&(e.addChild(this._parseIdent()),!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))?this.finish(e,f.URIExpected,[c.SemiColon]):this.accept(c.SemiColon)?this.finish(e):this.finish(e,f.SemiColonExpected)}_parseFontFace(){if(!this.peekKeyword("@font-face"))return null;let e=this.create(pt);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))}_parseViewPort(){if(!this.peekKeyword("@-ms-viewport")&&!this.peekKeyword("@-o-viewport")&&!this.peekKeyword("@viewport"))return null;let e=this.create(Fn);return this.consumeToken(),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))}_parseKeyframe(){if(!this.peekRegExp(c.AtKeyword,this.keyframeRegex))return null;let e=this.create(mt),t=this.create(x);return this.consumeToken(),e.setKeyword(this.finish(t)),t.matches("@-ms-keyframes")&&this.markError(t,f.UnknownKeyword),e.setIdentifier(this._parseKeyframeIdent())?this._parseBody(e,this._parseKeyframeSelector.bind(this)):this.finish(e,f.IdentifierExpected,[c.CurlyR])}_parseKeyframeIdent(){return this._parseIdent([z.Keyframe])}_parseKeyframeSelector(){let e=this.create(Vt),t=!1;if(e.addChild(this._parseIdent())&&(t=!0),this.accept(c.Percentage)&&(t=!0),!t)return null;for(;this.accept(c.Comma);)if(t=!1,e.addChild(this._parseIdent())&&(t=!0),this.accept(c.Percentage)&&(t=!0),!t)return this.finish(e,f.PercentageExpected);return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))}_tryParseKeyframeSelector(){let e=this.create(Vt),t=this.mark(),r=!1;if(e.addChild(this._parseIdent())&&(r=!0),this.accept(c.Percentage)&&(r=!0),!r)return null;for(;this.accept(c.Comma);)if(r=!1,e.addChild(this._parseIdent())&&(r=!0),this.accept(c.Percentage)&&(r=!0),!r)return this.restoreAtMark(t),null;return this.peek(c.CurlyL)?this._parseBody(e,this._parseRuleSetDeclaration.bind(this)):(this.restoreAtMark(t),null)}_parsePropertyAtRule(){if(!this.peekKeyword("@property"))return null;let e=this.create(Mn);return this.consumeToken(),!this.peekRegExp(c.Ident,/^--/)||!e.setName(this._parseIdent([z.Property]))?this.finish(e,f.IdentifierExpected):this._parseBody(e,this._parseDeclaration.bind(this))}_parseLayer(e=!1){if(!this.peekKeyword("@layer"))return null;let t=this.create(zn);this.consumeToken();let r=this._parseLayerNameList();return r&&t.setNames(r),(!r||r.getChildren().length===1)&&this.peek(c.CurlyL)?this._parseBody(t,this._parseLayerDeclaration.bind(this,e)):this.accept(c.SemiColon)?this.finish(t):this.finish(t,f.SemiColonExpected)}_parseLayerDeclaration(e=!1){return e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)}_parseLayerNameList(){let e=this.createNode(m.LayerNameList);if(!e.addChild(this._parseLayerName()))return null;for(;this.accept(c.Comma);)if(!e.addChild(this._parseLayerName()))return this.finish(e,f.IdentifierExpected);return this.finish(e)}_parseLayerName(){let e=this.createNode(m.LayerName);if(!e.addChild(this._parseIdent()))return null;for(;!this.hasWhitespace()&&this.acceptDelim(".");)if(this.hasWhitespace()||!e.addChild(this._parseIdent()))return this.finish(e,f.IdentifierExpected);return this.finish(e)}_parseSupports(e=!1){if(!this.peekKeyword("@supports"))return null;let t=this.create(et);return this.consumeToken(),t.addChild(this._parseSupportsCondition()),this._parseBody(t,this._parseSupportsDeclaration.bind(this,e))}_parseSupportsDeclaration(e=!1){return e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)}_parseSupportsCondition(){let e=this.create(Re);if(this.acceptIdent("not"))e.addChild(this._parseSupportsConditionInParens());else if(e.addChild(this._parseSupportsConditionInParens()),this.peekRegExp(c.Ident,/^(and|or)$/i)){let t=this.token.text.toLowerCase();for(;this.acceptIdent(t);)e.addChild(this._parseSupportsConditionInParens())}return this.finish(e)}_parseSupportsConditionInParens(){let e=this.create(Re);if(this.accept(c.ParenthesisL))return this.prevToken&&(e.lParent=this.prevToken.offset),!e.addChild(this._tryToParseDeclaration([c.ParenthesisR]))&&!this._parseSupportsCondition()?this.finish(e,f.ConditionExpected):this.accept(c.ParenthesisR)?(this.prevToken&&(e.rParent=this.prevToken.offset),this.finish(e)):this.finish(e,f.RightParenthesisExpected,[c.ParenthesisR],[]);if(this.peek(c.Ident)){let t=this.mark();if(this.consumeToken(),!this.hasWhitespace()&&this.accept(c.ParenthesisL)){let r=1;for(;this.token.type!==c.EOF&&r!==0;)this.token.type===c.ParenthesisL?r++:this.token.type===c.ParenthesisR&&r--,this.consumeToken();return this.finish(e)}else this.restoreAtMark(t)}return this.finish(e,f.LeftParenthesisExpected,[],[c.ParenthesisL])}_parseMediaDeclaration(e=!1){return e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)}_parseMedia(e=!1){if(!this.peekKeyword("@media"))return null;let t=this.create(Be);return this.consumeToken(),t.addChild(this._parseMediaQueryList())?this._parseBody(t,this._parseMediaDeclaration.bind(this,e)):this.finish(t,f.MediaQueryExpected)}_parseMediaQueryList(){let e=this.create(ut);if(!e.addChild(this._parseMediaQuery()))return this.finish(e,f.MediaQueryExpected);for(;this.accept(c.Comma);)if(!e.addChild(this._parseMediaQuery()))return this.finish(e,f.MediaQueryExpected);return this.finish(e)}_parseMediaQuery(){let e=this.create(ft),t=this.mark();if(this.acceptIdent("not"),this.peek(c.ParenthesisL))this.restoreAtMark(t),e.addChild(this._parseMediaCondition());else{if(this.acceptIdent("only"),!e.addChild(this._parseIdent()))return null;this.acceptIdent("and")&&e.addChild(this._parseMediaCondition())}return this.finish(e)}_parseRatio(){let e=this.mark(),t=this.create(Un);return this._parseNumeric()?this.acceptDelim("/")?this._parseNumeric()?this.finish(t):this.finish(t,f.NumberExpected):(this.restoreAtMark(e),null):null}_parseMediaCondition(){let e=this.create(On);this.acceptIdent("not");let t=!0;for(;t;){if(!this.accept(c.ParenthesisL))return this.finish(e,f.LeftParenthesisExpected,[],[c.CurlyL]);if(this.peek(c.ParenthesisL)||this.peekIdent("not")?e.addChild(this._parseMediaCondition()):e.addChild(this._parseMediaFeature()),!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[],[c.CurlyL]);t=this.acceptIdent("and")||this.acceptIdent("or")}return this.finish(e)}_parseMediaFeature(){let e=[c.ParenthesisR],t=this.create(Pn);if(t.addChild(this._parseMediaFeatureName())){if(this.accept(c.Colon)){if(!t.addChild(this._parseMediaFeatureValue()))return this.finish(t,f.TermExpected,[],e)}else if(this._parseMediaFeatureRangeOperator()){if(!t.addChild(this._parseMediaFeatureValue()))return this.finish(t,f.TermExpected,[],e);if(this._parseMediaFeatureRangeOperator()&&!t.addChild(this._parseMediaFeatureValue()))return this.finish(t,f.TermExpected,[],e)}}else if(t.addChild(this._parseMediaFeatureValue())){if(!this._parseMediaFeatureRangeOperator())return this.finish(t,f.OperatorExpected,[],e);if(!t.addChild(this._parseMediaFeatureName()))return this.finish(t,f.IdentifierExpected,[],e);if(this._parseMediaFeatureRangeOperator()&&!t.addChild(this._parseMediaFeatureValue()))return this.finish(t,f.TermExpected,[],e)}else return this.finish(t,f.IdentifierExpected,[],e);return this.finish(t)}_parseMediaFeatureRangeOperator(){return this.acceptDelim("<")||this.acceptDelim(">")?(this.hasWhitespace()||this.acceptDelim("="),!0):!!this.acceptDelim("=")}_parseMediaFeatureName(){return this._parseIdent()}_parseMediaFeatureValue(){return this._parseRatio()||this._parseTermExpression()}_parseMedium(){let e=this.create(x);return e.addChild(this._parseIdent())?this.finish(e):null}_parsePageDeclaration(){return this._parsePageMarginBox()||this._parseRuleSetDeclaration()}_parsePage(){if(!this.peekKeyword("@page"))return null;let e=this.create(An);if(this.consumeToken(),e.addChild(this._parsePageSelector())){for(;this.accept(c.Comma);)if(!e.addChild(this._parsePageSelector()))return this.finish(e,f.IdentifierExpected)}return this._parseBody(e,this._parsePageDeclaration.bind(this))}_parsePageMarginBox(){if(!this.peek(c.AtKeyword))return null;let e=this.create(Wn);return this.acceptOneKeyword(Ks)||this.markError(e,f.UnknownAtRule,[],[c.CurlyL]),this._parseBody(e,this._parseRuleSetDeclaration.bind(this))}_parsePageSelector(){if(!this.peek(c.Ident)&&!this.peek(c.Colon))return null;let e=this.create(x);return e.addChild(this._parseIdent()),this.accept(c.Colon)&&!e.addChild(this._parseIdent())?this.finish(e,f.IdentifierExpected):this.finish(e)}_parseDocument(){if(!this.peekKeyword("@-moz-document"))return null;let e=this.create(Tn);return this.consumeToken(),this.resync([],[c.CurlyL]),this._parseBody(e,this._parseStylesheetStatement.bind(this))}_parseContainerDeclaration(e=!1){return e?this._tryParseRuleset(!0)||this._tryToParseDeclaration()||this._parseStylesheetStatement(!0):this._parseStylesheetStatement(!1)}_parseContainer(e=!1){if(!this.peekKeyword("@container"))return null;let t=this.create(Nn);return this.consumeToken(),t.addChild(this._parseIdent()),t.addChild(this._parseContainerQuery()),this._parseBody(t,this._parseContainerDeclaration.bind(this,e))}_parseContainerQuery(){let e=this.create(x);if(this.acceptIdent("not"))e.addChild(this._parseContainerQueryInParens());else if(e.addChild(this._parseContainerQueryInParens()),this.peekIdent("and"))for(;this.acceptIdent("and");)e.addChild(this._parseContainerQueryInParens());else if(this.peekIdent("or"))for(;this.acceptIdent("or");)e.addChild(this._parseContainerQueryInParens());return this.finish(e)}_parseContainerQueryInParens(){let e=this.create(x);if(this.accept(c.ParenthesisL)){if(this.peekIdent("not")||this.peek(c.ParenthesisL)?e.addChild(this._parseContainerQuery()):e.addChild(this._parseMediaFeature()),!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[],[c.CurlyL])}else if(this.acceptIdent("style")){if(this.hasWhitespace()||!this.accept(c.ParenthesisL))return this.finish(e,f.LeftParenthesisExpected,[],[c.CurlyL]);if(e.addChild(this._parseStyleQuery()),!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[],[c.CurlyL])}else return this.finish(e,f.LeftParenthesisExpected,[],[c.CurlyL]);return this.finish(e)}_parseStyleQuery(){let e=this.create(x);if(this.acceptIdent("not"))e.addChild(this._parseStyleInParens());else if(this.peek(c.ParenthesisL)){if(e.addChild(this._parseStyleInParens()),this.peekIdent("and"))for(;this.acceptIdent("and");)e.addChild(this._parseStyleInParens());else if(this.peekIdent("or"))for(;this.acceptIdent("or");)e.addChild(this._parseStyleInParens())}else e.addChild(this._parseDeclaration([c.ParenthesisR]));return this.finish(e)}_parseStyleInParens(){let e=this.create(x);if(this.accept(c.ParenthesisL)){if(e.addChild(this._parseStyleQuery()),!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[],[c.CurlyL])}else return this.finish(e,f.LeftParenthesisExpected,[],[c.CurlyL]);return this.finish(e)}_parseUnknownAtRule(){if(!this.peek(c.AtKeyword))return null;let e=this.create(bt);e.addChild(this._parseUnknownAtRuleName());let t=()=>i===0&&s===0&&a===0,r=0,i=0,s=0,a=0;e:for(;;){switch(this.token.type){case c.SemiColon:if(t())break e;break;case c.EOF:return i>0?this.finish(e,f.RightCurlyExpected):a>0?this.finish(e,f.RightSquareBracketExpected):s>0?this.finish(e,f.RightParenthesisExpected):this.finish(e);case c.CurlyL:r++,i++;break;case c.CurlyR:if(i--,r>0&&i===0){if(this.consumeToken(),a>0)return this.finish(e,f.RightSquareBracketExpected);if(s>0)return this.finish(e,f.RightParenthesisExpected);break e}if(i<0){if(s===0&&a===0)break e;return this.finish(e,f.LeftCurlyExpected)}break;case c.ParenthesisL:s++;break;case c.ParenthesisR:if(s--,s<0)return this.finish(e,f.LeftParenthesisExpected);break;case c.BracketL:a++;break;case c.BracketR:if(a--,a<0)return this.finish(e,f.LeftSquareBracketExpected);break}this.consumeToken()}return e}_parseUnknownAtRuleName(){let e=this.create(x);return this.accept(c.AtKeyword)?this.finish(e):e}_parseOperator(){if(this.peekDelim("/")||this.peekDelim("*")||this.peekDelim("+")||this.peekDelim("-")||this.peek(c.Dashmatch)||this.peek(c.Includes)||this.peek(c.SubstringOperator)||this.peek(c.PrefixOperator)||this.peek(c.SuffixOperator)||this.peekDelim("=")){let e=this.createNode(m.Operator);return this.consumeToken(),this.finish(e)}else return null}_parseUnaryOperator(){if(!this.peekDelim("+")&&!this.peekDelim("-"))return null;let e=this.create(x);return this.consumeToken(),this.finish(e)}_parseCombinator(){if(this.peekDelim(">")){let e=this.create(x);this.consumeToken();let t=this.mark();if(!this.hasWhitespace()&&this.acceptDelim(">")){if(!this.hasWhitespace()&&this.acceptDelim(">"))return e.type=m.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return e.type=m.SelectorCombinatorParent,this.finish(e)}else if(this.peekDelim("+")){let e=this.create(x);return this.consumeToken(),e.type=m.SelectorCombinatorSibling,this.finish(e)}else if(this.peekDelim("~")){let e=this.create(x);return this.consumeToken(),e.type=m.SelectorCombinatorAllSiblings,this.finish(e)}else if(this.peekDelim("/")){let e=this.create(x);this.consumeToken();let t=this.mark();if(!this.hasWhitespace()&&this.acceptIdent("deep")&&!this.hasWhitespace()&&this.acceptDelim("/"))return e.type=m.SelectorCombinatorShadowPiercingDescendant,this.finish(e);this.restoreAtMark(t)}return null}_parseSimpleSelector(){let e=this.create(he),t=0;for(e.addChild(this._parseElementName()||this._parseNestingSelector())&&t++;(t===0||!this.hasWhitespace())&&e.addChild(this._parseSimpleSelectorBody());)t++;return t>0?this.finish(e):null}_parseNestingSelector(){if(this.peekDelim("&")){let e=this.createNode(m.SelectorCombinator);return this.consumeToken(),this.finish(e)}return null}_parseSimpleSelectorBody(){return this._parsePseudo()||this._parseHash()||this._parseClass()||this._parseAttrib()}_parseSelectorIdent(){return this._parseIdent()}_parseHash(){if(!this.peek(c.Hash)&&!this.peekDelim("#"))return null;let e=this.createNode(m.IdentifierSelector);if(this.acceptDelim("#")){if(this.hasWhitespace()||!e.addChild(this._parseSelectorIdent()))return this.finish(e,f.IdentifierExpected)}else this.consumeToken();return this.finish(e)}_parseClass(){if(!this.peekDelim("."))return null;let e=this.createNode(m.ClassSelector);return this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseSelectorIdent())?this.finish(e,f.IdentifierExpected):this.finish(e)}_parseElementName(){let e=this.mark(),t=this.createNode(m.ElementNameSelector);return t.addChild(this._parseNamespacePrefix()),!t.addChild(this._parseSelectorIdent())&&!this.acceptDelim("*")?(this.restoreAtMark(e),null):this.finish(t)}_parseNamespacePrefix(){let e=this.mark(),t=this.createNode(m.NamespacePrefix);return!t.addChild(this._parseIdent())&&this.acceptDelim("*"),this.acceptDelim("|")?this.finish(t):(this.restoreAtMark(e),null)}_parseAttrib(){if(!this.peek(c.BracketL))return null;let e=this.create($n);return this.consumeToken(),e.setNamespacePrefix(this._parseNamespacePrefix()),e.setIdentifier(this._parseIdent())?(e.setOperator(this._parseOperator())&&(e.setValue(this._parseBinaryExpr()),this.acceptIdent("i"),this.acceptIdent("s")),this.accept(c.BracketR)?this.finish(e):this.finish(e,f.RightSquareBracketExpected)):this.finish(e,f.IdentifierExpected)}_parsePseudo(){let e=this._tryParsePseudoIdentifier();if(e){if(!this.hasWhitespace()&&this.accept(c.ParenthesisL)){let t=()=>{let i=this.create(x);if(!i.addChild(this._parseSelector(!0)))return null;for(;this.accept(c.Comma)&&i.addChild(this._parseSelector(!0)););return this.peek(c.ParenthesisR)?this.finish(i):null};if(!e.addChild(this.try(t))&&e.addChild(this._parseBinaryExpr())&&this.acceptIdent("of")&&!e.addChild(this.try(t)))return this.finish(e,f.SelectorExpected);if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected)}return this.finish(e)}return null}_tryParsePseudoIdentifier(){if(!this.peek(c.Colon))return null;let e=this.mark(),t=this.createNode(m.PseudoSelector);return this.consumeToken(),this.hasWhitespace()?(this.restoreAtMark(e),null):(this.accept(c.Colon),this.hasWhitespace()||!t.addChild(this._parseIdent())?this.finish(t,f.IdentifierExpected):this.finish(t))}_tryParsePrio(){let e=this.mark(),t=this._parsePrio();return t||(this.restoreAtMark(e),null)}_parsePrio(){if(!this.peek(c.Exclamation))return null;let e=this.createNode(m.Prio);return this.accept(c.Exclamation)&&this.acceptIdent("important")?this.finish(e):null}_parseExpr(e=!1){let t=this.create(gt);if(!t.addChild(this._parseBinaryExpr()))return null;for(;;){if(this.peek(c.Comma)){if(e)return this.finish(t);this.consumeToken()}if(!t.addChild(this._parseBinaryExpr()))break}return this.finish(t)}_parseUnicodeRange(){if(!this.peekIdent("u"))return null;let e=this.create(gn);return this.acceptUnicodeRange()?this.finish(e):null}_parseNamedLine(){if(!this.peek(c.BracketL))return null;let e=this.createNode(m.GridLine);for(this.consumeToken();e.addChild(this._parseIdent()););return this.accept(c.BracketR)?this.finish(e):this.finish(e,f.RightSquareBracketExpected)}_parseBinaryExpr(e,t){let r=this.create(qe);if(!r.setLeft(e||this._parseTerm()))return null;if(!r.setOperator(t||this._parseOperator()))return this.finish(r);if(!r.setRight(this._parseTerm()))return this.finish(r,f.TermExpected);r=this.finish(r);let i=this._parseOperator();return i&&(r=this._parseBinaryExpr(r,i)),this.finish(r)}_parseTerm(){let e=this.create(Ln);return e.setOperator(this._parseUnaryOperator()),e.setExpression(this._parseTermExpression())?this.finish(e):null}_parseTermExpression(){return this._parseURILiteral()||this._parseUnicodeRange()||this._parseFunction()||this._parseIdent()||this._parseStringLiteral()||this._parseNumeric()||this._parseHexColor()||this._parseOperation()||this._parseNamedLine()}_parseOperation(){if(!this.peek(c.ParenthesisL))return null;let e=this.create(x);return this.consumeToken(),e.addChild(this._parseExpr()),this.accept(c.ParenthesisR)?this.finish(e):this.finish(e,f.RightParenthesisExpected)}_parseNumeric(){if(this.peek(c.Num)||this.peek(c.Percentage)||this.peek(c.Resolution)||this.peek(c.Length)||this.peek(c.EMS)||this.peek(c.EXS)||this.peek(c.Angle)||this.peek(c.Time)||this.peek(c.Dimension)||this.peek(c.ContainerQueryLength)||this.peek(c.Freq)){let e=this.create(nt);return this.consumeToken(),this.finish(e)}return null}_parseStringLiteral(){if(!this.peek(c.String)&&!this.peek(c.BadString))return null;let e=this.createNode(m.StringLiteral);return this.consumeToken(),this.finish(e)}_parseURILiteral(){if(!this.peekRegExp(c.Ident,/^url(-prefix)?$/i))return null;let e=this.mark(),t=this.createNode(m.URILiteral);return this.accept(c.Ident),this.hasWhitespace()||!this.peek(c.ParenthesisL)?(this.restoreAtMark(e),null):(this.scanner.inURL=!0,this.consumeToken(),t.addChild(this._parseURLArgument()),this.scanner.inURL=!1,this.accept(c.ParenthesisR)?this.finish(t):this.finish(t,f.RightParenthesisExpected))}_parseURLArgument(){let e=this.create(x);return!this.accept(c.String)&&!this.accept(c.BadString)&&!this.acceptUnquotedString()?null:this.finish(e)}_parseIdent(e){if(!this.peek(c.Ident))return null;let t=this.create(G);return e&&(t.referenceTypes=e),t.isCustomProperty=this.peekRegExp(c.Ident,/^--/),this.consumeToken(),this.finish(t)}_parseFunction(){let e=this.mark(),t=this.create(me);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(c.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseFunctionArgument()))for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)t.getArguments().addChild(this._parseFunctionArgument())||this.markError(t,f.ExpressionExpected);return this.accept(c.ParenthesisR)?this.finish(t):this.finish(t,f.RightParenthesisExpected)}_parseFunctionIdentifier(){if(!this.peek(c.Ident))return null;let e=this.create(G);if(e.referenceTypes=[z.Function],this.acceptIdent("progid")){if(this.accept(c.Colon))for(;this.accept(c.Ident)&&this.acceptDelim("."););return this.finish(e)}return this.consumeToken(),this.finish(e)}_parseFunctionArgument(){let e=this.create(le);return e.setValue(this._parseExpr(!0))?this.finish(e):null}_parseHexColor(){if(this.peekRegExp(c.Hash,/^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{4}|[A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$/g)){let e=this.create(tt);return this.consumeToken(),this.finish(e)}else return null}};function Hs(n,e){let t=0,r=n.length;if(r===0)return 0;for(;te+t||this.offset===e&&this.length===t?this.findInScope(e,t):null}findInScope(e,t=0){let r=e+t,i=Hs(this.children,a=>a.offset>r);if(i===0)return this;let s=this.children[i-1];return s.offset<=e&&s.offset+s.length>=e+t?s.findInScope(e,t):this}addSymbol(e){this.symbols.push(e)}getSymbol(e,t){for(let r=0;r{"use strict";var n={470:i=>{function s(o){if(typeof o!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(o))}function a(o,d){for(var h,u="",w=0,b=-1,y=0,E=0;E<=o.length;++E){if(E2){var A=u.lastIndexOf("/");if(A!==u.length-1){A===-1?(u="",w=0):w=(u=u.slice(0,A)).length-1-u.lastIndexOf("/"),b=E,y=0;continue}}else if(u.length===2||u.length===1){u="",w=0,b=E,y=0;continue}}d&&(u.length>0?u+="/..":u="..",w=2)}else u.length>0?u+="/"+o.slice(b+1,E):u=o.slice(b+1,E),w=E-b-1;b=E,y=0}else h===46&&y!==-1?++y:y=-1}return u}var l={resolve:function(){for(var o,d="",h=!1,u=arguments.length-1;u>=-1&&!h;u--){var w;u>=0?w=arguments[u]:(o===void 0&&(o=process.cwd()),w=o),s(w),w.length!==0&&(d=w+"/"+d,h=w.charCodeAt(0)===47)}return d=a(d,!h),h?d.length>0?"/"+d:"/":d.length>0?d:"."},normalize:function(o){if(s(o),o.length===0)return".";var d=o.charCodeAt(0)===47,h=o.charCodeAt(o.length-1)===47;return(o=a(o,!d)).length!==0||d||(o="."),o.length>0&&h&&(o+="/"),d?"/"+o:o},isAbsolute:function(o){return s(o),o.length>0&&o.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var o,d=0;d0&&(o===void 0?o=h:o+="/"+h)}return o===void 0?".":l.normalize(o)},relative:function(o,d){if(s(o),s(d),o===d||(o=l.resolve(o))===(d=l.resolve(d)))return"";for(var h=1;hE){if(d.charCodeAt(b+I)===47)return d.slice(b+I+1);if(I===0)return d.slice(b+I)}else w>E&&(o.charCodeAt(h+I)===47?A=I:I===0&&(A=0));break}var P=o.charCodeAt(h+I);if(P!==d.charCodeAt(b+I))break;P===47&&(A=I)}var T="";for(I=h+A+1;I<=u;++I)I!==u&&o.charCodeAt(I)!==47||(T.length===0?T+="..":T+="/..");return T.length>0?T+d.slice(b+A):(b+=A,d.charCodeAt(b)===47&&++b,d.slice(b))},_makeLong:function(o){return o},dirname:function(o){if(s(o),o.length===0)return".";for(var d=o.charCodeAt(0),h=d===47,u=-1,w=!0,b=o.length-1;b>=1;--b)if((d=o.charCodeAt(b))===47){if(!w){u=b;break}}else w=!1;return u===-1?h?"/":".":h&&u===1?"//":o.slice(0,u)},basename:function(o,d){if(d!==void 0&&typeof d!="string")throw new TypeError('"ext" argument must be a string');s(o);var h,u=0,w=-1,b=!0;if(d!==void 0&&d.length>0&&d.length<=o.length){if(d.length===o.length&&d===o)return"";var y=d.length-1,E=-1;for(h=o.length-1;h>=0;--h){var A=o.charCodeAt(h);if(A===47){if(!b){u=h+1;break}}else E===-1&&(b=!1,E=h+1),y>=0&&(A===d.charCodeAt(y)?--y==-1&&(w=h):(y=-1,w=E))}return u===w?w=E:w===-1&&(w=o.length),o.slice(u,w)}for(h=o.length-1;h>=0;--h)if(o.charCodeAt(h)===47){if(!b){u=h+1;break}}else w===-1&&(b=!1,w=h+1);return w===-1?"":o.slice(u,w)},extname:function(o){s(o);for(var d=-1,h=0,u=-1,w=!0,b=0,y=o.length-1;y>=0;--y){var E=o.charCodeAt(y);if(E!==47)u===-1&&(w=!1,u=y+1),E===46?d===-1?d=y:b!==1&&(b=1):d!==-1&&(b=-1);else if(!w){h=y+1;break}}return d===-1||u===-1||b===0||b===1&&d===u-1&&d===h+1?"":o.slice(d,u)},format:function(o){if(o===null||typeof o!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof o);return function(d,h){var u=h.dir||h.root,w=h.base||(h.name||"")+(h.ext||"");return u?u===h.root?u+w:u+"/"+w:w}(0,o)},parse:function(o){s(o);var d={root:"",dir:"",base:"",ext:"",name:""};if(o.length===0)return d;var h,u=o.charCodeAt(0),w=u===47;w?(d.root="/",h=1):h=0;for(var b=-1,y=0,E=-1,A=!0,I=o.length-1,P=0;I>=h;--I)if((u=o.charCodeAt(I))!==47)E===-1&&(A=!1,E=I+1),u===46?b===-1?b=I:P!==1&&(P=1):b!==-1&&(P=-1);else if(!A){y=I+1;break}return b===-1||E===-1||P===0||P===1&&b===E-1&&b===y+1?E!==-1&&(d.base=d.name=y===0&&w?o.slice(1,E):o.slice(y,E)):(y===0&&w?(d.name=o.slice(1,b),d.base=o.slice(1,E)):(d.name=o.slice(y,b),d.base=o.slice(y,E)),d.ext=o.slice(b,E)),y>0?d.dir=o.slice(0,y-1):w&&(d.dir="/"),d},sep:"/",delimiter:":",win32:null,posix:null};l.posix=l,i.exports=l}},e={};function t(i){var s=e[i];if(s!==void 0)return s.exports;var a=e[i]={exports:{}};return n[i](a,a.exports,t),a.exports}t.d=(i,s)=>{for(var a in s)t.o(s,a)&&!t.o(i,a)&&Object.defineProperty(i,a,{enumerable:!0,get:s[a]})},t.o=(i,s)=>Object.prototype.hasOwnProperty.call(i,s),t.r=i=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})};var r={};(()=>{let i;t.r(r),t.d(r,{URI:()=>w,Utils:()=>Ie}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let s=/^\w[\w\d+.-]*$/,a=/^\//,l=/^\/\//;function o(S,v){if(!S.scheme&&v)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${S.authority}", path: "${S.path}", query: "${S.query}", fragment: "${S.fragment}"}`);if(S.scheme&&!s.test(S.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(S.path){if(S.authority){if(!a.test(S.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(l.test(S.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let d="",h="/",u=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class w{static isUri(v){return v instanceof w||!!v&&typeof v.authority=="string"&&typeof v.fragment=="string"&&typeof v.path=="string"&&typeof v.query=="string"&&typeof v.scheme=="string"&&typeof v.fsPath=="string"&&typeof v.with=="function"&&typeof v.toString=="function"}scheme;authority;path;query;fragment;constructor(v,F,C,N,D,M=!1){typeof v=="object"?(this.scheme=v.scheme||d,this.authority=v.authority||d,this.path=v.path||d,this.query=v.query||d,this.fragment=v.fragment||d):(this.scheme=function(oe,Z){return oe||Z?oe:"file"}(v,M),this.authority=F||d,this.path=function(oe,Z){switch(oe){case"https":case"http":case"file":Z?Z[0]!==h&&(Z=h+Z):Z=h}return Z}(this.scheme,C||d),this.query=N||d,this.fragment=D||d,o(this,M))}get fsPath(){return P(this,!1)}with(v){if(!v)return this;let{scheme:F,authority:C,path:N,query:D,fragment:M}=v;return F===void 0?F=this.scheme:F===null&&(F=d),C===void 0?C=this.authority:C===null&&(C=d),N===void 0?N=this.path:N===null&&(N=d),D===void 0?D=this.query:D===null&&(D=d),M===void 0?M=this.fragment:M===null&&(M=d),F===this.scheme&&C===this.authority&&N===this.path&&D===this.query&&M===this.fragment?this:new y(F,C,N,D,M)}static parse(v,F=!1){let C=u.exec(v);return C?new y(C[2]||d,Y(C[4]||d),Y(C[5]||d),Y(C[7]||d),Y(C[9]||d),F):new y(d,d,d,d,d)}static file(v){let F=d;if(i&&(v=v.replace(/\\/g,h)),v[0]===h&&v[1]===h){let C=v.indexOf(h,2);C===-1?(F=v.substring(2),v=h):(F=v.substring(2,C),v=v.substring(C)||h)}return new y("file",F,v,d,d)}static from(v){let F=new y(v.scheme,v.authority,v.path,v.query,v.fragment);return o(F,!0),F}toString(v=!1){return T(this,v)}toJSON(){return this}static revive(v){if(v){if(v instanceof w)return v;{let F=new y(v);return F._formatted=v.external,F._fsPath=v._sep===b?v.fsPath:null,F}}return v}}let b=i?1:void 0;class y extends w{_formatted=null;_fsPath=null;get fsPath(){return this._fsPath||(this._fsPath=P(this,!1)),this._fsPath}toString(v=!1){return v?T(this,!0):(this._formatted||(this._formatted=T(this,!1)),this._formatted)}toJSON(){let v={$mid:1};return this._fsPath&&(v.fsPath=this._fsPath,v._sep=b),this._formatted&&(v.external=this._formatted),this.path&&(v.path=this.path),this.scheme&&(v.scheme=this.scheme),this.authority&&(v.authority=this.authority),this.query&&(v.query=this.query),this.fragment&&(v.fragment=this.fragment),v}}let E={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function A(S,v,F){let C,N=-1;for(let D=0;D=97&&M<=122||M>=65&&M<=90||M>=48&&M<=57||M===45||M===46||M===95||M===126||v&&M===47||F&&M===91||F&&M===93||F&&M===58)N!==-1&&(C+=encodeURIComponent(S.substring(N,D)),N=-1),C!==void 0&&(C+=S.charAt(D));else{C===void 0&&(C=S.substr(0,D));let oe=E[M];oe!==void 0?(N!==-1&&(C+=encodeURIComponent(S.substring(N,D)),N=-1),C+=oe):N===-1&&(N=D)}}return N!==-1&&(C+=encodeURIComponent(S.substring(N))),C!==void 0?C:S}function I(S){let v;for(let F=0;F1&&S.scheme==="file"?`//${S.authority}${S.path}`:S.path.charCodeAt(0)===47&&(S.path.charCodeAt(1)>=65&&S.path.charCodeAt(1)<=90||S.path.charCodeAt(1)>=97&&S.path.charCodeAt(1)<=122)&&S.path.charCodeAt(2)===58?v?S.path.substr(1):S.path[1].toLowerCase()+S.path.substr(2):S.path,i&&(F=F.replace(/\//g,"\\")),F}function T(S,v){let F=v?I:A,C="",{scheme:N,authority:D,path:M,query:oe,fragment:Z}=S;if(N&&(C+=N,C+=":"),(D||N==="file")&&(C+=h,C+=h),D){let $=D.indexOf("@");if($!==-1){let Ue=D.substr(0,$);D=D.substr($+1),$=Ue.lastIndexOf(":"),$===-1?C+=F(Ue,!1,!1):(C+=F(Ue.substr(0,$),!1,!1),C+=":",C+=F(Ue.substr($+1),!1,!0)),C+="@"}D=D.toLowerCase(),$=D.lastIndexOf(":"),$===-1?C+=F(D,!1,!0):(C+=F(D.substr(0,$),!1,!0),C+=D.substr($))}if(M){if(M.length>=3&&M.charCodeAt(0)===47&&M.charCodeAt(2)===58){let $=M.charCodeAt(1);$>=65&&$<=90&&(M=`/${String.fromCharCode($+32)}:${M.substr(3)}`)}else if(M.length>=2&&M.charCodeAt(1)===58){let $=M.charCodeAt(0);$>=65&&$<=90&&(M=`${String.fromCharCode($+32)}:${M.substr(2)}`)}C+=F(M,!0,!1)}return oe&&(C+="?",C+=F(oe,!1,!1)),Z&&(C+="#",C+=v?Z:A(Z,!1,!1)),C}function j(S){try{return decodeURIComponent(S)}catch{return S.length>3?S.substr(0,3)+j(S.substr(3)):S}}let X=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function Y(S){return S.match(X)?S.replace(X,v=>j(v)):S}var $e=t(470);let K=$e.posix||$e,_e="/";var Ie;(function(S){S.joinPath=function(v,...F){return v.with({path:K.join(v.path,...F)})},S.resolvePath=function(v,...F){let C=v.path,N=!1;C[0]!==_e&&(C=_e+C,N=!0);let D=K.resolve(C,...F);return N&&D[0]===_e&&!v.authority&&(D=D.substring(1)),v.with({path:D})},S.dirname=function(v){if(v.path.length===0||v.path===_e)return v;let F=K.dirname(v.path);return F.length===1&&F.charCodeAt(0)===46&&(F=""),v.with({path:F})},S.basename=function(v){return K.basename(v.path)},S.extname=function(v){return K.extname(v.path)}})(Ie||(Ie={}))})(),Js=r})();var{URI:Zt,Utils:Fe}=Js;function ar(n){return Fe.dirname(Zt.parse(n)).toString(!0)}function Je(n,...e){return Fe.joinPath(Zt.parse(n),...e).toString(!0)}var cr=class{constructor(e){this.readDirectory=e,this.literalCompletions=[],this.importCompletions=[]}onCssURILiteralValue(e){this.literalCompletions.push(e)}onCssImportPath(e){this.importCompletions.push(e)}async computeCompletions(e,t){let r={items:[],isIncomplete:!1};for(let i of this.literalCompletions){let s=i.uriValue,a=vi(s);if(a==="."||a==="..")r.isIncomplete=!0;else{let l=await this.providePathSuggestions(s,i.position,i.range,e,t);for(let o of l)r.items.push(o)}}for(let i of this.importCompletions){let s=i.pathValue,a=vi(s);if(a==="."||a==="..")r.isIncomplete=!0;else{let l=await this.providePathSuggestions(s,i.position,i.range,e,t);e.languageId==="scss"&&l.forEach(o=>{V(o.label,"_")&&fn(o.label,".scss")&&(o.textEdit?o.textEdit.newText=o.label.slice(1,-5):o.label=o.label.slice(1,-5))});for(let o of l)r.items.push(o)}}return r}async providePathSuggestions(e,t,r,i,s){let a=vi(e),l=V(e,"'")||V(e,'"'),o=l?a.slice(0,t.character-(r.start.character+1)):a.slice(0,t.character-r.start.character),d=i.uri,h=l?ba(r,1,-1):r,u=fa(o,a,h),w=o.substring(0,o.lastIndexOf("/")+1),b=s.resolveReference(w||".",d);if(b)try{let y=[],E=await this.readDirectory(b);for(let[A,I]of E)A.charCodeAt(0)!==ua&&(I===st.Directory||Je(b,A)!==d)&&y.push(ga(A,I===st.Directory,u));return y}catch{}return[]}},ua=46;function vi(n){return V(n,"'")||V(n,'"')?n.slice(1,-1):n}function fa(n,e,t){let r,i=n.lastIndexOf("/");if(i===-1)r=t;else{let s=e.slice(i+1),a=dr(t.end,-s.length),l=s.indexOf(" "),o;l!==-1?o=dr(a,l):o=t.end,r=R.create(a,o)}return r}function ga(n,e,t){return e?(n=n+"/",{label:lr(n),kind:k.Folder,textEdit:_.replace(t,lr(n)),command:{title:"Suggest",command:"editor.action.triggerSuggest"}}):{label:lr(n),kind:k.File,textEdit:_.replace(t,lr(n))}}function lr(n){return n.replace(/(\s|\(|\)|,|"|')/g,"\\$1")}function dr(n,e){return H.create(n.line,n.character+e)}function ba(n,e,t){let r=dr(n.start,e),i=dr(n.end,t);return R.create(r,i)}var Ne=te.Snippet,Xs={title:"Suggest",command:"editor.action.triggerSuggest"},Ee;(function(n){n.Enums=" ",n.Normal="d",n.VendorPrefixed="x",n.Term="y",n.Variable="z"})(Ee||(Ee={}));var Xe=class{constructor(e=null,t,r){this.variablePrefix=e,this.lsOptions=t,this.cssDataManager=r,this.completionParticipants=[]}configure(e){this.defaultSettings=e}getSymbolContext(){return this.symbolContext||(this.symbolContext=new ot(this.styleSheet)),this.symbolContext}setCompletionParticipants(e){this.completionParticipants=e||[]}async doComplete2(e,t,r,i,s=this.defaultSettings){if(!this.lsOptions.fileSystemProvider||!this.lsOptions.fileSystemProvider.readDirectory)return this.doComplete(e,t,r,s);let a=new cr(this.lsOptions.fileSystemProvider.readDirectory),l=this.completionParticipants;this.completionParticipants=[a].concat(l);let o=this.doComplete(e,t,r,s);try{let d=await a.computeCompletions(e,i);return{isIncomplete:o.isIncomplete||d.isIncomplete,itemDefaults:o.itemDefaults,items:d.items.concat(o.items)}}finally{this.completionParticipants=l}}doComplete(e,t,r,i){this.offset=e.offsetAt(t),this.position=t,this.currentWord=va(e,this.offset),this.defaultReplaceRange=R.create(H.create(this.position.line,this.position.character-this.currentWord.length),this.position),this.textDocument=e,this.styleSheet=r,this.documentSettings=i;try{let s={isIncomplete:!1,itemDefaults:{editRange:{start:{line:t.line,character:t.character-this.currentWord.length},end:t}},items:[]};this.nodePath=vt(this.styleSheet,this.offset);for(let a=this.nodePath.length-1;a>=0;a--){let l=this.nodePath[a];if(l instanceof Ve)this.getCompletionsForDeclarationProperty(l.getParent(),s);else if(l instanceof gt)l.parent instanceof rt?this.getVariableProposals(null,s):this.getCompletionsForExpression(l,s);else if(l instanceof he){let o=l.findAParent(m.ExtendsReference,m.Ruleset);if(o)if(o.type===m.ExtendsReference)this.getCompletionsForExtendsReference(o,l,s);else{let d=o;this.getCompletionsForSelector(d,d&&d.isNested(),s)}}else if(l instanceof le)this.getCompletionsForFunctionArgument(l,l.getParent(),s);else if(l instanceof Ze)this.getCompletionsForDeclarations(l,s);else if(l instanceof xe)this.getCompletionsForVariableDeclaration(l,s);else if(l instanceof ae)this.getCompletionsForRuleSet(l,s);else if(l instanceof rt)this.getCompletionsForInterpolation(l,s);else if(l instanceof De)this.getCompletionsForFunctionDeclaration(l,s);else if(l instanceof ze)this.getCompletionsForMixinReference(l,s);else if(l instanceof me)this.getCompletionsForFunctionArgument(null,l,s);else if(l instanceof et)this.getCompletionsForSupports(l,s);else if(l instanceof Re)this.getCompletionsForSupportsCondition(l,s);else if(l instanceof Se)this.getCompletionsForExtendsReference(l,null,s);else if(l.type===m.URILiteral)this.getCompletionForUriLiteralValue(l,s);else if(l.parent===null)this.getCompletionForTopLevel(s);else if(l.type===m.StringLiteral&&this.isImportPathParent(l.parent.type))this.getCompletionForImportPath(l,s);else continue;if(s.items.length>0||this.offset>l.offset)return this.finalize(s)}return this.getCompletionsForStylesheet(s),s.items.length===0&&this.variablePrefix&&this.currentWord.indexOf(this.variablePrefix)===0&&this.getVariableProposals(null,s),this.finalize(s)}finally{this.position=null,this.currentWord=null,this.textDocument=null,this.styleSheet=null,this.symbolContext=null,this.defaultReplaceRange=null,this.nodePath=null}}isImportPathParent(e){return e===m.Import}finalize(e){return e}findInNodePath(...e){for(let t=this.nodePath.length-1;t>=0;t--){let r=this.nodePath[t];if(e.indexOf(r.type)!==-1)return r}return null}getCompletionsForDeclarationProperty(e,t){return this.getPropertyProposals(e,t)}getPropertyProposals(e,t){let r=this.isTriggerPropertyValueCompletionEnabled,i=this.isCompletePropertyWithSemicolonEnabled;return this.cssDataManager.getProperties().forEach(a=>{let l,o,d=!1;e?(l=this.getCompletionRange(e.getProperty()),o=a.name,ie(e.colonPosition)||(o+=": ",d=!0)):(l=this.getCompletionRange(null),o=a.name+": ",d=!0),!e&&i&&(o+="$0;"),e&&!e.semicolonPosition&&i&&this.offset>=this.textDocument.offsetAt(l.end)&&(o+="$0;");let h={label:a.name,documentation:Ce(a,this.doesSupportMarkdown()),tags:en(a)?[Te.Deprecated]:[],textEdit:_.replace(l,o),insertTextFormat:te.Snippet,kind:k.Property};a.restrictions||(d=!1),r&&d&&(h.command=Xs);let w=(255-(typeof a.relevance=="number"?Math.min(Math.max(a.relevance,0),99):50)).toString(16),b=V(a.name,"-")?Ee.VendorPrefixed:Ee.Normal;h.sortText=b+"_"+w,t.items.push(h)}),this.completionParticipants.forEach(a=>{a.onCssProperty&&a.onCssProperty({propertyName:this.currentWord,range:this.defaultReplaceRange})}),t}get isTriggerPropertyValueCompletionEnabled(){return this.documentSettings?.triggerPropertyValueCompletion??!0}get isCompletePropertyWithSemicolonEnabled(){return this.documentSettings?.completePropertyWithSemicolon??!0}getCompletionsForDeclarationValue(e,t){let r=e.getFullPropertyName(),i=this.cssDataManager.getProperty(r),s=e.getValue()||null;for(;s&&s.hasChildren();)s=s.findChildAtOffset(this.offset,!1);if(this.completionParticipants.forEach(a=>{a.onCssPropertyValue&&a.onCssPropertyValue({propertyName:r,propertyValue:this.currentWord,range:this.getCompletionRange(s)})}),i){if(i.restrictions)for(let a of i.restrictions)switch(a){case"color":this.getColorProposals(i,s,t);break;case"position":this.getPositionProposals(i,s,t);break;case"repeat":this.getRepeatStyleProposals(i,s,t);break;case"line-style":this.getLineStyleProposals(i,s,t);break;case"line-width":this.getLineWidthProposals(i,s,t);break;case"geometry-box":this.getGeometryBoxProposals(i,s,t);break;case"box":this.getBoxProposals(i,s,t);break;case"image":this.getImageProposals(i,s,t);break;case"timing-function":this.getTimingFunctionProposals(i,s,t);break;case"shape":this.getBasicShapeProposals(i,s,t);break}this.getValueEnumProposals(i,s,t),this.getCSSWideKeywordProposals(i,s,t),this.getUnitProposals(i,s,t)}else{let a=wa(this.styleSheet,e);for(let l of a.getEntries())t.items.push({label:l,textEdit:_.replace(this.getCompletionRange(s),l),kind:k.Value})}return this.getVariableProposals(s,t),this.getTermProposals(i,s,t),t}getValueEnumProposals(e,t,r){if(e.values)for(let i of e.values){let s=i.name,a;if(fn(s,")")){let d=s.lastIndexOf("(");d!==-1&&(s=s.substring(0,d+1)+"$1"+s.substring(d+1),a=Ne)}let l=Ee.Enums;V(i.name,"-")&&(l+=Ee.VendorPrefixed);let o={label:i.name,documentation:Ce(i,this.doesSupportMarkdown()),tags:en(e)?[Te.Deprecated]:[],textEdit:_.replace(this.getCompletionRange(t),s),sortText:l,kind:k.Value,insertTextFormat:a};r.items.push(o)}return r}getCSSWideKeywordProposals(e,t,r){for(let i in hi)r.items.push({label:i,documentation:hi[i],textEdit:_.replace(this.getCompletionRange(t),i),kind:k.Value});for(let i in pi){let s=Et(i);r.items.push({label:i,documentation:pi[i],textEdit:_.replace(this.getCompletionRange(t),s),kind:k.Function,insertTextFormat:Ne,command:V(i,"var")?Xs:void 0})}return r}getCompletionsForInterpolation(e,t){return this.offset>=e.offset+2&&this.getVariableProposals(null,t),t}getVariableProposals(e,t){let r=this.getSymbolContext().findSymbolsAtOffset(this.offset,z.Variable);for(let i of r){let s=V(i.name,"--")?`var(${i.name})`:i.name,a={label:i.name,documentation:i.value?zr(i.value):i.value,textEdit:_.replace(this.getCompletionRange(e),s),kind:k.Variable,sortText:Ee.Variable};if(typeof a.documentation=="string"&&ii(a.documentation)&&(a.kind=k.Color),i.node.type===m.FunctionParameter){let l=i.node.getParent();l.type===m.MixinDeclaration&&(a.detail=p("argument from '{0}'",l.getName()))}t.items.push(a)}return t}getVariableProposalsForCSSVarFunction(e){let t=new tn;this.styleSheet.acceptVisitor(new xi(t,this.offset));let r=this.getSymbolContext().findSymbolsAtOffset(this.offset,z.Variable);for(let i of r){if(V(i.name,"--")){let s={label:i.name,documentation:i.value?zr(i.value):i.value,textEdit:_.replace(this.getCompletionRange(null),i.name),kind:k.Variable};typeof s.documentation=="string"&&ii(s.documentation)&&(s.kind=k.Color),e.items.push(s)}t.remove(i.name)}for(let i of t.getEntries())if(V(i,"--")){let s={label:i,textEdit:_.replace(this.getCompletionRange(null),i),kind:k.Variable};e.items.push(s)}return e}getUnitProposals(e,t,r){let i="0";if(this.currentWord.length>0){let s=this.currentWord.match(/^-?\d[\.\d+]*/);s&&(i=s[0],r.isIncomplete=i.length===this.currentWord.length)}else this.currentWord.length===0&&(r.isIncomplete=!0);if(t&&t.parent&&t.parent.type===m.Term&&(t=t.getParent()),e.restrictions)for(let s of e.restrictions){let a=ir[s];if(a)for(let l of a){let o=i+l;r.items.push({label:o,textEdit:_.replace(this.getCompletionRange(t),o),kind:k.Unit})}}return r}getCompletionRange(e){if(e&&e.offset<=this.offset&&this.offset<=e.end){let t=e.end!==-1?this.textDocument.positionAt(e.end):this.position,r=this.textDocument.positionAt(e.offset);if(r.line===t.line)return R.create(r,t)}return this.defaultReplaceRange}getColorProposals(e,t,r){for(let s in Xt)r.items.push({label:s,documentation:Xt[s],textEdit:_.replace(this.getCompletionRange(t),s),kind:k.Color});for(let s in rr)r.items.push({label:s,documentation:rr[s],textEdit:_.replace(this.getCompletionRange(t),s),kind:k.Value});let i=new tn;this.styleSheet.acceptVisitor(new yi(i,this.offset));for(let s of i.getEntries())r.items.push({label:s,textEdit:_.replace(this.getCompletionRange(t),s),kind:k.Color});for(let s of Ws)r.items.push({label:s.label,detail:s.func,documentation:s.desc,textEdit:_.replace(this.getCompletionRange(t),s.insertText),insertTextFormat:Ne,kind:k.Function});return r}getPositionProposals(e,t,r){for(let i in oi)r.items.push({label:i,documentation:oi[i],textEdit:_.replace(this.getCompletionRange(t),i),kind:k.Value});return r}getRepeatStyleProposals(e,t,r){for(let i in ai)r.items.push({label:i,documentation:ai[i],textEdit:_.replace(this.getCompletionRange(t),i),kind:k.Value});return r}getLineStyleProposals(e,t,r){for(let i in li)r.items.push({label:i,documentation:li[i],textEdit:_.replace(this.getCompletionRange(t),i),kind:k.Value});return r}getLineWidthProposals(e,t,r){for(let i of js)r.items.push({label:i,textEdit:_.replace(this.getCompletionRange(t),i),kind:k.Value});return r}getGeometryBoxProposals(e,t,r){for(let i in di)r.items.push({label:i,documentation:di[i],textEdit:_.replace(this.getCompletionRange(t),i),kind:k.Value});return r}getBoxProposals(e,t,r){for(let i in ci)r.items.push({label:i,documentation:ci[i],textEdit:_.replace(this.getCompletionRange(t),i),kind:k.Value});return r}getImageProposals(e,t,r){for(let i in mi){let s=Et(i);r.items.push({label:i,documentation:mi[i],textEdit:_.replace(this.getCompletionRange(t),s),kind:k.Function,insertTextFormat:i!==s?Ne:void 0})}return r}getTimingFunctionProposals(e,t,r){for(let i in ui){let s=Et(i);r.items.push({label:i,documentation:ui[i],textEdit:_.replace(this.getCompletionRange(t),s),kind:k.Function,insertTextFormat:i!==s?Ne:void 0})}return r}getBasicShapeProposals(e,t,r){for(let i in fi){let s=Et(i);r.items.push({label:i,documentation:fi[i],textEdit:_.replace(this.getCompletionRange(t),s),kind:k.Function,insertTextFormat:i!==s?Ne:void 0})}return r}getCompletionsForStylesheet(e){let t=this.styleSheet.findFirstChildBeforeOffset(this.offset);return t?t instanceof ae?this.getCompletionsForRuleSet(t,e):t instanceof et?this.getCompletionsForSupports(t,e):e:this.getCompletionForTopLevel(e)}getCompletionForTopLevel(e){return this.cssDataManager.getAtDirectives().forEach(t=>{e.items.push({label:t.name,textEdit:_.replace(this.getCompletionRange(null),t.name),documentation:Ce(t,this.doesSupportMarkdown()),tags:en(t)?[Te.Deprecated]:[],kind:k.Keyword})}),this.getCompletionsForSelector(null,!1,e),e}getCompletionsForRuleSet(e,t){let r=e.getDeclarations();return r&&r.endsWith("}")&&this.offset>=r.end?this.getCompletionForTopLevel(t):!r||this.offset<=r.offset?this.getCompletionsForSelector(e,e.isNested(),t):this.getCompletionsForDeclarations(e.getDeclarations(),t)}getCompletionsForSelector(e,t,r){let i=this.findInNodePath(m.PseudoSelector,m.IdentifierSelector,m.ClassSelector,m.ElementNameSelector);if(!i&&this.hasCharacterAtPosition(this.offset-this.currentWord.length-1,":")&&(this.currentWord=":"+this.currentWord,this.hasCharacterAtPosition(this.offset-this.currentWord.length-1,":")&&(this.currentWord=":"+this.currentWord),this.defaultReplaceRange=R.create(H.create(this.position.line,this.position.character-this.currentWord.length),this.position)),this.cssDataManager.getPseudoClasses().forEach(d=>{let h=Et(d.name),u={label:d.name,textEdit:_.replace(this.getCompletionRange(i),h),documentation:Ce(d,this.doesSupportMarkdown()),tags:en(d)?[Te.Deprecated]:[],kind:k.Function,insertTextFormat:d.name!==h?Ne:void 0};V(d.name,":-")&&(u.sortText=Ee.VendorPrefixed),r.items.push(u)}),this.cssDataManager.getPseudoElements().forEach(d=>{let h=Et(d.name),u={label:d.name,textEdit:_.replace(this.getCompletionRange(i),h),documentation:Ce(d,this.doesSupportMarkdown()),tags:en(d)?[Te.Deprecated]:[],kind:k.Function,insertTextFormat:d.name!==h?Ne:void 0};V(d.name,"::-")&&(u.sortText=Ee.VendorPrefixed),r.items.push(u)}),!t){for(let d of Bs)r.items.push({label:d,textEdit:_.replace(this.getCompletionRange(i),d),kind:k.Keyword});for(let d of qs)r.items.push({label:d,textEdit:_.replace(this.getCompletionRange(i),d),kind:k.Keyword})}let l={};l[this.currentWord]=!0;let o=this.textDocument.getText();if(this.styleSheet.accept(d=>{if(d.type===m.SimpleSelector&&d.length>0){let h=o.substr(d.offset,d.length);return h.charAt(0)==="."&&!l[h]&&(l[h]=!0,r.items.push({label:h,textEdit:_.replace(this.getCompletionRange(i),h),kind:k.Keyword})),!1}return!0}),e&&e.isNested()){let d=e.getSelectors().findFirstChildBeforeOffset(this.offset);d&&e.getSelectors().getChildren().indexOf(d)===0&&this.getPropertyProposals(null,r)}return r}getCompletionsForDeclarations(e,t){if(!e||this.offset===e.offset)return t;let r=e.findFirstChildBeforeOffset(this.offset);if(!r)return this.getCompletionsForDeclarationProperty(null,t);if(r instanceof ht){let i=r;if(!ie(i.colonPosition)||this.offset<=i.colonPosition)return this.getCompletionsForDeclarationProperty(i,t);if(ie(i.semicolonPosition)&&i.semicolonPositione.colonPosition&&this.getVariableProposals(e.getValue()||null,t),t}getCompletionsForExpression(e,t){let r=e.getParent();if(r instanceof le)return this.getCompletionsForFunctionArgument(r,r.getParent(),t),t;let i=e.findParent(m.Declaration);if(!i)return this.getTermProposals(void 0,null,t),t;let s=e.findChildAtOffset(this.offset,!0);return s?s instanceof nt||s instanceof G?this.getCompletionsForDeclarationValue(i,t):t:this.getCompletionsForDeclarationValue(i,t)}getCompletionsForFunctionArgument(e,t,r){let i=t.getIdentifier();return i&&i.matches("var")&&(!t.getArguments().hasChildren()||t.getArguments().getChild(0)===e)&&this.getVariableProposalsForCSSVarFunction(r),r}getCompletionsForFunctionDeclaration(e,t){let r=e.getDeclarations();return r&&this.offset>r.offset&&this.offset{s.onCssMixinReference&&s.onCssMixinReference({mixinName:this.currentWord,range:this.getCompletionRange(i)})}),t}getTermProposals(e,t,r){let i=this.getSymbolContext().findSymbolsAtOffset(this.offset,z.Function);for(let s of i)s.node instanceof De&&r.items.push(this.makeTermProposal(s,s.node.getParameters(),t));return r}makeTermProposal(e,t,r){let i=e.node,s=t.getChildren().map(l=>l instanceof ye?l.getName():l.getText()),a=e.name+"("+s.map((l,o)=>"${"+(o+1)+":"+l+"}").join(", ")+")";return{label:e.name,detail:e.name+"("+s.join(", ")+")",textEdit:_.replace(this.getCompletionRange(r),a),insertTextFormat:Ne,kind:k.Function,sortText:Ee.Term}}getCompletionsForSupportsCondition(e,t){let r=e.findFirstChildBeforeOffset(this.offset);if(r){if(r instanceof Q)return!ie(r.colonPosition)||this.offset<=r.colonPosition?this.getCompletionsForDeclarationProperty(r,t):this.getCompletionsForDeclarationValue(r,t);if(r instanceof Re)return this.getCompletionsForSupportsCondition(r,t)}return ie(e.lParent)&&this.offset>e.lParent&&(!ie(e.rParent)||this.offset<=e.rParent)?this.getCompletionsForDeclarationProperty(null,t):t}getCompletionsForSupports(e,t){let r=e.getDeclarations();if(!r||this.offset<=r.offset){let s=e.findFirstChildBeforeOffset(this.offset);return s instanceof Re?this.getCompletionsForSupportsCondition(s,t):t}return this.getCompletionForTopLevel(t)}getCompletionsForExtendsReference(e,t,r){return r}getCompletionForUriLiteralValue(e,t){let r,i,s;if(e.hasChildren()){let a=e.getChild(0);r=a.getText(),i=this.position,s=this.getCompletionRange(a)}else{r="",i=this.position;let a=this.textDocument.positionAt(e.offset+4);s=R.create(a,a)}return this.completionParticipants.forEach(a=>{a.onCssURILiteralValue&&a.onCssURILiteralValue({uriValue:r,position:i,range:s})}),t}getCompletionForImportPath(e,t){return this.completionParticipants.forEach(r=>{r.onCssImportPath&&r.onCssImportPath({pathValue:e.getText(),position:this.position,range:this.getCompletionRange(e)})}),t}hasCharacterAtPosition(e,t){let r=this.textDocument.getText();return e>=0&&e=0&&` +\r":{[()]},*>+`.indexOf(r.charAt(t))===-1;)t--;return r.substring(t+1,e)}var rn=class n{constructor(){this.parent=null,this.children=null,this.attributes=null}findAttribute(e){if(this.attributes){for(let t of this.attributes)if(t.name===e)return t.value}return null}addChild(e){e instanceof n&&(e.parent=this),this.children||(this.children=[]),this.children.push(e)}append(e){if(this.attributes){let t=this.attributes[this.attributes.length-1];t.value=t.value+e}}prepend(e){if(this.attributes){let t=this.attributes[0];t.value=e+t.value}}findRoot(){let e=this;for(;e.parent&&!(e.parent instanceof Ye);)e=e.parent;return e}removeChild(e){if(this.children){let t=this.children.indexOf(e);if(t!==-1)return this.children.splice(t,1),!0}return!1}addAttr(e,t){this.attributes||(this.attributes=[]);for(let r of this.attributes)if(r.name===e){r.value+=" "+t;return}this.attributes.push({name:e,value:t})}clone(e=!0){let t=new n;if(this.attributes){t.attributes=[];for(let r of this.attributes)t.addAttr(r.name,r.value)}if(e&&this.children){t.children=[];for(let r=0;r"),this.writeLine(t,i.join(""))}},Oe;(function(n){function e(r,i){return i+t(r)+i}n.ensure=e;function t(r){let i=r.match(/^['"](.*)["']$/);return i?i[1]:r}n.remove=t})(Oe||(Oe={}));var nn=class{constructor(){this.id=0,this.attr=0,this.tag=0}};function Ys(n,e){let t=new rn;for(let r of n.getChildren())switch(r.type){case m.SelectorCombinator:if(e){let l=r.getText().split("&");if(l.length===1){t.addAttr("name",l[0]);break}t=e.cloneWithParent(),l[0]&&t.findRoot().prepend(l[0]);for(let o=1;o1){let d=e.cloneWithParent();t.addChild(d.findRoot()),t=d}t.append(l[o])}}break;case m.SelectorPlaceholder:if(r.matches("@at-root"))return t;case m.ElementNameSelector:let i=r.getText();t.addAttr("name",i==="*"?"element":pe(i));break;case m.ClassSelector:t.addAttr("class",pe(r.getText().substring(1)));break;case m.IdentifierSelector:t.addAttr("id",pe(r.getText().substring(1)));break;case m.MixinDeclaration:t.addAttr("class",r.getName());break;case m.PseudoSelector:t.addAttr(pe(r.getText()),"");break;case m.AttributeSelector:let s=r,a=s.getIdentifier();if(a){let l=s.getValue(),o=s.getOperator(),d;if(l&&o)switch(pe(o.getText())){case"|=":d=`${Oe.remove(pe(l.getText()))}-\u2026`;break;case"^=":d=`${Oe.remove(pe(l.getText()))}\u2026`;break;case"$=":d=`\u2026${Oe.remove(pe(l.getText()))}`;break;case"~=":d=` \u2026 ${Oe.remove(pe(l.getText()))} \u2026 `;break;case"*=":d=`\u2026${Oe.remove(pe(l.getText()))}\u2026`;break;default:d=Oe.remove(pe(l.getText()));break}t.addAttr(pe(a.getText()),d)}break}return t}function pe(n){let e=new ce;e.setSource(n);let t=e.scanUnquotedString();return t?t.text:n}var pr=class{constructor(e){this.cssDataManager=e}selectorToMarkedString(e,t){let r=xa(e);if(r){let i=new hr('"').print(r,t);return i.push(this.selectorToSpecificityMarkedString(e)),i}else return[]}simpleSelectorToMarkedString(e){let t=Ys(e),r=new hr('"').print(t);return r.push(this.selectorToSpecificityMarkedString(e)),r}isPseudoElementIdentifier(e){let t=e.match(/^::?([\w-]+)/);return t?!!this.cssDataManager.getPseudoElement("::"+t[1]):!1}selectorToSpecificityMarkedString(e){let t=s=>{let a=new nn,l=new nn;for(let o of s)for(let d of o.getChildren()){let h=r(d);if(h.id>l.id){l=h;continue}else if(h.idl.attr){l=h;continue}else if(h.attrl.tag){l=h;continue}}return a.id+=l.id,a.attr+=l.attr,a.tag+=l.tag,a},r=s=>{let a=new nn;e:for(let l of s.getChildren()){switch(l.type){case m.IdentifierSelector:a.id++;break;case m.ClassSelector:case m.AttributeSelector:a.attr++;break;case m.ElementNameSelector:if(l.matches("*"))break;a.tag++;break;case m.PseudoSelector:let o=l.getText(),d=l.getChildren();if(this.isPseudoElementIdentifier(o)){if(o.match(/^::slotted/i)&&d.length>0){a.tag++;let h=t(d);a.id+=h.id,a.attr+=h.attr,a.tag+=h.tag;continue e}a.tag++;continue e}if(o.match(/^:where/i))continue e;if(o.match(/^:(?:not|has|is)/i)&&d.length>0){let h=t(d);a.id+=h.id,a.attr+=h.attr,a.tag+=h.tag;continue e}if(o.match(/^:(?:host|host-context)/i)&&d.length>0){a.attr++;let h=t(d);a.id+=h.id,a.attr+=h.attr,a.tag+=h.tag;continue e}if(o.match(/^:(?:nth-child|nth-last-child)/i)&&d.length>0){if(a.attr++,d.length===3&&d[1].type===23){let y=t(d[2].getChildren());a.id+=y.id,a.attr+=y.attr,a.tag+=y.tag;continue e}let h=new ke,u=d[1].getText();h.scanner.setSource(u);let w=h.scanner.scan(),b=h.scanner.scan();if(w.text==="n"||w.text==="-n"&&b.text==="of"){let y=[],A=u.slice(b.offset+2).split(",");for(let P of A){let T=h.internalParse(P,h._parseSelector);T&&y.push(T)}let I=t(y);a.id+=I.id,a.attr+=I.attr,a.tag+=I.tag;continue e}continue e}a.attr++;continue e}if(l.getChildren().length>0){let o=r(l);a.id+=o.id,a.attr+=o.attr,a.tag+=o.tag}}return a},i=r(e);return`[${p("Selector Specificity")}](https://developer.mozilla.org/docs/Web/CSS/Specificity): (${i.id}, ${i.attr}, ${i.tag})`}},Si=class{constructor(e){this.prev=null,this.element=e}processSelector(e){let t=null;if(!(this.element instanceof Ye)&&e.getChildren().some(r=>r.hasChildren()&&r.getChild(0).type===m.SelectorCombinator)){let r=this.element.findRoot();r.parent instanceof Ye&&(t=this.element,this.element=r.parent,this.element.removeChild(r),this.prev=null)}for(let r of e.getChildren()){if(r instanceof he){if(this.prev instanceof he){let a=new sn("\u2026");this.element.addChild(a),this.element=a}else this.prev&&(this.prev.matches("+")||this.prev.matches("~"))&&this.element.parent&&(this.element=this.element.parent);this.prev&&this.prev.matches("~")&&this.element.addChild(new sn("\u22EE"));let i=Ys(r,t),s=i.findRoot();this.element.addChild(s),this.element=i}(r instanceof he||r.type===m.SelectorCombinatorParent||r.type===m.SelectorCombinatorShadowPiercingDescendant||r.type===m.SelectorCombinatorSibling||r.type===m.SelectorCombinatorAllSiblings)&&(this.prev=r)}}};function ya(n){switch(n.type){case m.MixinDeclaration:case m.Stylesheet:return!0}return!1}function xa(n){if(n.matches("@at-root"))return null;let e=new Ye,t=[],r=n.getParent();if(r instanceof ae){let s=r.getParent();for(;s&&!ya(s);){if(s instanceof ae){if(s.getSelectors().matches("@at-root"))break;t.push(s)}s=s.getParent()}}let i=new Si(e);for(let s=t.length-1;s>=0;s--){let a=t[s].getSelectors().getChild(0);a&&i.processSelector(a)}return i.processSelector(n),e}var _t=class{constructor(e,t){this.clientCapabilities=e,this.cssDataManager=t,this.selectorPrinting=new pr(t)}configure(e){this.defaultSettings=e}doHover(e,t,r,i=this.defaultSettings){function s(h){return R.create(e.positionAt(h.offset),e.positionAt(h.end))}let a=e.offsetAt(t),l=vt(r,a),o=null,d;for(let h=0;htypeof t=="string"?t:t.value):e.value}doesSupportMarkdown(){if(!ie(this.supportsMarkdown)){if(!ie(this.clientCapabilities))return this.supportsMarkdown=!0,this.supportsMarkdown;let e=this.clientCapabilities.textDocument&&this.clientCapabilities.textDocument.hover;this.supportsMarkdown=e&&e.contentFormat&&Array.isArray(e.contentFormat)&&e.contentFormat.indexOf(se.Markdown)!==-1}return this.supportsMarkdown}};var Qs=/^\w+:\/\//,Zs=/^data:/,lt=class{constructor(e,t){this.fileSystemProvider=e,this.resolveModuleReferences=t}configure(e){this.defaultSettings=e}findDefinition(e,t,r){let i=new ot(r),s=e.offsetAt(t),a=Hn(r,s);if(!a)return null;let l=i.findSymbolFromNode(a);return l?{uri:e.uri,range:Pe(l.node,e)}:null}findReferences(e,t,r){return this.findDocumentHighlights(e,t,r).map(s=>({uri:e.uri,range:s.range}))}getHighlightNode(e,t,r){let i=e.offsetAt(t),s=Hn(r,i);if(!(!s||s.type===m.Stylesheet||s.type===m.Declarations))return s.type===m.Identifier&&s.parent&&s.parent.type===m.ClassSelector&&(s=s.parent),s}findDocumentHighlights(e,t,r){let i=[],s=this.getHighlightNode(e,t,r);if(!s)return i;let a=new ot(r),l=a.findSymbolFromNode(s),o=s.getText();return r.accept(d=>{if(l){if(a.matchesSymbol(d,l))return i.push({kind:to(d),range:Pe(d,e)}),!1}else s&&s.type===d.type&&d.matches(o)&&i.push({kind:to(d),range:Pe(d,e)});return!0}),i}isRawStringDocumentLinkNode(e){return e.type===m.Import}findDocumentLinks(e,t,r){let i=this.findUnresolvedLinks(e,t),s=[];for(let a of i){let l=a.link,o=l.target;if(!(!o||Zs.test(o)))if(Qs.test(o))s.push(l);else{let d=r.resolveReference(o,e.uri);d&&(l.target=d),s.push(l)}}return s}async findDocumentLinks2(e,t,r){let i=this.findUnresolvedLinks(e,t),s=[];for(let a of i){let l=a.link,o=l.target;if(!(!o||Zs.test(o)))if(Qs.test(o))s.push(l);else{let d=await this.resolveReference(o,e.uri,r,a.isRawLink);d!==void 0&&(l.target=d,s.push(l))}}return s}findUnresolvedLinks(e,t){let r=[],i=s=>{let a=s.getText(),l=Pe(s,e);if(l.start.line===l.end.line&&l.start.character===l.end.character)return;(V(a,"'")||V(a,'"'))&&(a=a.slice(1,-1));let o=s.parent?this.isRawStringDocumentLinkNode(s.parent):!1;r.push({link:{target:a,range:l},isRawLink:o})};return t.accept(s=>{if(s.type===m.URILiteral){let a=s.getChild(0);return a&&i(a),!1}if(s.parent&&this.isRawStringDocumentLinkNode(s.parent)){let a=s.getText();return(V(a,"'")||V(a,'"'))&&i(s),!1}return!0}),r}findSymbolInformations(e,t){let r=[],i=(s,a,l)=>{let o=l instanceof x?Pe(l,e):l,d={name:s||p(""),kind:a,location:it.create(e.uri,o)};r.push(d)};return this.collectDocumentSymbols(e,t,i),r}findDocumentSymbols(e,t){let r=[],i=[],s=(a,l,o,d,h)=>{let u=o instanceof x?Pe(o,e):o,w=d instanceof x?Pe(d,e):d;(!w||!eo(u,w))&&(w=R.create(u.start,u.start));let b={name:a||p(""),kind:l,range:u,selectionRange:w},y=i.pop();for(;y&&!eo(y[1],u);)y=i.pop();if(y){let E=y[0];E.children||(E.children=[]),E.children.push(b),i.push(y)}else r.push(b);h&&i.push([b,Pe(h,e)])};return this.collectDocumentSymbols(e,t,s),r}collectDocumentSymbols(e,t,r){t.accept(i=>{if(i instanceof ae){for(let s of i.getSelectors().getChildren())if(s instanceof de){let a=R.create(e.positionAt(s.offset),e.positionAt(i.end));r(s.getText(),ge.Class,a,s,i.getDeclarations())}}else if(i instanceof xe)r(i.getName(),ge.Variable,i,i.getVariable(),void 0);else if(i instanceof ue)r(i.getName(),ge.Method,i,i.getIdentifier(),i.getDeclarations());else if(i instanceof De)r(i.getName(),ge.Function,i,i.getIdentifier(),i.getDeclarations());else if(i instanceof mt){let s=p("@keyframes {0}",i.getName());r(s,ge.Class,i,i.getIdentifier(),i.getDeclarations())}else if(i instanceof pt){let s=p("@font-face");r(s,ge.Class,i,void 0,i.getDeclarations())}else if(i instanceof Be){let s=i.getChild(0);if(s instanceof ut){let a="@media "+s.getText();r(a,ge.Module,i,s,i.getDeclarations())}}return!0})}findDocumentColors(e,t){let r=[];return t.accept(i=>{let s=Sa(i,e);return s&&r.push(s),!0}),r}getColorPresentations(e,t,r,i){let s=[],a=Math.round(r.red*255),l=Math.round(r.green*255),o=Math.round(r.blue*255),d;r.alpha===1?d=`rgb(${a}, ${l}, ${o})`:d=`rgba(${a}, ${l}, ${o}, ${r.alpha})`,s.push({label:d,textEdit:_.replace(i,d)}),r.alpha===1?d=`#${at(a)}${at(l)}${at(o)}`:d=`#${at(a)}${at(l)}${at(o)}${at(Math.round(r.alpha*255))}`,s.push({label:d,textEdit:_.replace(i,d)});let h=si(r);h.a===1?d=`hsl(${h.h}, ${Math.round(h.s*100)}%, ${Math.round(h.l*100)}%)`:d=`hsla(${h.h}, ${Math.round(h.s*100)}%, ${Math.round(h.l*100)}%, ${h.a})`,s.push({label:d,textEdit:_.replace(i,d)});let u=Us(r);return u.a===1?d=`hwb(${u.h} ${Math.round(u.w*100)}% ${Math.round(u.b*100)}%)`:d=`hwb(${u.h} ${Math.round(u.w*100)}% ${Math.round(u.b*100)}% / ${u.a})`,s.push({label:d,textEdit:_.replace(i,d)}),s}prepareRename(e,t,r){let i=this.getHighlightNode(e,t,r);if(i)return R.create(e.positionAt(i.offset),e.positionAt(i.end))}doRename(e,t,r,i){let a=this.findDocumentHighlights(e,t,i).map(l=>_.replace(l.range,r));return{changes:{[e.uri]:a}}}async resolveModuleReference(e,t,r){if(V(t,"file://")){let i=Ca(e);if(i&&i!=="."&&i!==".."){let s=r.resolveReference("/",t),a=ar(t),l=await this.resolvePathToModule(i,a,s);if(l){let o=e.substring(i.length+1);return Je(l,o)}}}}async mapReference(e,t){return e}async resolveReference(e,t,r,i=!1,s=this.defaultSettings){if(e[0]==="~"&&e[1]!=="/"&&this.fileSystemProvider)return e=e.substring(1),this.mapReference(await this.resolveModuleReference(e,t,r),i);let a=await this.mapReference(r.resolveReference(e,t),i);if(this.resolveModuleReferences){if(a&&await this.fileExists(a))return a;let l=await this.mapReference(await this.resolveModuleReference(e,t,r),i);if(l)return l}if(a&&!await this.fileExists(a)){let l=r.resolveReference("/",t);if(s&&l){if(e in s)return this.mapReference(Je(l,s[e]),i);let o=e.indexOf("/"),d=`${e.substring(0,o)}/`;if(d in s){let h=s[d].slice(0,-1),u=Je(l,h);return this.mapReference(u=Je(u,e.substring(d.length-1)),i)}}}return a}async resolvePathToModule(e,t,r){let i=Je(t,"node_modules",e,"package.json");if(await this.fileExists(i))return ar(i);if(r&&t.startsWith(r)&&t.length!==r.length)return this.resolvePathToModule(e,ar(t),r)}async fileExists(e){if(!this.fileSystemProvider)return!1;try{let t=await this.fileSystemProvider.stat(e);return!(t.type===st.Unknown&&t.size===-1)}catch{return!1}}};function Sa(n,e){let t=Vs(n);if(t){let r=Pe(n,e);return{color:t,range:r}}return null}function Pe(n,e){return R.create(e.positionAt(n.offset),e.positionAt(n.end))}function eo(n,e){let t=e.start.line,r=e.end.line,i=n.start.line,s=n.end.line;return!(ts||r>s||t===i&&e.start.charactern.end.character)}function to(n){if(n.type===m.Selector)return Ge.Write;if(n instanceof G&&n.parent&&n.parent instanceof Ve&&n.isCustomProperty)return Ge.Write;if(n.parent)switch(n.parent.type){case m.FunctionDeclaration:case m.MixinDeclaration:case m.Keyframe:case m.VariableDeclaration:case m.FunctionParameter:return Ge.Write}return Ge.Read}function at(n){let e=n.toString(16);return e.length!==2?"0"+e:e}function Ca(n){let e=n.indexOf("/");if(e===-1)return"";if(n[0]==="@"){let t=n.indexOf("/",e+1);return t===-1?n:n.substring(0,t)}return n.substring(0,e)}var It=ee.Warning,no=ee.Error,be=ee.Ignore,q=class{constructor(e,t,r){this.id=e,this.message=t,this.defaultValue=r}},Ci=class{constructor(e,t,r){this.id=e,this.message=t,this.defaultValue=r}},W={AllVendorPrefixes:new q("compatibleVendorPrefixes",p("When using a vendor-specific prefix make sure to also include all other vendor-specific properties"),be),IncludeStandardPropertyWhenUsingVendorPrefix:new q("vendorPrefix",p("When using a vendor-specific prefix also include the standard property"),It),DuplicateDeclarations:new q("duplicateProperties",p("Do not use duplicate style definitions"),be),EmptyRuleSet:new q("emptyRules",p("Do not use empty rulesets"),It),ImportStatemement:new q("importStatement",p("Import statements do not load in parallel"),be),BewareOfBoxModelSize:new q("boxModel",p("Do not use width or height when using padding or border"),be),UniversalSelector:new q("universalSelector",p("The universal selector (*) is known to be slow"),be),ZeroWithUnit:new q("zeroUnits",p("No unit for zero needed"),be),RequiredPropertiesForFontFace:new q("fontFaceProperties",p("@font-face rule must define 'src' and 'font-family' properties"),It),HexColorLength:new q("hexColorLength",p("Hex colors must consist of three, four, six or eight hex numbers"),no),ArgsInColorFunction:new q("argumentsInColorFunction",p("Invalid number of parameters"),no),UnknownProperty:new q("unknownProperties",p("Unknown property."),It),UnknownAtRules:new q("unknownAtRules",p("Unknown at-rule."),It),IEStarHack:new q("ieHack",p("IE hacks are only necessary when supporting IE7 and older"),be),UnknownVendorSpecificProperty:new q("unknownVendorSpecificProperties",p("Unknown vendor specific property."),be),PropertyIgnoredDueToDisplay:new q("propertyIgnoredDueToDisplay",p("Property is ignored due to the display."),It),AvoidImportant:new q("important",p("Avoid using !important. It is an indication that the specificity of the entire CSS has gotten out of control and needs to be refactored."),be),AvoidFloat:new q("float",p("Avoid using 'float'. Floats lead to fragile CSS that is easy to break if one aspect of the layout changes."),be),AvoidIdSelector:new q("idSelector",p("Selectors should not contain IDs because these rules are too tightly coupled with the HTML."),be)},ro={ValidProperties:new Ci("validProperties",p("A list of properties that are not validated against the `unknownProperties` rule."),[])},mr=class{constructor(e={}){this.conf=e}getRule(e){if(this.conf.hasOwnProperty(e.id)){let t=ka(this.conf[e.id]);if(t)return t}return e.defaultValue}getSetting(e){return this.conf[e.id]}};function ka(n){switch(n){case"ignore":return ee.Ignore;case"warning":return ee.Warning;case"error":return ee.Error}return null}var Dt=class{constructor(e){this.cssDataManager=e}doCodeActions(e,t,r,i){return this.doCodeActions2(e,t,r,i).map(s=>{let a=s.edit&&s.edit.documentChanges&&s.edit.documentChanges[0];return Me.create(s.title,"_css.applyCodeAction",e.uri,e.version,a&&a.edits)})}doCodeActions2(e,t,r,i){let s=[];if(r.diagnostics)for(let a of r.diagnostics)this.appendFixesForMarker(e,i,a,s);return s}getFixesForUnknownProperty(e,t,r,i){let s=t.getName(),a=[];this.cssDataManager.getProperties().forEach(o=>{let d=Hi(s,o.name);d>=s.length/2&&a.push({property:o.name,score:d})}),a.sort((o,d)=>d.score-o.score||o.property.localeCompare(d.property));let l=3;for(let o of a){let d=o.property,h=p("Rename to '{0}'",d),u=_.replace(r.range,d),w=qt.create(e.uri,e.version),b={documentChanges:[St.create(w,[u])]},y=Ht.create(h,b,Gt.QuickFix);if(y.diagnostics=[r],i.push(y),--l<=0)return}}appendFixesForMarker(e,t,r,i){if(r.code!==W.UnknownProperty.id)return;let s=e.offsetAt(r.range.start),a=e.offsetAt(r.range.end),l=vt(t,s);for(let o=l.length-1;o>=0;o--){let d=l[o];if(d instanceof Q){let h=d.getProperty();if(h&&h.offset===s&&h.end===a){this.getFixesForUnknownProperty(e,h,r,i);return}}}}};var ur=class{constructor(e){this.fullPropertyName=e.getFullPropertyName().toLowerCase(),this.node=e}};function on(n,e,t,r){let i=n[e];i.value=t,t&&(gi(i.properties,r)||i.properties.push(r))}function Fa(n,e,t){on(n,"top",e,t),on(n,"right",e,t),on(n,"bottom",e,t),on(n,"left",e,t)}function ne(n,e,t,r){e==="top"||e==="right"||e==="bottom"||e==="left"?on(n,e,t,r):Fa(n,t,r)}function ki(n,e,t){switch(e.length){case 1:ne(n,void 0,e[0],t);break;case 2:ne(n,"top",e[0],t),ne(n,"bottom",e[0],t),ne(n,"right",e[1],t),ne(n,"left",e[1],t);break;case 3:ne(n,"top",e[0],t),ne(n,"right",e[1],t),ne(n,"left",e[1],t),ne(n,"bottom",e[2],t);break;case 4:ne(n,"top",e[0],t),ne(n,"right",e[1],t),ne(n,"bottom",e[2],t),ne(n,"left",e[3],t);break}}function Fi(n,e){for(let t of e)if(n.matches(t))return!0;return!1}function an(n,e=!0){return e&&Fi(n,["initial","unset"])?!1:parseFloat(n.getText())!==0}function io(n,e=!0){return n.map(t=>an(t,e))}function fr(n,e=!0){return!(Fi(n,["none","hidden"])||e&&Fi(n,["initial","unset"]))}function Ea(n,e=!0){return n.map(t=>fr(t,e))}function _a(n){let e=n.getChildren();if(e.length===1){let t=e[0];return an(t)&&fr(t)}for(let t of e){let r=t;if(!an(r,!1)||!fr(r,!1))return!1}return!0}function Ei(n){let e={top:{value:!1,properties:[]},right:{value:!1,properties:[]},bottom:{value:!1,properties:[]},left:{value:!1,properties:[]}};for(let t of n){let r=t.node.value;if(!(typeof r>"u"))switch(t.fullPropertyName){case"box-sizing":return{top:{value:!1,properties:[]},right:{value:!1,properties:[]},bottom:{value:!1,properties:[]},left:{value:!1,properties:[]}};case"width":e.width=t;break;case"height":e.height=t;break;default:let i=t.fullPropertyName.split("-");switch(i[0]){case"border":switch(i[1]){case void 0:case"top":case"right":case"bottom":case"left":switch(i[2]){case void 0:ne(e,i[1],_a(r),t);break;case"width":ne(e,i[1],an(r,!1),t);break;case"style":ne(e,i[1],fr(r,!0),t);break}break;case"width":ki(e,io(r.getChildren(),!1),t);break;case"style":ki(e,Ea(r.getChildren(),!0),t);break}break;case"padding":i.length===1?ki(e,io(r.getChildren(),!0),t):ne(e,i[1],an(r,!0),t);break}break}}return e}var gr=class{constructor(){this.data={}}add(e,t,r){let i=this.data[e];i||(i={nodes:[],names:[]},this.data[e]=i),i.names.push(t),r&&i.nodes.push(r)}},ln=class n{static entries(e,t,r,i,s){let a=new n(t,r,i);return e.acceptVisitor(a),a.completeValidations(),a.getEntries(s)}constructor(e,t,r){this.cssDataManager=r,this.warnings=[],this.settings=t,this.documentText=e.getText(),this.keyframes=new gr,this.validProperties={};let i=t.getSetting(ro.ValidProperties);Array.isArray(i)&&i.forEach(s=>{if(typeof s=="string"){let a=s.trim().toLowerCase();a.length&&(this.validProperties[a]=!0)}})}isValidPropertyDeclaration(e){let t=e.fullPropertyName;return this.validProperties[t]}fetch(e,t){let r=[];for(let i of e)i.fullPropertyName===t&&r.push(i);return r}fetchWithValue(e,t,r){let i=[];for(let s of e)if(s.fullPropertyName===t){let a=s.node.getValue();a&&this.findValueInExpression(a,r)&&i.push(s)}return i}findValueInExpression(e,t){let r=!1;return e.accept(i=>(i.type===m.Identifier&&i.matches(t)&&(r=!0),!r)),r}getEntries(e=ee.Warning|ee.Error){return this.warnings.filter(t=>(t.getLevel()&e)!==0)}addEntry(e,t,r){let i=new wt(e,t,this.settings.getRule(t),r);this.warnings.push(i)}getMissingNames(e,t){let r=e.slice(0);for(let s=0;s0){let o=this.fetch(r,"float");for(let d=0;d0){let o=this.fetch(r,"vertical-align");for(let d=0;d1)for(let w=0;wX.startsWith(j))&&y.delete(P)}}let E=[];for(let I=0,P=n.prefixes.length;Is instanceof qe?(i+=1,!1):!0),i!==r&&this.addEntry(e,W.ArgsInColorFunction)),!0}};ln.prefixes=["-ms-","-moz-","-o-","-webkit-"];var Rt=class{constructor(e){this.cssDataManager=e}configure(e){this.settings=e}doValidation(e,t,r=this.settings){if(r&&r.validate===!1)return[];let i=[];i.push.apply(i,Gn.entries(t)),i.push.apply(i,ln.entries(t,e,new mr(r&&r.lint),this.cssDataManager));let s=[];for(let l in W)s.push(W[l].id);function a(l){let o=R.create(e.positionAt(l.getOffset()),e.positionAt(l.getOffset()+l.getLength())),d=e.languageId;return{code:l.getRule().id,source:d,message:l.getMessage(),severity:l.getLevel()===ee.Warning?yt.Warning:yt.Error,range:o}}return i.filter(l=>l.getLevel()!==ee.Ignore).map(a)}};var so=47,Ia=10,Da=13,Ra=12,za=36,Ma=35,Ta=123,cn=61,Na=33,Oa=60,Pa=62,_i=46;var Ae=c.CustomToken,br=Ae++,Mt=Ae++,pc=Ae++,Ii=Ae++,Di=Ae++,wr=Ae++,vr=Ae++,dn=Ae++,mc=Ae++,zt=class extends ce{scanNext(e){if(this.stream.advanceIfChar(za)){let t=["$"];if(this.ident(t))return this.finishToken(e,br,t.join(""));this.stream.goBackTo(e)}return this.stream.advanceIfChars([Ma,Ta])?this.finishToken(e,Mt):this.stream.advanceIfChars([cn,cn])?this.finishToken(e,Ii):this.stream.advanceIfChars([Na,cn])?this.finishToken(e,Di):this.stream.advanceIfChar(Oa)?this.stream.advanceIfChar(cn)?this.finishToken(e,vr):this.finishToken(e,c.Delim):this.stream.advanceIfChar(Pa)?this.stream.advanceIfChar(cn)?this.finishToken(e,wr):this.finishToken(e,c.Delim):this.stream.advanceIfChars([_i,_i,_i])?this.finishToken(e,dn):super.scanNext(e)}comment(){return super.comment()?!0:!this.inURL&&this.stream.advanceIfChars([so,so])?(this.stream.advanceWhileChar(e=>{switch(e){case Ia:case Da:case Ra:return!1;default:return!0}}),!0):!1}};var hn=class{constructor(e,t){this.id=e,this.message=t}},yr={FromExpected:new hn("scss-fromexpected",p("'from' expected")),ThroughOrToExpected:new hn("scss-throughexpected",p("'through' or 'to' expected")),InExpected:new hn("scss-fromexpected",p("'in' expected"))};var xr=class extends ke{constructor(){super(new zt)}_parseStylesheetStatement(e=!1){return this.peek(c.AtKeyword)?this._parseWarnAndDebug()||this._parseControlStatement()||this._parseMixinDeclaration()||this._parseMixinContent()||this._parseMixinReference()||this._parseFunctionDeclaration()||this._parseForward()||this._parseUse()||this._parseRuleset(e)||super._parseStylesheetAtStatement(e):this._parseRuleset(!0)||this._parseVariableDeclaration()}_parseImport(){if(!this.peekKeyword("@import"))return null;let e=this.create(je);if(this.consumeToken(),!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,f.URIOrStringExpected);for(;this.accept(c.Comma);)if(!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral()))return this.finish(e,f.URIOrStringExpected);return this._completeParseImport(e)}_parseVariableDeclaration(e=[]){if(!this.peek(br))return null;let t=this.create(xe);if(!t.setVariable(this._parseVariable()))return null;if(!this.accept(c.Colon))return this.finish(t,f.ColonExpected);if(this.prevToken&&(t.colonPosition=this.prevToken.offset),!t.setValue(this._parseExpr()))return this.finish(t,f.VariableValueExpected,[],e);for(;this.peek(c.Exclamation);)if(!t.addChild(this._tryParsePrio())){if(this.consumeToken(),!this.peekRegExp(c.Ident,/^(default|global)$/))return this.finish(t,f.UnknownKeyword);this.consumeToken()}return this.peek(c.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)}_parseMediaCondition(){return this._parseInterpolation()||super._parseMediaCondition()}_parseMediaFeatureRangeOperator(){return this.accept(vr)||this.accept(wr)||super._parseMediaFeatureRangeOperator()}_parseMediaFeatureName(){return this._parseModuleMember()||this._parseFunction()||this._parseIdent()||this._parseVariable()}_parseKeyframeSelector(){return this._tryParseKeyframeSelector()||this._parseControlStatement(this._parseKeyframeSelector.bind(this))||this._parseWarnAndDebug()||this._parseMixinReference()||this._parseFunctionDeclaration()||this._parseVariableDeclaration()||this._parseMixinContent()}_parseVariable(){if(!this.peek(br))return null;let e=this.create(Ke);return this.consumeToken(),e}_parseModuleMember(){let e=this.mark(),t=this.create(jt);return t.setIdentifier(this._parseIdent([z.Module]))?this.hasWhitespace()||!this.acceptDelim(".")||this.hasWhitespace()?(this.restoreAtMark(e),null):t.addChild(this._parseVariable()||this._parseFunction())?t:this.finish(t,f.IdentifierOrVariableExpected):null}_parseIdent(e){if(!this.peek(c.Ident)&&!this.peek(Mt)&&!this.peekDelim("-"))return null;let t=this.create(G);t.referenceTypes=e,t.isCustomProperty=this.peekRegExp(c.Ident,/^--/);let r=!1,i=()=>{let s=this.mark();return this.acceptDelim("-")&&(this.hasWhitespace()||this.acceptDelim("-"),this.hasWhitespace())?(this.restoreAtMark(s),null):this._parseInterpolation()};for(;(this.accept(c.Ident)||t.addChild(i())||r&&this.acceptRegexp(/^[\w-]/))&&(r=!0,!this.hasWhitespace()););return r?this.finish(t):null}_parseTermExpression(){return this._parseModuleMember()||this._parseVariable()||this._parseNestingSelector()||super._parseTermExpression()}_parseInterpolation(){if(this.peek(Mt)){let e=this.create(rt);return this.consumeToken(),!e.addChild(this._parseExpr())&&!this._parseNestingSelector()?this.accept(c.CurlyR)?this.finish(e):this.finish(e,f.ExpressionExpected):this.accept(c.CurlyR)?this.finish(e):this.finish(e,f.RightCurlyExpected)}return null}_parseOperator(){if(this.peek(Ii)||this.peek(Di)||this.peek(wr)||this.peek(vr)||this.peekDelim(">")||this.peekDelim("<")||this.peekIdent("and")||this.peekIdent("or")||this.peekDelim("%")){let e=this.createNode(m.Operator);return this.consumeToken(),this.finish(e)}return super._parseOperator()}_parseUnaryOperator(){if(this.peekIdent("not")){let e=this.create(x);return this.consumeToken(),this.finish(e)}return super._parseUnaryOperator()}_parseRuleSetDeclaration(){return this.peek(c.AtKeyword)?this._parseKeyframe()||this._parseImport()||this._parseMedia(!0)||this._parseFontFace()||this._parseWarnAndDebug()||this._parseControlStatement()||this._parseFunctionDeclaration()||this._parseExtends()||this._parseMixinReference()||this._parseMixinContent()||this._parseMixinDeclaration()||this._parseRuleset(!0)||this._parseSupports(!0)||this._parseLayer()||this._parsePropertyAtRule()||this._parseContainer(!0)||this._parseRuleSetDeclarationAtStatement():this._parseVariableDeclaration()||this._tryParseRuleset(!0)||this._parseDeclaration()}_parseDeclaration(e){let t=this._tryParseCustomPropertyDeclaration(e);if(t)return t;let r=this.create(Q);if(!r.setProperty(this._parseProperty()))return null;if(!this.accept(c.Colon))return this.finish(r,f.ColonExpected,[c.Colon],e||[c.SemiColon]);this.prevToken&&(r.colonPosition=this.prevToken.offset);let i=!1;if(r.setValue(this._parseExpr())&&(i=!0,r.addChild(this._parsePrio())),this.peek(c.CurlyL))r.setNestedProperties(this._parseNestedProperties());else if(!i)return this.finish(r,f.PropertyValueExpected);return this.peek(c.SemiColon)&&(r.semicolonPosition=this.token.offset),this.finish(r)}_parseNestedProperties(){let e=this.create(Ut);return this._parseBody(e,this._parseDeclaration.bind(this))}_parseExtends(){if(this.peekKeyword("@extend")){let e=this.create(Se);if(this.consumeToken(),!e.getSelectors().addChild(this._parseSimpleSelector()))return this.finish(e,f.SelectorExpected);for(;this.accept(c.Comma);)e.getSelectors().addChild(this._parseSimpleSelector());return this.accept(c.Exclamation)&&!this.acceptIdent("optional")?this.finish(e,f.UnknownKeyword):this.finish(e)}return null}_parseSimpleSelectorBody(){return this._parseSelectorPlaceholder()||super._parseSimpleSelectorBody()}_parseNestingSelector(){if(this.peekDelim("&")){let e=this.createNode(m.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim("-")||this.accept(c.Num)||this.accept(c.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim("&")););return this.finish(e)}return null}_parseSelectorPlaceholder(){if(this.peekDelim("%")){let e=this.createNode(m.SelectorPlaceholder);return this.consumeToken(),this._parseIdent(),this.finish(e)}else if(this.peekKeyword("@at-root")){let e=this.createNode(m.SelectorPlaceholder);if(this.consumeToken(),this.accept(c.ParenthesisL)){if(!this.acceptIdent("with")&&!this.acceptIdent("without"))return this.finish(e,f.IdentifierExpected);if(!this.accept(c.Colon))return this.finish(e,f.ColonExpected);if(!e.addChild(this._parseIdent()))return this.finish(e,f.IdentifierExpected);if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[c.CurlyR])}return this.finish(e)}return null}_parseElementName(){let e=this.mark(),t=super._parseElementName();return t&&!this.hasWhitespace()&&this.peek(c.ParenthesisL)?(this.restoreAtMark(e),null):t}_tryParsePseudoIdentifier(){return this._parseInterpolation()||super._tryParsePseudoIdentifier()}_parseWarnAndDebug(){if(!this.peekKeyword("@debug")&&!this.peekKeyword("@warn")&&!this.peekKeyword("@error"))return null;let e=this.createNode(m.Debug);return this.consumeToken(),e.addChild(this._parseExpr()),this.finish(e)}_parseControlStatement(e=this._parseRuleSetDeclaration.bind(this)){return this.peek(c.AtKeyword)?this._parseIfStatement(e)||this._parseForStatement(e)||this._parseEachStatement(e)||this._parseWhileStatement(e):null}_parseIfStatement(e){return this.peekKeyword("@if")?this._internalParseIfStatement(e):null}_internalParseIfStatement(e){let t=this.create(yn);if(this.consumeToken(),!t.setExpression(this._parseExpr(!0)))return this.finish(t,f.ExpressionExpected);if(this._parseBody(t,e),this.acceptKeyword("@else")){if(this.peekIdent("if"))t.setElseClause(this._internalParseIfStatement(e));else if(this.peek(c.CurlyL)){let r=this.create(kn);this._parseBody(r,e),t.setElseClause(r)}}return this.finish(t)}_parseForStatement(e){if(!this.peekKeyword("@for"))return null;let t=this.create(xn);return this.consumeToken(),t.setVariable(this._parseVariable())?this.acceptIdent("from")?t.addChild(this._parseBinaryExpr())?!this.acceptIdent("to")&&!this.acceptIdent("through")?this.finish(t,yr.ThroughOrToExpected,[c.CurlyR]):t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,f.ExpressionExpected,[c.CurlyR]):this.finish(t,f.ExpressionExpected,[c.CurlyR]):this.finish(t,yr.FromExpected,[c.CurlyR]):this.finish(t,f.VariableNameExpected,[c.CurlyR])}_parseEachStatement(e){if(!this.peekKeyword("@each"))return null;let t=this.create(Sn);this.consumeToken();let r=t.getVariables();if(!r.addChild(this._parseVariable()))return this.finish(t,f.VariableNameExpected,[c.CurlyR]);for(;this.accept(c.Comma);)if(!r.addChild(this._parseVariable()))return this.finish(t,f.VariableNameExpected,[c.CurlyR]);return this.finish(r),this.acceptIdent("in")?t.addChild(this._parseExpr())?this._parseBody(t,e):this.finish(t,f.ExpressionExpected,[c.CurlyR]):this.finish(t,yr.InExpected,[c.CurlyR])}_parseWhileStatement(e){if(!this.peekKeyword("@while"))return null;let t=this.create(Cn);return this.consumeToken(),t.addChild(this._parseBinaryExpr())?this._parseBody(t,e):this.finish(t,f.ExpressionExpected,[c.CurlyR])}_parseFunctionBodyDeclaration(){return this._parseVariableDeclaration()||this._parseReturnStatement()||this._parseWarnAndDebug()||this._parseControlStatement(this._parseFunctionBodyDeclaration.bind(this))}_parseFunctionDeclaration(){if(!this.peekKeyword("@function"))return null;let e=this.create(De);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([z.Function])))return this.finish(e,f.IdentifierExpected,[c.CurlyR]);if(!this.accept(c.ParenthesisL))return this.finish(e,f.LeftParenthesisExpected,[c.CurlyR]);if(e.getParameters().addChild(this._parseParameterDeclaration())){for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,f.VariableNameExpected)}return this.accept(c.ParenthesisR)?this._parseBody(e,this._parseFunctionBodyDeclaration.bind(this)):this.finish(e,f.RightParenthesisExpected,[c.CurlyR])}_parseReturnStatement(){if(!this.peekKeyword("@return"))return null;let e=this.createNode(m.ReturnStatement);return this.consumeToken(),e.addChild(this._parseExpr())?this.finish(e):this.finish(e,f.ExpressionExpected)}_parseMixinDeclaration(){if(!this.peekKeyword("@mixin"))return null;let e=this.create(ue);if(this.consumeToken(),!e.setIdentifier(this._parseIdent([z.Mixin])))return this.finish(e,f.IdentifierExpected,[c.CurlyR]);if(this.accept(c.ParenthesisL)){if(e.getParameters().addChild(this._parseParameterDeclaration())){for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,f.VariableNameExpected)}if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[c.CurlyR])}return this._parseBody(e,this._parseRuleSetDeclaration.bind(this))}_parseParameterDeclaration(){let e=this.create(ye);return e.setIdentifier(this._parseVariable())?(this.accept(dn),this.accept(c.Colon)&&!e.setDefaultValue(this._parseExpr(!0))?this.finish(e,f.VariableValueExpected,[],[c.Comma,c.ParenthesisR]):this.finish(e)):null}_parseMixinContent(){if(!this.peekKeyword("@content"))return null;let e=this.create(Vn);if(this.consumeToken(),this.accept(c.ParenthesisL)){if(e.getArguments().addChild(this._parseFunctionArgument())){for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)if(!e.getArguments().addChild(this._parseFunctionArgument()))return this.finish(e,f.ExpressionExpected)}if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected)}return this.finish(e)}_parseMixinReference(){if(!this.peekKeyword("@include"))return null;let e=this.create(ze);this.consumeToken();let t=this._parseIdent([z.Mixin]);if(!e.setIdentifier(t))return this.finish(e,f.IdentifierExpected,[c.CurlyR]);if(!this.hasWhitespace()&&this.acceptDelim(".")&&!this.hasWhitespace()){let r=this._parseIdent([z.Mixin]);if(!r)return this.finish(e,f.IdentifierExpected,[c.CurlyR]);let i=this.create(jt);t.referenceTypes=[z.Module],i.setIdentifier(t),e.setIdentifier(r),e.addChild(i)}if(this.accept(c.ParenthesisL)){if(e.getArguments().addChild(this._parseFunctionArgument())){for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)if(!e.getArguments().addChild(this._parseFunctionArgument()))return this.finish(e,f.ExpressionExpected)}if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected)}return(this.peekIdent("using")||this.peek(c.CurlyL))&&e.setContent(this._parseMixinContentDeclaration()),this.finish(e)}_parseMixinContentDeclaration(){let e=this.create(jn);if(this.acceptIdent("using")){if(!this.accept(c.ParenthesisL))return this.finish(e,f.LeftParenthesisExpected,[c.CurlyL]);if(e.getParameters().addChild(this._parseParameterDeclaration())){for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)if(!e.getParameters().addChild(this._parseParameterDeclaration()))return this.finish(e,f.VariableNameExpected)}if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[c.CurlyL])}return this.peek(c.CurlyL)&&this._parseBody(e,this._parseMixinReferenceBodyStatement.bind(this)),this.finish(e)}_parseMixinReferenceBodyStatement(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()}_parseFunctionArgument(){let e=this.create(le),t=this.mark(),r=this._parseVariable();if(r)if(this.accept(c.Colon))e.setIdentifier(r);else{if(this.accept(dn))return e.setValue(r),this.finish(e);this.restoreAtMark(t)}return e.setValue(this._parseExpr(!0))?(this.accept(dn),e.addChild(this._parsePrio()),this.finish(e)):e.setValue(this._tryParsePrio())?this.finish(e):null}_parseURLArgument(){let e=this.mark(),t=super._parseURLArgument();if(!t||!this.peek(c.ParenthesisR)){this.restoreAtMark(e);let r=this.create(x);return r.addChild(this._parseBinaryExpr()),this.finish(r)}return t}_parseOperation(){if(!this.peek(c.ParenthesisL))return null;let e=this.create(x);for(this.consumeToken();e.addChild(this._parseListElement());)this.accept(c.Comma);return this.accept(c.ParenthesisR)?this.finish(e):this.finish(e,f.RightParenthesisExpected)}_parseListElement(){let e=this.create(Bn),t=this._parseBinaryExpr();if(!t)return null;if(this.accept(c.Colon)){if(e.setKey(t),!e.setValue(this._parseBinaryExpr()))return this.finish(e,f.ExpressionExpected)}else e.setValue(t);return this.finish(e)}_parseUse(){if(!this.peekKeyword("@use"))return null;let e=this.create(En);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,f.StringLiteralExpected);if(!this.peek(c.SemiColon)&&!this.peek(c.EOF)){if(!this.peekRegExp(c.Ident,/as|with/))return this.finish(e,f.UnknownKeyword);if(this.acceptIdent("as")&&!e.setIdentifier(this._parseIdent([z.Module]))&&!this.acceptDelim("*"))return this.finish(e,f.IdentifierOrWildcardExpected);if(this.acceptIdent("with")){if(!this.accept(c.ParenthesisL))return this.finish(e,f.LeftParenthesisExpected,[c.ParenthesisR]);if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,f.VariableNameExpected);for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,f.VariableNameExpected);if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected)}}return!this.accept(c.SemiColon)&&!this.accept(c.EOF)?this.finish(e,f.SemiColonExpected):this.finish(e)}_parseModuleConfigDeclaration(){let e=this.create(_n);return e.setIdentifier(this._parseVariable())?!this.accept(c.Colon)||!e.setValue(this._parseExpr(!0))?this.finish(e,f.VariableValueExpected,[],[c.Comma,c.ParenthesisR]):this.accept(c.Exclamation)&&(this.hasWhitespace()||!this.acceptIdent("default"))?this.finish(e,f.UnknownKeyword):this.finish(e):null}_parseForward(){if(!this.peekKeyword("@forward"))return null;let e=this.create(In);if(this.consumeToken(),!e.addChild(this._parseStringLiteral()))return this.finish(e,f.StringLiteralExpected);if(this.acceptIdent("as")){let t=this._parseIdent([z.Forward]);if(!e.setIdentifier(t))return this.finish(e,f.IdentifierExpected);if(this.hasWhitespace()||!this.acceptDelim("*"))return this.finish(e,f.WildcardExpected)}if(this.acceptIdent("with")){if(!this.accept(c.ParenthesisL))return this.finish(e,f.LeftParenthesisExpected,[c.ParenthesisR]);if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,f.VariableNameExpected);for(;this.accept(c.Comma)&&!this.peek(c.ParenthesisR);)if(!e.getParameters().addChild(this._parseModuleConfigDeclaration()))return this.finish(e,f.VariableNameExpected);if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected)}else if((this.peekIdent("hide")||this.peekIdent("show"))&&!e.addChild(this._parseForwardVisibility()))return this.finish(e,f.IdentifierOrVariableExpected);return!this.accept(c.SemiColon)&&!this.accept(c.EOF)?this.finish(e,f.SemiColonExpected):this.finish(e)}_parseForwardVisibility(){let e=this.create(Dn);for(e.setIdentifier(this._parseIdent());e.addChild(this._parseVariable()||this._parseIdent());)this.accept(c.Comma);return e.getChildren().length>1?e:null}_parseSupportsCondition(){return this._parseInterpolation()||super._parseSupportsCondition()}};var We=p("Sass documentation"),we=class n extends Xe{constructor(e,t){super("$",e,t),oo(n.scssModuleLoaders),oo(n.scssModuleBuiltIns)}isImportPathParent(e){return e===m.Forward||e===m.Use||super.isImportPathParent(e)}getCompletionForImportPath(e,t){let r=e.getParent().type;if(r===m.Forward||r===m.Use)for(let i of n.scssModuleBuiltIns){let s={label:i.label,documentation:i.documentation,textEdit:_.replace(this.getCompletionRange(e),`'${i.label}'`),kind:k.Module};t.items.push(s)}return super.getCompletionForImportPath(e,t)}createReplaceFunction(){let e=1;return(t,r)=>"\\"+r+": ${"+e+++":"+(n.variableDefaults[r]||"")+"}"}createFunctionProposals(e,t,r,i){for(let s of e){let a=s.func.replace(/\[?(\$\w+)\]?/g,this.createReplaceFunction()),o={label:s.func.substr(0,s.func.indexOf("(")),detail:s.func,documentation:s.desc,textEdit:_.replace(this.getCompletionRange(t),a),insertTextFormat:te.Snippet,kind:k.Function};r&&(o.sortText="z"),i.items.push(o)}return i}getCompletionsForSelector(e,t,r){return this.createFunctionProposals(n.selectorFuncs,null,!0,r),super.getCompletionsForSelector(e,t,r)}getTermProposals(e,t,r){let i=n.builtInFuncs;return e&&(i=i.filter(s=>!s.type||!e.restrictions||e.restrictions.indexOf(s.type)!==-1)),this.createFunctionProposals(i,t,!0,r),super.getTermProposals(e,t,r)}getColorProposals(e,t,r){return this.createFunctionProposals(n.colorProposals,t,!1,r),super.getColorProposals(e,t,r)}getCompletionsForDeclarationProperty(e,t){return this.getCompletionForAtDirectives(t),this.getCompletionsForSelector(null,!0,t),super.getCompletionsForDeclarationProperty(e,t)}getCompletionsForExtendsReference(e,t,r){let i=this.getSymbolContext().findSymbolsAtOffset(this.offset,z.Rule);for(let s of i){let a={label:s.name,textEdit:_.replace(this.getCompletionRange(t),s.name),kind:k.Function};r.items.push(a)}return r}getCompletionForAtDirectives(e){return e.items.push(...n.scssAtDirectives),e}getCompletionForTopLevel(e){return this.getCompletionForAtDirectives(e),this.getCompletionForModuleLoaders(e),super.getCompletionForTopLevel(e),e}getCompletionForModuleLoaders(e){return e.items.push(...n.scssModuleLoaders),e}};we.variableDefaults={$red:"1",$green:"2",$blue:"3",$alpha:"1.0",$color:"#000000",$weight:"0.5",$hue:"0",$saturation:"0%",$lightness:"0%",$degrees:"0",$amount:"0",$string:'""',$substring:'"s"',$number:"0",$limit:"1"};we.colorProposals=[{func:"red($color)",desc:p("Gets the red component of a color.")},{func:"green($color)",desc:p("Gets the green component of a color.")},{func:"blue($color)",desc:p("Gets the blue component of a color.")},{func:"mix($color, $color, [$weight])",desc:p("Mixes two colors together.")},{func:"hue($color)",desc:p("Gets the hue component of a color.")},{func:"saturation($color)",desc:p("Gets the saturation component of a color.")},{func:"lightness($color)",desc:p("Gets the lightness component of a color.")},{func:"adjust-hue($color, $degrees)",desc:p("Changes the hue of a color.")},{func:"lighten($color, $amount)",desc:p("Makes a color lighter.")},{func:"darken($color, $amount)",desc:p("Makes a color darker.")},{func:"saturate($color, $amount)",desc:p("Makes a color more saturated.")},{func:"desaturate($color, $amount)",desc:p("Makes a color less saturated.")},{func:"grayscale($color)",desc:p("Converts a color to grayscale.")},{func:"complement($color)",desc:p("Returns the complement of a color.")},{func:"invert($color)",desc:p("Returns the inverse of a color.")},{func:"alpha($color)",desc:p("Gets the opacity component of a color.")},{func:"opacity($color)",desc:"Gets the alpha component (opacity) of a color."},{func:"rgba($color, $alpha)",desc:p("Changes the alpha component for a color.")},{func:"opacify($color, $amount)",desc:p("Makes a color more opaque.")},{func:"fade-in($color, $amount)",desc:p("Makes a color more opaque.")},{func:"transparentize($color, $amount)",desc:p("Makes a color more transparent.")},{func:"fade-out($color, $amount)",desc:p("Makes a color more transparent.")},{func:"adjust-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])",desc:p("Increases or decreases one or more components of a color.")},{func:"scale-color($color, [$red], [$green], [$blue], [$saturation], [$lightness], [$alpha])",desc:p("Fluidly scales one or more properties of a color.")},{func:"change-color($color, [$red], [$green], [$blue], [$hue], [$saturation], [$lightness], [$alpha])",desc:p("Changes one or more properties of a color.")},{func:"ie-hex-str($color)",desc:p("Converts a color into the format understood by IE filters.")}];we.selectorFuncs=[{func:"selector-nest($selectors\u2026)",desc:p("Nests selector beneath one another like they would be nested in the stylesheet.")},{func:"selector-append($selectors\u2026)",desc:p("Appends selectors to one another without spaces in between.")},{func:"selector-extend($selector, $extendee, $extender)",desc:p("Extends $extendee with $extender within $selector.")},{func:"selector-replace($selector, $original, $replacement)",desc:p("Replaces $original with $replacement within $selector.")},{func:"selector-unify($selector1, $selector2)",desc:p("Unifies two selectors to produce a selector that matches elements matched by both.")},{func:"is-superselector($super, $sub)",desc:p("Returns whether $super matches all the elements $sub does, and possibly more.")},{func:"simple-selectors($selector)",desc:p("Returns the simple selectors that comprise a compound selector.")},{func:"selector-parse($selector)",desc:p("Parses a selector into the format returned by &.")}];we.builtInFuncs=[{func:"unquote($string)",desc:p("Removes quotes from a string.")},{func:"quote($string)",desc:p("Adds quotes to a string.")},{func:"str-length($string)",desc:p("Returns the number of characters in a string.")},{func:"str-insert($string, $insert, $index)",desc:p("Inserts $insert into $string at $index.")},{func:"str-index($string, $substring)",desc:p("Returns the index of the first occurance of $substring in $string.")},{func:"str-slice($string, $start-at, [$end-at])",desc:p("Extracts a substring from $string.")},{func:"to-upper-case($string)",desc:p("Converts a string to upper case.")},{func:"to-lower-case($string)",desc:p("Converts a string to lower case.")},{func:"percentage($number)",desc:p("Converts a unitless number to a percentage."),type:"percentage"},{func:"round($number)",desc:p("Rounds a number to the nearest whole number.")},{func:"ceil($number)",desc:p("Rounds a number up to the next whole number.")},{func:"floor($number)",desc:p("Rounds a number down to the previous whole number.")},{func:"abs($number)",desc:p("Returns the absolute value of a number.")},{func:"min($numbers)",desc:p("Finds the minimum of several numbers.")},{func:"max($numbers)",desc:p("Finds the maximum of several numbers.")},{func:"random([$limit])",desc:p("Returns a random number.")},{func:"length($list)",desc:p("Returns the length of a list.")},{func:"nth($list, $n)",desc:p("Returns a specific item in a list.")},{func:"set-nth($list, $n, $value)",desc:p("Replaces the nth item in a list.")},{func:"join($list1, $list2, [$separator])",desc:p("Joins together two lists into one.")},{func:"append($list1, $val, [$separator])",desc:p("Appends a single value onto the end of a list.")},{func:"zip($lists)",desc:p("Combines several lists into a single multidimensional list.")},{func:"index($list, $value)",desc:p("Returns the position of a value within a list.")},{func:"list-separator(#list)",desc:p("Returns the separator of a list.")},{func:"map-get($map, $key)",desc:p("Returns the value in a map associated with a given key.")},{func:"map-merge($map1, $map2)",desc:p("Merges two maps together into a new map.")},{func:"map-remove($map, $keys)",desc:p("Returns a new map with keys removed.")},{func:"map-keys($map)",desc:p("Returns a list of all keys in a map.")},{func:"map-values($map)",desc:p("Returns a list of all values in a map.")},{func:"map-has-key($map, $key)",desc:p("Returns whether a map has a value associated with a given key.")},{func:"keywords($args)",desc:p("Returns the keywords passed to a function that takes variable arguments.")},{func:"feature-exists($feature)",desc:p("Returns whether a feature exists in the current Sass runtime.")},{func:"variable-exists($name)",desc:p("Returns whether a variable with the given name exists in the current scope.")},{func:"global-variable-exists($name)",desc:p("Returns whether a variable with the given name exists in the global scope.")},{func:"function-exists($name)",desc:p("Returns whether a function with the given name exists.")},{func:"mixin-exists($name)",desc:p("Returns whether a mixin with the given name exists.")},{func:"inspect($value)",desc:p("Returns the string representation of a value as it would be represented in Sass.")},{func:"type-of($value)",desc:p("Returns the type of a value.")},{func:"unit($number)",desc:p("Returns the unit(s) associated with a number.")},{func:"unitless($number)",desc:p("Returns whether a number has units.")},{func:"comparable($number1, $number2)",desc:p("Returns whether two numbers can be added, subtracted, or compared.")},{func:"call($name, $args\u2026)",desc:p("Dynamically calls a Sass function.")}];we.scssAtDirectives=[{label:"@extend",documentation:p("Inherits the styles of another selector."),kind:k.Keyword},{label:"@at-root",documentation:p("Causes one or more rules to be emitted at the root of the document."),kind:k.Keyword},{label:"@debug",documentation:p("Prints the value of an expression to the standard error output stream. Useful for debugging complicated Sass files."),kind:k.Keyword},{label:"@warn",documentation:p("Prints the value of an expression to the standard error output stream. Useful for libraries that need to warn users of deprecations or recovering from minor mixin usage mistakes. Warnings can be turned off with the `--quiet` command-line option or the `:quiet` Sass option."),kind:k.Keyword},{label:"@error",documentation:p("Throws the value of an expression as a fatal error with stack trace. Useful for validating arguments to mixins and functions."),kind:k.Keyword},{label:"@if",documentation:p("Includes the body if the expression does not evaluate to `false` or `null`."),insertText:`@if \${1:expr} { + $0 +}`,insertTextFormat:te.Snippet,kind:k.Keyword},{label:"@for",documentation:p("For loop that repeatedly outputs a set of styles for each `$var` in the `from/through` or `from/to` clause."),insertText:"@for \\$${1:var} from ${2:start} ${3|to,through|} ${4:end} {\n $0\n}",insertTextFormat:te.Snippet,kind:k.Keyword},{label:"@each",documentation:p("Each loop that sets `$var` to each item in the list or map, then outputs the styles it contains using that value of `$var`."),insertText:"@each \\$${1:var} in ${2:list} {\n $0\n}",insertTextFormat:te.Snippet,kind:k.Keyword},{label:"@while",documentation:p("While loop that takes an expression and repeatedly outputs the nested styles until the statement evaluates to `false`."),insertText:`@while \${1:condition} { + $0 +}`,insertTextFormat:te.Snippet,kind:k.Keyword},{label:"@mixin",documentation:p("Defines styles that can be re-used throughout the stylesheet with `@include`."),insertText:`@mixin \${1:name} { + $0 +}`,insertTextFormat:te.Snippet,kind:k.Keyword},{label:"@include",documentation:p("Includes the styles defined by another mixin into the current rule."),kind:k.Keyword},{label:"@function",documentation:p("Defines complex operations that can be re-used throughout stylesheets."),kind:k.Keyword}];we.scssModuleLoaders=[{label:"@use",documentation:p("Loads mixins, functions, and variables from other Sass stylesheets as 'modules', and combines CSS from multiple stylesheets together."),references:[{name:We,url:"https://sass-lang.com/documentation/at-rules/use"}],insertText:"@use $0;",insertTextFormat:te.Snippet,kind:k.Keyword},{label:"@forward",documentation:p("Loads a Sass stylesheet and makes its mixins, functions, and variables available when this stylesheet is loaded with the @use rule."),references:[{name:We,url:"https://sass-lang.com/documentation/at-rules/forward"}],insertText:"@forward $0;",insertTextFormat:te.Snippet,kind:k.Keyword}];we.scssModuleBuiltIns=[{label:"sass:math",documentation:p("Provides functions that operate on numbers."),references:[{name:We,url:"https://sass-lang.com/documentation/modules/math"}]},{label:"sass:string",documentation:p("Makes it easy to combine, search, or split apart strings."),references:[{name:We,url:"https://sass-lang.com/documentation/modules/string"}]},{label:"sass:color",documentation:p("Generates new colors based on existing ones, making it easy to build color themes."),references:[{name:We,url:"https://sass-lang.com/documentation/modules/color"}]},{label:"sass:list",documentation:p("Lets you access and modify values in lists."),references:[{name:We,url:"https://sass-lang.com/documentation/modules/list"}]},{label:"sass:map",documentation:p("Makes it possible to look up the value associated with a key in a map, and much more."),references:[{name:We,url:"https://sass-lang.com/documentation/modules/map"}]},{label:"sass:selector",documentation:p("Provides access to Sass\u2019s powerful selector engine."),references:[{name:We,url:"https://sass-lang.com/documentation/modules/selector"}]},{label:"sass:meta",documentation:p("Exposes the details of Sass\u2019s inner workings."),references:[{name:We,url:"https://sass-lang.com/documentation/modules/meta"}]}];function oo(n){n.forEach(e=>{if(e.documentation&&e.references&&e.references.length>0){let t=typeof e.documentation=="string"?{kind:"markdown",value:e.documentation}:{kind:"markdown",value:e.documentation.value};t.value+=` + +`,t.value+=e.references.map(r=>`[${r.name}](${r.url})`).join(" | "),e.documentation=t}})}var ao=47,Wa=10,La=13,$a=12,Ri=96,zi=46,Ua=c.CustomToken,Sr=Ua++,Tt=class extends ce{scanNext(e){let t=this.escapedJavaScript();return t!==null?this.finishToken(e,t):this.stream.advanceIfChars([zi,zi,zi])?this.finishToken(e,Sr):super.scanNext(e)}comment(){return super.comment()?!0:!this.inURL&&this.stream.advanceIfChars([ao,ao])?(this.stream.advanceWhileChar(e=>{switch(e){case Wa:case La:case $a:return!1;default:return!0}}),!0):!1}escapedJavaScript(){return this.stream.peekChar()===Ri?(this.stream.advance(1),this.stream.advanceWhileChar(t=>t!==Ri),this.stream.advanceIfChar(Ri)?c.EscapedJavaScript:c.BadEscapedJavaScript):null}};var Cr=class extends ke{constructor(){super(new Tt)}_parseStylesheetStatement(e=!1){return this.peek(c.AtKeyword)?this._parseVariableDeclaration()||this._parsePlugin()||super._parseStylesheetAtStatement(e):this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseFunction()||this._parseRuleset(!0)}_parseImport(){if(!this.peekKeyword("@import")&&!this.peekKeyword("@import-once"))return null;let e=this.create(je);if(this.consumeToken(),this.accept(c.ParenthesisL)){if(!this.accept(c.Ident))return this.finish(e,f.IdentifierExpected,[c.SemiColon]);do if(!this.accept(c.Comma))break;while(this.accept(c.Ident));if(!this.accept(c.ParenthesisR))return this.finish(e,f.RightParenthesisExpected,[c.SemiColon])}return!e.addChild(this._parseURILiteral())&&!e.addChild(this._parseStringLiteral())?this.finish(e,f.URIOrStringExpected,[c.SemiColon]):(!this.peek(c.SemiColon)&&!this.peek(c.EOF)&&e.setMedialist(this._parseMediaQueryList()),this._completeParseImport(e))}_parsePlugin(){if(!this.peekKeyword("@plugin"))return null;let e=this.createNode(m.Plugin);return this.consumeToken(),e.addChild(this._parseStringLiteral())?this.accept(c.SemiColon)?this.finish(e):this.finish(e,f.SemiColonExpected):this.finish(e,f.StringLiteralExpected)}_parseMediaQuery(){let e=super._parseMediaQuery();if(!e){let t=this.create(ft);return t.addChild(this._parseVariable())?this.finish(t):null}return e}_parseMediaDeclaration(e=!1){return this._tryParseRuleset(e)||this._tryToParseDeclaration()||this._tryParseMixinDeclaration()||this._tryParseMixinReference()||this._parseDetachedRuleSetMixin()||this._parseStylesheetStatement(e)}_parseMediaFeatureName(){return this._parseIdent()||this._parseVariable()}_parseVariableDeclaration(e=[]){let t=this.create(xe),r=this.mark();if(!t.setVariable(this._parseVariable(!0)))return null;if(this.accept(c.Colon)){if(this.prevToken&&(t.colonPosition=this.prevToken.offset),t.setValue(this._parseDetachedRuleSet()))t.needsSemicolon=!1;else if(!t.setValue(this._parseExpr()))return this.finish(t,f.VariableValueExpected,[],e);t.addChild(this._parsePrio())}else return this.restoreAtMark(r),null;return this.peek(c.SemiColon)&&(t.semicolonPosition=this.token.offset),this.finish(t)}_parseDetachedRuleSet(){let e=this.mark();if(this.peekDelim("#")||this.peekDelim("."))if(this.consumeToken(),!this.hasWhitespace()&&this.accept(c.ParenthesisL)){let r=this.create(ue);if(r.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(c.Comma)||this.accept(c.SemiColon))&&!this.peek(c.ParenthesisR);)r.getParameters().addChild(this._parseMixinParameter())||this.markError(r,f.IdentifierExpected,[],[c.ParenthesisR]);if(!this.accept(c.ParenthesisR))return this.restoreAtMark(e),null}else return this.restoreAtMark(e),null;if(!this.peek(c.CurlyL))return null;let t=this.create(L);return this._parseBody(t,this._parseDetachedRuleSetBody.bind(this)),this.finish(t)}_parseDetachedRuleSetBody(){return this._tryParseKeyframeSelector()||this._parseRuleSetDeclaration()}_addLookupChildren(e){if(!e.addChild(this._parseLookupValue()))return!1;let t=!1;for(;this.peek(c.BracketL)&&(t=!0),!!e.addChild(this._parseLookupValue());)t=!1;return!t}_parseLookupValue(){let e=this.create(x),t=this.mark();return this.accept(c.BracketL)?(e.addChild(this._parseVariable(!1,!0))||e.addChild(this._parsePropertyIdentifier()))&&this.accept(c.BracketR)||this.accept(c.BracketR)?e:(this.restoreAtMark(t),null):(this.restoreAtMark(t),null)}_parseVariable(e=!1,t=!1){let r=!e&&this.peekDelim("$");if(!this.peekDelim("@")&&!r&&!this.peek(c.AtKeyword))return null;let i=this.create(Ke),s=this.mark();for(;this.acceptDelim("@")||!e&&this.acceptDelim("$");)if(this.hasWhitespace())return this.restoreAtMark(s),null;return!this.accept(c.AtKeyword)&&!this.accept(c.Ident)?(this.restoreAtMark(s),null):!t&&this.peek(c.BracketL)&&!this._addLookupChildren(i)?(this.restoreAtMark(s),null):i}_parseTermExpression(){return this._parseVariable()||this._parseEscaped()||super._parseTermExpression()||this._tryParseMixinReference(!1)}_parseEscaped(){if(this.peek(c.EscapedJavaScript)||this.peek(c.BadEscapedJavaScript)){let e=this.createNode(m.EscapedValue);return this.consumeToken(),this.finish(e)}if(this.peekDelim("~")){let e=this.createNode(m.EscapedValue);return this.consumeToken(),this.accept(c.String)||this.accept(c.EscapedJavaScript)?this.finish(e):this.finish(e,f.TermExpected)}return null}_parseOperator(){let e=this._parseGuardOperator();return e||super._parseOperator()}_parseGuardOperator(){if(this.peekDelim(">")){let e=this.createNode(m.Operator);return this.consumeToken(),this.acceptDelim("="),e}else if(this.peekDelim("=")){let e=this.createNode(m.Operator);return this.consumeToken(),this.acceptDelim("<"),e}else if(this.peekDelim("<")){let e=this.createNode(m.Operator);return this.consumeToken(),this.acceptDelim("="),e}return null}_parseRuleSetDeclaration(){return this.peek(c.AtKeyword)?this._parseKeyframe()||this._parseMedia(!0)||this._parseImport()||this._parseSupports(!0)||this._parseLayer()||this._parsePropertyAtRule()||this._parseContainer(!0)||this._parseDetachedRuleSetMixin()||this._parseVariableDeclaration()||this._parseRuleSetDeclarationAtStatement():this._tryParseMixinDeclaration()||this._tryParseRuleset(!0)||this._tryParseMixinReference()||this._parseFunction()||this._parseExtend()||this._parseDeclaration()}_parseKeyframeIdent(){return this._parseIdent([z.Keyframe])||this._parseVariable()}_parseKeyframeSelector(){return this._parseDetachedRuleSetMixin()||super._parseKeyframeSelector()}_parseSelector(e){let t=this.create(de),r=!1;for(e&&(r=t.addChild(this._parseCombinator()));t.addChild(this._parseSimpleSelector());){r=!0;let i=this.mark();if(t.addChild(this._parseGuard())&&this.peek(c.CurlyL))break;this.restoreAtMark(i),t.addChild(this._parseCombinator())}return r?this.finish(t):null}_parseNestingSelector(){if(this.peekDelim("&")){let e=this.createNode(m.SelectorCombinator);for(this.consumeToken();!this.hasWhitespace()&&(this.acceptDelim("-")||this.accept(c.Num)||this.accept(c.Dimension)||e.addChild(this._parseIdent())||this.acceptDelim("&")););return this.finish(e)}return null}_parseSelectorIdent(){if(!this.peekInterpolatedIdent())return null;let e=this.createNode(m.SelectorInterpolation);return this._acceptInterpolatedIdent(e)?this.finish(e):null}_parsePropertyIdentifier(e=!1){let t=/^[\w-]+/;if(!this.peekInterpolatedIdent()&&!this.peekRegExp(this.token.type,t))return null;let r=this.mark(),i=this.create(G);i.isCustomProperty=this.acceptDelim("-")&&this.acceptDelim("-");let s=!1;return e?i.isCustomProperty?s=i.addChild(this._parseIdent()):s=i.addChild(this._parseRegexp(t)):i.isCustomProperty?s=this._acceptInterpolatedIdent(i):s=this._acceptInterpolatedIdent(i,t),s?(!e&&!this.hasWhitespace()&&(this.acceptDelim("+"),this.hasWhitespace()||this.acceptIdent("_")),this.finish(i)):(this.restoreAtMark(r),null)}peekInterpolatedIdent(){return this.peek(c.Ident)||this.peekDelim("@")||this.peekDelim("$")||this.peekDelim("-")}_acceptInterpolatedIdent(e,t){let r=!1,i=()=>{let a=this.mark();return this.acceptDelim("-")&&(this.hasWhitespace()||this.acceptDelim("-"),this.hasWhitespace())?(this.restoreAtMark(a),null):this._parseInterpolation()},s=t?()=>this.acceptRegexp(t):()=>this.accept(c.Ident);for(;(s()||e.addChild(this._parseInterpolation()||this.try(i)))&&(r=!0,!this.hasWhitespace()););return r}_parseInterpolation(){let e=this.mark();if(this.peekDelim("@")||this.peekDelim("$")){let t=this.createNode(m.Interpolation);return this.consumeToken(),this.hasWhitespace()||!this.accept(c.CurlyL)?(this.restoreAtMark(e),null):t.addChild(this._parseIdent())?this.accept(c.CurlyR)?this.finish(t):this.finish(t,f.RightCurlyExpected):this.finish(t,f.IdentifierExpected)}return null}_tryParseMixinDeclaration(){let e=this.mark(),t=this.create(ue);if(!t.setIdentifier(this._parseMixinDeclarationIdentifier())||!this.accept(c.ParenthesisL))return this.restoreAtMark(e),null;if(t.getParameters().addChild(this._parseMixinParameter()))for(;(this.accept(c.Comma)||this.accept(c.SemiColon))&&!this.peek(c.ParenthesisR);)t.getParameters().addChild(this._parseMixinParameter())||this.markError(t,f.IdentifierExpected,[],[c.ParenthesisR]);return this.accept(c.ParenthesisR)?(t.setGuard(this._parseGuard()),this.peek(c.CurlyL)?this._parseBody(t,this._parseMixInBodyDeclaration.bind(this)):(this.restoreAtMark(e),null)):(this.restoreAtMark(e),null)}_parseMixInBodyDeclaration(){return this._parseFontFace()||this._parseRuleSetDeclaration()}_parseMixinDeclarationIdentifier(){let e;if(this.peekDelim("#")||this.peekDelim(".")){if(e=this.create(G),this.consumeToken(),this.hasWhitespace()||!e.addChild(this._parseIdent()))return null}else if(this.peek(c.Hash))e=this.create(G),this.consumeToken();else return null;return e.referenceTypes=[z.Mixin],this.finish(e)}_parsePseudo(){if(!this.peek(c.Colon))return null;let e=this.mark(),t=this.create(Se);return this.consumeToken(),this.acceptIdent("extend")?this._completeExtends(t):(this.restoreAtMark(e),super._parsePseudo())}_parseExtend(){if(!this.peekDelim("&"))return null;let e=this.mark(),t=this.create(Se);return this.consumeToken(),this.hasWhitespace()||!this.accept(c.Colon)||!this.acceptIdent("extend")?(this.restoreAtMark(e),null):this._completeExtends(t)}_completeExtends(e){if(!this.accept(c.ParenthesisL))return this.finish(e,f.LeftParenthesisExpected);let t=e.getSelectors();if(!t.addChild(this._parseSelector(!0)))return this.finish(e,f.SelectorExpected);for(;this.accept(c.Comma);)if(!t.addChild(this._parseSelector(!0)))return this.finish(e,f.SelectorExpected);return this.accept(c.ParenthesisR)?this.finish(e):this.finish(e,f.RightParenthesisExpected)}_parseDetachedRuleSetMixin(){if(!this.peek(c.AtKeyword))return null;let e=this.mark(),t=this.create(ze);return t.addChild(this._parseVariable(!0))&&(this.hasWhitespace()||!this.accept(c.ParenthesisL))?(this.restoreAtMark(e),null):this.accept(c.ParenthesisR)?this.finish(t):this.finish(t,f.RightParenthesisExpected)}_tryParseMixinReference(e=!0){let t=this.mark(),r=this.create(ze),i=this._parseMixinDeclarationIdentifier();for(;i;){this.acceptDelim(">");let a=this._parseMixinDeclarationIdentifier();if(a)r.getNamespaces().addChild(i),i=a;else break}if(!r.setIdentifier(i))return this.restoreAtMark(t),null;let s=!1;if(this.accept(c.ParenthesisL)){if(s=!0,r.getArguments().addChild(this._parseMixinArgument())){for(;(this.accept(c.Comma)||this.accept(c.SemiColon))&&!this.peek(c.ParenthesisR);)if(!r.getArguments().addChild(this._parseMixinArgument()))return this.finish(r,f.ExpressionExpected)}if(!this.accept(c.ParenthesisR))return this.finish(r,f.RightParenthesisExpected);i.referenceTypes=[z.Mixin]}else i.referenceTypes=[z.Mixin,z.Rule];return this.peek(c.BracketL)?e||this._addLookupChildren(r):r.addChild(this._parsePrio()),!s&&!this.peek(c.SemiColon)&&!this.peek(c.CurlyR)&&!this.peek(c.EOF)?(this.restoreAtMark(t),null):this.finish(r)}_parseMixinArgument(){let e=this.create(le),t=this.mark(),r=this._parseVariable();return r&&(this.accept(c.Colon)?e.setIdentifier(r):this.restoreAtMark(t)),e.setValue(this._parseDetachedRuleSet()||this._parseExpr(!0))?this.finish(e):(this.restoreAtMark(t),null)}_parseMixinParameter(){let e=this.create(ye);if(this.peekKeyword("@rest")){let r=this.create(x);return this.consumeToken(),this.accept(Sr)?(e.setIdentifier(this.finish(r)),this.finish(e)):this.finish(e,f.DotExpected,[],[c.Comma,c.ParenthesisR])}if(this.peek(Sr)){let r=this.create(x);return this.consumeToken(),e.setIdentifier(this.finish(r)),this.finish(e)}let t=!1;return e.setIdentifier(this._parseVariable())&&(this.accept(c.Colon),t=!0),!e.setDefaultValue(this._parseDetachedRuleSet()||this._parseExpr(!0))&&!t?null:this.finish(e)}_parseGuard(){if(!this.peekIdent("when"))return null;let e=this.create(qn);if(this.consumeToken(),!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,f.ConditionExpected);for(;this.acceptIdent("and")||this.accept(c.Comma);)if(!e.getConditions().addChild(this._parseGuardCondition()))return this.finish(e,f.ConditionExpected);return this.finish(e)}_parseGuardCondition(){let e=this.create(Kn);return e.isNegated=this.acceptIdent("not"),this.accept(c.ParenthesisL)?(e.addChild(this._parseExpr()),this.accept(c.ParenthesisR)?this.finish(e):this.finish(e,f.RightParenthesisExpected)):e.isNegated?this.finish(e,f.LeftParenthesisExpected):null}_parseFunction(){let e=this.mark(),t=this.create(me);if(!t.setIdentifier(this._parseFunctionIdentifier()))return null;if(this.hasWhitespace()||!this.accept(c.ParenthesisL))return this.restoreAtMark(e),null;if(t.getArguments().addChild(this._parseMixinArgument())){for(;(this.accept(c.Comma)||this.accept(c.SemiColon))&&!this.peek(c.ParenthesisR);)if(!t.getArguments().addChild(this._parseMixinArgument()))return this.finish(t,f.ExpressionExpected)}return this.accept(c.ParenthesisR)?this.finish(t):this.finish(t,f.RightParenthesisExpected)}_parseFunctionIdentifier(){if(this.peekDelim("%")){let e=this.create(G);return e.referenceTypes=[z.Function],this.consumeToken(),this.finish(e)}return super._parseFunctionIdentifier()}_parseURLArgument(){let e=this.mark(),t=super._parseURLArgument();if(!t||!this.peek(c.ParenthesisR)){this.restoreAtMark(e);let r=this.create(x);return r.addChild(this._parseBinaryExpr()),this.finish(r)}return t}};var Nt=class n extends Xe{constructor(e,t){super("@",e,t)}createFunctionProposals(e,t,r,i){for(let s of e){let a={label:s.name,detail:s.example,documentation:s.description,textEdit:_.replace(this.getCompletionRange(t),s.name+"($0)"),insertTextFormat:te.Snippet,kind:k.Function};r&&(a.sortText="z"),i.items.push(a)}return i}getTermProposals(e,t,r){let i=n.builtInProposals;return e&&(i=i.filter(s=>!s.type||!e.restrictions||e.restrictions.indexOf(s.type)!==-1)),this.createFunctionProposals(i,t,!0,r),super.getTermProposals(e,t,r)}getColorProposals(e,t,r){return this.createFunctionProposals(n.colorProposals,t,!1,r),super.getColorProposals(e,t,r)}getCompletionsForDeclarationProperty(e,t){return this.getCompletionsForSelector(null,!0,t),super.getCompletionsForDeclarationProperty(e,t)}};Nt.builtInProposals=[{name:"if",example:"if(condition, trueValue [, falseValue]);",description:p("returns one of two values depending on a condition.")},{name:"boolean",example:"boolean(condition);",description:p('"store" a boolean test for later evaluation in a guard or if().')},{name:"length",example:"length(@list);",description:p("returns the number of elements in a value list")},{name:"extract",example:"extract(@list, index);",description:p("returns a value at the specified position in the list")},{name:"range",example:"range([start, ] end [, step]);",description:p("generate a list spanning a range of values")},{name:"each",example:"each(@list, ruleset);",description:p("bind the evaluation of a ruleset to each member of a list.")},{name:"escape",example:"escape(@string);",description:p("URL encodes a string")},{name:"e",example:"e(@string);",description:p("escape string content")},{name:"replace",example:"replace(@string, @pattern, @replacement[, @flags]);",description:p("string replace")},{name:"unit",example:"unit(@dimension, [@unit: '']);",description:p("remove or change the unit of a dimension")},{name:"color",example:"color(@string);",description:p("parses a string to a color"),type:"color"},{name:"convert",example:"convert(@value, unit);",description:p("converts numbers from one type into another")},{name:"data-uri",example:"data-uri([mimetype,] url);",description:p("inlines a resource and falls back to `url()`"),type:"url"},{name:"abs",description:p("absolute value of a number"),example:"abs(number);"},{name:"acos",description:p("arccosine - inverse of cosine function"),example:"acos(number);"},{name:"asin",description:p("arcsine - inverse of sine function"),example:"asin(number);"},{name:"ceil",example:"ceil(@number);",description:p("rounds up to an integer")},{name:"cos",description:p("cosine function"),example:"cos(number);"},{name:"floor",description:p("rounds down to an integer"),example:"floor(@number);"},{name:"percentage",description:p("converts to a %, e.g. 0.5 > 50%"),example:"percentage(@number);",type:"percentage"},{name:"round",description:p("rounds a number to a number of places"),example:"round(number, [places: 0]);"},{name:"sqrt",description:p("calculates square root of a number"),example:"sqrt(number);"},{name:"sin",description:p("sine function"),example:"sin(number);"},{name:"tan",description:p("tangent function"),example:"tan(number);"},{name:"atan",description:p("arctangent - inverse of tangent function"),example:"atan(number);"},{name:"pi",description:p("returns pi"),example:"pi();"},{name:"pow",description:p("first argument raised to the power of the second argument"),example:"pow(@base, @exponent);"},{name:"mod",description:p("first argument modulus second argument"),example:"mod(number, number);"},{name:"min",description:p("returns the lowest of one or more values"),example:"min(@x, @y);"},{name:"max",description:p("returns the lowest of one or more values"),example:"max(@x, @y);"}];Nt.colorProposals=[{name:"argb",example:"argb(@color);",description:p("creates a #AARRGGBB")},{name:"hsl",example:"hsl(@hue, @saturation, @lightness);",description:p("creates a color")},{name:"hsla",example:"hsla(@hue, @saturation, @lightness, @alpha);",description:p("creates a color")},{name:"hsv",example:"hsv(@hue, @saturation, @value);",description:p("creates a color")},{name:"hsva",example:"hsva(@hue, @saturation, @value, @alpha);",description:p("creates a color")},{name:"hue",example:"hue(@color);",description:p("returns the `hue` channel of `@color` in the HSL space")},{name:"saturation",example:"saturation(@color);",description:p("returns the `saturation` channel of `@color` in the HSL space")},{name:"lightness",example:"lightness(@color);",description:p("returns the `lightness` channel of `@color` in the HSL space")},{name:"hsvhue",example:"hsvhue(@color);",description:p("returns the `hue` channel of `@color` in the HSV space")},{name:"hsvsaturation",example:"hsvsaturation(@color);",description:p("returns the `saturation` channel of `@color` in the HSV space")},{name:"hsvvalue",example:"hsvvalue(@color);",description:p("returns the `value` channel of `@color` in the HSV space")},{name:"red",example:"red(@color);",description:p("returns the `red` channel of `@color`")},{name:"green",example:"green(@color);",description:p("returns the `green` channel of `@color`")},{name:"blue",example:"blue(@color);",description:p("returns the `blue` channel of `@color`")},{name:"alpha",example:"alpha(@color);",description:p("returns the `alpha` channel of `@color`")},{name:"luma",example:"luma(@color);",description:p("returns the `luma` value (perceptual brightness) of `@color`")},{name:"saturate",example:"saturate(@color, 10%);",description:p("return `@color` 10% points more saturated")},{name:"desaturate",example:"desaturate(@color, 10%);",description:p("return `@color` 10% points less saturated")},{name:"lighten",example:"lighten(@color, 10%);",description:p("return `@color` 10% points lighter")},{name:"darken",example:"darken(@color, 10%);",description:p("return `@color` 10% points darker")},{name:"fadein",example:"fadein(@color, 10%);",description:p("return `@color` 10% points less transparent")},{name:"fadeout",example:"fadeout(@color, 10%);",description:p("return `@color` 10% points more transparent")},{name:"fade",example:"fade(@color, 50%);",description:p("return `@color` with 50% transparency")},{name:"spin",example:"spin(@color, 10);",description:p("return `@color` with a 10 degree larger in hue")},{name:"mix",example:"mix(@color1, @color2, [@weight: 50%]);",description:p("return a mix of `@color1` and `@color2`")},{name:"greyscale",example:"greyscale(@color);",description:p("returns a grey, 100% desaturated color")},{name:"contrast",example:"contrast(@color1, [@darkcolor: black], [@lightcolor: white], [@threshold: 43%]);",description:p("return `@darkcolor` if `@color1 is> 43% luma` otherwise return `@lightcolor`, see notes")},{name:"multiply",example:"multiply(@color1, @color2);"},{name:"screen",example:"screen(@color1, @color2);"},{name:"overlay",example:"overlay(@color1, @color2);"},{name:"softlight",example:"softlight(@color1, @color2);"},{name:"hardlight",example:"hardlight(@color1, @color2);"},{name:"difference",example:"difference(@color1, @color2);"},{name:"exclusion",example:"exclusion(@color1, @color2);"},{name:"average",example:"average(@color1, @color2);"},{name:"negation",example:"negation(@color1, @color2);"}];function co(n,e){let t=ja(n);return Ba(t,e)}function ja(n){function e(h){return n.positionAt(h.offset).line}function t(h){return n.positionAt(h.offset+h.len).line}function r(){switch(n.languageId){case"scss":return new zt;case"less":return new Tt;default:return new ce}}function i(h,u){let w=e(h),b=t(h);return w!==b?{startLine:w,endLine:b,kind:u}:null}let s=[],a=[],l=r();l.ignoreComment=!1,l.setSource(n.getText());let o=l.scan(),d=null;for(;o.type!==c.EOF;){switch(o.type){case c.CurlyL:case Mt:{a.push({line:e(o),type:"brace",isStart:!0});break}case c.CurlyR:{if(a.length!==0){let h=lo(a,"brace");if(!h)break;let u=t(o);h.type==="brace"&&(d&&t(d)!==u&&u--,h.line!==u&&s.push({startLine:h.line,endLine:u,kind:void 0}))}break}case c.Comment:{let h=b=>b==="#region"?{line:e(o),type:"comment",isStart:!0}:{line:t(o),type:"comment",isStart:!1},w=(b=>{let y=b.text.match(/^\s*\/\*\s*(#region|#endregion)\b\s*(.*?)\s*\*\//);if(y)return h(y[1]);if(n.languageId==="scss"||n.languageId==="less"){let E=b.text.match(/^\s*\/\/\s*(#region|#endregion)\b\s*(.*?)\s*/);if(E)return h(E[1])}return null})(o);if(w)if(w.isStart)a.push(w);else{let b=lo(a,"comment");if(!b)break;b.type==="comment"&&b.line!==w.line&&s.push({startLine:b.line,endLine:w.line,kind:"region"})}else{let b=i(o,"comment");b&&s.push(b)}break}}d=o,o=l.scan()}return s}function lo(n,e){if(n.length===0)return null;for(let t=n.length-1;t>=0;t--)if(n[t].type===e&&n[t].isStart)return n.splice(t,1)[0];return null}function Ba(n,e){let t=e&&e.rangeLimit||Number.MAX_VALUE,r=n.sort((a,l)=>{let o=a.startLine-l.startLine;return o===0&&(o=a.endLine-l.endLine),o}),i=[],s=-1;return r.forEach(a=>{a.startLine=0;d--)if(this.__items[d].match(o))return!0;return!1},s.prototype.set_indent=function(o,d){this.is_empty()&&(this.__indent_count=o||0,this.__alignment_count=d||0,this.__character_count=this.__parent.get_indent_size(this.__indent_count,this.__alignment_count))},s.prototype._set_wrap_point=function(){this.__parent.wrap_line_length&&(this.__wrap_point_index=this.__items.length,this.__wrap_point_character_count=this.__character_count,this.__wrap_point_indent_count=this.__parent.next_line.__indent_count,this.__wrap_point_alignment_count=this.__parent.next_line.__alignment_count)},s.prototype._should_wrap=function(){return this.__wrap_point_index&&this.__character_count>this.__parent.wrap_line_length&&this.__wrap_point_character_count>this.__parent.next_line.__character_count},s.prototype._allow_wrap=function(){if(this._should_wrap()){this.__parent.add_new_line();var o=this.__parent.current_line;return o.set_indent(this.__wrap_point_indent_count,this.__wrap_point_alignment_count),o.__items=this.__items.slice(this.__wrap_point_index),this.__items=this.__items.slice(0,this.__wrap_point_index),o.__character_count+=this.__character_count-this.__wrap_point_character_count,this.__character_count=this.__wrap_point_character_count,o.__items[0]===" "&&(o.__items.splice(0,1),o.__character_count-=1),!0}return!1},s.prototype.is_empty=function(){return this.__items.length===0},s.prototype.last=function(){return this.is_empty()?null:this.__items[this.__items.length-1]},s.prototype.push=function(o){this.__items.push(o);var d=o.lastIndexOf(` +`);d!==-1?this.__character_count=o.length-d:this.__character_count+=o.length},s.prototype.pop=function(){var o=null;return this.is_empty()||(o=this.__items.pop(),this.__character_count-=o.length),o},s.prototype._remove_indent=function(){this.__indent_count>0&&(this.__indent_count-=1,this.__character_count-=this.__parent.indent_size)},s.prototype._remove_wrap_indent=function(){this.__wrap_point_indent_count>0&&(this.__wrap_point_indent_count-=1)},s.prototype.trim=function(){for(;this.last()===" ";)this.__items.pop(),this.__character_count-=1},s.prototype.toString=function(){var o="";return this.is_empty()?this.__parent.indent_empty_lines&&(o=this.__parent.get_indent_string(this.__indent_count)):(o=this.__parent.get_indent_string(this.__indent_count,this.__alignment_count),o+=this.__items.join("")),o};function a(o,d){this.__cache=[""],this.__indent_size=o.indent_size,this.__indent_string=o.indent_char,o.indent_with_tabs||(this.__indent_string=new Array(o.indent_size+1).join(o.indent_char)),d=d||"",o.indent_level>0&&(d=new Array(o.indent_level+1).join(this.__indent_string)),this.__base_string=d,this.__base_string_length=d.length}a.prototype.get_indent_size=function(o,d){var h=this.__base_string_length;return d=d||0,o<0&&(h=0),h+=o*this.__indent_size,h+=d,h},a.prototype.get_indent_string=function(o,d){var h=this.__base_string;return d=d||0,o<0&&(o=0,h=""),d+=o*this.__indent_size,this.__ensure_cache(d),h+=this.__cache[d],h},a.prototype.__ensure_cache=function(o){for(;o>=this.__cache.length;)this.__add_column()},a.prototype.__add_column=function(){var o=this.__cache.length,d=0,h="";this.__indent_size&&o>=this.__indent_size&&(d=Math.floor(o/this.__indent_size),o-=d*this.__indent_size,h=new Array(d+1).join(this.__indent_string)),o&&(h+=new Array(o+1).join(" ")),this.__cache.push(h)};function l(o,d){this.__indent_cache=new a(o,d),this.raw=!1,this._end_with_newline=o.end_with_newline,this.indent_size=o.indent_size,this.wrap_line_length=o.wrap_line_length,this.indent_empty_lines=o.indent_empty_lines,this.__lines=[],this.previous_line=null,this.current_line=null,this.next_line=new s(this),this.space_before_token=!1,this.non_breaking_space=!1,this.previous_token_wrapped=!1,this.__add_outputline()}l.prototype.__add_outputline=function(){this.previous_line=this.current_line,this.current_line=this.next_line.clone_empty(),this.__lines.push(this.current_line)},l.prototype.get_line_number=function(){return this.__lines.length},l.prototype.get_indent_string=function(o,d){return this.__indent_cache.get_indent_string(o,d)},l.prototype.get_indent_size=function(o,d){return this.__indent_cache.get_indent_size(o,d)},l.prototype.is_empty=function(){return!this.previous_line&&this.current_line.is_empty()},l.prototype.add_new_line=function(o){return this.is_empty()||!o&&this.just_added_newline()?!1:(this.raw||this.__add_outputline(),!0)},l.prototype.get_code=function(o){this.trim(!0);var d=this.current_line.pop();d&&(d[d.length-1]===` +`&&(d=d.replace(/\n+$/g,"")),this.current_line.push(d)),this._end_with_newline&&this.__add_outputline();var h=this.__lines.join(` +`);return o!==` +`&&(h=h.replace(/[\n]/g,o)),h},l.prototype.set_wrap_point=function(){this.current_line._set_wrap_point()},l.prototype.set_indent=function(o,d){return o=o||0,d=d||0,this.next_line.set_indent(o,d),this.__lines.length>1?(this.current_line.set_indent(o,d),!0):(this.current_line.set_indent(),!1)},l.prototype.add_raw_token=function(o){for(var d=0;d1&&this.current_line.is_empty();)this.__lines.pop(),this.current_line=this.__lines[this.__lines.length-1],this.current_line.trim();this.previous_line=this.__lines.length>1?this.__lines[this.__lines.length-2]:null},l.prototype.just_added_newline=function(){return this.current_line.is_empty()},l.prototype.just_added_blankline=function(){return this.is_empty()||this.current_line.is_empty()&&this.previous_line.is_empty()},l.prototype.ensure_empty_line_above=function(o,d){for(var h=this.__lines.length-2;h>=0;){var u=this.__lines[h];if(u.is_empty())break;if(u.item(0).indexOf(o)!==0&&u.item(-1)!==d){this.__lines.splice(h+1,0,new s(this)),this.previous_line=this.__lines[this.__lines.length-2];break}h--}},i.exports.Output=l},,,,function(i){function s(o,d){this.raw_options=a(o,d),this.disabled=this._get_boolean("disabled"),this.eol=this._get_characters("eol","auto"),this.end_with_newline=this._get_boolean("end_with_newline"),this.indent_size=this._get_number("indent_size",4),this.indent_char=this._get_characters("indent_char"," "),this.indent_level=this._get_number("indent_level"),this.preserve_newlines=this._get_boolean("preserve_newlines",!0),this.max_preserve_newlines=this._get_number("max_preserve_newlines",32786),this.preserve_newlines||(this.max_preserve_newlines=0),this.indent_with_tabs=this._get_boolean("indent_with_tabs",this.indent_char===" "),this.indent_with_tabs&&(this.indent_char=" ",this.indent_size===1&&(this.indent_size=4)),this.wrap_line_length=this._get_number("wrap_line_length",this._get_number("max_char")),this.indent_empty_lines=this._get_boolean("indent_empty_lines"),this.templating=this._get_selection_list("templating",["auto","none","angular","django","erb","handlebars","php","smarty"],["auto"])}s.prototype._get_array=function(o,d){var h=this.raw_options[o],u=d||[];return typeof h=="object"?h!==null&&typeof h.concat=="function"&&(u=h.concat()):typeof h=="string"&&(u=h.split(/[^a-zA-Z0-9_\/\-]+/)),u},s.prototype._get_boolean=function(o,d){var h=this.raw_options[o],u=h===void 0?!!d:!!h;return u},s.prototype._get_characters=function(o,d){var h=this.raw_options[o],u=d||"";return typeof h=="string"&&(u=h.replace(/\\r/,"\r").replace(/\\n/,` +`).replace(/\\t/," ")),u},s.prototype._get_number=function(o,d){var h=this.raw_options[o];d=parseInt(d,10),isNaN(d)&&(d=0);var u=parseInt(h,10);return isNaN(u)&&(u=d),u},s.prototype._get_selection=function(o,d,h){var u=this._get_selection_list(o,d,h);if(u.length!==1)throw new Error("Invalid Option Value: The option '"+o+`' can only be one of the following values: +`+d+` +You passed in: '`+this.raw_options[o]+"'");return u[0]},s.prototype._get_selection_list=function(o,d,h){if(!d||d.length===0)throw new Error("Selection list cannot be empty.");if(h=h||[d[0]],!this._is_valid_selection(h,d))throw new Error("Invalid Default Value!");var u=this._get_array(o,h);if(!this._is_valid_selection(u,d))throw new Error("Invalid Option Value: The option '"+o+`' can contain only the following values: +`+d+` +You passed in: '`+this.raw_options[o]+"'");return u},s.prototype._is_valid_selection=function(o,d){return o.length&&d.length&&!o.some(function(h){return d.indexOf(h)===-1})};function a(o,d){var h={};o=l(o);var u;for(u in o)u!==d&&(h[u]=o[u]);if(d&&o[d])for(u in o[d])h[u]=o[d][u];return h}function l(o){var d={},h;for(h in o){var u=h.replace(/-/g,"_");d[u]=o[h]}return d}i.exports.Options=s,i.exports.normalizeOpts=l,i.exports.mergeOpts=a},,function(i){var s=RegExp.prototype.hasOwnProperty("sticky");function a(l){this.__input=l||"",this.__input_length=this.__input.length,this.__position=0}a.prototype.restart=function(){this.__position=0},a.prototype.back=function(){this.__position>0&&(this.__position-=1)},a.prototype.hasNext=function(){return this.__position=0&&l=0&&o=l.length&&this.__input.substring(o-l.length,o).toLowerCase()===l},i.exports.InputScanner=a},,,,,function(i){function s(a,l){a=typeof a=="string"?a:a.source,l=typeof l=="string"?l:l.source,this.__directives_block_pattern=new RegExp(a+/ beautify( \w+[:]\w+)+ /.source+l,"g"),this.__directive_pattern=/ (\w+)[:](\w+)/g,this.__directives_end_ignore_pattern=new RegExp(a+/\sbeautify\signore:end\s/.source+l,"g")}s.prototype.get_directives=function(a){if(!a.match(this.__directives_block_pattern))return null;var l={};this.__directive_pattern.lastIndex=0;for(var o=this.__directive_pattern.exec(a);o;)l[o[1]]=o[2],o=this.__directive_pattern.exec(a);return l},s.prototype.readIgnored=function(a){return a.readUntilAfter(this.__directives_end_ignore_pattern)},i.exports.Directives=s},,function(i,s,a){var l=a(16).Beautifier,o=a(17).Options;function d(h,u){var w=new l(h,u);return w.beautify()}i.exports=d,i.exports.defaultOptions=function(){return new o}},function(i,s,a){var l=a(17).Options,o=a(2).Output,d=a(8).InputScanner,h=a(13).Directives,u=new h(/\/\*/,/\*\//),w=/\r\n|[\r\n]/,b=/\r\n|[\r\n]/g,y=/\s/,E=/(?:\s|\n)+/g,A=/\/\*(?:[\s\S]*?)((?:\*\/)|$)/g,I=/\/\/(?:[^\n\r\u2028\u2029]*)/g;function P(T,j){this._source_text=T||"",this._options=new l(j),this._ch=null,this._input=null,this.NESTED_AT_RULE={page:!0,"font-face":!0,keyframes:!0,media:!0,supports:!0,document:!0},this.CONDITIONAL_GROUP_RULE={media:!0,supports:!0,document:!0},this.NON_SEMICOLON_NEWLINE_PROPERTY=["grid-template-areas","grid-template"]}P.prototype.eatString=function(T){var j="";for(this._ch=this._input.next();this._ch;){if(j+=this._ch,this._ch==="\\")j+=this._input.next();else if(T.indexOf(this._ch)!==-1||this._ch===` +`)break;this._ch=this._input.next()}return j},P.prototype.eatWhitespace=function(T){for(var j=y.test(this._input.peek()),X=0;y.test(this._input.peek());)this._ch=this._input.next(),T&&this._ch===` +`&&(X===0||X0&&this._indentLevel--},P.prototype.beautify=function(){if(this._options.disabled)return this._source_text;var T=this._source_text,j=this._options.eol;j==="auto"&&(j=` +`,T&&w.test(T||"")&&(j=T.match(w)[0])),T=T.replace(b,` +`);var X=T.match(/^[\t ]*/)[0];this._output=new o(this._options,X),this._input=new d(T),this._indentLevel=0,this._nestedLevel=0,this._ch=null;for(var Y=0,$e=!1,K=!1,_e=!1,Ie=!1,S=!1,v=this._ch,F=!1,C,N,D;C=this._input.read(E),N=C!=="",D=v,this._ch=this._input.next(),this._ch==="\\"&&this._input.hasNext()&&(this._ch+=this._input.next()),v=this._ch,this._ch;)if(this._ch==="/"&&this._input.peek()==="*"){this._output.add_new_line(),this._input.back();var M=this._input.read(A),oe=u.get_directives(M);oe&&oe.ignore==="start"&&(M+=u.readIgnored(this._input)),this.print_string(M),this.eatWhitespace(!0),this._output.add_new_line()}else if(this._ch==="/"&&this._input.peek()==="/")this._output.space_before_token=!0,this._input.back(),this.print_string(this._input.read(I)),this.eatWhitespace(!0);else if(this._ch==="$"){this.preserveSingleSpace(N),this.print_string(this._ch);var Z=this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);Z.match(/[ :]$/)&&(Z=this.eatString(": ").replace(/\s+$/,""),this.print_string(Z),this._output.space_before_token=!0),Y===0&&Z.indexOf(":")!==-1&&(K=!0,this.indent())}else if(this._ch==="@")if(this.preserveSingleSpace(N),this._input.peek()==="{")this.print_string(this._ch+this.eatString("}"));else{this.print_string(this._ch);var $=this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);$.match(/[ :]$/)&&($=this.eatString(": ").replace(/\s+$/,""),this.print_string($),this._output.space_before_token=!0),Y===0&&$.indexOf(":")!==-1?(K=!0,this.indent()):$ in this.NESTED_AT_RULE?(this._nestedLevel+=1,$ in this.CONDITIONAL_GROUP_RULE&&(_e=!0)):Y===0&&!K&&(Ie=!0)}else if(this._ch==="#"&&this._input.peek()==="{")this.preserveSingleSpace(N),this.print_string(this._ch+this.eatString("}"));else if(this._ch==="{")K&&(K=!1,this.outdent()),Ie=!1,_e?(_e=!1,$e=this._indentLevel>=this._nestedLevel):$e=this._indentLevel>=this._nestedLevel-1,this._options.newline_between_rules&&$e&&this._output.previous_line&&this._output.previous_line.item(-1)!=="{"&&this._output.ensure_empty_line_above("/",","),this._output.space_before_token=!0,this._options.brace_style==="expand"?(this._output.add_new_line(),this.print_string(this._ch),this.indent(),this._output.set_indent(this._indentLevel)):(D==="("?this._output.space_before_token=!1:D!==","&&this.indent(),this.print_string(this._ch)),this.eatWhitespace(!0),this._output.add_new_line();else if(this._ch==="}")this.outdent(),this._output.add_new_line(),D==="{"&&this._output.trim(!0),K&&(this.outdent(),K=!1),this.print_string(this._ch),$e=!1,this._nestedLevel&&this._nestedLevel--,this.eatWhitespace(!0),this._output.add_new_line(),this._options.newline_between_rules&&!this._output.just_added_blankline()&&this._input.peek()!=="}"&&this._output.add_new_line(!0),this._input.peek()===")"&&(this._output.trim(!0),this._options.brace_style==="expand"&&this._output.add_new_line(!0));else if(this._ch===":"){for(var Ue=0;Ue"||this._ch==="+"||this._ch==="~")&&!K&&Y===0)this._options.space_around_combinator?(this._output.space_before_token=!0,this.print_string(this._ch),this._output.space_before_token=!0):(this.print_string(this._ch),this.eatWhitespace(),this._ch&&y.test(this._ch)&&(this._ch=""));else if(this._ch==="]")this.print_string(this._ch);else if(this._ch==="[")this.preserveSingleSpace(N),this.print_string(this._ch);else if(this._ch==="=")this.eatWhitespace(),this.print_string("="),y.test(this._ch)&&(this._ch="");else if(this._ch==="!"&&!this._input.lookBack("\\"))this._output.space_before_token=!0,this.print_string(this._ch);else{var Co=D==='"'||D==="'";this.preserveSingleSpace(Co||N),this.print_string(this._ch),!this._output.just_added_newline()&&this._input.peek()===` +`&&F&&this._output.add_new_line()}var ko=this._output.get_code(j);return ko},i.exports.Beautifier=P},function(i,s,a){var l=a(6).Options;function o(d){l.call(this,d,"css"),this.selector_separator_newline=this._get_boolean("selector_separator_newline",!0),this.newline_between_rules=this._get_boolean("newline_between_rules",!0);var h=this._get_boolean("space_around_selector_separator");this.space_around_combinator=this._get_boolean("space_around_combinator")||h;var u=this._get_selection_list("brace_style",["collapse","expand","end-expand","none","preserve-inline"]);this.brace_style="collapse";for(var w=0;w0&&fo(r,u-1);)u--;u===0||uo(r,u-1)?h=u:u0){let h=t.insertSpaces?Mr(" ",l*s):Mr(" ",s);d=d.split(` +`).join(` +`+h),e.start.character===0&&(d=h+d)}return[{range:e,newText:d}]}function mo(n){return n.replace(/^\s+/,"")}var qa=123,Ka=125;function Ga(n,e){for(;e>=0;){let t=n.charCodeAt(e);if(t===qa)return!0;if(t===Ka)return!1;e--}return!1}function Le(n,e,t){if(n&&n.hasOwnProperty(e)){let r=n[e];if(r!==null)return r}return t}function Ha(n,e,t){let r=e,i=0,s=t.tabSize||4;for(;r && ]#",relevance:50,description:"@counter-style descriptor. Specifies the symbols used by the marker-construction algorithm specified by the system descriptor. Needs to be specified if the counter system is 'additive'.",restrictions:["integer","string","image","identifier"]},{name:"align-content",browsers:["E12","FF28","S9","C29","IE11","O16"],values:[{name:"center",description:"Lines are packed toward the center of the flex container."},{name:"flex-end",description:"Lines are packed toward the end of the flex container."},{name:"flex-start",description:"Lines are packed toward the start of the flex container."},{name:"space-around",description:"Lines are evenly distributed in the flex container, with half-size spaces on either end."},{name:"space-between",description:"Lines are evenly distributed in the flex container."},{name:"stretch",description:"Lines stretch to take up the remaining space."},{name:"start"},{name:"end"},{name:"normal"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"space-around"},{name:"space-between"},{name:"space-evenly"},{name:"stretch"},{name:"safe"},{name:"unsafe"}],syntax:"normal | | | ? ",relevance:66,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/align-content"}],description:"Aligns a flex container's lines within the flex container when there is extra space in the cross-axis, similar to how 'justify-content' aligns individual items within the main-axis.",restrictions:["enum"]},{name:"align-items",browsers:["E12","FF20","S9","C29","IE11","O16"],values:[{name:"baseline",description:"If the flex item's inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item's margin box is centered in the cross axis within the line."},{name:"flex-end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"flex-start",description:"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"normal"},{name:"start"},{name:"end"},{name:"self-start"},{name:"self-end"},{name:"first baseline"},{name:"last baseline"},{name:"stretch"},{name:"safe"},{name:"unsafe"}],syntax:"normal | stretch | | [ ? ]",relevance:87,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/align-items"}],description:"Aligns flex items along the cross axis of the current line of the flex container.",restrictions:["enum"]},{name:"justify-items",browsers:["E12","FF20","S9","C52","IE11","O12.1"],values:[{name:"auto"},{name:"normal"},{name:"end"},{name:"start"},{name:"flex-end",description:'"Flex items are packed toward the end of the line."'},{name:"flex-start",description:'"Flex items are packed toward the start of the line."'},{name:"self-end",description:"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis."},{name:"self-start",description:"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.."},{name:"center",description:"The items are packed flush to each other toward the center of the of the alignment container."},{name:"left"},{name:"right"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"safe"},{name:"unsafe"},{name:"legacy"}],syntax:"normal | stretch | | ? [ | left | right ] | legacy | legacy && [ left | right | center ]",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/justify-items"}],description:"Defines the default justify-self for all items of the box, giving them the default way of justifying each box along the appropriate axis",restrictions:["enum"]},{name:"justify-self",browsers:["E16","FF45","S10.1","C57","IE10","O44"],values:[{name:"auto"},{name:"normal"},{name:"end"},{name:"start"},{name:"flex-end",description:'"Flex items are packed toward the end of the line."'},{name:"flex-start",description:'"Flex items are packed toward the start of the line."'},{name:"self-end",description:"The item is packed flush to the edge of the alignment container of the end side of the item, in the appropriate axis."},{name:"self-start",description:"The item is packed flush to the edge of the alignment container of the start side of the item, in the appropriate axis.."},{name:"center",description:"The items are packed flush to each other toward the center of the of the alignment container."},{name:"left"},{name:"right"},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"save"},{name:"unsave"}],syntax:"auto | normal | stretch | | ? [ | left | right ]",relevance:55,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/justify-self"}],description:"Defines the way of justifying a box inside its container along the appropriate axis.",restrictions:["enum"]},{name:"align-self",browsers:["E12","FF20","S9","C29","IE10","O12.1"],values:[{name:"auto",description:"Computes to the value of 'align-items' on the element's parent, or 'stretch' if the element has no parent. On absolutely positioned elements, it computes to itself."},{name:"normal"},{name:"self-end"},{name:"self-start"},{name:"baseline",description:"If the flex item's inline axis is the same as the cross axis, this value is identical to 'flex-start'. Otherwise, it participates in baseline alignment."},{name:"center",description:"The flex item's margin box is centered in the cross axis within the line."},{name:"flex-end",description:"The cross-end margin edge of the flex item is placed flush with the cross-end edge of the line."},{name:"flex-start",description:"The cross-start margin edge of the flex item is placed flush with the cross-start edge of the line."},{name:"stretch",description:"If the cross size property of the flex item computes to auto, and neither of the cross-axis margins are auto, the flex item is stretched."},{name:"baseline"},{name:"first baseline"},{name:"last baseline"},{name:"safe"},{name:"unsafe"}],syntax:"auto | normal | stretch | | ? ",relevance:73,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/align-self"}],description:"Allows the default alignment along the cross axis to be overridden for individual flex items.",restrictions:["enum"]},{name:"all",browsers:["E79","FF27","S9.1","C37","O24"],values:[],syntax:"initial | inherit | unset | revert | revert-layer",relevance:53,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/all"}],description:"Shorthand that resets all properties except 'direction' and 'unicode-bidi'.",restrictions:["enum"]},{name:"alt",browsers:["S9"],values:[],relevance:50,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/alt"}],description:"Provides alternative text for assistive technology to replace the generated content of a ::before or ::after element.",restrictions:["string","enum"]},{name:"animation",browsers:["E12","FF16","S9","C43","IE10","O30"],values:[{name:"alternate",description:"The animation cycle iterations that are odd counts are played in the normal direction, and the animation cycle iterations that are even counts are played in a reverse direction."},{name:"alternate-reverse",description:"The animation cycle iterations that are odd counts are played in the reverse direction, and the animation cycle iterations that are even counts are played in a normal direction."},{name:"backwards",description:"The beginning property value (as defined in the first @keyframes at-rule) is applied before the animation is displayed, during the period defined by 'animation-delay'."},{name:"both",description:"Both forwards and backwards fill modes are applied."},{name:"forwards",description:"The final property value (as defined in the last @keyframes at-rule) is maintained after the animation completes."},{name:"infinite",description:"Causes the animation to repeat forever."},{name:"none",description:"No animation is performed"},{name:"normal",description:"Normal playback."},{name:"reverse",description:"All iterations of the animation are played in the reverse direction from the way they were specified."}],syntax:"#",relevance:82,references:[{name:"MDN Reference",url:"https://developer.mozilla.org/docs/Web/CSS/animation"}],description:"Shorthand property combines six of the animation properties into a single property.",restrictions:["time","timing-function","enum","identifier","number"]},{name:"animation-delay",browsers:["E12","FF16","S9","C43","IE10","O30"],syntax:"